Collaborator pass pilot: crc command family takes Project plus Run #1086

Closed
opened 2026-10-17 15:24:21 +00:00 by jared · 4 comments
Owner

Problem

root+run_dir (data_clump, score 54) spans 9 classes in concepts CrcCensus, CrcJobs, CrcRecords, CrcRunPath, CrcSweep, CrcTickets.

  • OsSdlc::CrcCensus::Settings (/home/jared/dev/cc-os/plugins/os-sdlc/lib/os_sdlc/crc_census/settings.rb:7)
  • OsSdlc::CrcJobs (/home/jared/dev/cc-os/plugins/os-sdlc/lib/os_sdlc/crc_jobs.rb:7)
  • OsSdlc::CrcJobs::JobFiles (/home/jared/dev/cc-os/plugins/os-sdlc/lib/os_sdlc/crc_jobs/job_files.rb:10)
  • OsSdlc::CrcRecords (/home/jared/dev/cc-os/plugins/os-sdlc/lib/os_sdlc/crc_records.rb:7)
  • OsSdlc::CrcRecords::AdrCitations (/home/jared/dev/cc-os/plugins/os-sdlc/lib/os_sdlc/crc_records/adr_citations.rb:10)
  • OsSdlc::CrcRecords::RunFiles (/home/jared/dev/cc-os/plugins/os-sdlc/lib/os_sdlc/crc_records/run_files.rb:8)
  • OsSdlc::CrcRunPath (/home/jared/dev/cc-os/plugins/os-sdlc/lib/os_sdlc/crc_run_path.rb:7)
  • OsSdlc::CrcSweep::Settings (/home/jared/dev/cc-os/plugins/os-sdlc/lib/os_sdlc/crc_sweep/settings.rb:5)
  • OsSdlc::CrcTickets (/home/jared/dev/cc-os/plugins/os-sdlc/lib/os_sdlc/crc_tickets.rb:7)

support 9; maximal

  • plugins/os-sdlc/bin/crc-census born at plugins/os-sdlc/lib/os_sdlc/crc_census/command.rb:37 as run_dir
  • plugins/os-sdlc/bin/crc-jobs born at as
  • plugins/os-sdlc/bin/crc-records born at plugins/os-sdlc/lib/os_sdlc/crc_records/command.rb:33 as @options.root
  • plugins/os-sdlc/bin/crc-sweep born at plugins/os-sdlc/lib/os_sdlc/crc_sweep/command.rb:18 as cwd
  • plugins/os-sdlc/bin/crc-tickets born at as

copied:defs:16afa771 (copied_entry, score 36) spans 6 classes in concepts CrcCensus, CrcFile, CrcJobs, CrcRecords, CrcSweep, CrcTickets.

  • OsSdlc::CrcCensus::Command (/home/jared/dev/cc-os/plugins/os-sdlc/lib/os_sdlc/crc_census/command.rb:19)
  • OsSdlc::CrcFile::Command (/home/jared/dev/cc-os/plugins/os-sdlc/lib/os_sdlc/crc_file/command.rb:13)
  • OsSdlc::CrcJobs::Command (/home/jared/dev/cc-os/plugins/os-sdlc/lib/os_sdlc/crc_jobs/command.rb:13)
  • OsSdlc::CrcRecords::Command (/home/jared/dev/cc-os/plugins/os-sdlc/lib/os_sdlc/crc_records/command.rb:9)
  • OsSdlc::CrcSweep::Command (/home/jared/dev/cc-os/plugins/os-sdlc/lib/os_sdlc/crc_sweep/command.rb:14)
  • OsSdlc::CrcTickets::Command (/home/jared/dev/cc-os/plugins/os-sdlc/lib/os_sdlc/crc_tickets/command.rb:24)

IDENTICAL :defs mass 576; role controller

Approach

