Skip to main content
.comet/config.yaml is a project-level configuration, with a global copy. This page only covers the Classic related parts: the shared entry field and the default values of classic.*. The meaning of the native.* field can be found in Native Configuration The following text uses <classic-root> to represent the current Classic OpenSpec root directory: The default for new projects is docs/openspec/, and for projects that retain the old layout, it is openspec/. The actual location is determined by classic.artifact_layout. For details, please refer to Project File structure

Complete example

When two sets of workflows are enabled simultaneously and Chinese is selected, project-level installation will generate a similar configuration (from the Classic perspective, only shared fields and classic: blocks are concerned) :

Shared entry field

Modifying default_workflow only changes the entry of /comet without migrating any changes.

Hook write release

hook.allow_paths is a shared write release policy: when it is empty by default, writes within the project (outside the product area) are determined according to the Classic’s own phase and guard rules. After configuration, writes to the matching directory and its subdirectories will be directly allowed. A typical application is to enable the implementation code directory (such as src/) to be modified at any stage, avoiding triggering interception during non-coding phases.
The openspec and superpowers product roots of .comet (Runtime state) and Classic are always protected and cannot be released through this configuration. Path out-of-bounds or format errors will report an error during the comet doctor check.

”Classic field”

artifact_layout is the project-level directory selection. The remaining four items will be snapshots to .comet.yaml of the new Classic change when it is created:
Classic project defaults snapshot when creating the new change to .com et. The yaml; Subsequent modifications will not retrospectively change the existing changes.
Directly modifying classice.artifact_layout will only change Comet The directory read will not move existing products. When switching layouts for existing projects, should be used comet classic root move docs —dry-run check the current status, conflicts and blocking items, and then use comet classic root move docs —apply to perform migration.

The difference between product language and Skill language

The “Skill language” in comet init will determine whether to install the Chinese or English version of Comet Skill. The product language of Classic is written in classic.language: When creating a new Classic change later, Comet will snapshot the project-level classic.language to <classic-root>/changes/<name>/.comet.yaml. OpenSpec proposal, design, tasks, Superpowers Design/Plan, verification report and archive description are all based on this snapshot as the output language.
Project-level and change-level language values only accept en or zh-CN. zh is only used for comet init - language zh CLI options, not .com et/config yaml legal values.

Configuration priority

The following priorities only describe the Classic language, context_compression, review_mode and auto_transition:

Detailed Explanation of auto_transition

Whether the next Skill is automatically called after the control phase of auto_transition advances.
phase advance must occur - guard - updated phase apply always The field is independent of auto_transition. auto_transition only affects whether the next one is automatically called “Skill. User decision points (confirming proposals, choosing execution methods, etc.) regardless of auto_transition Anything can block.
Environment variable coverage (only effective when the change level is empty) :

Environmental variable

COMET_LANGUAGE、COMET_AUTO_TRANSITION、COMET_FORCE_PHASE、 COMET_OPENSPEC are environment variables available to users. COMET_CONTEXT_COMPRESSION and COMET_REVIEW_MODE exists in the parsing layer but is not officially recorded in the user documentation. It is mainly used internally and for testing.

How to configure

Configure the default values of the project

Editor: .comet/config.yaml
When submitted to the repository, new changes for team members will use these default values.

Temporary coverage (environment variable)

Affect the current session and do not modify the file.

Next step

  • State management -.comet.yaml field Full table and state machine hard constraints
  • Context Compression mechanism ](/en/concepts/context-compression) - Detailed Explanation of the off/beta Mode of context_compression
  • Detailed Explanation of the Code Review mechanism - off/standard/thorough of review_mode
  • Detailed Explanation of the behavior of the automatic propulsion mechanism ](/en/concepts/auto-transition) - auto_transition
  • Project file structure - Where are the configurations and products placed respectively
Last modified on September 2, 2026