Development record
retired-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.
retired-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.
Frontmatter
| id | iss-36 |
|---|---|
| type | issue |
| lifecycle | resolved |
| severity | critical |
.abcd/work/issues/resolved/iss-36-retired-name-banlist.md
open on GitHub ↗ · commit history ↗
Referenced by1
- iss-56iss-36 lists .abcd/logbook as a retired location, but the shipped binary writes there: memory lint reports go to .abcd/logbook/memory/ (internal/core/memory/lint.go) and the scanner skip-list references .abcd/logbook/pii-scan/. Adjudicate before any logbook ban is armed; the logbook token was deliberately left OUT of record-lint banned_tokens.blocks
mentions7
- adr-34Intent lifecycle and phase scheduling are orthogonal axes
- iss-51Extend the banlist so that every banned_tokens entry carries a successor mapping (old token to new token) and names the context in which the ban applies, with allow-contexts kept narrow and enumerable. The convention serves vocabulary hygiene without collateral damage: a term retired in one context may legitimately persist in another, and global bans over polysemous terms are false-positive generators that train people to ignore the lint. This extends the iss-36 banlist work. Detector: the record-lint banlist schema rejects entries lacking a successor or a named context, and acceptance is a lint run where every ban fires only inside its declared context and each hit reports the successor to use.
- iss-59Two-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.
- iss-73Relocate memory-lint logbook output and scanner skip-paths from .abcd/logbook/ (a retired location per iss-36) to .abcd/.work.local/logs/, the gitignored runtime-artefact tier. Maintainer adjudication of iss-56 (2026-07-12): runtime artefacts belong in .work.local/logs/, not a tracked dir. Sites: internal/core/memory/lint.go writes .abcd/logbook/memory/lint dirs; internal/adapter/scanner/scanner.go defaultSkipFragments references .abcd/logbook/pii-scan/ and audit-history/. Fix both plus tests; once the binary no longer writes there the .abcd/logbook retired-location ban (iss-36/iss-56) can be armed. Actionable fix behind iss-56 adjudication.
- iss-74Duplicate iss-56 id: two open issues share id iss-56 — iss-56-iss-36-lists-abcd-logbook-as-a-retired.md and iss-56-managed-pre-commit-gates.md. The allocator scans max N across open/resolved/wontfix under flock+O_EXCL, so a collision implies a manual add that bypassed it or an allocator gap. Ledger-integrity bug: derived priority, blocked_by edges, and resolve/wontfix by id are all ambiguous while two files answer to iss-56. Detector (per unrecognized-input-never-writes / ledger integrity): a capture/record-lint check that ids are unique across the three status dirs; acceptance corpus = the two iss-56 files. Fix: renumber the later-created one to the next free id and repoint any inbound blocked_by.
- iss-317development README conventions sentence says issues graduate rather than a ledger contradicting accepted adr-32 and the live work-tier ledger
- iss-332.abcd/development/README.md conventions line says issues graduate into intents/ or principles/ rather than a ledger, but the repo runs on a committed issue ledger at .abcd/work/issues/ (adr-32); the map of the durable record denies the store it governs, in the file iss-42 ruled must be current