Configurazione del progetto (config.yaml)
Ogni campo di openspec/config.yaml: lo schema, il contesto e le regole con cui questo progetto opera.
Posizione
Ogni progetto OpenSpec mantiene il proprio file di configurazione in openspec/config.yaml, nella radice del progetto.
Campi
| Chiave | Tipo | Obbligatorio | Effetto |
|---|---|---|---|
schema | string | Sì | Lo schema di flusso di lavoro seguito dalle modifiche di questo progetto |
context | string | No | Iniettato in ogni artefatto, apply e archive |
rules | map: artifact ID → list of strings | No | Regole aggiuntive alla guida integrata di un artefatto |
operations | map: operation → guidance list | No | Guida consulenziale per il lavoro di apply e archive |
store | string | No | Root OpenSpec di riserva quando questo openspec/ è solo configurazione |
references | list | No | Store le cui specifiche sono indicizzate nelle istruzioni |
I campi non validi non causano mai il fallimento di un comando. Ogni campo viene validato singolarmente e un valore errato viene scartato con un avviso. Un file che non può essere letto o che non è YAML valido viene ignorato con un avviso, tranne che da openspec validate, che termina con codice 1 affinché la CI lo rilevi.
Cosa scrivere in questi campi è trattato in Configurazione del progetto.
schema
Lo schema di flusso di lavoro seguito da ogni modifica in questo progetto. I valori validi sono spec-driven o un nome di schema definito dal progetto. Esegui openspec schemas per elencare i nomi di schema disponibili.
context
Testo libero iniettato nelle istruzioni di ogni artefatto e fornito ad apply e archive. Il limite è 50KB e un valore più grande viene ignorato con un avviso.
rules
Regole aggiuntive per un artefatto, aggiunte alla guida integrata dello schema:
rules:
proposal:
- Keep proposals under 500 wordsGli ID degli artefatti non sono limitati ai nomi integrati, quindi gli artefatti di schemi personalizzati funzionano come chiavi.
operations
Guida consulenziale su come viene condotto il lavoro di apply e archive, separata dalle regole degli artefatti:
operations:
apply:
guidance:
- Keep test summaries conciseVengono letti solo apply e archive.
store
Uno store id usato come root OpenSpec, consultato solo quando questa directory openspec/ è solo configurazione (nessuna specs/ o changes/). È una riserva, mai una sostituzione. La sequenza completa è Root resolution.
references
Store id le cui specifiche sono utilizzate dal lavoro di questo progetto. Un indice delle specifiche di ogni store (id, riepilogo, comando di recupero) viene aggiunto all'output delle istruzioni. Il contenuto delle specifiche non viene mai inserito inline e la risoluzione della root non viene mai influenzata. Una voce è uno store id o una mappa con id e una sorgente di clone remote opzionale:
references:
- platform-specs
- id: billing-specs
remote: git@github.com:acme/billing-specs.gitEsempio
Un config.yaml compilato:
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 finishingNomi legacy
openspec/config.yml viene letto come alias quando config.yaml non esiste. Quando entrambi i file esistono, config.yaml ha la precedenza e config.yml viene ignorato. openspec init crea config.yaml.