Skip to content

Конфігурація проєкту (config.yaml) ​

Кожне поле openspec/config.yaml: схема, контекст та правила, з якими працює цей проєкт.

Розташування ​

Кожен проєкт OpenSpec зберігає свій конфігураційний файл у openspec/config.yaml, у корені проєкту.

Поля ​

КлючТипОбов'язковеВплив
schemastringТакСхема робочого процесу, якої дотримуються зміни цього проєкту
contextstringНіВпроваджується в кожен артефакт, apply та archive
rulesmap: ID артефакту → список рядківНіДодаткові правила, додані до вбудованих вказівок одного артефакту
operationsmap: операція → список вказівокНіРекомендаційні вказівки для роботи apply та archive
storestringНіРезервний OpenSpec root, коли цей openspec/ містить лише конфігурацію
referenceslistНіСховища, чиї специфікації індексуються у вказівках

Недійсні поля ніколи не призводять до помилки команди. Кожне поле перевіряється окремо, і неправильне значення відкидається з попередженням. Файл, який не вдається прочитати або який не є дійсним YAML, ігнорується з попередженням, за винятком openspec validate, який завершується з кодом 1, щоб CI це виявив.

Що писати в цих полях, описано в Конфігурація проєкту.

schema ​

Схема робочого процесу, якої дотримується кожна зміна в цьому проєкті. Дійсні значення — spec-driven або ім'я схеми, визначеної проєктом. Виконайте openspec schemas, щоб отримати список доступних імен схем.

context ​

Вільний текст, що впроваджується у вказівки кожного артефакту та надається для apply та archive. Обмеження — 50КБ, і більше значення ігнорується з попередженням.

rules ​

Додаткові правила для одного артефакту, додані до вбудованих вказівок схеми:

yaml
rules:
  proposal:
    - Keep proposals under 500 words

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

operations ​

Рекомендаційні вказівки щодо проведення роботи apply та archive, окремо від правил артефактів:

yaml
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 джерелом клонування:

yaml
references:
  - platform-specs
  - id: billing-specs
    remote: git@github.com:acme/billing-specs.git

Приклад ​

Заповнений config.yaml:

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.