Конфигурация проекта
Настройте рабочие процессы так, чтобы они планировали изменения именно так, как вы хотите, с помощью нескольких строк в config.yaml.
openspec/config.yaml сообщает рабочим процессам, как вы хотите планировать изменения.
Например, следующая конфигурация обновляет правила создания артефакта tasks.md:
rules:
tasks:
- End every task with a commitПри запуске агент использует эти правила и гарантирует, что каждая задача завершается шагом коммита.
Держите правила краткими. Всё здесь попадает в контекст агента, и избыточные правила могут ухудшить результат.
Как это работает
config.yaml содержит инструкции, которые агент получает при создании артефактов или прохождении рабочего процесса.
Вот что происходит при каждом запуске:
- Вы запускаете рабочий процесс (например,
/openspec-propose). - Агент вызывает команду
openspec instructions. - Команда считывает ваш контекст и правила из config.yaml.
- Встроенные инструкции OpenSpec и ваши настройки объединяются в единый запрос для агента.
- Агент следует этому запросу для записи артефакта.
Например, при наличии поля context и правила из начала этой страницы, вот что возвращает openspec instructions для tasks.md (сокращённо и с аннотациями):
<artifact id="tasks" change="add-dark-mode" schema="spec-driven">
<!-- Из вашего config.yaml: context -->
<project_context>
Мы выпускаем кроссплатформенное ПО. Дизайн и задачи должны охватывать Windows, macOS и Linux
Записывайте все артефакты на испанском
</project_context>
<!-- Из вашего config.yaml: правила для tasks -->
<rules>
- End every task with a commit
</rules>
<!-- Из OpenSpec: встроенные рекомендации -->
<instruction>
...как написать хороший tasks.md...
</instruction>
<template>
...структура tasks.md для заполнения...
</template>
</artifact>Ваша конфигурация поступает первой, затем встроенная инструкция и шаблон OpenSpec. Правила дополняют встроенные и никогда их не заменяют. Изменения в config.yaml доходят до агента при следующем запуске.
Поля
Три поля определяют, что получает агент. Точный контракт каждого поля (типы, ограничения, валидация) описан в Конфигурация проекта (config.yaml).
| Поле | Что оно делает | Внедряется в |
|---|---|---|
context | Инструкции, которые агент всегда получает | Всё: каждый артефакт, apply, archive |
rules | Дополнительные инструкции для одного артефакта | Только создание этого артефакта |
operations | Рекомендации по выполнению шага рабочего процесса | Только apply и archive |
Другие поля config.yaml (schema, store, references) выбирают, какую схему и какой корень OpenSpec использует проект. Они описаны на странице контракта.
Последняя колонка точна, поэтому поле попадает только в перечисленные там шаги. В частности, verify никогда не получает rules. Он проверяет реализацию по записанным артефактам.
context
context — это фоновая информация, которую агент получает при создании артефакта, применении задач или архивации изменения.
context: |
We ship cross-platform. Designs and tasks must cover Windows, macOS, and Linux
Write all artifacts in SpanishИспользуйте context для фактов и ограничений, которые должны влиять на результат рабочего процесса. Долгосрочную документацию проекта храните в файлах документации проекта и исключайте всё, что агент может узнать, читая код.
Другой язык: поскольку context попадает в каждый артефакт, вы можете добавить Write all artifacts in Spanish., чтобы указать агенту записывать артефакты proposal, spec, design и tasks на испанском.
rules
rules привязываются к одному артефакту по его идентификатору. Каждая строка добавляется к встроенным рекомендациям этого артефакта:
rules:
proposal:
- Keep proposals under 500 words
tasks:
- Every UI task includes a Playwright testТеперь предложения остаются краткими, а tasks.md всегда планирует браузерные тесты. Все остальные артефакты не затрагиваются.
operations
operations управляют тем, как агент выполняет apply и archive, а не тем, что говорят артефакты:
operations:
apply:
guidance:
- Run the linter before marking a task complete
archive:
guidance:
- Summarize what shipped before archivingВо время apply агент запускает линтер по мере завершения задач. Во время archive он завершает работу сводкой.
Когда config.yaml недостаточно
Конфигурация добавляет инструкции поверх стандартного рабочего процесса, но не может изменить, какие артефакты существуют или как они структурированы. Когда вам нужен такой уровень контроля или правила непоследовательно управляют поведением, создайте форк схемы.