Tickets::StructureRulings reads structure-rulings.tsv through Score::Wave0#rows #1282

Open
opened 2026-10-23 19:57:07 +00:00 by jared · 0 comments
Owner

Problem

Crc::Tickets::StructureRulings parses wave0/structure-rulings.tsv with its own readlines, tab split, and header zip (plugins/os-sdlc/lib/os_sdlc/crc/tickets/structure_rulings.rb:22-23). That is a copy of Score::Wave0#rows (crc/score/wave0.rb:15-16). The rule "a missing file gives no rows" is also written twice (structure_rulings.rb:18 and open_rows.rb:47). Lens heuristic A12: one derivation, one owner.

Reproduce

n/a: duplicate code, nothing fails.

Approach

StructureRulings#rows maps over Score::Wave0.new(run_path).rows("structure-rulings") and keeps its detector(id) lookup. Only caller: crc/tickets/body_context.rb:37. No behavior change.

Origin

  • Trigger: lens challenge of the #1279 contract-auditor LENS line (implementation 140); signal line in plugins/os-sdlc/lens-signals/A12.jsonl
  • Improvised this session: none
  • Chain: duplicate TSV parse ← StructureRulings predates Score::Wave0 as the reader ← DESIGN (plugins/os-sdlc/lib/os_sdlc/crc/tickets/structure_rulings.rb)
  • Root candidate: none found; searched StructureRulings, structure-rulings, Wave0, wave0, tsv, rulings
  • Where: plugins/os-sdlc/lib/os_sdlc/crc/tickets/structure_rulings.rb
  • Session: c1bedec6-7e01-45ab-b9db-22d63652c19f
  • Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os--claude-worktrees-crc-os-sdlc-run-4/c1bedec6-7e01-45ab-b9db-22d63652c19f.jsonl

VERDICT: CREATE

## Problem `Crc::Tickets::StructureRulings` parses `wave0/structure-rulings.tsv` with its own readlines, tab split, and header zip (plugins/os-sdlc/lib/os_sdlc/crc/tickets/structure_rulings.rb:22-23). That is a copy of `Score::Wave0#rows` (crc/score/wave0.rb:15-16). The rule "a missing file gives no rows" is also written twice (structure_rulings.rb:18 and open_rows.rb:47). Lens heuristic A12: one derivation, one owner. ## Reproduce n/a: duplicate code, nothing fails. ## Approach `StructureRulings#rows` maps over `Score::Wave0.new(run_path).rows("structure-rulings")` and keeps its `detector(id)` lookup. Only caller: crc/tickets/body_context.rb:37. No behavior change. ## Origin - Trigger: lens challenge of the #1279 contract-auditor LENS line (implementation 140); signal line in plugins/os-sdlc/lens-signals/A12.jsonl - Improvised this session: none - Chain: duplicate TSV parse ← StructureRulings predates Score::Wave0 as the reader ← DESIGN (plugins/os-sdlc/lib/os_sdlc/crc/tickets/structure_rulings.rb) - Root candidate: none found; searched StructureRulings, structure-rulings, Wave0, wave0, tsv, rulings - Where: plugins/os-sdlc/lib/os_sdlc/crc/tickets/structure_rulings.rb - Session: c1bedec6-7e01-45ab-b9db-22d63652c19f - Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os--claude-worktrees-crc-os-sdlc-run-4/c1bedec6-7e01-45ab-b9db-22d63652c19f.jsonl VERDICT: CREATE
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#1282
No description provided.