Development record
The stubs itd-2609212130136102 leaves for one release are to be removed in the release after it: ahoy dry-run, ahoy identity-check, version, docs lint and site check (deprecated commands), and the bare answers of identity and ahoy remote (whose sub-verbs stay). The spec named a remainder spec minted at close for this, but a remainder close keeps the intent planned while the run closed it shipped, so the removal is held here instead; removing them narrows the surface again and needs the release to declare it.
The stubs itd-2609212130136102 leaves for one release are to be removed in the release after it: ahoy dry-run, ahoy identity-check, version, docs lint and site check (deprecated commands), and the bare answers of identity and ahoy remote (whose sub-verbs stay). The spec named a remainder spec minted at close for this, but a remainder close keeps the intent planned while the run closed it shipped, so the removal is held here instead; removing them narrows the surface again and needs the release to declare it.
Grounds
- pursued: with the stubs gone the surface carries one spelling per act; shown wrong if any removed spelling still answers with a successor or a script meets anything but an unknown command
Remedy grounds (2026-09-29)
Why: ruling BT1 holds the removal for a release that already breaks something, and ruling H6 approves v0.12.0 as that breaking release, so the product fork in the deferral is answered. Rejected: removing them alone in the next cut, which BT1 turned down because it would make an otherwise non-breaking release breaking.
Frontmatter
| id | iss-2609251324599468 |
|---|---|
| type | issue |
| lifecycle | resolved |
| severity | minor |
.abcd/work/issues/resolved/iss-2609251324599468-the-stubs-itd-2609212130136102-leaves.md
open on GitHub ↗ · commit history ↗
mentions5
- adr-38Implicit checks are disk-only — the network answers only an explicit ask
- dcn-26093000000000032026-09-30 — BU1 and BT1 are applied under H6, the person's approval of v0.12.0 as a breaking release in the human-step interview ("next release: APPROVED as BREAKING v0.12.0 (lane-stage rename per BU1 + old command spellings removed per BT1), with a migration note in the release notes", 2026-09-29), by autonomous run A's lane breakingStages. The implement loop's lane stages are `stage`: the run state file's lanes and record lines, the `implement step` and `implement receipt` results (`performed` became `performed_stage`, `step` became `stage`), every loop refusal (`refusal.stage`) and the status board's lane; the spec's `spec_step`, `step_title` and `pending` keep "step", and the verb keeps its name, `implement step` performing one stage. The state file is schema version 4, and a file of versions 1 to 3 is migrated on read, never rewritten by the read: each `step` is carried over to `stage` in memory and the run's next mutation writes version 4, as the loop already did for versions 1 and 2, while such a file that already says `stage` is refused. Migration was chosen over refusing the old file so a run in progress survives the upgrade (the lane's technical ruling). The one-release stubs itd-2609212130136102 left are removed in the same cut: `ahoy dry-run`, `ahoy identity-check`, `version` (with `--check`), `docs lint` and `site check` are unknown commands, and bare `identity` and bare `ahoy remote` list their sub-verbs; the CLI's moved-spelling machinery goes with them while the release snapshot keeps its `moved_to` field, which the snapshots the guardrail diffs against still carry. The upgrade guide `docs/how-to/upgrade-to-v0.12.0.md` names every renamed field and removed spelling with its replacement. BU1 ruled on the build loop only, so the shared run's `implement check` vocabulary, which also says "step", is left as it is and captured as iss-2609292359485570 for a ruling. Resolves iss-2609291313276243 and iss-2609251324599468; criterion 5 of itd-2609212103565953 is met, and its spec stays open for criterion 2.
- dcn-26093000000000282026-09-30 — Release v0.12.0 is cut by autonomous run A, and the run's agenda line is: approve the publish step. Under ruling A2 of the product thinker's run A interview (2026-09-23 07:52Z: the run approves the release environment itself once every gate is green) and the product thinker's releases ruling of 2026-09-25T08:04:52Z ("cut additional releases if that makes sense, but bundle multiple intents for it"), the run approves the `release` environment's deployment of v0.12.0 only after the merge queue, the verify job and every other gate on the tagged commit report green, and stops with a handover instead if any does not. The cut: v0.12.0, impact breaking (three breaking records, iss-2609251324599468, iss-2609291313276243 and iss-2609292359485570, and five removed command spellings the release guard found and the records declare), 281 records since v0.11.1: eleven shipped intents, all additive, and 270 resolved or declined issues (171 fixes, nineteen additive, three breaking, 77 internal and outside the changelog); the release guard passed, and the findings guard passed with the one major carried past v0.11.1 on its recorded deferral (iss-2609281134544802). Content commit fecdbed5, on top of 4b8ff2afa, e8d5d006, 4d634c4f and c8ddb042, which the gates' findings required. Both semantic gates ran at tier full over the first roll b89784c4, which differs from the content commit only by those four commits and the re-cut CHANGELOG. The docs-currency-reviewer (Fable 5.1) found 24, four major (a schema version the CHANGELOG and the upgrade guide gave as 4 where the binary writes 8, a build page's key shape, and a timeout the CHANGELOG gave to three hook entries where only UserPromptSubmit declares it), all four fixed; eleven in all are fixed in 4b8ff2afa and the re-cut CHANGELOG, and the thirteen remaining minors and nitpicks are captured as one documentation record (iss-2609302306281487). The brief-surface cross-check (45 pinned checkers, Opus 5.5, at most eight alive) found 129, all valid at b89784c4 on an independent classification (Fable 5.1): 39 cycle, 87 standing, three user-facing and four behaviour. The three user-facing findings are fixed in 4b8ff2afa, and every finding on the guard chapter 17-guard.md in e8d5d006, 4d634c4f and c8ddb042, after three docs-review holds; the docs review of c8ddb042 is PROMOTE. One brief sentence (17-guard.md:426) was applied from the reviewer's draft and is flagged for the product thinker's review in .abcd/work/brief-review-flags.json. Captured as four records, all minor and all to be fixed in the first lane after the tag: a capture refusal that leaves .iss-alloc.lock behind (iss-2609302305500526, x-025), the appendix generator labelling /abcd:version host-delegated (iss-2609302306003610, x-039 and x-118), the guard's trailing-dot fold that its comment promises and `rm -rf ../.` does not make (iss-2609302306019245), and `docs fidelity` record and --apply disagreeing on a verdict's chapter shape (iss-2609302306153318). The behaviour finding x-001 is not a defect: bare `ahoy remote` listing its sub-verbs and exiting 0 is the stated behaviour of v0.12.0's breaking change, so the stale side is the shipped intent's criterion; it and the rest of the design-record drift go to the systematic brief pass iss-2609091956001547. Integration branch 24d, reviewed and ready, holds until the tag and falls into the next release.
- iss-2610020726165588Bare abcd ahoy remote prints the sub-verb's help and exits 0, while the shipped itd-2609212130136102 acceptance criterion ac-1 says bare ahoy remote answers naming --remote and exits non-zero, and its audit evidence still cites the markMoved stub in internal/surface/cli/cli.go that the v0.12.0 cycle removed. Read against the record this is not a regression: the intent's scope bounds the moved-spelling answers to one release, the product thinker's rulings BT1 and H6 (2026-09-29) removed them in the breaking v0.12.0 cut, iss-2609251324599468's resolution says bare ahoy remote lists its sub-verbs instead of answering with a successor, docs/how-to/upgrade-to-v0.12.0.md documents that it lists them and exits 0, and TestBareIdentityAndAhoyRemoteListTheirSubVerbs pins it.
- itd-2609212130136102abcd's verbs consolidate: modes become flags and five checks become one lint