---
name: correct-by-replacement-not-annotation
description: "Appending a correction after a false claim leaves the false claim readable first — replace the wrong sentence, don't annotate it; and sweep the whole registry for the pasted class, not just the flagged instance."
metadata: 
  node_type: memory
  type: feedback
  originSessionId: f6c93d11-34a3-4995-b1dd-a923f4947c6c
  modified: 2026-07-31T14:58:11.648Z
---

When a reviewer flags a stated claim as false (doyle's W4 gate, 2026-07-31: a
`traceable-reqs.toml` comment asserting `int ACTIVATED` while `required_stages`
omitted `int`), fix it by **replacing the false sentence**, not by appending a
correction after it. My first fix (@e2dd31d) left `int ACTIVATED milestone A W4
T11` standing and added `NO int STAGE HERE —` behind it, so the comment still
OPENED with the lie; a reader or grep hits the claim before the retraction.
@9f01863 replaced the sentence outright.

**Why:** a comment is read top-down and grepped by substring. A retraction only
works if nothing before it asserts the opposite. "Corrected" text that still
contains the original false claim fails the same audit that caught it.

**How to apply:**
- Rewrite the wrong sentence in place. State the true stage, that no evidence
  exists, and why the run in question does not supply it.
- Then **sweep for the pasted class**, not just the flagged instance. Doyle
  named one req; the same activation sentence had been pasted onto two more
  (`REQ-KNOCK-FLOOD`, `REQ-KNOCK-INBOX-DAEMON-OWNED`). Scan all blocks for
  "comment claims a stage its `required_stages` lacks" — negation-aware, and
  expect `UNACTIVATED` to match `ACTIVATED` as a substring artifact.
- When a claim IS genuine, activate rather than withdraw — but record the
  **limit** of the tier in the same edit (the ladder proved the stamp crossed
  the wire and bound the grant; it did NOT prove a forged knocker is refused,
  so that leg stays unit-tier). Doyle called limit-recording plus the
  class-sweep "the difference between fixing a finding and fixing the class."
- Mutation-prove a newly activated stage is load-bearing: mask the evidence
  tag → gate must exit 1 with the req at `[--]`; restore and re-verify.
  Careful: `git checkout -- <file>` restores to HEAD, which **discards
  uncommitted edits** in that file — my sha-verified restore caught exactly
  that and I had to re-apply the module-doc change.

Same family as [[single-source-discriminant-marker]] and
[[uniform-table-blindness-sweep]]. See [[w4-knocking-wave]] for the wave.
