id
gotchas/w7l-a-defect-out-of-scope-gets-renamed-every-wave
Concepts
scope-boundaryprocessduplicationaudit-trailcross-wave
Symptom
The same defect is reported by three different agents in three different waves, each with a different name and each believed to be a fresh discovery. Measured in this repo across waves 4, 5 and 6: docs/08's AMD coverage claim, the AMD cost gap, the tools/index.py bare-id emitter, and the stale MPT methodology note were each named more than once, always in a PR body or an agent's closing report, and always with the words 'outside my scope' attached. Nothing in the repo recorded that they were known. Each re-discovery cost a full re-derivation, and the reports grew while the corpus did not.
Root cause
A wave's report is not a durable artefact: it lands in a PR body or a session summary that no later agent reads, and the wave exits. 'Outside my scope' is the correct conclusion - it names a real boundary - but the finding is then DISCARDED rather than parked, because there is nowhere to park it. Each later wave re-measures from zero, and because each wave measures with different instruments, the re-discovery often disagrees with the original report, which produces a second failure: the ledger fills with contradictory figures for one defect. This repo produced both symptoms in one pass - four items re-discovered across three waves, and four of the numbers supplied to the ledger's own commissioning brief (10 unresolvable index citations, 10 unpriceable AMD rows, 18 nvidia-a100-sxm dangling refs) did not survive re-measurement (0, 13, 17).
Workaround
Park the finding in one standing file with a single owner and a retirement rule, and re-measure before reporting: (1) when you find a defect outside your write scope, it goes on the ledger rather than only in the report, with the exact scope boundary named ('X is outside tools/'); (2) before reporting any defect, grep the ledger - if it is listed and open, fix it or stay silent, do not re-report it; (3) every figure on the ledger carries its measurement date and the command that produced it, so a later wave can tell a changed number from a wrong one; (4) retire an entry in the SAME change that fixes the defect, and keep disproven entries rather than deleting them - a deleted false lead is re-investigated. An item whose fix cannot be phrased as a scope boundary is not a ledger entry; it is a gotcha record about the domain, or it has no owner.
notes
Recorded by the w7-scope-ledger agent, which was commissioned to write the ledger and therefore had to measure the four items three different agents had already reported. The ledger is docs/26-known-defects.md. The measured figures and the brief's figures disagree on three of four items, and that disagreement is the strongest argument for the rule: a re-discovery with different instruments produces a different number, and neither number is obviously the wrong one to someone reading only their own report. Severity is minor because nothing here is wrong in the corpus - it is pure duplicated audit cost - but it is measured rather than asserted: 3873 records, 0 errors, and four defects that four waves could name but none could park. The one genuinely load-bearing number in this entry is that the citation count in the ledger's own brief was wrong; a ledger that copies its input's figures without re-measuring inherits the error and then launders it across every later wave that trusts the file.