# Review-merge final report schema **Task mode:** `review-merge-pr` Every review or merge run must end with a section titled exactly `Controller Handoff` validated by `review_proofs.assess_controller_handoff`. Use this schema — not author or issue-filing fields (`PR number opened`, `Claim/comment status`, `Workspace mutations`). ## Required header ```md ## Controller Handoff - Task: review-merge-pr - Repo: - Role/profile: - Identity: - Mode: review-merge-pr ``` Identity format: `username / profile` (e.g. `sysadmin / prgs-reviewer`). Do not include personal email unless required for disambiguation (#305). ## Selection and eligibility ```md - Selected PR: - PR live state: - Pinned reviewed head: - Reviewer eligibility: - Repositories checked: - Open PR counts: - Inventory completeness: - Inventory pagination proof: - Selected PR or reason none selected: - Linked issue: - Linked issue live status: ``` Linked issue number must match across all sections (#314). If not verified live: `Linked issue status: not verified in this session`. ## Validation proof (#311, #323) ```md - Validation command: - Validation working directory: - Validation executable proof: - Validation result: - Baseline SHA: (required if full suite failed on PR head) - Baseline validation command/result: (required if approving despite full-suite failure) - Matching failure list: ``` Reject vague claims like "same as master" without baseline worktree proof. ## Review and merge outcome ```md - Review decision: - Review mutations: - Merge result: - Merge commit: - Cleanup status: ``` `Review mutations` must list exactly one live terminal review unless operator-approved correction is documented. ## Mutation ledger (#319, #320) Use precise categories — **not** `Workspace mutations` or bare `Mutations: None`. ```md - File edits by reviewer: none - Worktree/index mutations: - Git ref mutations: - MCP/Gitea mutations: - Review mutations: - Merge mutations: - Cleanup mutations: - External-state mutations: - Read-only diagnostics: ``` Rules: - `git fetch` → Git ref mutations - `git worktree add/remove` → Worktree/index mutations - merge simulation → Worktree/index mutations (#317) - MCP review/merge calls → MCP/Gitea mutations + Review/Merge mutations ## Proof wording (#330) Do not claim "live proof" for blockers unless revalidated this session. Prior feedback at unchanged head: say `prior blocker reused` or `prior request-changes still applies`. Reject unsupported phrases: `inventory complete`, `same as master`, `live proof`, `file edits none` — unless matching evidence is present. ## Blockers and safety ```md - Blockers: - Safe next action: - Safety: no self-review; no self-merge; no author mutations; no code edits ``` Long format (§K in SKILL.md) is required when merge occurred, validation failed, permissions blocked, or multiple repos were involved.