Preserve whole object: Project for root+tracker #1202
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#1202
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
root+tracker (data_clump, score 12) spans 4 classes in concepts Dispatch, Implementation, Project.
OsSdlc::Dispatch::SubagentStart(/home/jared/dev/cc-os/.claude/worktrees/crc-os-sdlc-run-3/plugins/os-sdlc/lib/os_sdlc/dispatch/subagent_start.rb:10)OsSdlc::Implementation::Open(/home/jared/dev/cc-os/.claude/worktrees/crc-os-sdlc-run-3/plugins/os-sdlc/lib/os_sdlc/implementation/open.rb:10)OsSdlc::Implementation::RerouteIntake(/home/jared/dev/cc-os/.claude/worktrees/crc-os-sdlc-run-3/plugins/os-sdlc/lib/os_sdlc/implementation/reroute_intake.rb:8)OsSdlc::Project(/home/jared/dev/cc-os/.claude/worktrees/crc-os-sdlc-run-3/plugins/os-sdlc/lib/os_sdlc/project.rb:4)support 4; maximal
Approach
The clump's names are members of one object that already exists or is built upstream; pass the object. Object:
OsSdlc::Project(built at plugins/os-sdlc/lib/os_sdlc/project/config_command.rb:78). Open and RerouteIntake use root only as the project root, which OsSdlc::Project already holds, so they take the Project built at their entry and keep tracker as the injected Tracker adapter (Project#tracker is the config spec string, not the adapter, so the adapter cannot move into the Project). SubagentStart drops its tracker keyword, which no caller or test passes, and uses Tracker::Null as Dispatch::BriefLookup does.Required work:
OsSdlc::Implementation::Opentakesproject, work_order, tracker— check: absentroot:inplugins/os-sdlc/lib/os_sdlc/implementation/open.rbOsSdlc::Implementation::Opentakesproject, work_order, tracker— check: absenttracker:inplugins/os-sdlc/lib/os_sdlc/implementation/open.rbOsSdlc::Implementation::RerouteIntaketakesproject, implementation_id, tracker, report— check: absentroot:inplugins/os-sdlc/lib/os_sdlc/implementation/reroute_intake.rbOsSdlc::Implementation::RerouteIntaketakesproject, implementation_id, tracker, report— check: absenttracker:inplugins/os-sdlc/lib/os_sdlc/implementation/reroute_intake.rbOsSdlc::Dispatch::SubagentStarttakesroot, arrival— check: absentroot:inplugins/os-sdlc/lib/os_sdlc/dispatch/subagent_start.rbOsSdlc::Dispatch::SubagentStarttakesroot, arrival— check: absenttracker:inplugins/os-sdlc/lib/os_sdlc/dispatch/subagent_start.rbOrchestrator work: re-measure with bin/collaborator-pass measure --runs docs/crc/os-sdlc/collaborator-runs, then stop-check.
Rejected: build_once_at_entry — Open and RerouteIntake use root only as the project root, which OsSdlc::Project already holds, so they take the Project built at their entry and keep tracker as the injected Tracker adapter (Project#tracker is the config spec string, not the adapter, so the adapter cannot move into the Project). SubagentStart drops its tracker keyword, which no caller or test passes, and uses Tracker::Null as Dispatch::BriefLookup does.
Acceptance criteria
Owner sketch
Origin
plugins/os-sdlc/lib/os_sdlc/implementation/open.rb)VERDICT: CREATE
Work started on branch crc-os-sdlc-run-3 (persistent worktree, run 3 collaborator round).
Resolution
Done: Implementation::Open and RerouteIntake take an OsSdlc::Project built at Initiation and Rerouting through one builder (Project.resolve, with Project::Unconfigured when no config loads); the Tracker adapter stays injected; SubagentStart drops its unused tracker keyword. Hand-finished after escalation 59 (test defect: ~15 tests used the old signatures); one design audit (FIX: 2 blocking, 2 should-fix) answered.
Evidence:
a2ddc099; 2269 runs, 0 failures, 0 errors (44.9s); rubocop 36 files no offenses; delta-check ok: data_clump root+tracker 12->0. Note: the clump moved to project+tracker (0->12), and name_collision tracker went 0->4; the data_clump total stays 209.Follow-ups: The delta-check does not flag a clump that moves to a renamed subject (#1200, #1202). This goes into the run 3 close-out skeptic pass.