Skill detail

cancel

End any active pipeline stage (deep-interview, deep-dive, trace, ralplan, ralph, team) and clean up .omm/ state left running or in progress. Use ONLY when the user explicitly asks to cancel, stop, or abandon current work, or invokes /cancel. Do NOT use to pause and resume later (leave in-progress state alone if the user just wants a break), and do not use it to undo already-committed code changes — this skill stops orchestration state, it does not revert files.

Why we recommend it: Ends any active Muse pipeline stage (deep-interview, deep-dive, trace, ralplan, ralph, team) and cleans up .omm/ state, cancelling live subagents and archiving in-flight artifacts.

MatchDirectRecommended for Muse
Sourcesiddicky/​oh-my-musecodeExternal source
Reported installsNot reportedPopularity signal only

Inspect before use

Read the source instructions and check the requirements before you install this skill.

Saved source preview

SKILL.md

The saved excerpt is a snapshot from when this skill was listed. The external source remains the complete and most current version.

---
name: cancel
description: End any active pipeline stage (deep-interview, deep-dive, trace, ralplan, ralph, team) and clean up .omm/ state left running or in progress. Use ONLY when the user explicitly asks to cancel, stop, or abandon current work, or invokes /cancel. Do NOT use to pause and resume later (leave in-progress state alone if the user just wants a break), and do not use it to undo already-committed code changes — this skill stops orchestration state, it does not revert files.
---

# Cancel

Stop whatever pipeline stage is active and leave `.omm/` state in a clean,
honest, resumable-or-discardable condition. Explicit invocation only — like
every skill here, nothing auto-cancels on your behalf; the user has to ask.

## Scope

This skill ends orchestration state. It does not:

- Revert code changes already made to the working tree. If the user also
  wants that, they need to say so separately (`git` operations are a
  distinct, more destructive action and should never be inferred from a
  bare "cancel").
- Kill a task the user actually wants paused rather than abandoned. If the
  request is genuinely "pause, I'll come back to this," leave the state
  files as they are — this skill is for "stop, and I mean stop," not for a
  checkpoint.

If it is unclear which the user means, ask before deleting anything —
cleanup here is one-directional.

## What "active" means

Check for state that implies an in-flight stage:

- `.omm/specs/*.md` with no terminal approval marker (an interview left
  mid-round or a spec left unapproved).
- `.omm/state/trace-*.md` for a trace that never converged.
- `.omm/state/prd.json` with any story `status` other than `"done"` or
  `"blocked"`.
- Any `subagent_spawn` children still running from a `team` or `ralph` run
  in this session — check with `subagent_status` across tracked ids.

## Steps

1. **Cancel live subagents first.** For every tracked subagent id from an
   active `team` or `ralph` run that is still running, call
   `subagent_cancel` and wait for terminal cancellation
   (`subagent_wait`/`subagent_status`) before touching files — do not leave
   a subagent writing into a worktree you are about to declare abandoned.
2. **Mark state, don't just delete it.** For each in-flight artifact found
   above, decide with the user (or from their instruction) whether to:
   - **Discard**: delete the file/entry. Only do this for state the user
     explicitly wants gone.
   - **Archive**: move it under `.omm/logs/cancelled/<timestamp>-<name>` so
     the evidence of what was attempted survives even though the run did
     not complete. Prefer this default over silent deletion — an
     abandoned run is still useful history.
3. **Leave completed work alone.** Stories already `"done"` in `prd.json`,
   approved specs, and merged `team` results are not part of what gets
   cleaned up — cancel affects the active/pending state, not history that
   already succeeded.
4. **Report exactly what changed.** List every file archived or deleted and
   every subagent cancelled. Do not report "cancelled" if some tracked
   subagent could not be confirmed terminal — say so and flag it instead of
   claiming a clean stop.

## Worktrees

If a `team` or `ralph` run left worktrees under muse's worktree area from
`worktree_isolation`, note their existence in the report so the user can
decide whether to keep or discard them — this skill does not assume
authority to delete a worktree that might contain unmerged, wanted work.

## Handoff

Cancel is terminal by design — it does not chain into anything. After
reporting, stop. If the user wants to restart the same effort, they invoke
the relevant skill again explicitly; cancel does not offer to do that for
them.
Read the full source on GitHub (opens external page)
Context

Related work