Skip to content

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

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

openspec/config.yaml сообщает рабочим процессам, как вы хотите планировать изменения.

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

yaml
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 (сокращённо и с аннотациями):

xml
<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 — это фоновая информация, которую агент получает при создании артефакта, применении задач или архивации изменения.

yaml
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 привязываются к одному артефакту по его идентификатору. Каждая строка добавляется к встроенным рекомендациям этого артефакта:

yaml
rules:
  proposal:
    - Keep proposals under 500 words
  tasks:
    - Every UI task includes a Playwright test

Теперь предложения остаются краткими, а tasks.md всегда планирует браузерные тесты. Все остальные артефакты не затрагиваются.

operations ​

operations управляют тем, как агент выполняет apply и archive, а не тем, что говорят артефакты:

yaml
operations:
  apply:
    guidance:
      - Run the linter before marking a task complete
  archive:
    guidance:
      - Summarize what shipped before archiving

Во время apply агент запускает линтер по мере завершения задач. Во время archive он завершает работу сводкой.

Когда config.yaml недостаточно ​

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