Open and answer this issue on GitHub.
ready · opened 2026-10-28 · updated 2026-10-28 · 0 comments
ADR-decision-records-1 names a record ADR-<topic>-<n> (one to three lowercase words joined by -, a number per topic). New records use it from now on; on develop so far: ADR-decision-records-1, ADR-regex-1, ADR-specialization-1, ADR-catch-1. The 182 live numbered records (ADR-296) keep their numbers until a consolidation replaces them (D3): a record of the new scheme states their decisions in their current form, they move to docs/history/adr/, and every citation moves in the same change.
The owner questioned the numbers themselves (2026-10-28): a comment citing ADR-296 D7 can only be followed with the index open, and one counter for every session collides - the regex record written as ADR-382 on a branch found 382 taken on develop by another record. Topic names were chosen, lowercase rather than CamelCase because the default filesystems of macOS and Windows ignore case, at most three words. Facts counted on develop: about 17 000 citations (7 600 in crates/, of them about 1 250 in the compiler; 6 900 in docs/; 2 800 in tests, scripts, guide and CHANGELOG.md); seven expected test outputs contain an ADR number; a few strings the compiler emits carry one (emit/mod.rs, comptime_run.rs), so tools/lowered/ changes with them. Issue texts and comments on GitHub can be rewritten through the API; commit messages cannot (no history rewrite on develop/main), which is what the old→new table in docs/history/adr/README.md is for.
docs/history/adr/README.md layout: old → new, per decision where a record splits). Grouped so that one consolidation is one topic. The owner confirms the topics before step 3.scripts/adr-rename.nika, run with nikaia run) that applies a table: rewrites citations (ADR-296 D7, [ADR-296](adr-296.md) D7, adr-296.md links) in every file check-adr-refs.py searches, and lists what it changed. It uses std::regex’s run-time patterns (regex::dynamic, built in 0.0.1257, #673 step 1); what it misses there - positions are not built yet (ADR-374) - is a finding for #673, not a reason to scan by hand.check-adr-refs.py clean, lower-std re-run where a generated string changed, expected outputs updated.check-adr-refs (by then in Nikaia, ADR-decision-records-1 D5) drops the old scheme, and README.md loses its paragraph on it.