OpenRows: a row that touches a revisit file is blocked even when a ruling closed it #1281

Closed
opened 2026-10-23 19:56:12 +00:00 by jared · 2 comments
Owner

Problem

The #1279 progress table renders wrong counts on docs/crc/os-sdlc (commit 27213351). cycle-edges shows Open 0 and Blocked 0, but its two edges touch dispatch/rerouting.rb, a file of revisit row S11. S11's keep ruling is under revisit, so the edge is not settled. OpenRows checks the ruling before the revisit list. Also wave0/structure-rulings.tsv renders as a detector row with Kind defect and Open 107; it is the rulings file, not a detector.

Observed

| cycle-edges | ... | 2 | defect | 0 | 0 | - |
| structure-rulings | - | 95 | 95 | 107 | defect | 107 | 0 | - |

Reproduce

Render the ProgressTable command of crc-refactor SKILL.md phase 1 on docs/crc/os-sdlc at 27213351.

Approach

OpenRows checks the revisit list first: a candidate row that names a file in wave0/revisit-files.txt counts in Blocked, whether or not a ruling closes it. ProgressTable gives the structure-rulings row the cells - for Kind, Open, and Blocked, and OpenRows counts nothing for it. open_paths stays the files of open rows only: it lists no blocked row and no closed row.

Required work: none beyond the acceptance criteria.

Acceptance criteria

  1. Given a cycle-edges row whose files fact names a file in wave0/revisit-files.txt, and a keep ruling for its subject, when the table renders, then the row counts in Blocked and not in Open.
  2. Given a wave0/structure-rulings.tsv with rows, when the table renders, then the structure-rulings row shows - in Kind, Open, and Blocked.
  3. Given a reach-through row that names a revisit file and has no ruling, when OpenRows lists open_paths, then that row's file is not in the list.

Owner sketch

module OsSdlc
  module Crc
    class OpenRows
      def open(name)
      def blocked(name)
      def open_paths
    end
  end
end

Origin

  • Trigger: render of the #1279 table on docs/crc/os-sdlc after implementation 140
  • Improvised this session: none
  • Chain: wrong Blocked count ← OpenRows checks the ruling before the revisit list ← DESIGN (#1279 Approach text did not order the two checks)
  • Root candidate: none found; searched OpenRows, open_rows, revisit, structure-rulings, progress table
  • Where: plugins/os-sdlc/lib/os_sdlc/crc/open_rows.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 The #1279 progress table renders wrong counts on docs/crc/os-sdlc (commit 27213351). cycle-edges shows Open 0 and Blocked 0, but its two edges touch dispatch/rerouting.rb, a file of revisit row S11. S11's `keep` ruling is under revisit, so the edge is not settled. OpenRows checks the ruling before the revisit list. Also `wave0/structure-rulings.tsv` renders as a detector row with Kind defect and Open 107; it is the rulings file, not a detector. ## Observed ``` | cycle-edges | ... | 2 | defect | 0 | 0 | - | | structure-rulings | - | 95 | 95 | 107 | defect | 107 | 0 | - | ``` ## Reproduce Render the ProgressTable command of crc-refactor SKILL.md phase 1 on `docs/crc/os-sdlc` at 27213351. ## Approach OpenRows checks the revisit list first: a candidate row that names a file in `wave0/revisit-files.txt` counts in Blocked, whether or not a ruling closes it. ProgressTable gives the `structure-rulings` row the cells `-` for Kind, Open, and Blocked, and OpenRows counts nothing for it. `open_paths` stays the files of open rows only: it lists no blocked row and no closed row. Required work: none beyond the acceptance criteria. ## Acceptance criteria 1. Given a cycle-edges row whose `files` fact names a file in `wave0/revisit-files.txt`, and a `keep` ruling for its subject, when the table renders, then the row counts in Blocked and not in Open. 2. Given a `wave0/structure-rulings.tsv` with rows, when the table renders, then the structure-rulings row shows `-` in Kind, Open, and Blocked. 3. Given a reach-through row that names a revisit file and has no ruling, when OpenRows lists `open_paths`, then that row's file is not in the list. ## Owner sketch ```ruby module OsSdlc module Crc class OpenRows def open(name) def blocked(name) def open_paths end end end ``` ## Origin - Trigger: render of the #1279 table on docs/crc/os-sdlc after implementation 140 - Improvised this session: none - Chain: wrong Blocked count ← OpenRows checks the ruling before the revisit list ← DESIGN (#1279 Approach text did not order the two checks) - Root candidate: none found; searched OpenRows, open_rows, revisit, structure-rulings, progress table - Where: plugins/os-sdlc/lib/os_sdlc/crc/open_rows.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
Author
Owner

Work started (session c1bedec6). Branch crc-os-sdlc-run-4 in worktree .claude/worktrees/crc-os-sdlc-run-4 (persistent mode).

Work started (session c1bedec6). Branch crc-os-sdlc-run-4 in worktree .claude/worktrees/crc-os-sdlc-run-4 (persistent mode).
Author
Owner

Resolution

Done: OpenRows checks the revisit list before the ruling; the structure-rulings row renders '-' and counts nothing; open_paths lists only open rows.

Evidence: Commit a1baa30b, implementation 143 (10 dispatches, 8 min 58 s), suite gate green. Real-data render on docs/crc/os-sdlc: cycle-edges open 0 blocked 2; structure-rulings row '-'; open_paths 52 files.

Follow-ups: none

## Resolution **Done:** OpenRows checks the revisit list before the ruling; the structure-rulings row renders '-' and counts nothing; open_paths lists only open rows. **Evidence:** Commit a1baa30b, implementation 143 (10 dispatches, 8 min 58 s), suite gate green. Real-data render on docs/crc/os-sdlc: cycle-edges open 0 blocked 2; structure-rulings row '-'; open_paths 52 files. **Follow-ups:** none
jared closed this issue 2026-10-23 20:05:45 +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#1281
No description provided.