The clump's names are members of one object that already exists or is built upstream; pass the object. Object: OsSdlc::CrcRunPath (built at plugins/os-sdlc/lib/os_sdlc/crc_jobs/command.rb:30). The jobs, records, sweep, and tickets commands already build CrcRunPath and then unpack it into root and run_dir for every class below, so passing the built object (with readers for root, relative, and joined file paths added to CrcRunPath, and CrcCensus::Settings.for building it) takes the pair out of all eight non-object sites, including CrcJobs whose own initialize takes the pair despite the Result excerpt; only CrcRunPath keeps both names, support falls to 1, and the clump stops being a finding. build_once_at_entry describes the same pass-down but its premise, that sites rebuild the object, is false here, since the object is already built once at each entry and is only unpacked. The sweep parser sets root before run_dir; the parser order changes so run_path is built once.

The copied or misplaced behavior belongs to one owner; move it there, callers delegate. The honest fix needs no owner: the six identical self.run pass-throughs are deleted and each bin calls Command.new(ARGV, out:, err:, cwd:).run, as CollaboratorPass::Command does (lens A13: delete a pass-through).

Required work:

  1. OsSdlc::CrcCensus::Settings takes run_path, lib_root, test_root, loader, exclude, paths, test_root_given — check: absent root: in plugins/os-sdlc/lib/os_sdlc/crc_census/settings.rb
  2. OsSdlc::CrcCensus::Settings takes run_path, lib_root, test_root, loader, exclude, paths, test_root_given — check: absent run_dir: in plugins/os-sdlc/lib/os_sdlc/crc_census/settings.rb
  3. OsSdlc::CrcJobs takes run_path — check: absent root: in plugins/os-sdlc/lib/os_sdlc/crc_jobs.rb
  4. OsSdlc::CrcJobs takes run_path — check: absent run_dir: in plugins/os-sdlc/lib/os_sdlc/crc_jobs.rb
  5. OsSdlc::CrcJobs::JobFiles takes run_path — check: absent root: in plugins/os-sdlc/lib/os_sdlc/crc_jobs/job_files.rb
  6. OsSdlc::CrcJobs::JobFiles takes run_path — check: absent run_dir: in plugins/os-sdlc/lib/os_sdlc/crc_jobs/job_files.rb
  7. OsSdlc::CrcRecords takes run_path, resolver, write — check: absent root: in plugins/os-sdlc/lib/os_sdlc/crc_records.rb
  8. OsSdlc::CrcRecords takes run_path, resolver, write — check: absent run_dir: in plugins/os-sdlc/lib/os_sdlc/crc_records.rb
  9. OsSdlc::CrcRecords::AdrCitations takes run_path — check: absent root: in plugins/os-sdlc/lib/os_sdlc/crc_records/adr_citations.rb
  10. OsSdlc::CrcRecords::AdrCitations takes run_path — check: absent run_dir: in plugins/os-sdlc/lib/os_sdlc/crc_records/adr_citations.rb
  11. OsSdlc::CrcRecords::RunFiles takes run_path — check: absent root: in plugins/os-sdlc/lib/os_sdlc/crc_records/run_files.rb
  12. OsSdlc::CrcRecords::RunFiles takes run_path — check: absent run_dir: in plugins/os-sdlc/lib/os_sdlc/crc_records/run_files.rb
  13. OsSdlc::CrcSweep::Settings takes run_path, lib_root, write, excludes, histories, test_root — check: absent root: in plugins/os-sdlc/lib/os_sdlc/crc_sweep/settings.rb
  14. OsSdlc::CrcSweep::Settings takes run_path, lib_root, write, excludes, histories, test_root — check: absent run_dir: in plugins/os-sdlc/lib/os_sdlc/crc_sweep/settings.rb
  15. OsSdlc::CrcTickets takes run_path, options — check: absent root: in plugins/os-sdlc/lib/os_sdlc/crc_tickets.rb
  16. OsSdlc::CrcTickets takes run_path, options — check: absent run_dir: in plugins/os-sdlc/lib/os_sdlc/crc_tickets.rb
  17. OsSdlc::CrcCensus::Command takes argv, out, err, cwd — check: absent def self.run in plugins/os-sdlc/lib/os_sdlc/crc_census/command.rb
  18. OsSdlc::CrcFile::Command takes argv, out, err, cwd — check: absent def self.run in plugins/os-sdlc/lib/os_sdlc/crc_file/command.rb
  19. OsSdlc::CrcJobs::Command takes argv, out, err, cwd — check: absent def self.run in plugins/os-sdlc/lib/os_sdlc/crc_jobs/command.rb
  20. OsSdlc::CrcRecords::Command takes argv, out, err, cwd — check: absent def self.run in plugins/os-sdlc/lib/os_sdlc/crc_records/command.rb
  21. OsSdlc::CrcSweep::Command takes argv, out, err, cwd — check: absent def self.run in plugins/os-sdlc/lib/os_sdlc/crc_sweep/command.rb
  22. OsSdlc::CrcTickets::Command takes argv, out, err, cwd — check: absent def self.run in plugins/os-sdlc/lib/os_sdlc/crc_tickets/command.rb

