Skip to main content
After a session is interrupted, the context is compressed, or the device is changed, simply re-enter /comet to restore it. Comet first reads the project root configuration, enters /comet-native or /comet-classic, and then continues from its own disk state by the corresponding workflow. Neither side will scan, guess or convert the change on the other side.

The shortest path

Enter: In the Agent platform
Comet does not rely on dialogue history: Classic re-read project configuration, OpenSpec, .comet.yaml, and runtime evidence.
Those two are diagnostic commands and are only used when appears to have a problem with (CLI/Skill) The installation is broken, the change does not route, and the evidence does not match. Recovery is /comet normally One step to perfection.

You can also directly say “continue”.

Starting from 0.4.0-beta.4, comet init and comet update will incorporate a Comet recovery description into the project’s AGENTS.md and CLAUDE.md. When a long-term task is compressed in context, continues across sessions or devices, the Agent may have forgotten that the current request originally belonged to Comet, and the user has not re-entered /comet. At this point, the Agent can first run the read-only comet resume-probe to determine whether “continue the previous login refactoring” corresponds to the existing change, and then decide whether to re-enter the workflow. This description only restricts Comet’s recovery detection and will retain the existing user rules in the file. The probe first parses the configuration and then only checks one set of workflows. It will not roll back when the configuration is damaged. The ambient_resume: false in .comet/config.yaml can turn off probes triggered by ordinary requests. It will not affect the explicit /comet, nor will it bypass existing decision points. For details, please refer to the Restore Detection Command

How to restore Classic

This section also explains the background mechanism: which files /comet-classic rereads and which rules it uses to route to the next phase. You only need to enter /comet continue; Comet completes the routing below automatically.
The recovery ability of /comet-classic depends on several mechanisms: Routing during recovery (stops upon hit, subject to file status) : As long as there is one active Classic change, /comet-classic automatically selects it; when there are multiple, it presents a list for you to choose from. If you resume through natural language and there are multiple active changes, Comet will not pick one for you automatically; the recovery probe returns ask_user and waits for you to specify the target change.

Workspace reuse of Classic Change

When creating or restoring a Classic change, Comet first reads the branch and worktree bindings recorded on the change. Any matching registered worktree is reused directly; if no matching worktree is found but the branch still exists, the recovery process recreates it. If the current directory, branch, and worktree do not match, Comet pauses to wait for your selection instead of silently switching workspaces. Simply run /comet or /comet continue from the target project directory. If multiple active changes exist, select your target before continuing Classic. Do not attempt to manually copy change directories to restore work.

Restoring on a different device or platform

Classic states that can be recovered across devices are saved in repository files: .comet/config.yaml, OpenSpec artifact roots (docs/openspec/ for new projects), the change’s .comet.yaml, running evidence, and docs/superpowers/. When opening the same repository on another device or platform, /comet reconstructs state from these files. For cross-device recovery of Native changes, see the Recovery Playbook.
Important note: Uncommitted workspace edits will not be pushed to the remote repository. Before switching devices, commit and push your code; otherwise, the new device will restore to a clean workspace lacking those uncommitted edits (task completion status in tasks.md will still be preserved).

Cross-Device Breakpoint Recovery

The diagram below illustrates cross-device breakpoint recovery: as long as repositories are synced, /comet can reconstruct breakpoints from file states across devices or platforms without requiring manual context handoff. Cross-device breakpoint recovery

What should be done after context compression

If the Agent platform where Classic change is located automatically compresses the context, re-enter /comet. The project configuration will re-enter Classic, and the internal /comet-classic will be restored to the overloaded state according to the protocol. Read the brainstorm-summary.md, handoff handover packet and .comet/subagent-progress.md when necessary. You don’t need to operate these files manually.

Recover from any stage entry

Classic resumes normal use of /comet. The stage and preset entry points are only for manual control or debugging: /comet-open, /comet-design, /comet-build, /comet-verify, /comet-archive, /comet-hotfix, /comet-tweak. There is a deterministic guarantee here: when each phase Skill enters, it first locates its own scripts, then runs the entry check or recovery check for that phase. The phase is always determined by the current file state.
  • If the inspection reveals that the actual phase, workflow or evidence belongs to ** another ** Skill, switch according to the script output and /comet-classic routing rules, ** do not continue writing the state in the wrong phase **.
  • If there are any uncommitted changes to the working tree, first attribute them using the rule of comet/reference/dirty-worktree.md.
This rule enables you to skip the unified entry and Classic when already knows which stage you are in Internal routing Directly enter the corresponding stage, and at the same time ensure that even if the stage is remembered wrongly, the status will not be disrupted: The entry check will block calls that do not match the file state.

Special circumstances for recovery during the build phase

The recovery during the build phase is the most complex, but in most cases, /comet-classic can also handle it automatically When the subagent mode (build_mode: subagent-driven-development) is restored, the main session will not directly execute the task. Instead, it will return to the backend sub-agent scheduling rules, where the main session only performs coordination.

When there are unsubmitted changes

If there are uncommitted changes in the workspace, Comet will automatically make ** attribution ** without you having to explain what has been changed first:
  • The changes belong to the current change → Fold in and continue
  • Unrelated to the current change → Pause asked how to handle (merge/split new change/retain/discard)
  • Source uncertain → Suspend the list of reporting documents and the basis for judgment
The built products (such as node_modules/, dist/, etc., .gitignore) will be automatically excluded and modified by improper users.
dirty worktree only represents code facts. will not automatically advance .com et. tasks to yaml phase or checked. Md Only after completing attribution, verification, and passing the stage guard will the status be advanced.

When you need to intervene

/comet-classic can automatically promote unambiguous connections, but the ** decision point ** must be clearly chosen by you. Common situations that require your intervention during recovery:
  • ** Verification Failed ** (verify_result: fail) : You need to decide whether to fix it or accept the deviation
  • ** True plan-ready pause ** : You need to select the isolation and execution methods
  • ** Missing build decision ** : You need to make up the selection of isolation/build_mode/tdd_mode
  • ** Unattributed unsubmitted changes ** : You need to specify the attribution of the changes
  • ** Multiple active changes ** : You need to choose which one to restore
The rest are the inherent pause points of each stage (see Five-stage pause points ). Beyond these, /comet-classic will automatically advance.

When should comet status/comet doctor be used

These two are diagnostic tools, not essential steps for recovery:
runtime_eval will tell you whether the evidence of the declared steps is really on the disk. When it fails, run < command > or restore missing evidence will be prompted.

Next step

Last modified on October 22, 2026