Development record
2026-10-28 — spc-2609202134338445 gains a file-level footprint for step 11 (--auto-plan), and step 3's no-host part becomes a new step 12 needing 3 and 11, as iss-2610230935429241's first remedy says, with step 3 marked landed at 45cdd1af7 for the runner-driven part it has delivered (facilitator-on-delegation). Grounds: the build refused the spec for having no footprint; criterion 9 (a configured runner starts the lane and the run record names it) is met by 6ce51f237 and its surface wiring 45cdd1af7; the no-host drive stays inside the intent, since decision 5 says the product thinker confirmed that reversal "for the opt-in path only", so narrowing it is theirs to rule and no agent decision may drop it; it is recorded in adr-2610222222326104, which AGENTS.md keeps unbuilt until itd-2610222215485265 ships, so step 12 waits on that intent with no marker yet (iss-2609260932372448 holds the marker's ruling); until it ships, a run ends when step 11 lands, the person releasing the reservation with abcd build --release, since the loop opens step 12's lane at once and an intent lane's hand-back does not release it. The footprint names step 11's files only, step 12's joining when it can start, and names files rather than the whole cli package because other builds hold that package's other files (iss-2610150512342464).
2026-10-28 — spc-2609202134338445 gains a file-level footprint for step 11 (--auto-plan), and step 3's no-host part becomes a new step 12 needing 3 and 11, as iss-2610230935429241's first remedy says, with step 3 marked landed at 45cdd1af7 for the runner-driven part it has delivered (facilitator-on-delegation). Grounds: the build refused the spec for having no footprint; criterion 9 (a configured runner starts the lane and the run record names it) is met by 6ce51f237 and its surface wiring 45cdd1af7; the no-host drive stays inside the intent, since decision 5 says the product thinker confirmed that reversal "for the opt-in path only", so narrowing it is theirs to rule and no agent decision may drop it; it is recorded in adr-2610222222326104, which AGENTS.md keeps unbuilt until itd-2610222215485265 ships, so step 12 waits on that intent with no marker yet (iss-2609260932372448 holds the marker's ruling); until it ships, a run ends when step 11 lands, the person releasing the reservation with abcd build --release, since the loop opens step 12's lane at once and an intent lane's hand-back does not release it. The footprint names step 11's files only, step 12's joining when it can start, and names files rather than the whole cli package because other builds hold that package's other files (iss-2610150512342464).
Frontmatter
| id | dcn-2610282336276963 |
|---|---|
| type | decision |
| date | 2026-10-28 |
.abcd/work/decisions/dcn-2610282336276963-spc-2609202134338445-gains-a-file-level.md
open on GitHub ↗ · commit history ↗
mentions6
- adr-2610222222326104abcd drives agents with no host session only on the person's own invocation, on the person's own account behind a wall, and hands back what it cannot finish
- iss-2609260932372448A spec step that waits on another intent has no marker, so the build loop opens a lane on it: spc-2609202134338445's step 3 (the process driver) waits on itd-2609201916056194, and `build` takes the first unlanded step and briefs a lane there, which can only report the dependency. A blocked:/after: marker would change the first-unlanded-step rule and the ready row's count, which is a product design point, not an implementer's; routed to the product thinker.
- iss-2610150512342464Reservation footprints are whole packages, so concurrent builds collide on hub packages even when they touch different files. A spec's footprint lists packages, and the reservation overlap check backs off any two holders whose packages intersect, including the same person's two worktrees (product-thinker ruling 2026-10-15: that serialisation stays). Ten of the thirteen open specs that declare a footprint list internal/surface/cli, the package every verb's command lives in, so in practice nearly every pair of concurrent builds runs one at a time even when one adds a new file there and the other edits a different one. Naming files instead of packages would keep the protection while letting non-overlapping builds run side by side; the cost is that every spec must name its files exactly, and a file it forgets is unprotected unless something checks the landed diff against the footprint.
- iss-2610230935429241spc-2609202134338445 step 3 (the process driver) is unlanded and its remaining part waits on the ADR that step 11 (--auto-plan) mints, a later step. A needs line can name only earlier steps, so the build loop can open step 3 before step 11 has minted the ADR it waits on. Its other later dependency, step 7's receipt verifier, is already landed. Found while declaring the open specs' needs lines, 2026-10-23.
- itd-2610222215485265abcd drain --drive works through the ledger from a plain terminal
- spc-2609202134338445one-verb-takes-a-single-intent-from-ready-to-delivered-witho