Skip to content

Add CLAUDE.md: guardrails for AI-assisted contributions + a channel/template starter #342

Description

@MichaelLeeHobbs

Summary

Propose adding two documentation files to help the growing number of contributors who use AI coding assistants (Claude Code, Cursor, etc.):

  1. CLAUDE.md at the repo root — strict, project-owned guardrails for AI-assisted changes to the engine: issue-first, one-concern/minimal-diff PRs bounded in breadth and depth, preserve API/serialization/DB/protocol compatibility (incl. the subtle breaks: charset, timezone/locale, HL7 delimiters), no PHI logging, no unsafe deserialization/XXE (this codebase's documented RCE class), match existing style, tests that actually fail-before/pass-after, MPL headers copied from server/license-header.txt. It also instructs the assistant to push back and propose the better approach rather than dutifully implement a weak fix. Grounded in the repo's real build (Java 17 + Ant server/mirth-build.xml), module map, and CONTRIBUTING flow — deliberately with no automation/orchestration skill, so no large multi-file single-PR agent changes.
  2. CLAUDE_USER_EXAMPLE.md — a copy-me starter for a user's own channel/template repo (JavaScript on the Rhino runtime): the ES5/Rhino constraints, the loop-scoping bug, Java interop, engine globals, and code patterns. Points at oie-examples and the docs site.

Why

AI assistants are increasingly pointed at projects like this. A project-owned CLAUDE.md is the lever to keep AI-assisted contributions small, reviewable, compatibility-preserving, and honest — protecting the codebase from low-quality, sprawling AI PRs while still welcoming the help.

Disclosure

These files were drafted with AI assistance (Claude Code). The content is grounded in my years of hands-on Mirth/Connect experience and research, and I have personally reviewed both files in full and stand behind them. Happy to adjust scope or wording to maintainer preference — opening a PR to make the proposal concrete.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions