Skip to main content
Comet keeps requirements facts, design plans, runtime state, and user-generated Skills in separate files. Knowing where each category lives helps you recover interrupted work, debug bad state, and integrate Comet with CI. All recovery state lives in repository files, not chat history. After a device switch, platform switch, or context compaction, /comet can rebuild state from files.

Xiaoyu marks the repository layers that hold requirements facts, design plans, runtime state, and project Skills

Comet splits recoverable facts across repository files so work can resume across devices and sessions.

This page focuses on the Classic directory structure. Native keeps user-readable artifacts and device-local execution state separately; see Artifacts and state for its directory structure.

Classic workflow directories

New Classic and dual-workflow projects use the documentation layout by default:
classic.artifact_layout accepts docs or legacy. docs maps to docs/openspec/, while legacy maps to root-level openspec/. These are the two supported layouts; the field does not accept an arbitrary path.
Upgrading does not move an existing Classic project’s root-level openspec/. To migrate from the legacy layout to docs/openspec/, see Migrate Classic layout.

Runtime artifacts inside a change

Most files in this directory are maintained automatically by Comet (machine-owned). Do not edit them manually unless a recovery guide specifically tells you to.
brainstorm-summary.md and subagent-progress.md are recovery anchors. After context compaction, an Agent reloads them to continue. You normally do not need to read these files, but knowing where they live helps with troubleshooting.

Project-level .comet directory

Only directories for features you use will exist. A project that has never used /comet-any will not have bundle directories.
A repository-root .comet.yaml or comet.yaml is not a Comet config file and is not read as workflow state. Project defaults live in .comet/config.yaml. New projects store Classic change state in docs/openspec/changes/<name>/.comet.yaml ; projects that retain the legacy layout continue to use openspec/changes/<name>/.comet.yaml.

Responsibilities

What to commit

  • Commit: the Classic artifact root (docs/openspec/ for new projects or openspec/ for retained legacy layouts), docs/superpowers/, .comet/config.yaml, and .comet/skill-preferences.yaml. These files are the basis for cross-device recovery and must be committed before you can restore work on a new device. See Artifacts and state for Native artifact commit guidance.
  • Maybe commit: .comet/skills/, .comet/bundles/ if the team shares them.
  • Usually ignore: .comet/tmp/ and temporary runtime files.
The boundary between .comet.yaml and run-state.json is important: .comet.yaml stores the user-understandable workflow projection such as phase, build_mode, and verify_result, and links to Engine through run_id. Full Run details live in run-state.json. The append-only event log explains successful state transitions; it is not the current state source. Read .comet.yaml for current progress and the event log when you need to understand why it changed.

Next steps

Last modified on September 2, 2026