/slashforge-resume
Resume an interrupted /slashforge-code or /slashforge-fix run from its last checkpoint instead of starting over.
On this page
/slashforge-resume
/slashforge-resume <run-id>Using Cursor or Codex? Pick your agent in the header and every command on this page changes with it. See Hosts for what else differs.
Long runs get interrupted — a closed terminal, a crashed session, a context reset.
/slashforge-resume reads the checkpoint the workflow writes after every phase and continues
from there, instead of re-running /slashforge-code
or /slashforge-fix from Phase 1 and redoing work that
already landed.
It only resumes a run. It never starts one, and it never re-does a completed phase.
How checkpointing works
Every /slashforge-code and /slashforge-fix run writes a checkpoint to
.slashforge/run_<id>.ckpt.json at the end of every successful phase, with an atomic write
(temp file, then rename) so an interrupted write never leaves a torn file. The checkpoint
records:
current_phase— the phase that just completed. Resume re-enters atcurrent_phase + 1.git_branchand the commit at checkpoint time.context_snapshot— the plan and tasks paths, which gates you have already answered, and a short summary of progress.
.slashforge/ holds machine-local run state — gitignore it.
What resume does
- Reads the latest
.slashforge/run_<id>.ckpt.json(or therun-idyou name). - Verifies the git HEAD still matches the checkpoint — the branch and the commit. If the tree has diverged, it stops and shows you the difference rather than applying later phases to work the checkpoint never saw.
- Injects the
context_snapshotas the working context. - Re-enters the workflow at
current_phase + 1and runs the phase loop as if it had never stopped.
Ingesting PR feedback
Reviewer feedback usually lands after the run has ended. Because the Phase 8 checkpoint records
the PR number, resuming a run whose PR exists makes /slashforge-resume fetch the PR’s review
state with gh first. On CHANGES_REQUESTED (or unresolved threads) it re-enters Phase 9 to
work the comments rather than current_phase + 1 — running the merge/conflict ladder first if
the base branch moved underneath. If gh is missing or unauthenticated it stops rather than
guessing, and a PR with nothing requested resumes normally.
Gates are never skipped
A mandatory gate the run had not yet reached still runs when resume gets there. A gate you already answered is recorded in the checkpoint and is not asked again.
Argument
With no argument, /slashforge-resume resumes the most recently updated checkpoint. Pass a
run-id (the <change-slug>) to resume a specific one. With no checkpoint at all, it stops
and says so — there is nothing to resume.