Development record
No 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.
No 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.
Further evidence 2026-10-26
- A records-only pull request conflicted with main on the forge twice in one day, each time only in these generated regions (the drafts list in the out-of-scope page and the ADR index), because another branch that filed a draft or an ADR merged first. Each conflict turned auto-merge off and needed a local merge, and the merge commit needed a fresh
make preflight, which on this machine waited three to five hours at the load gate. A union merge driver would not help: as the root.gitattributessays, the forge computes mergeability and the queue's merge without it. - So the cost of committing a generated list that every record-filing branch edits is a full preflight per collision, not a small rebase. A remedy that removes it: keep the regions out of the branch's diff. Either generate them on the merge queue's tree and check them there instead of committing them on each branch, or render the lists at read time from the folders and drop the committed regions.
Frontmatter
| id | iss-2610241256347199 |
|---|---|
| type | issue |
| lifecycle | open |
| severity | minor |
.abcd/work/issues/open/iss-2610241256347199-no-verb-that-adds-or-moves-a-record-in.md
open on GitHub ↗ · commit history ↗
mentions2
- iss-2610280107422462Every 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).
- itd-2610240933025076abcd plans unattended and asks only what a person owns