Add canonical issue/PR/discussion state comment templates and validators,
final-report rules for STATE/WHO_IS_NEXT/NEXT_ACTION/NEXT_PROMPT, and
queue-controller guidance. Posting enforcement remains in #496.
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Merge current prgs/master into feat/issue-399-conflict-fix-leases.
Preserve reviewer PR lease gate (#407) before conflict-fix stale-head
gate (#399); document both as §26B and §26C. Align MCP and validator
tests with mandatory expected_head_sha and stale-head proof fields.
Reconciliation final reports must emit only the canonical reconciliation
handoff schema:
- Expand _RECONCILE_REQUIRED_FIELDS from 5 to the full 27-field canonical
schema (Task through No review/merge confirmation), so incomplete
reconciliation handoffs downgrade with per-field reasons.
- Add 'issue lock proof', 'claim/comment status', and 'workspace mutations'
to _RECONCILE_STALE_FIELDS so stale author/reviewer fields block.
- Make the 'PR number opened' rejection conditional on a new
session_pr_opened proof kwarg: the field is allowed only when a PR was
actually opened in the session.
- Close the git-fetch reporting gap: a fetch observed only in the action
log (not report text) now requires a Git ref mutations entry as well.
- Update the reconciliation handoff fixture to the canonical schema and
add TestCanonicalReconcileSchema covering blocked, successful-close,
and comment-only reconciliation plus missing-close-capability,
stale-field, and conditional PR-number-opened paths.
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Add reviewer_already_landed_classification verifier to block oldest/next
eligible PR wording, review-eligible claims, and pinned reviewed head
usage when a PR is already landed. Wire the check into build_final_report
and tighten final_report_validator regex coverage.
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>