You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Add CLAUDE.md: guardrails for AI-assisted contributions + a channel/template starter #342
Propose adding two documentation files to help the growing number of contributors who use AI coding assistants (Claude Code, Cursor, etc.):
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.
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.
For my part, i prefer to use the generic files AGENT.md, and create a symlink to CLAUDE.md (no need to do this)
One avantage you can use multiple AGENTS.md file in large repository, see point 4 on th ewebsite
Large monorepo? Use nested AGENTS.md files for subprojects
Place another AGENTS.md inside each package. Agents automatically read the nearest file in the directory tree, so the closest one takes precedence and every subproject can ship tailored instructions. For example, at time of writing the main OpenAI repo has 88 AGENTS.md files.
Thanks @kryskool — good call, done. I've renamed to the generic AGENTS.md (+ AGENTS_USER_EXAMPLE.md) in #343 and dropped the Claude-specific wording; no symlink, per your note.
One heads-up for other contributors: Claude Code auto-loads CLAUDE.md, not AGENTS.md, so anyone using it can add a local CLAUDE.md that just @AGENTS.md-imports it (or a symlink) — I've kept that out of the repo to stay vendor-neutral.
And agreed on nested AGENTS.md per subproject — a good option if the engine later wants per-module guidance (e.g. donkey/ vs client/).
Activity
kryskool commentedon Jul 10, 2026
Hi @MichaelLeeHobbs
For my part, i prefer to use the generic files AGENT.md, and create a symlink to CLAUDE.md (no need to do this)
One avantage you can use multiple AGENTS.md file in large repository, see point 4 on th ewebsite
Regards,
MichaelLeeHobbs commentedon Jul 10, 2026
Thanks @kryskool — good call, done. I've renamed to the generic
AGENTS.md(+AGENTS_USER_EXAMPLE.md) in #343 and dropped the Claude-specific wording; no symlink, per your note.One heads-up for other contributors: Claude Code auto-loads
CLAUDE.md, notAGENTS.md, so anyone using it can add a localCLAUDE.mdthat just@AGENTS.md-imports it (or a symlink) — I've kept that out of the repo to stay vendor-neutral.And agreed on nested
AGENTS.mdper subproject — a good option if the engine later wants per-module guidance (e.g.donkey/vsclient/).