A team of nine engineers uses Claude Code on one repository. Three conventions apply to every task in that repository: the test command, a rule that database migrations are written by hand rather than generated, and the branch naming scheme. Engineers currently restate these at the start of each session, and a review of a month of work found four merged changes that ignored the migration rule because someone forgot to restate it. The team requires that the conventions apply to every session on the repository without anyone typing them. Where should the conventions be recorded?
- AIn a per-session opening message that each engineer keeps in a shared snippet file and pastes at the start of every Claude Code session on the repository.
- BIn a CLAUDE.md file committed at the root of the repository, so the conventions are loaded as project context for every session and are reviewed like any other change. Correct
- CIn the settings.json for the project, adding the conventions as configuration values that Claude Code reads before each request is sent to the model.
- DIn the repository README under a heading for Claude Code, relying on the assistant reading the file at the point it first needs one of the three conventions.
Why A is wrong: Tempting because a shared snippet does make the wording consistent between engineers, but it still depends on a person remembering to paste it, which is precisely the omission the review measured.
Why B is correct: Correct because project context in CLAUDE.md is loaded automatically for work in that repository, removing the human step that failed, and it is version controlled so a change to a convention goes through review.
Why C is wrong: Tempting because settings.json is genuinely committed and reviewable, but it configures tool behaviour and permissions rather than carrying prose conventions, so the rules would not reach the model as context.
Why D is wrong: Tempting because the README is committed and readable, but nothing guarantees it is read on a given task, so the migration rule would still be missed on any session that never opens it.