Orchestrator work: re-measure with bin/collaborator-pass measure --runs docs/crc/os-sdlc/collaborator-runs, then stop-check.

Rejected: build_once_at_entry — The honest fix needs no owner: the six identical self.run pass-throughs are deleted and each bin calls Command.new(ARGV, out:, err:, cwd:).run, as CollaboratorPass::Command does (lens A13: delete a pass-through).

Acceptance criteria

  1. Given today's lib, when bin/collaborator-pass measure --sources params,inward,flay runs after the change, then the data_clump finding root+run_dir scores at most 0 (was 54) and none of root, run_dir appears in its names.
  2. Given today's lib, when bin/collaborator-pass measure --sources params,inward,flay runs after the change, then the copied_entry finding copied:defs:16afa771 scores at most 0 (was 36) and no copied definition remains in those classes.
  3. Given a run directory with a ledger and jobs files, when crc-jobs, crc-records, crc-sweep, and crc-tickets run, then their JSON output and exit codes are unchanged.
  4. Given a run directory and a lib root, when crc-census runs, then its report is unchanged.
  5. Given the touched classes and the four crc commands, when their tests run, then all pass.
  6. Given each crc-* bin script, when it runs with the same argv, then its output and exit code are unchanged.
  7. Given the six Command classes, when the test suite runs, then every Command test passes using Command.new(...).run.

Owner sketch

class OsSdlc::CrcRunPath
end

class OsSdlc::CrcCensus::Settings
  def initialize(run_path, lib_root, test_root, loader, exclude, paths, test_root_given)
  end
end

class OsSdlc::CrcJobs
  def initialize(run_path)
  end
end

class OsSdlc::CrcJobs::JobFiles
  def initialize(run_path)
  end
end

class OsSdlc::CrcRecords
  def initialize(run_path, resolver, write)
  end
end

class OsSdlc::CrcRecords::AdrCitations
  def initialize(run_path)
  end
end

class OsSdlc::CrcRecords::RunFiles
  def initialize(run_path)
  end
end

class OsSdlc::CrcSweep::Settings
  def initialize(run_path, lib_root, write, excludes, histories, test_root)
  end
end

class OsSdlc::CrcTickets
  def initialize(run_path, options)
  end
end

class OsSdlc::CrcCensus::Command
  def initialize(argv, out, err, cwd)
  end
end

class OsSdlc::CrcFile::Command
  def initialize(argv, out, err, cwd)
  end
end

class OsSdlc::CrcJobs::Command
  def initialize(argv, out, err, cwd)
  end
end

class OsSdlc::CrcRecords::Command
  def initialize(argv, out, err, cwd)
  end
end

class OsSdlc::CrcSweep::Command
  def initialize(argv, out, err, cwd)
  end
end

class OsSdlc::CrcTickets::Command
  def initialize(argv, out, err, cwd)
  end
end

Origin

  • Trigger: bin/collaborator-pass run 20261017T154808Z
  • Improvised this session: none
  • Chain: root+run_dir across 9 classes ← plugins/os-sdlc/lib/os_sdlc/crc_census/command.rb:37 ← DESIGN (plugins/os-sdlc/lib/os_sdlc/crc_census/settings.rb)
  • Root candidate: this ticket
  • Where: plugins/os-sdlc/lib/os_sdlc/crc_census/settings.rb
  • Session: f1eaf768-77b4-48c7-afde-b0344f519273
  • Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os/f1eaf768-77b4-48c7-afde-b0344f519273.jsonl
