Development record
2026-10-31 — The product thinker ruled on 2026-10-31, answering the question dcn-2610311251002713 sent back on iss-2610311224444576, that work on an issue or an intent is reserved only by a build or a drain: a fix that would be done by hand starts through abcd build instead, which holds an issue's found_at (an intent's, its spec's footprint) and, once iss-2610311224444576 builds it, widens an issue lane's hold file by file before each further edit, backing off a live hold another copy has there. The hand reservation of an issue or an intent is removed, but only after that widening ships, so a fix that edits beyond its found_at is never left with no way to hold the file (iss-2610311539091723); a release's reservation, and releasing a hold, stay. Accepted costs: an issue needs a found_at and an intent a READY spec before any work starts, a small fix runs the whole loop, and someone working outside abcd has no way left to mark work as taken. Rejected: keeping hand reservations, since one wide hold stalled nine of thirteen chosen builds on 2026-10-31.
2026-10-31 — The product thinker ruled on 2026-10-31, answering the question dcn-2610311251002713 sent back on iss-2610311224444576, that work on an issue or an intent is reserved only by a build or a drain: a fix that would be done by hand starts through abcd build instead, which holds an issue's found_at (an intent's, its spec's footprint) and, once iss-2610311224444576 builds it, widens an issue lane's hold file by file before each further edit, backing off a live hold another copy has there. The hand reservation of an issue or an intent is removed, but only after that widening ships, so a fix that edits beyond its found_at is never left with no way to hold the file (iss-2610311539091723); a release's reservation, and releasing a hold, stay. Accepted costs: an issue needs a found_at and an intent a READY spec before any work starts, a small fix runs the whole loop, and someone working outside abcd has no way left to mark work as taken. Rejected: keeping hand reservations, since one wide hold stalled nine of thirteen chosen builds on 2026-10-31.
Frontmatter
| id | dcn-2610311539024848 |
|---|---|
| type | decision |
| date | 2026-10-31 |
.abcd/work/decisions/dcn-2610311539024848-the-product-thinker-ruled-on-2026-10-31.md
open on GitHub ↗ · commit history ↗
mentions4
- dcn-26103112510027132026-10-31 — The product thinker ruled on 2026-10-31, on iss-2610311224444576, that an issue's reservation is narrowed at the source: reserving an issue lane holds its found_at and the paths its fix changes, and a reservation made by hand keeps the footprint it names. The technical facilitator settled one point after the review pair read the ruling: the lane widens its hold before it edits a further path and backs off a live hold another copy has there, because widening after the edit would find the clash only once the work is done. Found after the ruling: `abcd build <iss-N>` and the drain already reserve an issue's found_at alone but do not yet widen to the further paths a fix edits, and the 35-path hold iss-2610311224444576 records carries no run stage, so it was made by hand; this ruling does not reach it, and how a hand reservation wider than its record is treated goes back to the product thinker. Rejected: flagging an over-wide hold while leaving it in force, since builds stay blocked; and lapsing a hold with no run stage sooner, since a paused holder would lose its cover.
- iss-2610231004012419abcd reserve cannot widen a live reservation from another copy of the same person on the same machine. A second worktree that reserves the same id with more footprint paths is refused as if the hold sat on another computer (internal/core/claim/remote.go:403, 'you are already building it on another computer; pass --take-over'), and a take-over moves the hold, which can disturb the run that owns it. Two sessions hit this on 2026-10-23 in the hand-rolled coordination log: abcd-54 at 10:04 could not add the worktree store's step 3 and 4 files to its live itd-2609091014076309 hold from a second copy, and borrowed an unrelated open record's reservation to announce them; abcd-f1 at 10:26 and 10:41 had its own hold read from a sibling worktree as another computer, and added the paths from the reserving worktree instead. Related: iss-2610161457209287 (holds do not say which of a person's copies has them).
- iss-2610311224444576On 2026-10-31 nine of thirteen intent builds the product thinker chose were refused at the reservation check by one hold: iss-2610252214522207, whose found_at is the single file internal/core/surface/examples.go, holds a live reservation on origin until 2026-10-31T18:42:23Z whose footprint names dozens of paths (brief chapters 01-product, 02-constraints and 04-surfaces, commands/*.md among them) and which carries no run stage, unlike the build lanes beside it. A hold many times wider than its record's own scope, kept for hours with no lane showing progress, starves every autonomous build that touches the brief or the command pages, and nothing flags it: abcd peers lists it like any other live hold.
- iss-2610311539091723abcd reserve still accepts an issue or an intent with a hand-named footprint of any width, though dcn-2610311539024848 rules that only a build or a drain reserves such a record; one hand hold of about 35 paths on 2026-10-31, for an issue whose found_at was one file, stalled nine of thirteen chosen builds for hours. The command pages, AGENTS.md's concurrent-sessions rule and every lane brief still tell a session to reserve each path by hand.