Конфигурация проекта
С помощью нескольких строк в 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">
<!-- From your config.yaml: context -->
<project_context>
Designs and tasks must cover Windows, macOS, and Linux
Write all artifacts in Spanish
</project_context>
<!-- From your config.yaml: rules for tasks -->
<rules>
- End every task with a commit
</rules>
<!-- From OpenSpec: the built-in guidance -->
<instruction>
...how to write a good tasks.md...
</instruction>
<template>
...the tasks.md structure to fill in...
</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 для фактов и ограничений, которые должны влиять на результаты работы процесса. Постоянную документацию проекта храните в файлах его документации и не включайте сведения, которые агент может узнать из кода.
Другой язык: поскольку контекст передаётся в каждый артефакт, можно добавить Write all artifacts in Spanish., чтобы агент создавал на испанском языке артефакты предложения, спецификации, дизайна и задач.
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 агент проверяет код линтером по мере завершения задач. При архивировании он завершает работу итоговой сводкой.
Когда возможностей config.yaml недостаточно
Конфигурация добавляет инструкции к стандартному процессу, но не может изменить состав артефактов или их структуру. Если вам нужен такой уровень контроля или правила не позволяют стабильно управлять поведением, создайте форк схемы.