Skip to content

Configuration du projet (config.yaml) ​

Chaque champ de openspec/config.yaml : le schéma, le contexte et les règles avec lesquels ce projet fonctionne.

Emplacement ​

Chaque projet OpenSpec conserve son fichier de configuration à openspec/config.yaml, à la racine du projet.

Champs ​

CléTypeObligatoireEffet
schemastringOuiLe schéma de workflow suivi par les changements de ce projet
contextstringNonInjecté dans chaque artefact, apply et archive
rulesmap : ID d'artefact → liste de chaînesNonRègles supplémentaires ajoutées aux instructions intégrées d'un artefact
operationsmap : opération → liste d'orientationsNonOrientations consultatives pour le travail d'apply et d'archive
storestringNonRacine OpenSpec de secours lorsque ce répertoire openspec/ est uniquement de configuration
referenceslistNonStores dont les specs sont indexées dans les instructions

Les champs invalides ne font jamais échouer une commande. Chaque champ est validé individuellement, et une valeur incorrecte est ignorée avec un avertissement. Un fichier qui ne peut pas être lu ou qui n'est pas un YAML valide est ignoré avec un avertissement, sauf par openspec validate, qui quitte avec le code 1 pour que la CI le détecte.

Ce qu'il faut écrire dans ces champs est couvert dans Configuration du projet.

schema ​

Le schéma de workflow suivi par chaque changement de ce projet. Les valeurs valides sont spec-driven ou un nom de schéma défini par le projet. Exécutez openspec schemas pour lister les noms de schémas disponibles.

context ​

Texte libre injecté dans les instructions de chaque artefact et fourni à apply et archive. La limite est de 50 Ko, et une valeur plus grande est ignorée avec un avertissement.

rules ​

Règles supplémentaires pour un artefact, ajoutées aux instructions intégrées du schéma :

yaml
rules:
  proposal:
    - Keep proposals under 500 words

Les ID d'artefact ne sont pas restreints aux noms intégrés, donc les artefacts de schémas personnalisés fonctionnent comme clés.

operations ​

Orientations consultatives sur la manière dont le travail d'apply et d'archive est conduit, distinctes des règles d'artefact :

yaml
operations:
  apply:
    guidance:
      - Keep test summaries concise

Seuls apply et archive sont lus.

store ​

Un identifiant de store utilisé comme racine OpenSpec, consulté uniquement lorsque ce répertoire openspec/ est uniquement de configuration (pas de specs/ ni changes/). C'est un repli, jamais une substitution. La hiérarchie complète est Résolution de la racine.

references ​

Identifiants de stores dont les specs sont utilisées par le travail de ce projet. Un index des specs de chaque store (id, résumé, commande de récupération) est ajouté aux instructions produites. Le contenu des specs n'est jamais inclus en ligne, et la résolution de la racine n'est jamais affectée. Une entrée est un identifiant de store ou une map avec id et une source de clone remote facultative :

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

Exemple ​

Un config.yaml rempli :

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

Anciens noms ​

openspec/config.yml est lu comme alias lorsque config.yaml n'existe pas. Lorsque les deux fichiers existent, config.yaml est prioritaire et config.yml est ignoré. openspec init crée config.yaml.