CRC wave 5: split OsSdlc::ResidualDispatchReport #1064

Closed
opened 2026-10-16 20:52:04 +00:00 by jared · 2 comments
Owner

Problem

plugins/os-sdlc/lib/os_sdlc/command/residual_dispatch_report.rb (OsSdlc::ResidualDispatchReport) has the job sentence "This object owns the per-file assignment files and the printed summary for residual lint offenses.", which holds two jobs. Extract it into separate files.

Reproduce

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

Approach

  1. Required work:
    • split plugins/os-sdlc/lib/os_sdlc/command/residual_dispatch_report.rb (OsSdlc::ResidualDispatchReport)
    • public methods: run dispatch initialize print
    • test: no test file
    • Part names: read the governing rulings below. Where they name no part, choose the names at extraction.
    • Before you finish, grep the repository for the old file path, not only the constant.
  2. Governing rulings:
    • R1: *Report is a run result rendered for its reader; a parsed tool output is *Output
    • R44: The rendered report of one run is *Report
    • R86: The step 2 noun-pair verdicts stand (Q25)

Acceptance criteria

  • Every named ledger row is applied, or logged in deviations.md, or reported blocked.
  • ruby plugins/os-sdlc/tests/all.rb 0 failures.
  • ruby -e 'require "./plugins/os-sdlc/lib/os_sdlc"; OsSdlc::Db.connect!(":memory:"); OsSdlc.loader.eager_load' silent.
  • plugins/os-sdlc/bin/lint-inward-dependencies docs/crc/os-sdlc/ledger.tsv shows no unexplained new line.

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: 90307e7c-4c8b-458a-bda5-16b55dd3cc4f
  • Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os--claude-worktrees-crc-os-adr-2026-10-04/90307e7c-4c8b-458a-bda5-16b55dd3cc4f.jsonl
  • Where: plugins/os-sdlc/lib/os_sdlc/command/residual_dispatch_report.rb
  • CRC refactor run: docs/crc/os-sdlc.
  • Ledger: docs/crc/os-sdlc/ledger.tsv
  • Rulings: docs/crc/os-sdlc/rulings.md
  • Wave: 5.
## Problem `plugins/os-sdlc/lib/os_sdlc/command/residual_dispatch_report.rb` (`OsSdlc::ResidualDispatchReport`) has the job sentence "This object owns the per-file assignment files and the printed summary for residual lint offenses.", which holds two jobs. Extract it into separate files. ## Reproduce n/a: structure-only refactor, no behavior change. ## Approach 1. Required work: - split `plugins/os-sdlc/lib/os_sdlc/command/residual_dispatch_report.rb` (`OsSdlc::ResidualDispatchReport`) - public methods: run dispatch initialize print - test: no test file - Part names: read the governing rulings below. Where they name no part, choose the names at extraction. - Before you finish, grep the repository for the old file path, not only the constant. 2. Governing rulings: - R1: `*Report` is a run result rendered for its reader; a parsed tool output is `*Output` - R44: The rendered report of one run is `*Report` - R86: The step 2 noun-pair verdicts stand (Q25) ## Acceptance criteria - Every named ledger row is applied, or logged in deviations.md, or reported blocked. - `ruby plugins/os-sdlc/tests/all.rb` 0 failures. - `ruby -e 'require "./plugins/os-sdlc/lib/os_sdlc"; OsSdlc::Db.connect!(":memory:"); OsSdlc.loader.eager_load'` silent. - `plugins/os-sdlc/bin/lint-inward-dependencies docs/crc/os-sdlc/ledger.tsv` shows no unexplained new line. ## 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: 90307e7c-4c8b-458a-bda5-16b55dd3cc4f - Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os--claude-worktrees-crc-os-adr-2026-10-04/90307e7c-4c8b-458a-bda5-16b55dd3cc4f.jsonl - Where: plugins/os-sdlc/lib/os_sdlc/command/residual_dispatch_report.rb - CRC refactor run: docs/crc/os-sdlc. - Ledger: docs/crc/os-sdlc/ledger.tsv - Rulings: docs/crc/os-sdlc/rulings.md - Wave: 5.
Author
Owner

720f911c; rows applied 1/1; rows deviated 1 (parts nest under Lint, not command/); rows blocked 0

720f911c; rows applied 1/1; rows deviated 1 (parts nest under Lint, not command/); rows blocked 0
Author
Owner

Resolution

Done: ResidualDispatchReport split into Lint::ResidualDispatchReport and Lint::ResidualAssignments.

Evidence: commits 720f911c and 0f141fc2 on main.

Follow-ups: #1072 (crc-records false stale row for this split).

## Resolution **Done:** ResidualDispatchReport split into Lint::ResidualDispatchReport and Lint::ResidualAssignments. **Evidence:** commits 720f911c and 0f141fc2 on main. **Follow-ups:** #1072 (crc-records false stale row for this split).
jared closed this issue 2026-10-17 02:50:01 +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#1064
No description provided.