Development record
The shared run's bounds use 'step' for a third thing: abcd implement check <lane|release|review|audit|land> asks whether a session 'may take a step', its verdict carries the point under a JSON 'step' field (internal/core/implement/bounds.go, Step/StepLane/StepRelease/StepReview/StepAudit/StepLand), and commands/implement.md and brief 27-implement.md speak of 'the release step' and 'a step that is not a claim'. BU1 (2026-09-29) settled that in the build loop 'step' names a spec's piece and a lane's are stages; the check vocabulary, a point in a shared run where the second session's bounds are checked, was not in that ruling and still says step.
The shared run's bounds use 'step' for a third thing: abcd implement check <lane|release|review|audit|land> asks whether a session 'may take a step', its verdict carries the point under a JSON 'step' field (internal/core/implement/bounds.go, Step/StepLane/StepRelease/StepReview/StepAudit/StepLand), and commands/implement.md and brief 27-implement.md speak of 'the release step' and 'a step that is not a claim'. BU1 (2026-09-29) settled that in the build loop 'step' names a spec's piece and a lane's are stages; the check vocabulary, a point in a shared run where the second session's bounds are checked, was not in that ruling and still says step.
Grounds
- pursued: step names a spec's piece and nothing else anywhere in the run's vocabulary; shown wrong if implement check's JSON, log line, text or help still says step for what a session takes
Frontmatter
| id | iss-2609292359485570 |
|---|---|
| type | issue |
| lifecycle | resolved |
| severity | minor |
.abcd/work/issues/resolved/iss-2609292359485570-the-shared-run-s-bounds-use-step-for-a.md
open on GitHub ↗ · commit history ↗
mentions3
- 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-26093000000000072026-09-30 — The person's ruling CM1 of 2026-09-29 ("'step' in implement check: RENAME it to 'stage' too, in the same breaking v0.12.0"; kept verbatim in the local-tier file `.abcd/.work.local/scratch/reports/rulings-answered-2609-29-b.md` and restated here because that file is not committed) is applied by autonomous run A's integration lane integ24b1, answering iss-2609292359485570: `implement check` calls what a session asks about a stage, so its verdict's JSON field and its refusal line's field are `stage` (were `step`), its text says `may take the <stage> stage`, an operand outside lane, release, review, audit and land is refused as an unknown stage, and its help, sentence, command page and brief chapter say stage. The operands keep their spellings. The upgrade guide `docs/how-to/upgrade-to-v0.12.0.md` lists both renamed fields. The 'point' spelling the capture's remedy offered was not chosen: CM1 names 'stage'.
- 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.