Preserve whole object: Location for column+line+path #1199
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#1199
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
column+line+path (data_clump, score 8) spans 4 classes in concepts Daemon, Evidence.
OsSdlc::Daemon::Location(/home/jared/dev/cc-os/.claude/worktrees/crc-os-sdlc-run-3/plugins/os-sdlc/lib/os_sdlc/daemon/location.rb:7)OsSdlc::Daemon::OutlineNode(/home/jared/dev/cc-os/.claude/worktrees/crc-os-sdlc-run-3/plugins/os-sdlc/lib/os_sdlc/daemon/outline_node.rb:5)OsSdlc::Daemon::SymbolMatch(/home/jared/dev/cc-os/.claude/worktrees/crc-os-sdlc-run-3/plugins/os-sdlc/lib/os_sdlc/daemon/symbol_match.rb:5)OsSdlc::Evidence::Probe::Lsp::Lookup(/home/jared/dev/cc-os/.claude/worktrees/crc-os-sdlc-run-3/plugins/os-sdlc/lib/os_sdlc/evidence/probe/lsp/lookup.rb:8)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::Daemon::Location(built at plugins/os-sdlc/lib/os_sdlc/daemon/navigation.rb:72). Daemon::Location already owns path, line, and column, yet SymbolMatch and OutlineNode repeat the three fields and Lookup::Definition is a copy of Location; holding a Location removes this clump and also breaks kind+line+name+path, which then has only Evidence::Resolution left. The Sonnet choice of Project for name+root is wrong because name there is a symbol name and lsp-probe and evidence build no Project (the root comes from --root or the cwd).Required work:
OsSdlc::Daemon::SymbolMatchtakeslocation, kind, name, source— check: absentpath:inplugins/os-sdlc/lib/os_sdlc/daemon/symbol_match.rbOsSdlc::Daemon::SymbolMatchtakeslocation, kind, name, source— check: absentline:inplugins/os-sdlc/lib/os_sdlc/daemon/symbol_match.rbOsSdlc::Daemon::SymbolMatchtakeslocation, kind, name, source— check: absentcolumn:inplugins/os-sdlc/lib/os_sdlc/daemon/symbol_match.rbOsSdlc::Daemon::OutlineNodetakeslocation, name, kind, children— check: absentpath:inplugins/os-sdlc/lib/os_sdlc/daemon/outline_node.rbOsSdlc::Daemon::OutlineNodetakeslocation, name, kind, children— check: absentline:inplugins/os-sdlc/lib/os_sdlc/daemon/outline_node.rbOsSdlc::Daemon::OutlineNodetakeslocation, name, kind, children— check: absentcolumn:inplugins/os-sdlc/lib/os_sdlc/daemon/outline_node.rbOsSdlc::Evidence::Probe::Lsp::Lookuptakesmethod_name, root, runner, site— check: absentpath:inplugins/os-sdlc/lib/os_sdlc/evidence/probe/lsp/lookup.rbOsSdlc::Evidence::Probe::Lsp::Lookuptakesmethod_name, root, runner, site— check: absentline:inplugins/os-sdlc/lib/os_sdlc/evidence/probe/lsp/lookup.rbOsSdlc::Evidence::Probe::Lsp::Lookuptakesmethod_name, root, runner, site— check: absentcolumn:inplugins/os-sdlc/lib/os_sdlc/evidence/probe/lsp/lookup.rbOrchestrator work: re-measure with bin/collaborator-pass measure --runs docs/crc/os-sdlc/collaborator-runs, then stop-check.
Acceptance criteria
Owner sketch
Origin
plugins/os-sdlc/lib/os_sdlc/daemon/symbol_match.rb)VERDICT: CREATE
Work started on branch crc-os-sdlc-run-3 (collaborator-pass round 2, recipe daemon, poodr-ticket-implementation map).
Resolution
Done: OutlineNode and SymbolMatch hold a Daemon::Location; Lsp::Lookup::Definition removed in favor of Daemon::Location. Hand-finished after escalation 57: listing_test.rb built OutlineNode with the removed path/line/column keywords, and the programmer may not edit tests.
Evidence:
95098f55; suite 2256 runs 0 failures 58.1s; rubocop 9 files no offenses; delta-check ok (data_clump column+line+path 8 -> 0); design audit: no must-fix, 4 findings fixedFollow-ups: none