OpenSpec
Настройка

Конфигурация проекта

С помощью нескольких строк в config.yaml настройте процессы так, чтобы они планировали изменения нужным вам образом.

Файл openspec/config.yaml определяет, как процессы должны планировать изменения.

Например, следующая конфигурация изменяет правила создания артефакта tasks.md:

rules:
  tasks:
    - End every task with a commit

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

Формулируйте правила кратко. Всё указанное здесь попадает в контекст агента, а слишком подробные правила могут ухудшить результат.

Как это работает

В config.yaml содержатся инструкции, которые агент получает при создании артефактов или выполнении процесса.

При каждом запуске происходит следующее:

  1. Вы запускаете процесс (например, /openspec-propose).
  2. Агент вызывает команду openspec instructions.
  3. Команда считывает контекст и правила из config.yaml.
  4. Встроенные инструкции OpenSpec и пользовательские настройки объединяются в один промпт для агента.
  5. Агент создаёт артефакт в соответствии с этим промптом.

Например, при наличии поля 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 недостаточно

Конфигурация добавляет инструкции к стандартному процессу, но не может изменить состав артефактов или их структуру. Если вам нужен такой уровень контроля или правила не позволяют стабильно управлять поведением, создайте форк схемы.

On this page