test: pin the review directive's VERDICT/===BODY=== contract to review_parse_response #457
Labels
No labels
Agent
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
No milestone
No assignees
1 participant
Notifications
Total time spent: 3 minutes 55 seconds
Due date
igor
3 minutes 55 seconds
No due date set.
Dependencies
No dependencies set
Reference
joshtronic/igor#457
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Split out of #455, where the shadow review flagged it as an unrelated
drive-by. It was: I had
bin/lib/review-directive.mdopen for a one-linechange and the test rode along.
What is uncovered
bin/lib/review-directive.mdtells the model to emitVERDICT: <token>abovea
===BODY===sentinel.review_parse_responseinbin/tick.shacceptsexactly three tokens and that one sentinel. Nothing pins the two together.
Edit the directive's output-format block without touching the parser and every
review becomes "no parseable verdict after 2 attempts", which retries twice per
tick, forever, and reads like a model failure rather than a text mismatch. The
review pass would be silently dead across the fleet and the journal would blame
the model.
What the test should do
Assert the handshake only -- the rubric is prose and no assertion can tell you
whether it produces good verdicts. Two properties worth pinning:
Lift the real parser out of
bin/tick.shwithsedrather than reimplementingit. A hand-rolled copy would happily agree with a directive that the shipping
parser rejects, which is the one failure this is meant to catch.
review_parse_responseends injq -n, so the suite has to guard onjqlikeits siblings do, or it reports a directive/parser mismatch that is not there on
a host without
jq. That guard is the skip-safety contractbin/check-sync.shexpects of every
bin/test-*.sh.A working version exists on the
feat/rework-adjudicationbranch (added ine388efc, fixed ine68a83c, removed when #455 was narrowed) if recovering itbeats rewriting it.
Not in scope
The directive's rubric wording. That is #456, still awaiting a decision.