## Problem root+run_dir (data_clump, score 54) spans 9 classes in concepts CrcCensus, CrcJobs, CrcRecords, CrcRunPath, CrcSweep, CrcTickets. - `OsSdlc::CrcCensus::Settings` (`/home/jared/dev/cc-os/plugins/os-sdlc/lib/os_sdlc/crc_census/settings.rb:7`) - `OsSdlc::CrcJobs` (`/home/jared/dev/cc-os/plugins/os-sdlc/lib/os_sdlc/crc_jobs.rb:7`) - `OsSdlc::CrcJobs::JobFiles` (`/home/jared/dev/cc-os/plugins/os-sdlc/lib/os_sdlc/crc_jobs/job_files.rb:10`) - `OsSdlc::CrcRecords` (`/home/jared/dev/cc-os/plugins/os-sdlc/lib/os_sdlc/crc_records.rb:7`) - `OsSdlc::CrcRecords::AdrCitations` (`/home/jared/dev/cc-os/plugins/os-sdlc/lib/os_sdlc/crc_records/adr_citations.rb:10`) - `OsSdlc::CrcRecords::RunFiles` (`/home/jared/dev/cc-os/plugins/os-sdlc/lib/os_sdlc/crc_records/run_files.rb:8`) - `OsSdlc::CrcRunPath` (`/home/jared/dev/cc-os/plugins/os-sdlc/lib/os_sdlc/crc_run_path.rb:7`) - `OsSdlc::CrcSweep::Settings` (`/home/jared/dev/cc-os/plugins/os-sdlc/lib/os_sdlc/crc_sweep/settings.rb:5`) - `OsSdlc::CrcTickets` (`/home/jared/dev/cc-os/plugins/os-sdlc/lib/os_sdlc/crc_tickets.rb:7`) support 9; maximal - plugins/os-sdlc/bin/crc-census born at plugins/os-sdlc/lib/os_sdlc/crc_census/command.rb:37 as run_dir - plugins/os-sdlc/bin/crc-jobs born at as - plugins/os-sdlc/bin/crc-records born at plugins/os-sdlc/lib/os_sdlc/crc_records/command.rb:33 as @options.root - plugins/os-sdlc/bin/crc-sweep born at plugins/os-sdlc/lib/os_sdlc/crc_sweep/command.rb:18 as cwd - plugins/os-sdlc/bin/crc-tickets born at as copied:defs:16afa771 (copied_entry, score 36) spans 6 classes in concepts CrcCensus, CrcFile, CrcJobs, CrcRecords, CrcSweep, CrcTickets. - `OsSdlc::CrcCensus::Command` (`/home/jared/dev/cc-os/plugins/os-sdlc/lib/os_sdlc/crc_census/command.rb:19`) - `OsSdlc::CrcFile::Command` (`/home/jared/dev/cc-os/plugins/os-sdlc/lib/os_sdlc/crc_file/command.rb:13`) - `OsSdlc::CrcJobs::Command` (`/home/jared/dev/cc-os/plugins/os-sdlc/lib/os_sdlc/crc_jobs/command.rb:13`) - `OsSdlc::CrcRecords::Command` (`/home/jared/dev/cc-os/plugins/os-sdlc/lib/os_sdlc/crc_records/command.rb:9`) - `OsSdlc::CrcSweep::Command` (`/home/jared/dev/cc-os/plugins/os-sdlc/lib/os_sdlc/crc_sweep/command.rb:14`) - `OsSdlc::CrcTickets::Command` (`/home/jared/dev/cc-os/plugins/os-sdlc/lib/os_sdlc/crc_tickets/command.rb:24`) IDENTICAL :defs mass 576; role controller ## Approach The clump's names are members of one object that already exists or is built upstream; pass the object. Object: `OsSdlc::CrcRunPath` (built at plugins/os-sdlc/lib/os_sdlc/crc_jobs/command.rb:30). The jobs, records, sweep, and tickets commands already build CrcRunPath and then unpack it into root and run_dir for every class below, so passing the built object (with readers for root, relative, and joined file paths added to CrcRunPath, and CrcCensus::Settings.for building it) takes the pair out of all eight non-object sites, including CrcJobs whose own initialize takes the pair despite the Result excerpt; only CrcRunPath keeps both names, support falls to 1, and the clump stops being a finding. build_once_at_entry describes the same pass-down but its premise, that sites rebuild the object, is false here, since the object is already built once at each entry and is only unpacked. The sweep parser sets root before run_dir; the parser order changes so run_path is built once. The copied or misplaced behavior belongs to one owner; move it there, callers delegate. The honest fix needs no owner: the six identical self.run pass-throughs are deleted and each bin calls Command.new(ARGV, out:, err:, cwd:).run, as CollaboratorPass::Command does (lens A13: delete a pass-through). Required work: 1. `OsSdlc::CrcCensus::Settings` takes `run_path, lib_root, test_root, loader, exclude, paths, test_root_given` — check: absent `root:` in `plugins/os-sdlc/lib/os_sdlc/crc_census/settings.rb` 2. `OsSdlc::CrcCensus::Settings` takes `run_path, lib_root, test_root, loader, exclude, paths, test_root_given` — check: absent `run_dir:` in `plugins/os-sdlc/lib/os_sdlc/crc_census/settings.rb` 3. `OsSdlc::CrcJobs` takes `run_path` — check: absent `root:` in `plugins/os-sdlc/lib/os_sdlc/crc_jobs.rb` 4. `OsSdlc::CrcJobs` takes `run_path` — check: absent `run_dir:` in `plugins/os-sdlc/lib/os_sdlc/crc_jobs.rb` 5. `OsSdlc::CrcJobs::JobFiles` takes `run_path` — check: absent `root:` in `plugins/os-sdlc/lib/os_sdlc/crc_jobs/job_files.rb` 6. `OsSdlc::CrcJobs::JobFiles` takes `run_path` — check: absent `run_dir:` in `plugins/os-sdlc/lib/os_sdlc/crc_jobs/job_files.rb` 7. `OsSdlc::CrcRecords` takes `run_path, resolver, write` — check: absent `root:` in `plugins/os-sdlc/lib/os_sdlc/crc_records.rb` 8. `OsSdlc::CrcRecords` takes `run_path, resolver, write` — check: absent `run_dir:` in `plugins/os-sdlc/lib/os_sdlc/crc_records.rb` 9. `OsSdlc::CrcRecords::AdrCitations` takes `run_path` — check: absent `root:` in `plugins/os-sdlc/lib/os_sdlc/crc_records/adr_citations.rb` 10. `OsSdlc::CrcRecords::AdrCitations` takes `run_path` — check: absent `run_dir:` in `plugins/os-sdlc/lib/os_sdlc/crc_records/adr_citations.rb` 11. `OsSdlc::CrcRecords::RunFiles` takes `run_path` — check: absent `root:` in `plugins/os-sdlc/lib/os_sdlc/crc_records/run_files.rb` 12. `OsSdlc::CrcRecords::RunFiles` takes `run_path` — check: absent `run_dir:` in `plugins/os-sdlc/lib/os_sdlc/crc_records/run_files.rb` 13. `OsSdlc::CrcSweep::Settings` takes `run_path, lib_root, write, excludes, histories, test_root` — check: absent `root:` in `plugins/os-sdlc/lib/os_sdlc/crc_sweep/settings.rb` 14. `OsSdlc::CrcSweep::Settings` takes `run_path, lib_root, write, excludes, histories, test_root` — check: absent `run_dir:` in `plugins/os-sdlc/lib/os_sdlc/crc_sweep/settings.rb` 15. `OsSdlc::CrcTickets` takes `run_path, options` — check: absent `root:` in `plugins/os-sdlc/lib/os_sdlc/crc_tickets.rb` 16. `OsSdlc::CrcTickets` takes `run_path, options` — check: absent `run_dir:` in `plugins/os-sdlc/lib/os_sdlc/crc_tickets.rb` 17. `OsSdlc::CrcCensus::Command` takes `argv, out, err, cwd` — check: absent `def self.run` in `plugins/os-sdlc/lib/os_sdlc/crc_census/command.rb` 18. `OsSdlc::CrcFile::Command` takes `argv, out, err, cwd` — check: absent `def self.run` in `plugins/os-sdlc/lib/os_sdlc/crc_file/command.rb` 19. `OsSdlc::CrcJobs::Command` takes `argv, out, err, cwd` — check: absent `def self.run` in `plugins/os-sdlc/lib/os_sdlc/crc_jobs/command.rb` 20. `OsSdlc::CrcRecords::Command` takes `argv, out, err, cwd` — check: absent `def self.run` in `plugins/os-sdlc/lib/os_sdlc/crc_records/command.rb` 21. `OsSdlc::CrcSweep::Command` takes `argv, out, err, cwd` — check: absent `def self.run` in `plugins/os-sdlc/lib/os_sdlc/crc_sweep/command.rb` 22. `OsSdlc::CrcTickets::Command` takes `argv, out, err, cwd` — check: absent `def self.run` in `plugins/os-sdlc/lib/os_sdlc/crc_tickets/command.rb` Orchestrator work: re-measure with bin/collaborator-pass measure --runs docs/crc/os-sdlc/collaborator-runs, then stop-check. Rejected: build_once_at_entry — The honest fix needs no owner: the six identical self.run pass-throughs are deleted and each bin calls Command.new(ARGV, out:, err:, cwd:).run, as CollaboratorPass::Command does (lens A13: delete a pass-through). ## Acceptance criteria 1. Given today's lib, when bin/collaborator-pass measure --sources params,inward,flay runs after the change, then the data_clump finding root+run_dir scores at most 0 (was 54) and none of root, run_dir appears in its names. 2. Given today's lib, when bin/collaborator-pass measure --sources params,inward,flay runs after the change, then the copied_entry finding copied:defs:16afa771 scores at most 0 (was 36) and no copied definition remains in those classes. 3. Given a run directory with a ledger and jobs files, when crc-jobs, crc-records, crc-sweep, and crc-tickets run, then their JSON output and exit codes are unchanged. 4. Given a run directory and a lib root, when crc-census runs, then its report is unchanged. 5. Given the touched classes and the four crc commands, when their tests run, then all pass. 6. Given each crc-* bin script, when it runs with the same argv, then its output and exit code are unchanged. 7. Given the six Command classes, when the test suite runs, then every Command test passes using Command.new(...).run. ## Owner sketch ```ruby class OsSdlc::CrcRunPath end class OsSdlc::CrcCensus::Settings def initialize(run_path, lib_root, test_root, loader, exclude, paths, test_root_given) end end class OsSdlc::CrcJobs def initialize(run_path) end end class OsSdlc::CrcJobs::JobFiles def initialize(run_path) end end class OsSdlc::CrcRecords def initialize(run_path, resolver, write) end end class OsSdlc::CrcRecords::AdrCitations def initialize(run_path) end end class OsSdlc::CrcRecords::RunFiles def initialize(run_path) end end class OsSdlc::CrcSweep::Settings def initialize(run_path, lib_root, write, excludes, histories, test_root) end end class OsSdlc::CrcTickets def initialize(run_path, options) end end class OsSdlc::CrcCensus::Command def initialize(argv, out, err, cwd) end end class OsSdlc::CrcFile::Command def initialize(argv, out, err, cwd) end end class OsSdlc::CrcJobs::Command def initialize(argv, out, err, cwd) end end class OsSdlc::CrcRecords::Command def initialize(argv, out, err, cwd) end end class OsSdlc::CrcSweep::Command def initialize(argv, out, err, cwd) end end class OsSdlc::CrcTickets::Command def initialize(argv, out, err, cwd) end end ``` ## Origin - Trigger: bin/collaborator-pass run 20261017T154808Z - Improvised this session: none - Chain: root+run_dir across 9 classes ← plugins/os-sdlc/lib/os_sdlc/crc_census/command.rb:37 ← DESIGN (`plugins/os-sdlc/lib/os_sdlc/crc_census/settings.rb`) - Root candidate: this ticket - Where: plugins/os-sdlc/lib/os_sdlc/crc_census/settings.rb - Session: f1eaf768-77b4-48c7-afde-b0344f519273 - Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os/f1eaf768-77b4-48c7-afde-b0344f519273.jsonl
Author
Owner

