Development record
Every records pull request that adds, plans or moves a draft intent rewrites the generated drafts index in .abcd/development/brief/06-delivery/03-out-of-scope.md, so two such pull requests open at once conflict as soon as the first merges: their insertions into the sorted one-per-line list land in neighbouring lines. On the night of 2026-10-27/28 it happened three times, #1131 against #1147, #1162, and lane E's rebase, and each was fixed by hand by merging the default branch, taking its side of the region and running go generate again. The forge applies no merge driver (iss-2609240646538011), and no verb regenerates the region when it files a record (iss-2610241256347199).
Every records pull request that adds, plans or moves a draft intent rewrites the generated drafts index in .abcd/development/brief/06-delivery/03-out-of-scope.md, so two such pull requests open at once conflict as soon as the first merges: their insertions into the sorted one-per-line list land in neighbouring lines. On the night of 2026-10-27/28 it happened three times, #1131 against #1147, #1162, and lane E's rebase, and each was fixed by hand by merging the default branch, taking its side of the region and running go generate again. The forge applies no merge driver (iss-2609240646538011), and no verb regenerates the region when it files a record (iss-2610241256347199).
Frontmatter
| id | iss-2610280107422462 |
|---|---|
| type | issue |
| lifecycle | resolved |
| severity | minor |
.abcd/work/issues/resolved/iss-2610280107422462-every-records-pull-request-that-adds.md
open on GitHub ↗ · commit history ↗
mentions3
- dcn-26102812211216062026-10-28 — iss-2610280107422462: the drafts bench is read from drafts/ and no longer committed as a generated region of the out-of-scope chapter, the remedy's first option. The second option, regenerating regions in the merge queue and letting the queue commit them, would put on main a commit no queue entry tested and needs a workflow change, so it is not taken. The commands list and the ADR index stay generated regions; they conflict the same way only when two pull requests each add a command or an ADR, which is rarer, and are left as they are.
- iss-2609240646538011The `merge=union` driver that .gitattributes gives `.abcd/work/DECISIONS.md` and `CHANGELOG.md` (the remedy iss-118 adopted) holds for a local merge only; the forge does not apply it. A pull request's mergeability and the merge queue's merge are computed on the forge, so two open pull requests that each append a DECISIONS.md entry conflict there as soon as one merges, while a local `git merge` of the same two is clean. In autonomous run A every records pull request went DIRTY whenever another records pull request merged first (#678, #679 and #681 on 2026-09-23), and each was recovered by a local merge in the lane's worktree, a push to the same branch behind a ten-to-twenty-minute pre-push preflight, and a re-armed auto-merge. Nothing tells an author that the union driver stops at the local clone. Wanted: the .gitattributes comment and the conventions that cite the driver say it holds locally only, and the remedy that needs no driver (one file per decision, as iss-2609100507439414 and iss-2608220150157511 propose) is weighed with this cost counted, since it removes the conflict on the forge as well.
- iss-2610241256347199No verb that adds or moves a record in an indexed directory regenerates the index that lists it. Only go generate ./internal/surface/cli (cmd/abcd-gen-surface, through lint.RegenerateIndexes) rewrites the generated regions, such as the drafts list in .abcd/development/brief/06-delivery/03-out-of-scope.md and the ADR index. So filing a draft intent, planning one out of drafts/, or minting an ADR with decide --adr leaves a region stale, and record-lint's index_drift blocker refuses the next make preflight. On 2026-10-24 a hand-filed draft (itd-2610240933025076) failed preflight this way. The region then conflicted on a rebase over main, because every branch that files a draft edits the same list.