Конфігурація проєкту
Налаштуйте робочі процеси так, як вам потрібно, за допомогою кількох рядків у 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: контекст -->
<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 — це фон, який агент отримує, коли створює артефакт, застосовує завдання або архівує зміну.
context: |
Ми випускаємо крос-платформові продукти. Дизайни та завдання мають охоплювати Windows, macOS і Linux
Пишіть усі артефакти іспанськоюВикористовуйте context для фактів і обмежень, які мають формувати результат робочого процесу. Тривалу документацію проєкту зберігайте у файлах документації проєкту, а все, що агент може дізнатися, читаючи код, залиште поза контекстом.
Інша мова: оскільки контекст потрапляє до кожного артефакту, ви можете додати Пишіть усі артефакти іспанською., щоб інструктувати агента писати артефакти proposal, spec, design і tasks іспанською.
rules
rules прикріплюються до одного артефакту, ключуючись за ідентифікатором артефакту. Кожен рядок додається до вбудованої інструкції цього артефакту:
rules:
proposal:
- Тримайте пропозиції до 500 слів
tasks:
- Кожне UI-завдання включає тест PlaywrightТепер пропозиції залишаються короткими, а tasks.md завжди планує браузерні тести. Решта артефактів не змінюються.
operations
operations визначає, як агент виконує apply та archive, а не те, що кажуть артефакти:
operations:
apply:
guidance:
- Запускайте лінтер перед позначенням завдання як завершеного
archive:
guidance:
- Підсумуйте, що було випущено, перед архівуваннямПід час apply агент виконує лінт, завершуючи завдання. Під час archive він завершує підсумком.
Коли config.yaml недостатньо
Config додає інструкції поверх стандартного робочого процесу, але не може змінити, які артефакти існують або як вони структуровані. Коли вам потрібен такий рівень контролю або правила не скеровують поведінку послідовно, розгалужіть схему.