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: контекст -->
  <project_context>
    Дизайни та завдання мають охоплювати Windows, macOS і Linux
    Пишіть усі артефакти іспанською
  </project_context>

  <!-- З вашого config.yaml: правила для tasks -->
  <rules>
    - Завершуйте кожне завдання комітом
  </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: |
  Ми випускаємо крос-платформові продукти. Дизайни та завдання мають охоплювати Windows, macOS і Linux
  Пишіть усі артефакти іспанською

Використовуйте context для фактів і обмежень, які мають формувати результат робочого процесу. Тривалу документацію проєкту зберігайте у файлах документації проєкту, а все, що агент може дізнатися, читаючи код, залиште поза контекстом.

Інша мова: оскільки контекст потрапляє до кожного артефакту, ви можете додати Пишіть усі артефакти іспанською., щоб інструктувати агента писати артефакти proposal, spec, design і tasks іспанською.

rules ​

rules прикріплюються до одного артефакту, ключуючись за ідентифікатором артефакту. Кожен рядок додається до вбудованої інструкції цього артефакту:

yaml
rules:
  proposal:
    - Тримайте пропозиції до 500 слів
  tasks:
    - Кожне UI-завдання включає тест Playwright

Тепер пропозиції залишаються короткими, а tasks.md завжди планує браузерні тести. Решта артефактів не змінюються.

operations ​

operations визначає, як агент виконує apply та archive, а не те, що кажуть артефакти:

yaml
operations:
  apply:
    guidance:
      - Запускайте лінтер перед позначенням завдання як завершеного
  archive:
    guidance:
      - Підсумуйте, що було випущено, перед архівуванням

Під час apply агент виконує лінт, завершуючи завдання. Під час archive він завершує підсумком.

Коли config.yaml недостатньо ​

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