Reconciliation workflows must emit only the canonical reconciliation handoff schema #307

Closed
opened 2026-07-07 00:45:57 -05:00 by jcwalker3 · 0 comments
Owner

Already-landed PR reconciliation reports now produce a good narrative reconciliation handoff, but the final Controller Handoff still falls back to stale author/reviewer fields.

Observed stale fields

  • Mutations: None
  • Workspace mutations: None
  • PR number opened: 278
  • Issue lock proof
  • Claim/comment status

Problem

These fields are incorrect for reconciliation workflows. git fetch occurred, so Mutations: None is misleading. No PR was opened, so PR number opened: 278 is wrong.

Required behavior

  1. Reconciliation workflows must emit only the canonical reconciliation handoff schema.

  2. Stale author/reviewer handoff fields must be rejected.

  3. If git fetch occurred, it must be listed under Git ref mutations.

  4. The handoff must include:

    • Task
    • Repo
    • Role/profile
    • Identity
    • Selected PR
    • PR live state
    • Candidate head SHA
    • Target branch
    • Target branch SHA
    • Ancestor proof
    • Linked issue
    • Linked issue live status
    • Eligibility class
    • Capabilities proven
    • Missing capabilities
    • PR comments posted
    • Issue comments posted
    • PRs closed
    • Issues closed
    • Git ref mutations
    • Worktree mutations
    • MCP/Gitea mutations
    • External-state mutations
    • Read-only diagnostics
    • Blocker
    • Safe next action
    • No review/merge confirmation

Forbidden fields

  • PR number opened
  • Pinned reviewed head
  • Scratch worktree used
  • Workspace mutations: None
  • Mutations: None when any git ref, MCP, Gitea, review, merge, cleanup, or external-state mutation occurred

Acceptance criteria

  • Reconciliation handoffs using stale author/reviewer fields fail validation.
  • git fetch is reported as a Git ref mutation.
  • No reconciliation report can say PR number opened unless a PR was actually opened in that session.
  • Tests cover blocked reconciliation, successful reconciliation, comment-only reconciliation, and missing close capability.
Already-landed PR reconciliation reports now produce a good narrative reconciliation handoff, but the final Controller Handoff still falls back to stale author/reviewer fields. ## Observed stale fields * `Mutations: None` * `Workspace mutations: None` * `PR number opened: 278` * `Issue lock proof` * `Claim/comment status` ## Problem These fields are incorrect for reconciliation workflows. `git fetch` occurred, so `Mutations: None` is misleading. No PR was opened, so `PR number opened: 278` is wrong. ## Required behavior 1. Reconciliation workflows must emit only the canonical reconciliation handoff schema. 2. Stale author/reviewer handoff fields must be rejected. 3. If `git fetch` occurred, it must be listed under `Git ref mutations`. 4. The handoff must include: * Task * Repo * Role/profile * Identity * Selected PR * PR live state * Candidate head SHA * Target branch * Target branch SHA * Ancestor proof * Linked issue * Linked issue live status * Eligibility class * Capabilities proven * Missing capabilities * PR comments posted * Issue comments posted * PRs closed * Issues closed * Git ref mutations * Worktree mutations * MCP/Gitea mutations * External-state mutations * Read-only diagnostics * Blocker * Safe next action * No review/merge confirmation ## Forbidden fields * `PR number opened` * `Pinned reviewed head` * `Scratch worktree used` * `Workspace mutations: None` * `Mutations: None` when any git ref, MCP, Gitea, review, merge, cleanup, or external-state mutation occurred ## Acceptance criteria * Reconciliation handoffs using stale author/reviewer fields fail validation. * `git fetch` is reported as a Git ref mutation. * No reconciliation report can say `PR number opened` unless a PR was actually opened in that session. * Tests cover blocked reconciliation, successful reconciliation, comment-only reconciliation, and missing close capability.
jcwalker3 added the status:in-progress label 2026-07-07 08:20:58 -05:00
jcwalker3 removed the status:in-progress label 2026-07-07 08:34:49 -05:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Scaled-Tech-Consulting/Gitea-Tools#307