Problem
When a target's default branch advances, open Proposals for earlier tickets can fall behind. Tracewake already keeps mergeable Proposals current during each drain pass via gh pr update-branch (ADR 0023, #10). However, if an update produces merge conflicts (CONFLICTING or DIRTY), Tracewake refuses to force-update or mangle the branch; instead, it flags the Proposal on the Queue Board with a visual conflict badge (SPEC.md §6).
Today, a conflicting Proposal requires manual operator intervention. The reconcile Run automates bringing a conflicting Proposal up to date inside the microVM boundary.
What to build
A specialized Run type - the reconcile Run - dispatched when a Proposal has become conflicting against its base branch:
• Intake & Dispatch: The Selector detects an open Proposal marked conflicting and dispatches a reconcile Run targeting that Proposal's working branch against the updated base.
• MicroVM Conflict Resolution: The agent executes inside the standard microVM boundary, fetches the latest base branch, merges/rebases, and resolves the conflicting files.
• Verification: The target's verification suite must pass cleanly after conflict resolution.
• Push & Journal: Upon clean verification, the updated branch is pushed to the existing Proposal PR and journaled as proposal.reconciled.
• Escalation: If conflicts cannot be resolved or the suite fails within contract bounds, the Proposal remains un-merged and is escalated to ready-for-human.
• Invariants: Proposal-Only Output holds: the reconcile Run updates the draft pull request, never merging directly to the default branch.
Acceptance criteria
Problem
When a target's default branch advances, open Proposals for earlier tickets can fall behind. Tracewake already keeps mergeable Proposals current during each drain pass via
gh pr update-branch(ADR 0023, #10). However, if an update produces merge conflicts (CONFLICTINGorDIRTY), Tracewake refuses to force-update or mangle the branch; instead, it flags the Proposal on the Queue Board with a visual conflict badge (SPEC.md§6).Today, a conflicting Proposal requires manual operator intervention. The reconcile Run automates bringing a conflicting Proposal up to date inside the microVM boundary.
What to build
A specialized Run type - the reconcile Run - dispatched when a Proposal has become conflicting against its base branch:
• Intake & Dispatch: The Selector detects an open Proposal marked
conflictingand dispatches a reconcile Run targeting that Proposal's working branch against the updated base.• MicroVM Conflict Resolution: The agent executes inside the standard microVM boundary, fetches the latest base branch, merges/rebases, and resolves the conflicting files.
• Verification: The target's verification suite must pass cleanly after conflict resolution.
• Push & Journal: Upon clean verification, the updated branch is pushed to the existing Proposal PR and journaled as
proposal.reconciled.• Escalation: If conflicts cannot be resolved or the suite fails within contract bounds, the Proposal remains un-merged and is escalated to
ready-for-human.• Invariants: Proposal-Only Output holds: the reconcile Run updates the draft pull request, never merging directly to the default branch.
Acceptance criteria
proposal.reconciled) and clears the board conflict flagready-for-human