🤖 doc: the seventeenth review, and the two rules it produced
**Grepping for a string is not reading a selector.** The callout tone was wrong three times, and the second attempt was the commit describing the fix for the first — its tests passed because the string it looked for does occur in the stylesheet, in the class selector beside the one that was needed. **The section you did not open is where the fix already was.** §8.1 was amended on a real observation and a wrong remedy while §13, three thousand lines down, already carried the right one. Committed in the course of repairing another instance of the same failure.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01H3VKtXnq6fSmM2F11Bjcsy
1 file changed,
+21
−2
AGENTS.md+21 −2
diff --git a/AGENTS.md b/AGENTS.md| index cb7b0f0..e713528 100644 |
| --- a/AGENTS.md |
| +++ b/AGENTS.md |
| @@ -195,7 +195,7 @@ so; it never renders as a confident zero. |
| Every spec and every branch is reviewed by a model that did not write it, |
| before it is approved or merged, and the reviewing model is recorded. |
| -**Sixteen passes so far, on two strands that ran in parallel and are |
| +**Seventeen passes so far, on two strands that ran in parallel and are |
| counted together here because they are one project.** Spec drafts 1–3 by |
| GPT Sol and Fable; draft 4 by Fable 5.1; draft 5 by a reviewer **whose |
| attribution is disputed** — it named itself as the model that wrote the |
| @@ -208,7 +208,8 @@ S1/S3 clients, §4.1's policy layer and §6.5's fan-out by Fable 5.1 |
| (2026-09-06): twenty-two mutations, eleven survived. The roster, the poll |
| loop and the warm-up by Fable 5.1 (2026-09-07): twelve mutations, seven |
| survived, and five of its ten probes found live defects rather than gate |
| -gaps. |
| +gaps. The breaker and the sources page by Fable 5.1 (2026-09-07): |
| +nineteen, thirteen survived, three live defects. |
| **Every one returned REQUEST CHANGES.** The most useful have been the ones |
| aimed at tests rather than prose. The provider review found a rule broken |
| @@ -247,6 +248,24 @@ It cannot catch a wrong assumption; it records one. The S3 route, gate |
| each had a test, each test agreed with the bug. What found them was |
| somebody who had read the module and the spec instead. |
| +**Grepping for a string is not reading a selector — or a route, or a |
| +constant.** The callout tone was got wrong three times: `rst-callout= |
| +"danger"`, then `[rst-callout] data-tone=`, and only then the |
| +`rst-tone` the stylesheet actually pairs with the attribute spelling. |
| +The second attempt was the commit that described fixing the first, and |
| +its tests passed because `data-tone="negative"` *is* in the stylesheet — |
| +inside the class selector standing next to the one needed. A check that |
| +greps will confirm any spelling that appears anywhere in the file. Read |
| +the selector, the route declaration, the constant. |
| + |
| +**The section you did not open is where the fix already was.** §8.1's |
| +breaker clause was amended here on a real observation and a wrong |
| +remedy; §13 already carried the correct one, three thousand lines down, |
| +and it was not opened. The amendment was made in the course of fixing |
| +another instance of exactly this. **Before amending a section, grep the |
| +spec for what it governs** — the open-items list is where the last |
| +person left the answer. |
| + |
| **A gate over source text proves a call is spelled, never that it is |
| reached.** The `cmd/` wiring gate walks the AST for a call expression, and |
| a reviewer defeated it twice in ordinary Go: `app.UseAuth(a)` inside a |