/pm:resume pops the top frame from the detour stack, restores the paused epic to active status, and runs the mandatory reconcile gate if the frame has reconcileOnResume: true. This is the structured re-entry to work that was parked — the step otherwise lost after a context compaction. Do not skip it or hand-clear reconcileNeeded directly.
Prerequisites
Before running/pm:resume, confirm that the detour epic is archived and its work is committed and deployed. If the detour isn’t finished yet, it is not time to resume — finish the detour first and archive it, then come back here.
What happens
1
Verify the detour is complete
Confirm the detour epic is archived and all changes are committed. If anything is still in progress, stop and finish the detour first.
2
Pop the stack frame
Remove the top frame from
detourStack in .conductor/state.json.3
Restore the paused epic
Set the paused epic’s
status back to active and update the .active pointer to it. Where the frame had reconcileOnResume, reconcileNeeded: true is written in the same write. The obligation is ALSO recorded per detour on the paused epic’s may-invalidate link (reconcileOnResume: true, armed at PUSH), which is what survives the frame’s removal and what the verdict must name.4
Delegate to the reconciler (if required)
If Delegate a clean-context review to the reconciler agent via the Task tool for each detour named, passing it the paused epic id and the detour epic id.
pop-detour printed RECONCILE GATE, do not write any code yet. It prints it whenever the resumed epic still owes a reconcile — for this detour, or for an EARLIER --reconcile detour still unanswered (a later --no-reconcile push never cancels an earlier obligation) — and names every detour owed:5
Receive the verdict
The reconciler re-reads the paused proposal, diffs what the detour actually changed, and reports back
VERDICT: valid|invalidated plus AMENDMENTS: — one story to add, remove, or amend per line.6
Write the verdict back durably
Record the result with ONE form, mapped from the reconciler’s report (0.44.0):This attaches
{ verdict, amendments, reconciledAt } to the paused epic’s may-invalidate link to that detour. --amendments none records no amendments; each --amendment is one amendment even when its text holds a ;; the two flags together are refused. reconcileNeeded clears only when no armed detour is left unanswered, so with two owed detours the first verdict leaves the gate armed. Recording again against the same detour is a correction: the earlier verdict moves to superseded on the link. Do not hand-clear reconcileNeeded — use this command.7
Re-render and continue
Run
conductor.mjs render, then state the exact next story to build on the resumed epic.Reconcile verdicts
Either way, always write the verdict back with
record-reconcile. Narration alone in the transcript does not clear reconcileNeeded.
What record-reconcile refuses (0.44.0)
Each refusal writes nothing and names what IS owed:
--no-reconcile detour. The verb never creates a link. A misspelled flag is refused before anything is recorded, and --help anywhere on the line prints help and records nothing.
Links written before 0.44.0. A may-invalidate link with no reconcileOnResume key (written by an older engine) makes EVERY verdict on that epic refuse until the record is upgraded:
/pm:upgrade, then record. The stamp arms a keyless link when its epic owes a reconcile, the link carries no verdict, and it targets another epic that exists — it cannot tell an old --reconcile link from an old --no-reconcile one, so an owing epic may come out owing a verdict against both. Answer each; valid with --amendments none is the honest verdict for a detour that never touched the plan.
The work will not resume. An owing epic keeps its obligation through archive and unarchive, clear-active and set-active (moving the active pointer off it warns and keeps it), and while it owes, update-epic --clear-links and remove-epic <detour> are refused. The honest ending for abandoned or killed work is a verdict, not a workaround: record-reconcile <paused-id> --detour <detour-id> --verdict invalidated --amendment "abandoned: <why the work will not resume>" — the plan IS invalidated. (remove-epic <paused-id> stays available for an epic registered in error.)
Honcho memory
While the resumed epic owes any reconcile,pop-detour deliberately does NOT emit a Honcho line — resumed X, reconciled vs Y is not true until the verdicts exist. After the reconcile gate completes, preserve the resume context for Honcho:
resumed <parent>, reconciled vs <detour-id>; reconcile = valid line and appends a timestamped copy to .conductor/honcho-memories.log. Paste the printed line into your Honcho MCP memory tool. The engine only formats and logs the string — it never calls Honcho itself.

