adr: add rebuild to regenerate the README index from the records #508
Labels
No labels
breaking
bug
documentation
enhancement
epic
good first issue
help wanted
refactoring
resolution/duplicate
resolution/invalid
resolution/wontfix
security
severity/critical
severity/high
severity/low
severity/medium
status/abandoned
status/blocked
status/needs-decision
status/needs-info
status/needs-verification
testing
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Blocks
#496 Epic: adr tooling guides the author, not only fails
sixfold-space/madtea
Reference
sixfold-space/madtea#508
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What happens
adr newappends one index row when it creates a record. Nothing rebuilds the index after that. When a status changes, a record is renamed, or a merge drops a row, the author fixes the## Indextable inREADME.mdby hand.adr checkreports a missing row or a row with no record, but gives no command to fix it. A row whose status differs from its record is not reported at all.Design
docs/decisions/: number, title, status, and date.## Indextable inREADME.mdwith one row per record, sorted by number. Use the row formatadr newwrites today:| [0036](0036-slug.md) | Title | accepted | 2026-09-15 |. Leave the rest of the README unchanged.adr checkalso reports an index row whose status or title differs from its record.adr checkfinds any index drift, its message points atadr rebuild.madt_adr action=rebuild, same behaviour.Open design points
## Indextable: skip it, or create the table behind a flag.Prior art: ADG
rebuildregenerates its own index file.adr-loggenerates a decision log from MADR files.Acceptance
adr rebuildupdates that row andadr checkpasses.adr checkreports a status or title mismatch between a record and its index row.hexajon referenced this issue2026-09-15 22:18:10 +00:00
A live example on
maintoday: record 0035 saysstatus: "accepted", while its README index row still saysproposed.adr checkpasses, because it does not compare statuses. The new status-mismatch report, andadr rebuild, would catch and fix this.Decided:
adr rebuildrefuses a README with no## Indextable, and it refuses an index table with other columns. In both cases it says what to fix. It never adds a table, and it never keeps unknown columns.