Development record
Extend 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.
Extend 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.
Frontmatter
| id | iss-51 |
|---|---|
| type | issue |
| lifecycle | resolved |
| severity | minor |
.abcd/work/issues/resolved/iss-51-context-scoped-successor-bans.md
open on GitHub ↗ · commit history ↗
mentions1
- 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.