Takedown RedCheck keeps only the last 40 lines of output #1432

Closed
opened 2026-10-27 17:50:10 +00:00 by jared · 2 comments
Owner

Problem

plugins/os-sdlc/eval/ticket-takedown/lib/takedown/model/red_check.rb has its own TAIL = 40. Its entry method records "output" => tail(result.output). #1425 fixed the same evidence loss in SuiteRun (failure blocks plus summary, tail fallback when no block). The RedCheck output reaches the critic prompt: Takedown::RunPrompts#design_section embeds JSON.pretty_generate(check) as "Failing test check for ", and FinalRedStep writes it as the record. The critic needs the failure text to judge whether the test is red for the intended reason. A long failure can push the failure message out of the last 40 lines.

Reproduce

n/a: not yet reproduced; the evidence loss follows from the 40-line tail.

Origin

  • Trigger: follow-up to #1425
  • Improvised this session: none
  • Chain: critic sees truncated red-check output ← RedCheck#tail keeps 40 lines ← RedCheck has its own TAIL, not the #1425 fix (DESIGN: red_check.rb)
  • Root candidate: none found; searched RedCheck, red_check, FinalRedStep, TAIL, 40 lines, tail
  • Where: plugins/os-sdlc/eval/ticket-takedown/lib/takedown/model/red_check.rb
  • Session: 82e65b81-56fa-4c14-acd0-f225c6f57314
  • Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os/82e65b81-56fa-4c14-acd0-f225c6f57314.jsonl

VERDICT: CREATE

## Problem `plugins/os-sdlc/eval/ticket-takedown/lib/takedown/model/red_check.rb` has its own `TAIL = 40`. Its `entry` method records `"output" => tail(result.output)`. #1425 fixed the same evidence loss in `SuiteRun` (failure blocks plus summary, tail fallback when no block). The RedCheck output reaches the critic prompt: `Takedown::RunPrompts#design_section` embeds `JSON.pretty_generate(check)` as "Failing test check for <design>", and `FinalRedStep` writes it as the record. The critic needs the failure text to judge whether the test is red for the intended reason. A long failure can push the failure message out of the last 40 lines. ## Reproduce n/a: not yet reproduced; the evidence loss follows from the 40-line tail. ## Origin - Trigger: follow-up to #1425 - Improvised this session: none - Chain: critic sees truncated red-check output ← `RedCheck#tail` keeps 40 lines ← `RedCheck` has its own `TAIL`, not the #1425 fix (DESIGN: red_check.rb) - Root candidate: none found; searched RedCheck, red_check, FinalRedStep, TAIL, 40 lines, tail - Where: plugins/os-sdlc/eval/ticket-takedown/lib/takedown/model/red_check.rb - Session: 82e65b81-56fa-4c14-acd0-f225c6f57314 - Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os/82e65b81-56fa-4c14-acd0-f225c6f57314.jsonl VERDICT: CREATE
Author
Owner

Work started on branch ticket-1432 (worktree .claude/worktrees/ticket-1432).

Work started on branch ticket-1432 (worktree .claude/worktrees/ticket-1432).
Author
Owner

Resolution

Done: New Takedown::FailureOutput keeps each failure block (at most 30 lines) plus the Minitest summary, with a last-40-lines fallback. RedCheck and SuiteRun both use it, and RedCheck's own 40-line tail is gone.

Evidence: main b573e7e2 (commit b112b077). Red test test_recorded_output_keeps_the_failure_block_before_trailing_noise in test/command/check_steps_test.rb. Takedown suite 625 runs, 0 failures. Rubocop clean. Built by hand in a worktree, test first.

Follow-ups: Direct unit test file for FailureOutput: dropped, SuiteRun and RedCheck tests cover it. Other TAIL constants: dropped, none known.

## Resolution **Done:** New Takedown::FailureOutput keeps each failure block (at most 30 lines) plus the Minitest summary, with a last-40-lines fallback. RedCheck and SuiteRun both use it, and RedCheck's own 40-line tail is gone. **Evidence:** main b573e7e2 (commit b112b077). Red test test_recorded_output_keeps_the_failure_block_before_trailing_noise in test/command/check_steps_test.rb. Takedown suite 625 runs, 0 failures. Rubocop clean. Built by hand in a worktree, test first. **Follow-ups:** Direct unit test file for FailureOutput: dropped, SuiteRun and RedCheck tests cover it. Other TAIL constants: dropped, none known.
jared closed this issue 2026-10-27 17:55:24 +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#1432
No description provided.