Body replaced by the collaborator pass loop run 20261017T154808Z: recipes root+run_dir (preserve_whole_object, CrcRunPath) and copied:defs:16afa771 (delete six self.run). Rulings predicted, recorded in docs/crc/os-sdlc/collaborator-rulings.tsv.

Body replaced by the collaborator pass loop run 20261017T154808Z: recipes root+run_dir (preserve_whole_object, CrcRunPath) and copied:defs:16afa771 (delete six self.run). Rulings predicted, recorded in docs/crc/os-sdlc/collaborator-rulings.tsv.
Author
Owner

Work started 2026-10-17 on branch ticket-1086 via /os-sdlc:implement, dispatched by the collaborator pass loop (run 20261017T154808Z).

Work started 2026-10-17 on branch ticket-1086 via /os-sdlc:implement, dispatched by the collaborator pass loop (run 20261017T154808Z).
Author
Owner

Implementation 58 escalated at test-writer round 2 (escalation 31, unexpected_pass): the ticket is a pure refactor guarded by the existing bin tests, so the red-first round had nothing to write. Hand-finishing per the escalation procedure. Required-work checks for the six self.run deletions added to the body.

Implementation 58 escalated at test-writer round 2 (escalation 31, unexpected_pass): the ticket is a pure refactor guarded by the existing bin tests, so the red-first round had nothing to write. Hand-finishing per the escalation procedure. Required-work checks for the six self.run deletions added to the body.
Author
Owner

