Конфігурація проєкту (config.yaml)
Кожне поле openspec/config.yaml: схема, контекст та правила, з якими працює цей проєкт.
Розташування
Кожен проєкт OpenSpec зберігає свій конфігураційний файл у openspec/config.yaml, у корені проєкту.
Поля
| Ключ | Тип | Обов'язкове | Вплив |
|---|---|---|---|
schema | string | Так | Схема робочого процесу, якої дотримуються зміни цього проєкту |
context | string | Ні | Впроваджується в кожен артефакт, apply та archive |
rules | map: ID артефакту → список рядків | Ні | Додаткові правила, додані до вбудованих вказівок одного артефакту |
operations | map: операція → список вказівок | Ні | Рекомендаційні вказівки для роботи apply та archive |
store | string | Ні | Резервний OpenSpec root, коли цей openspec/ містить лише конфігурацію |
references | list | Ні | Сховища, чиї специфікації індексуються у вказівках |
Недійсні поля ніколи не призводять до помилки команди. Кожне поле перевіряється окремо, і неправильне значення відкидається з попередженням. Файл, який не вдається прочитати або який не є дійсним YAML, ігнорується з попередженням, за винятком openspec validate, який завершується з кодом 1, щоб CI це виявив.
Що писати в цих полях, описано в Конфігурація проєкту.
schema
Схема робочого процесу, якої дотримується кожна зміна в цьому проєкті. Дійсні значення — spec-driven або ім'я схеми, визначеної проєктом. Виконайте openspec schemas, щоб отримати список доступних імен схем.
context
Вільний текст, що впроваджується у вказівки кожного артефакту та надається для apply та archive. Обмеження — 50КБ, і більше значення ігнорується з попередженням.
rules
Додаткові правила для одного артефакту, додані до вбудованих вказівок схеми:
rules:
proposal:
- Keep proposals under 500 wordsІдентифікатори артефактів не обмежуються вбудованими назвами, тому артефакти з користувацьких схем працюють як ключі.
operations
Рекомендаційні вказівки щодо проведення роботи apply та archive, окремо від правил артефактів:
operations:
apply:
guidance:
- Keep test summaries conciseЧитаються лише apply та archive.
store
Ідентифікатор сховища, що використовується як OpenSpec root, використовується лише тоді, коли цей каталог openspec/ містить лише конфігурацію (без specs/ або changes/). Це резерв, ніколи не перевизначення. Повна послідовність — Визначення root.
references
Ідентифікатори сховищ, на чиї специфікації спирається робота цього проєкту. Індекс специфікацій кожного сховища (id, summary, fetch command) додається до виводу вказівок. Вміст специфікацій ніколи не вбудовується, і визначення root ніколи не змінюється. Запис — це ідентифікатор сховища або map з id та необов'язковим remote джерелом клонування:
references:
- platform-specs
- id: billing-specs
remote: git@github.com:acme/billing-specs.gitПриклад
Заповнений config.yaml:
schema: spec-driven
context: |
Designs and tasks must cover Windows, macOS, and Linux
Write all artifacts in Spanish
rules:
proposal:
- Keep proposals under 500 words
- Always state what is out of scope
tasks:
- Break tasks into chunks of max 2 hours
operations:
apply:
guidance:
- Keep test summaries concise
archive:
guidance:
- Summarize the archive outcome before finishingЗастарілі назви
openspec/config.yml читається як псевдонім, коли config.yaml не існує. Коли обидва файли існують, config.yaml має пріоритет, а config.yml ігнорується. openspec init створює config.yaml.