os-adr: Repository owns the ADR file-name rule and Adr.slugify #934
Labels
No labels
P0
P1
P2
P3
bug
category/code-change
category/cross-repo
category/eval-run
category/investigation
category/no-test-target
category/owner-ruling
category/prose-artifact
category/recurring-chore
category/structure
category/umbrella
crc-refactor
create
delete
enhancement
filed-by/agent
filed-by/user
frozen
lint-rule
needs-info
needs-triage
next
plugin/cc-architect
plugin/os
plugin/os-adr
plugin/os-aidd-lint
plugin/os-backlog
plugin/os-context
plugin/os-doc-hygiene
plugin/os-sdlc
plugin/os-vault
project/cc-os
ready-for-agent
ready-for-human
recurring
review
rule-proposal
update
waiting
wayfinder:grilling
wayfinder:map
wayfinder:map
wayfinder:research
wayfinder:task
wayfinder:task
wontfix
worklist/deviations
worklist/lint-rule
worklist/new-implement-build
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
jared/cc-os#934
Loading…
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?
Problem
Adr.slugifystill lives on the namespace root in the loader file plugins/os-adr/lib/adr.rb, while the file-name rule"#{id}-#{Adr.slugify(title)}.md"lives inAdr::Repository#path_for(plugins/os-adr/lib/adr/repository.rb:96). The duplicate copy in the record creator is gone: plugins/os-adr/lib/adr/record/creation.rb:54 already calls@repository.path_for. What remains is the slug rule sitting in the loader file instead of with its only owner.Approach
Adr::Repository(plugins/os-adr/lib/adr/repository.rb) owns the slug rule.Required work:
Adr.slugifyout of plugins/os-adr/lib/adr.rb intoAdr::Repository, updating every caller (grep plugins/os-adr) — check: absentslugifyinplugins/os-adr/lib/adr.rbAcceptance criteria
Owner sketch
Non-goals
Changing the slug algorithm or file-name format.
Origin
VERDICT: CREATE. Recorded decision R17 (option A) provides provenance. The file-name rule exists in two copies, so this is real duplication that a ruling chose to fix. The Origin chain ends in a ruling, not an IMPROVISATION.
Note
Rewritten 2026-10-16 for the A15 domain-first layout (
9e416b0f); the creation.rb duplicate no longer exists.Body rewritten 2026-10-16 with current A15 paths: the duplicate file-name rule in record/creation.rb is already gone (it calls Repository#path_for); only Adr.slugify in plugins/os-adr/lib/adr.rb remains to move into Repository.