Project::RootSearch owns the not-found message #579
Labels
No labels
P0
P1
P2
P3
bug
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
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#579
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?
Summary
Batch 3 on project.rb, ticket 2 of 4. Capability: root-search failure message. Audit run 15:
.sdlc/tmp/responsibility-audit/run-15/analysis.yaml, finding 3.Project.raise_missing_root!(project.rb:38) describes the search bound as "the nearest repo/home boundary".Project::RootSearch#boundary?(root_search.rb:26) is the code that decides it. Two objects state one rule; only one can enforce it.Proposed owner (from the report, verbatim)
Keep the message text byte-identical to the current one at project.rb:36-40 so
tests/project_test.rb:32-48keep passing.Callers that delegate
Project.load(project.rb:22-23), throughProject::Yaml.containing, which gains a bang form orProject.loadcallsRootSearch.new(dir).root!.Tasks
Project::RootSearch#root!returns the root or raisesHarnessErrorwith the not-found message.Project.loadon a directory with no project.yaml raises throughRootSearch, same message as today.Acceptance criteria
.sdlc/project.yamlup to.git,Project::RootSearch.new(dir).root!raisesHarnessErrorwhose message contains the start dir andnearest repo/home boundary.Project.load(dir, target: nil)raisesHarnessErrorwith that same message.Structural follow-through
Project.raise_missing_root!(project.rb:35-41). Grep after:rg "raise_missing_root" plugins/os-sdlcreturns nothing.tests/project_test.rb:32,41,48(message assertions);tests/project/root_search_test.rbgains the raise case.ADR case
Amends ADR-0177 (RootSearch owns the walk and its failure text). Create the amending ADR when the ticket lands.
Order
Position 2 of 4. Follows ticket 1 (defects). Next: ticket 3 (Project::Setup).
Origin
.sdlc/tmp/responsibility-audit/run-15/analysis.yamlMap: #582
Work started via /os-sdlc:responsibility-refactor batch 3 (map #582). Branch: ticket-579, map poodr-ticket-implementation.yaml, target os-sdlc.
Resolution
Done: Project::RootSearch#root! owns the not-found message; Project.raise_missing_root! and Project::Yaml.containing deleted; Project.load goes RootSearch then Yaml.new(root). Structural follow-through was completed by the pipeline's refactor rounds.
Evidence: main
d2e3c3e, ADR-0184 (amends 0177), suite 1166 runs 0 failures, rubocop clean. Pipeline: 14 dispatches, 2 contract-auditor fail/refactorer rounds. Deviations: test-writer and programmer each relayed the previous node's dispatch id and the Runner answered await_completion; orchestrator ran the gate and hand-settled rows 135 and 137. One hand settlement was mis-sent to the already-closed row 134 (recorded as a second pass, no effect on routing).Follow-ups: none