OpenSpec
СправочникConfiguration

Конфигурация проекта (config.yaml)

Каждое поле openspec/config.yaml: схема, контекст и правила, которыми руководствуется этот проект при планировании.

Расположение

В каждом проекте OpenSpec файл конфигурации находится в openspec/config.yaml в корне проекта.

Поля

КлючТипОбязательноеДействие
schemaстрокаДаСхема процесса, которой следуют изменения этого проекта
contextстрокаНетДобавляется в каждый артефакт и передаётся операциям применения и архивирования
rulesотображение: ID артефакта → список строкНетДополнительные правила, добавляемые к встроенным указаниям одного артефакта
operationsотображение: операция → список указанийНетРекомендательные указания для работы по применению и архивированию
storeстрокаНетРезервный корень OpenSpec, используемый, когда этот openspec/ содержит только конфигурацию
referencesсписокНетХранилища, спецификации которых индексируются для включения в инструкции

Недопустимые поля никогда не приводят к сбою команды. Каждое поле проверяется отдельно, а недопустимое значение отбрасывается с предупреждением.

Содержимое этих полей описано в разделе Конфигурация проекта.

schema

Схема процесса, которой следует каждое изменение в этом проекте. Допустимые значения: spec-driven или имя схемы, определённой в проекте. Запустите openspec schemas, чтобы вывести список доступных имён схем.

context

Произвольный текст, который добавляется в инструкции каждого артефакта и передаётся операциям применения и архивирования. Ограничение — 50KB; большее значение игнорируется с предупреждением.

rules

Дополнительные правила для одного артефакта, добавляемые к встроенным указаниям схемы:

rules:
  proposal:
    - Keep proposals under 500 words

Идентификаторы артефактов не ограничены встроенными именами, поэтому артефакты из пользовательских схем можно использовать как ключи.

operations

Рекомендательные указания по выполнению операций применения и архивирования, отдельно от правил артефактов:

operations:
  apply:
    guidance:
      - Keep test summaries concise

Читаются только apply и archive.

store

Идентификатор хранилища, используемый в качестве корня OpenSpec. Он учитывается только тогда, когда каталог openspec/ содержит только конфигурацию (нет specs/ или changes/). Это резервный вариант, а не переопределение. Полная последовательность приведена в разделе Определение корня.

references

Идентификаторы хранилищ, на спецификации которых опирается работа этого проекта. В вывод инструкций добавляется индекс спецификаций каждого хранилища (идентификатор, краткое описание, команда получения). Содержимое спецификаций никогда не встраивается, а определение корня не изменяется. Запись представляет собой идентификатор хранилища или отображение с id и необязательным remote, указывающим источник клонирования:

references:
  - platform-specs
  - id: billing-specs
    remote: git@github.com:acme/billing-specs.git

Пример

Заполненный config.yaml:

schema: spec-driven

context: |
  Designs and tasks must cover Windows, macOS, and Linux
  Write all artifacts in Spanish

rules:
  proposal:
    - Keep proposals under 500 words
    - Always state what is out of scope
  tasks:
    - Break tasks into chunks of max 2 hours

operations:
  apply:
    guidance:
      - Keep test summaries concise
  archive:
    guidance:
      - Summarize the archive outcome before finishing

Устаревшие имена

openspec/config.yml читается как псевдоним, если config.yaml не существует. Если существуют оба файла, приоритет имеет config.yaml, а config.yml игнорируется. openspec init создаёт config.yaml.

On this page