oficina / memoria Public

🤖 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
Paul Campbell pushed by paul@keymail.dev 570ce62bf47b467843ce6fd377c0e74e226f0f19 parent 297514b
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