feat(multireview): emit 8-col per-reviewer td-stream rows#33
Merged
Conversation
Updates the fixture expectations for WriteReviewerOutput and MergeStreams to the unified format: SEVERITY|FILE:LINE|PROBLEM|FIX|CATEGORY|EST_MINUTES|EVIDENCE|REVIEWER Inbound openclaw reviewer prose contains 5-col rows (SEVERITY|FILE:LINE|PROBLEM|FIX|CATEGORY); WriteReviewerOutput must pad with empty EST_MINUTES + EVIDENCE before appending the agent name. MergeStreams header is updated to document the new 8-col contract. Tests fail against current impl. GREEN follows.
WriteReviewerOutput now writes per-reviewer td-stream.txt files in the unified 8-col format used across the entire system: SEVERITY|FILE:LINE|PROBLEM|FIX|CATEGORY|EST_MINUTES|EVIDENCE|REVIEWER New padTo7Columns helper pads inbound 5-col reviewer prose lines to 7 columns (empty EST_MINUTES + EVIDENCE) before appending the agent name. Reviewers don't currently emit EST_MINUTES/EVIDENCE; leaving them empty preserves the column count contract without inventing values. MergeStreams header comment updated to document the new format. The reconcile reader (claude-prompts PR #9) already recognizes the 8-col shape as its primary branch. Together this PR closes the loop: every per-source td-stream.txt in the system has the same shape.
…pad helper Adversarial review surfaced two robustness gaps in the new 8-col output: 1. Reviewers might emit a literal '|' character inside PROBLEM or FIX (e.g. "use the | operator"), corrupting the row's column count. Updated the task message in buildDefaultTaskMessage to instruct reviewers to replace any literal '|' with '/'. (Same convention already used by Claude Phase 5 and Step 10 pre-seed.) 2. padTo7Columns had no explicit test for edge cases. Added a table- driven test covering: 5-col padded to 7, already-7 pass-through, 8+ pass-through (no truncation), and a 2-col pathological case. Coverage holds at 84.2%.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Companion to
samestrin/claude-prompts#9. Updates themulti_reviewGo binary to emit per-reviewertd-stream.txtfiles in the unified 8-column format that the entire code-review pipeline now uses:Before:
multi_reviewwrote 6-col rows (SEVERITY|FILE:LINE|PROBLEM|FIX|CATEGORY|REVIEWER). The reconcile reader inclaude-promptskeeps a 6-col compat shim so old files on disk still parse, but new output now matches Claude/code-reviewPhase 5 + Step 10 pre-seed.Changes
internal/support/multireview/stream.gopadTo7Columnshelper.WriteReviewerOutputpads inbound 5-col reviewer prose to 7 columns (empty EST_MINUTES + EVIDENCE) before appending the agent name as REVIEWER.MergeStreamsheader comment updated to the 8-col contract.internal/support/multireview/stream_test.goTestPadTo7Columnscovers 5-col padding, already-7 pass-through, 8+ pass-through (no truncation), 2-col pathological.internal/support/commands/multi_review.go|with/(same convention Claude writers already use).CHANGELOG.mdTDD trail
4a47ee4392e516padTo7Columns+ 8-col writeb8f9cf71897afcTest plan
go test ./...— full repo passesinternal/support/multireview/— 84.2% (≥80% target)go install ./cmd/llm-supportbuilds cleanRollback / mixed-state safety
The reconcile reader's compat shim handles 5/6/10-col rows alongside 8-col. So mid-rollout (claude-prompts merged, this PR not yet) the system works: openclaw output is 6-col, reconcile recognizes it. After this merges: openclaw output is 8-col, reconcile recognizes both new and old.