Конфигурация проекта (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.