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]>
35 lines
1.3 KiB
Markdown
35 lines
1.3 KiB
Markdown
# 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 mutations` or `MCP/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`](../skills/llm-project-workflow/templates/blocked-review-handoff.md).
|
|
|
|
## Related
|
|
|
|
- #331 — file-mutation ledger alignment
|
|
- #501 — contradictory narrative vs ledger detection |