Resolution

Done: Eight crc classes take OsSdlc::CrcRunPath as run_path instead of root and run_dir strings; CrcRunPath gains root, dir, file, relative_file, file?, ledger; the sweep builds it once before an immutable Settings; the six byte-identical Command.run pass-throughs are deleted and each bin/crc-* calls Command.new(...).run. Design-audit fixes applied (TicketDrafts takes run_path, AdrCitations uses run_path.file, ledger reader used by every caller).

Evidence: Commit d55d8ab6 merged to main. Suite 2027 runs, 0 failures; six bin tests unchanged and green. Rubocop: no offenses in touched files (25 pre-existing elsewhere). bin/collaborator-pass measure after the change: no data_clump holds root and run_dir; no copied_entry lists the six Command classes. Implementation 58 escalated at test-writer round 2 (unexpected_pass: pure refactor); hand-finished per the escalation procedure with suite, lint, and one opus design audit.

Follow-ups: The six Command initialize and parse bodies are still SIMILAR per Flay (pairs at score 4); and a new clump file+root (score 6) across CrcCensus::RequiringFile, SourceRow, CrcRecords::AdrAffectedPaths suggests a repository-root value. Both are findings the next collaborator-pass measure surfaces and the loop prescribes; no hand-filed ticket.

## Resolution **Done:** Eight crc classes take OsSdlc::CrcRunPath as run_path instead of root and run_dir strings; CrcRunPath gains root, dir, file, relative_file, file?, ledger; the sweep builds it once before an immutable Settings; the six byte-identical Command.run pass-throughs are deleted and each bin/crc-* calls Command.new(...).run. Design-audit fixes applied (TicketDrafts takes run_path, AdrCitations uses run_path.file, ledger reader used by every caller). **Evidence:** Commit d55d8ab6 merged to main. Suite 2027 runs, 0 failures; six bin tests unchanged and green. Rubocop: no offenses in touched files (25 pre-existing elsewhere). bin/collaborator-pass measure after the change: no data_clump holds root and run_dir; no copied_entry lists the six Command classes. Implementation 58 escalated at test-writer round 2 (unexpected_pass: pure refactor); hand-finished per the escalation procedure with suite, lint, and one opus design audit. **Follow-ups:** The six Command initialize and parse bodies are still SIMILAR per Flay (pairs at score 4); and a new clump file+root (score 6) across CrcCensus::RequiringFile, SourceRow, CrcRecords::AdrAffectedPaths suggests a repository-root value. Both are findings the next collaborator-pass measure surfaces and the loop prescribes; no hand-filed ticket.
jared closed this issue 2026-10-17 16:14:48 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
jared/cc-os#1086
No description provided.