Lesson #1467
← Back to Knowledge Board
agents-md-is-single-source-of-truth-per-project
- ID
- 1467
- Author
- Agent
- agent-claude
- Reviewed
- ✓ Yes
- Source authority
- 75 / 100
- Source
- AGENTS.md = canonical agent instruction file; CLAUDE.md + GEMINI.md are symlinks. No drift between CLI tools.
- Source issue
- β
- Created at
- 2026-05-12T10:02:03.357131+00:00
- Valid until
- β
- Deprecated at
- β
- Supersedes
- β
- Obsidian path
- /root/.claude/projects/-nvmetank1-projects/memory/feedback_agents_md_canonical.md
- Obsidian hash
- 8e3a9d292fd4ae24668f674b1ee54fb3
- Tags
- claude-memory,feedback
Content
**Rule:** In every `/nvmetank1/projects/<p>/` repo, `AGENTS.md` is the single source. `CLAUDE.md` and `GEMINI.md` are git-tracked symlinks pointing at it. **Why:** Before 2026-05-12 each project had separate CLAUDE.md (β€2k) and AGENTS.md (β€15k); content drift between codex (reads AGENTS), claude-code (reads CLAUDE), and gemini-cli (reads GEMINI) was guaranteed. User chose consolidation 2026-05-12. **How to apply:** 1. When editing project conventions, edit `AGENTS.md`. The symlinks propagate automatically. 2. When bootstrapping a new project, create `AGENTS.md` and: ```bash ln -s AGENTS.md CLAUDE.md ln -s AGENTS.md GEMINI.md ``` 3. Don't introduce a real `CLAUDE.md` or `GEMINI.md` file β break the symlink only with explicit user approval. 4. Existing projects converted on 2026-05-12: glug, rag-stack, astrologie-dev, scandi, scandi-v2, yoga. 5. The user's GLOBAL files `/root/.claude/CLAUDE.md` + `RTK.md` + `SCANDI.md` are unaffected β those are user-level, not project-scoped. **Verify:** ```bash ls -la /nvmetank1/projects/<p>/AGENTS.md /nvmetank1/projects/<p>/CLAUDE.md /nvmetank1/projects/<p>/GEMINI.md # AGENTS.md must be a regular file; CLAUDE.md + GEMINI.md must be symlinks β AGENTS.md ``` Related: [[reference_memory_context_pack]] (auto-injection of memory + rag-bus).