comet skill is a low-level Skill package and Skill Engine Run tool. It discovers explicit Skill directories, project overwrites under .comet/skills/, and built-in skills, and provides local Skill package management and advanced runtime debugging.
When creating reusable skills, it is preferred to use /comet-any]. comet skill run/comet skill continue are more suitable for debugging advanced Skill runs
If you only want to put a local Skill into the project, start with
comet skill add and comet skill show. Running, restoring, and runtime checks are advanced debugging capabilities, mainly for Engine-enabled skills.First, distinguish between platform skills and project skills
- ** Platform Skill** : Installed from
comet initorcomet updateto platform directories such as.claude/skills/and.agents/skills/, and directly discovered by the Agent platform. - ** Project Skill** : Installed from
comet skill addto.comet/skills/<name>/, resolved by name by Comet Engine, and will not automatically become platform commands.
/comet usage, project Skill management is rarely needed. These commands are mainly for installing a custom Engine Skill, overriding a built-in Skill, or debugging an Engine Run.
Common paths
Subcommand
All subcommands support
--json.
General Options
—change and —run-id are mutually exclusive: only one of them can be bound at a Run. —change bind to the OpenSpec change directory, —run-id use .comet/runs/< run-id> stores an independent Run state.Package management
add
.comet/skills/<name> (reject symbolic links and use atomic rename with a backup). The project Skill will override the built-in Skill by name. Invalid overwrite will fail closed, directly report an error and prohibit silent rollback to the built-in version.
show
Skill discovery sequence
Skill resolution searches in the following order. Stop once found:- explicit -Selector points to an existing directory and loads directly. If the path does not exist, an error will be reported and the search will not continue.
- project -
<projectRoot>/.comet/skills/<selector>, ** takes precedence over built-in **, so the project can override the built-in Skill by name. - builtin —
assets/skills/<selector>。 - None of them were found → fail closed, no silent rollback.
”Run Lifecycle”
run: Start
- Reject the adaptive package (currently).
- Reject existing runs (in change mode, there can only be one Run per directory).
- ** Create an immutable snapshot ** - Freeze the entire Skill package to
.comet/skill-snapshots/<hash>/and hash lock it to Run’sskillHash. - Initialize the Run state:
currentStep = entry,status = running. - Record the
run_startedtrajectory event. - The engine parses entry step, constructs the first action, passes guardrails, writes pending action,
status = waiting.
continue: Submit the result or restore
With outcome (actual progress) :state_migrated event.
check: Check as needed
--scope can be selected as progress, step or completion (default is progress). Read the runtime checks of comet/checks.yaml.
Run state store
Run state is machine-owned. ** Do not edit manually **. Onlyrun_id will be mirrored to .comet.yaml.
Attached files (all in the change/run directory) :
All file I/O operations are sandboxed within the “change/run” directory, and absolute paths,
~, drive letters, and .. path traversals are rejected. The write is atomic (write to tmp and then rename).
Text mode recovery prompt
In text mode,comet skill prints Pending action and Next: so you can see what to do after a paused Run or failed eval.
For example, run outputs:
check fails, it will prompt:
Next step
- Skill and Engine (Advanced) - Understand the semantics of Skill packages and Skill Run (Engine Run), pending action, immutable snapshots
- Runtime check - Distinguish between
comet skill checkandcomet eval - Overview of Skill Creator - The main entry point for Creating Reusable Skills

