Development record
Reservation 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.
Reservation 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.
Frontmatter
| id | iss-2610150512342464 |
|---|---|
| type | issue |
| lifecycle | open |
| severity | minor |
.abcd/work/issues/open/iss-2610150512342464-footprints-name-files-not-packages.md
open on GitHub ↗ · commit history ↗
mentions1
- dcn-26102823362769632026-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).