Skip to content

MR-12 — The CLAUDE.md is the projection, not the source

CLAUDE.md is what a fresh agent reads first. It is a projection of content from docs/north-star/, MILESTONES.md, and the spec. It does not introduce content not grounded elsewhere.

When something in CLAUDE.md would otherwise be the source of truth, move it to its proper home (docs/spec/ for requirements, docs/north-star/ for intent, MILESTONES.md for sequencing) and have CLAUDE.md reference it.

The bootstrap-agent’s self-audit checks this. The drift-watcher re-checks it on drift.suspected.


  • At commit time: the .github/workflows/docs-invariants.yml CI job validates the rank-graph DAG, ISO date formats, the AGENTS.xml schema, and milestone-ID cross-references.
  • By subagents: every subagent’s <refusal_conditions> enumerates which MR it would violate by proceeding.
  • By the orchestrator: the prompts in prompts/ reference MRs by number. When you paste prompts/02-phase-close.md, the agent loads MR-2 and MR-10.
  • By you, the human: when something feels off, scan this file. The rule that’s being broken is almost always one of these twelve.

These rules are meta — changing one is a bigger deal than changing a project invariant. To change one:

  1. Open a decision doc (docs/decisions/YYYY-MM-DD-meta-rule-change-<slug>.md).
  2. State the rule being changed, the proposed new wording, the trigger (what surfaced this), and the implications for in-flight work.
  3. Get explicit human approval (no agent self-modification of meta-rules).
  4. Update this file. Update any referencing prompts. Update the CI job if the change is mechanically enforceable.
  5. Bump the meta-rules version in this file’s header.

Meta-rules version: 1.0 (initial).


Return to the meta-rules index.