Add reviewer_handoff_consistency validation for narrative vs mutation ledger contradictions, wire it into review_pr final-report rules, and document the blocked-review handoff template. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
1.3 KiB
1.3 KiB
Reviewer Handoff Consistency
Reviewer and final-review controller handoffs must not contradict themselves. A narrative that says a merge happened, a review was blocked, or a terminal mutation budget was consumed must match the mutation ledger fields in the same handoff.
What gets validated
reviewer_handoff_consistency.assess_reviewer_handoff_consistency() checks:
- merge claims appear under
Merge mutationsorMCP/Gitea mutations - terminal-mutation-budget claims name the exact prior mutation in the ledger
- blocked review submission is not paired with "final decision marked"
- reviewer lease acquisition includes a
Review decision - blocked/rejected mutations include proof fields:
- tool called
- mutation attempted
- mutation rejected
- no server-side state changed
final_report_validator applies this as reviewer.handoff_consistency on
review_pr reports and fails closed.
Blocked review template
When gitea_submit_pr_review fails closed, use
reviewer_handoff_consistency.render_blocked_review_handoff_template() or the
copy in
skills/llm-project-workflow/templates/blocked-review-handoff.md.
Related
- #331 — file-mutation ledger alignment
- #501 — contradictory narrative vs ledger detection