executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
resumeResume an interrupted AgenTeam run with verify-first strategy.
Independent GitHub snapshot · Automated classification · Original documentation governs
Resume an interrupted pipeline run. Detects stale runs, verifies the last incomplete stage before continuing, and lets the user choose how to proceed.
python3 <runtime>/agenteam_rt.py resume-detect
Parse the JSON output:
No resumable runs (resumable_runs is empty):
Tell the user: "No interrupted runs found." Stop.
One resumable run: Show summary: run_id, task, interrupted stage, last update time. Proceed to step 2.
Multiple resumable runs: List all with run_id, task, stage, and age (time since last_update). Ask the user which to resume. Proceed with their choice.
python3 <runtime>/agenteam_rt.py resume-plan --run-id <run_id>
This returns a structured plan with all the information needed to decide how to resume: pipeline_mode, config drift status, interrupted stage details (verify, gate, baseline), completed and remaining stages.
Read pipeline_mode from the resume plan:
standalone: Continue with the verify-first flow below (step 4+).
hotl: This run was managed by HOTL's execution engine. Tell the
user: "This is a HOTL-managed run. Resume with /hotl:resume <workflow-file>
instead." Stop. AgenTeam does not resume HOTL-managed runs — HOTL owns
the step-level state and verify-first logic for those runs.
dispatch-only: Dispatch-only runs have no pipeline to resume.
Tell the user: "Dispatch-only runs have no pipeline to resume.
Re-assign tasks with @<Role> <task>." Stop.
If config_hash_match is false:
Check interrupted_stage from the resume plan:
If has_verify is true AND verify_safe is true:
Run the verify command to check if the interrupted work actually completed:
bash <plugin-dir>/scripts/verify-stage.sh run "<verify_command>" --cwd "<cwd>"
Verify passes: The interrupted stage's work is actually done. Transition the stage forward:
python3 <runtime>/agenteam_rt.py transition --run-id <run_id> \
--stage <stage> --to passed
Then follow normal gating flow:
has_gate is true: transition to gated, present gate to user.has_gate is false: transition to completed, continue to
next stage.Emit resume event:
python3 <runtime>/agenteam_rt.py event append --run-id <run_id> \
--type stage_resumed --stage <stage> \
--data '{"verify_result": "pass", "action": "advance"}'
Verify fails: Present choice (step 6).
If has_verify is false OR verify_safe is false:
Skip verify-first. Go directly to choice (step 6).
Show the user a resume summary:
Offer three options:
Resume persisted attempt (preferred): Inspect the interrupted stage's
latest attempts[] record. If it has a thread_id, continue through the
runtime harness:
python3 <runtime>/agenteam_rt.py run --run-id <run_id>
The runner issues codex exec resume <thread_id> -, preserves the attempt
chain, and continues the stored retry budget. Do not launch a second agent
while the recorded PID is live.
Re-dispatch: Use only when no resumable thread_id exists and prior
side effects have been verified. A fresh redispatch requires explicit approval.
python3 <runtime>/agenteam_rt.py transition --run-id <run_id> \
--stage <stage> --to dispatched
python3 <runtime>/agenteam_rt.py event append --run-id <run_id> \
--type stage_resumed --stage <stage> \
--data '{"verify_result": "fail", "action": "redispatch"}'
Then launch subagents and continue the pipeline from this stage.
Preserve and replay: Query the stage baseline without changing the checkout:
python3 <runtime>/agenteam_rt.py stage-baseline --run-id <run_id> \
--stage <stage> --action rollback
If allowed is true, save the current diff to
.agenteam/runs/<run_id>/<stage>/resume-recovery.patch. Offer to create a
new clean branch/worktree from the baseline and replay there. Never discard
or rewrite the current dirty checkout automatically.
If allowed is false: tell user rollback is not available in this
isolation mode.
Stop: End the run.
python3 <runtime>/agenteam_rt.py event append --run-id <run_id> \
--type run_finished --data '{"status": "stopped"}'
After resuming the interrupted stage (via verify-pass advance or
re-dispatch), continue through the remaining stages using the same
standalone pipeline flow from skills/run/SKILL.md step 6.
The remaining stages are listed in the resume plan's remaining_stages
array. Process each one in order through the standard dispatch → verify
→ gate → handoff flow.
During continuation, report thread_id, last heartbeat, heartbeat age, wall
and idle budget remaining, attempt/retry counts, and stop reason. Runtime state
is the source of truth; chat messages are not checkpoints.
When CI=true or no TTY detected:
run_finished with status: failed and
reason: "resume-verify-failed-headless". Do not prompt.stopped is user-chosen; failed is system-determinedResolve the AgenTeam runtime:
./runtime/agenteam_rt.py<plugin-install-path>/runtime/agenteam_rt.pyResolve scripts:
./scripts/<plugin-install-path>/scripts/resume-detect fails: show error, suggest checking .agenteam/state/resume-plan fails (run not found): show error with run_id