CRC wave 5: split Backlog::CommandRunner #1028

Closed
opened 2026-10-16 18:24:39 +00:00 by jared · 2 comments
Owner

Problem

plugins/os-backlog/lib/backlog/command_runner.rb (Backlog::CommandRunner) has the job sentence "This object owns the failure-checked run of an external command and the parsing of its output text.", which needs "and". Extract it into separate files.

Reproduce

n/a: structure-only refactor, no behavior change.

Approach

  1. Required work:
    • split plugins/os-backlog/lib/backlog/command_runner.rb (Backlog::CommandRunner)
    • public methods: initialize
    • test: no test file
    • Part names are chosen at extraction; the ledger and rulings do not name them.
    • Before you finish, grep the repository for the old file path, not only the constant.
  2. Governing rulings:
    • R15: Runner for the real runner and the test stand-ins; ShellRunner goes top-level (Q16, Q35)

Acceptance criteria

  • Every named ledger row is applied, or logged in deviations.md, or reported blocked.
  • ruby plugins/os-backlog/tests/all.rb 0 failures.
  • ruby -e 'require "./plugins/os-backlog/lib/backlog"; Backlog.loader.eager_load' silent.

Owner sketch

Each part owns one job; the old file is removed.

Non-goals

  • No behavior change.
  • No new tests.
  • No deletion of code that has callers.

Origin

  • Session: 6bf383dd-a0e8-4c9b-9e75-286ee89969c3
  • Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os--claude-worktrees-crc-os-adr-2026-10-04/6bf383dd-a0e8-4c9b-9e75-286ee89969c3.jsonl
  • Where: plugins/os-backlog/lib/backlog/command_runner.rb
  • CRC refactor run: docs/crc/os-backlog.
  • Ledger: docs/crc/os-backlog/ledger.tsv
  • Rulings: docs/crc/os-backlog/rulings.md
  • Wave: 5.
## Problem `plugins/os-backlog/lib/backlog/command_runner.rb` (`Backlog::CommandRunner`) has the job sentence "This object owns the failure-checked run of an external command and the parsing of its output text.", which needs "and". Extract it into separate files. ## Reproduce n/a: structure-only refactor, no behavior change. ## Approach 1. Required work: - split `plugins/os-backlog/lib/backlog/command_runner.rb` (`Backlog::CommandRunner`) - public methods: initialize - test: no test file - Part names are chosen at extraction; the ledger and rulings do not name them. - Before you finish, grep the repository for the old file path, not only the constant. 2. Governing rulings: - R15: `Runner` for the real runner and the test stand-ins; `ShellRunner` goes top-level (Q16, Q35) ## Acceptance criteria - Every named ledger row is applied, or logged in deviations.md, or reported blocked. - `ruby plugins/os-backlog/tests/all.rb` 0 failures. - `ruby -e 'require "./plugins/os-backlog/lib/backlog"; Backlog.loader.eager_load'` silent. ## Owner sketch Each part owns one job; the old file is removed. ## Non-goals - No behavior change. - No new tests. - No deletion of code that has callers. ## Origin - Session: 6bf383dd-a0e8-4c9b-9e75-286ee89969c3 - Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os--claude-worktrees-crc-os-adr-2026-10-04/6bf383dd-a0e8-4c9b-9e75-286ee89969c3.jsonl - Where: plugins/os-backlog/lib/backlog/command_runner.rb - CRC refactor run: docs/crc/os-backlog. - Ledger: docs/crc/os-backlog/ledger.tsv - Rulings: docs/crc/os-backlog/rulings.md - Wave: 5.
Author
Owner

cb1c272c; rows applied 1/1; rows deviated 0; rows blocked 0

cb1c272c; rows applied 1/1; rows deviated 0; rows blocked 0
Author
Owner

Resolution

Done: Split CommandRunner into Issues::CheckedCommand (now Issues::CheckedRunner after #1036) and Issues::OutputParser.

Evidence: cb1c272c; ledger 4d9f34e5; branch crc-os-backlog-2026-10-16 (not merged); os-backlog suite 307 runs, 0 failures (one unexplained single failure seen once, 3 reruns green); eager load silent; inward lint none

Follow-ups: dropped: OutputParser#csv_list dead code (skeptic DROP: delete at next edit; recorded in docs/crc/os-backlog/HANDOFF.md Review)

## Resolution **Done:** Split CommandRunner into Issues::CheckedCommand (now Issues::CheckedRunner after #1036) and Issues::OutputParser. **Evidence:** cb1c272c; ledger 4d9f34e5; branch crc-os-backlog-2026-10-16 (not merged); os-backlog suite 307 runs, 0 failures (one unexplained single failure seen once, 3 reruns green); eager load silent; inward lint none **Follow-ups:** dropped: OutputParser#csv_list dead code (skeptic DROP: delete at next edit; recorded in docs/crc/os-backlog/HANDOFF.md Review)
jared closed this issue 2026-10-16 19:26:06 +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#1028
No description provided.