Development record
Two-layer verification lesson from the iss-36 sweep: 73 mechanical fixers + per-file grep-verify reported 100% clean, yet a 4-segment judgement review found ~30 real truth defects (invented homes for unmigrated material, false present-tense capability claims). For the run seam (itd-29/Phase 5) and any future corpus sweep: grep-verify proves pattern absence, never truth; a sweep is done only after a judgement review layer passes. Also: fix agents given precise per-finding instructions applied 100% cleanly — precision of the fix list, not agent capability, was the quality lever.
issueopenminoriss-59
Two-layer verification lesson from the iss-36 sweep: 73 mechanical fixers + per-file grep-verify reported 100% clean, yet a 4-segment judgement review found ~30 real truth defects (invented homes for unmigrated material, false present-tense capability claims). For the run seam (itd-29/Phase 5) and any future corpus sweep: grep-verify proves pattern absence, never truth; a sweep is done only after a judgement review layer passes. Also: fix agents given precise per-finding instructions applied 100% cleanly — precision of the fix list, not agent capability, was the quality lever.
Remedy grounds (2026-09-29)
- itd-29, the run-seam home the record names, is superseded by the planned itd-2609201916151817, so the gate option lands there; the implement log already records a review event a land check can read.
- No outside-practice check: the lesson is this repository's own measured sweep (73 fixers, about 30 truth defects).
- Rejected: a stricter grep, which proves absence more thoroughly and truth no better.
Frontmatter
| id | iss-59 |
|---|---|
| type | issue |
| lifecycle | open |
| severity | minor |
.abcd/work/issues/open/iss-59-two-layer-verify-lesson.md
open on GitHub ↗ · commit history ↗
mentions4
- iss-36retired-name banlist population: roughly fifty stale references to retired locations and identifiers survive in the record, and the drift outlived a dedicated same-day consistency pass — development/activity (38 refs in the brief), .work/issues and bare .work/ as a root path (11 refs), scripts/abcd/, .abcd/logbook, .flow/, .github/workflows/lint.yml and lint-corpus.yml, --since-staged, and the python-lint-names pattern narrowly missing bare intent_lint (used by intents/README.md and adr-34). Detector (per retire-the-name and fix-the-detector): add each retired spelling to record-lint banned_tokens with allow_context for genuinely historical passages, widen the intent_lint pattern, then drain the references BEHIND the armed bans — never ahead of them. Acceptance corpus: the reference counts above; the bans are proven when they flag all ~50 on first run and the count ratchets to zero.
- iss-2608301747006182no gate requires a terminal folder record to carry a grounds entry so fourteen resolved records have none
- itd-29Domain Experts Run A Spec Autonomously And Recover From Anything Without Touching Git
- itd-2609201916151817One verb takes a READY intent to delivered, and refuses while a decision is open