Skip to content

Commit 43f2223

Browse files
lesnik512claude
andauthored
docs: add agent-facing architecture/ promotion reminder (Finding 3) (#237)
Resolves evaluation Finding 3 with an agent-facing note in CLAUDE.md's ## Architecture intro, not a CI gate. A behavior change must promote to the matching architecture/<capability>.md in the same PR. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 4692035 commit 43f2223

2 files changed

Lines changed: 55 additions & 1 deletion

File tree

CLAUDE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ uv run pytest
3232

3333
## Architecture
3434

35-
> Quick orientation. The authoritative, code-current account of each capability lives in [`architecture/`](architecture/).
35+
> Quick orientation. The authoritative, code-current account of each capability lives in [`architecture/`](architecture/). **When a change alters a capability's behavior, update the matching `architecture/<capability>.md` in the same PR** — that promotion is what keeps `architecture/` true; code that changes without it silently rots the truth home.
3636
3737
### Scope hierarchy
3838

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
---
2+
date: 2026-06-25
3+
slug: architecture-promotion-reminder
4+
summary: Add an agent-facing note in CLAUDE.md reminding that a behavior change must promote to the matching architecture/<capability>.md in the same PR.
5+
outcome: Added a one-line promotion imperative to CLAUDE.md's `## Architecture` intro, resolving evaluation Finding 3 with an agent-facing reminder rather than a CI gate.
6+
---
7+
8+
# Change: Agent-facing architecture/ promotion reminder
9+
10+
**Lane:** lightweight — one file (`CLAUDE.md`), a few lines, no code, no test.
11+
12+
## Goal
13+
14+
Close the last unenforced step of the planning convention: the `architecture/`
15+
promotion. The whole convention hinges on hand-editing the affected
16+
`architecture/<capability>.md` in the implementing PR, and it is the easiest step
17+
to forget. This is evaluation **Finding 3**.
18+
19+
We deliberately reject the heavier options (a git-diff heuristic that warns/blocks
20+
when `modern_di/` changes without an `architecture/` change, with an escape
21+
hatch). That heuristic is inherently fuzzy — most code changes (bugfixes,
22+
refactors, perf) legitimately touch no capability contract — so it would produce
23+
frequent false positives and train cargo-cult acknowledgments, exactly the
24+
ceremony this convention has been shedding. A reminder at the point an agent
25+
reads the code is enough.
26+
27+
## Approach
28+
29+
Add a single agent-facing imperative to `CLAUDE.md`'s `## Architecture` intro
30+
blockquote — the spot an agent consults to orient on a capability *before*
31+
changing its behavior. It names the action and the *why*. `architecture/README.md`'s
32+
"Promotion rule" stays the canonical statement for the truth-home audience; the
33+
CLAUDE.md line is a deliberate one-line echo aimed at agents (who reliably load
34+
`CLAUDE.md` but rarely open `architecture/README.md`).
35+
36+
New blockquote text:
37+
38+
> Quick orientation. The authoritative, code-current account of each capability
39+
> lives in [`architecture/`](architecture/). **When a change alters a
40+
> capability's behavior, update the matching `architecture/<capability>.md` in
41+
> the same PR** — that promotion is what keeps `architecture/` true; code that
42+
> changes without it silently rots the truth home.
43+
44+
## Files
45+
46+
- `CLAUDE.md` — extend the `## Architecture` intro blockquote with the promotion
47+
imperative.
48+
49+
## Verification
50+
51+
- [ ] Apply the edit to `CLAUDE.md`.
52+
- [ ] `just check-planning``planning: OK` (this bundle's frontmatter is valid).
53+
- [ ] `just lint-ci` — clean.
54+
- [ ] `just docs-build` — succeeds (`CLAUDE.md` is outside the docs build; confirms no collateral breakage).

0 commit comments

Comments
 (0)