Rename Project#path to Project#root, a Pathname (coding map) #796
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#796
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
Project#pathis the repository root. A Target also has apath, soproject.pathandtarget.pathread as the same kind of thing. R5 renames it toroot.Reproduce
n/a: rename. Run on
maps/coding.yaml.Approach
Files: 11 lib files (tracker_resolver, diff_test_plan, issue_source, objection_intake, project_config_command, violation_recorder, brief/facts, gate/commands, snapshot, config, project.rb) and about 9 test files (
grep -rlE "project\.path\b|Project\.new\(" plugins/os-sdlc/tests).ADRs cited: ADR-0055 (root is derived, never stored; that stays true).
Required work:
Project#rootreturnsPathname. Callers that join strings useroot.joinorroot.to_s. — check:! grep -rnE "project\.path\b" plugins/os-sdlc/libruby plugins/os-sdlc/tests/all.rbRejected: a String root. The ruling says Pathname, and
root.joinremoves theFile.join(project.path, ...)repetition.Acceptance criteria
Owner sketch
Blocking edges
Blocked by: T7
Origin
pathWork started on branch ticket-796 via /os-sdlc:implement (session 854e0e91).
Resolution
Done: Project is Data(name, root, tracker, commit_on_complete, targets); Project#root is Project::Root, a Pathname subclass; Project#path gone; Snapshot, Config, Setup, and callers build or read root. Twelve callers pass root.to_s; Root carries to_str and String == so string callers keep working.
Evidence: implementation 61 via /os-sdlc:implement, 13 dispatches, one suite-check retry, contract-auditor pass; commit
140fba48on ticket-796; suite green at suite-check dispatch 637; ! grep project.path in libFollow-ups: Dropped by ticket-skeptic (root-vs-symptom): the to_str/== shim on Project::Root and the .to_s at call sites are a permitted variance of this ticket's own 'root.join or root.to_s' clause, recorded here, not ticketed. #803 (Facts#bound_target regression from #795, found while running this ticket) is filed and half fixed.