Projectconfiguratie (config.yaml)
Elk veld van openspec/config.yaml: het schema, de context en de regels waarmee dit project werkt.
Locatie
Elk OpenSpec-project bewaart zijn configuratiebestand op openspec/config.yaml, in de projectroot.
Velden
| Sleutel | Type | Vereist | Effect |
|---|---|---|---|
schema | string | Ja | Het workflowschema dat de wijzigingen in dit project volgen |
context | string | Nee | Wordt geïnjecteerd in elk artefact en bij apply en archive |
rules | map: artefact-ID → lijst met strings | Nee | Extra regels toegevoegd aan de ingebouwde richtlijnen van één artefact |
operations | map: bewerking → lijst met richtlijnen | Nee | Adviserende richtlijnen voor het uitvoeren van apply- en archivewerk |
store | string | Nee | OpenSpec-root als terugvaloptie wanneer deze openspec/ alleen configuratie bevat |
references | lijst | Nee | Stores waarvan de specs in de instructies worden geïndexeerd |
Ongeldige velden zorgen er nooit voor dat een commando mislukt. Elk veld wordt afzonderlijk gevalideerd en een ongeldige waarde wordt met een waarschuwing verwijderd. Een bestand dat niet kan worden gelezen of geen geldige YAML is, wordt met een waarschuwing genegeerd, behalve door openspec validate, dat met exitcode 1 eindigt zodat CI dit opmerkt.
Wat je in deze velden moet schrijven, wordt behandeld in Projectconfiguratie.
schema
Het workflowschema dat elke wijziging in dit project volgt. Geldige waarden zijn spec-driven of een schemanaam die het project definieert. Voer openspec schemas uit om de beschikbare schemanamen op te sommen.
context
Vrije tekst die in de instructies van elk artefact wordt geïnjecteerd en aan apply en archive wordt doorgegeven. De limiet is 50KB en een grotere waarde wordt met een waarschuwing genegeerd.
rules
Extra regels voor één artefact, toegevoegd aan de ingebouwde richtlijnen van het schema:
rules:
proposal:
- Keep proposals under 500 wordsArtefact-ID's zijn niet beperkt tot de ingebouwde namen, dus artefacten van aangepaste schema's werken als sleutels.
operations
Adviserende richtlijnen voor hoe apply- en archivewerk wordt uitgevoerd, los van artefactregels:
operations:
apply:
guidance:
- Keep test summaries conciseAlleen apply en archive worden gelezen.
store
Een store-ID die als OpenSpec-root wordt gebruikt en alleen wordt geraadpleegd wanneer deze openspec/-map alleen configuratie bevat (geen specs/ of changes/). Het is een terugvaloptie, nooit een override. De volledige volgorde staat in Rootresolutie.
references
Store-ID's waarvan de specs door het werk van dit project worden gebruikt. Een index van de specs van elke store (id, samenvatting, fetch-commando) wordt toegevoegd aan de uitvoer van instructies. Specinhoud wordt nooit inline opgenomen en rootresolutie wordt nooit beïnvloed. Een item is een store-ID of een map met id en een optionele remote-kloonbron:
references:
- platform-specs
- id: billing-specs
remote: git@github.com:acme/billing-specs.gitVoorbeeld
Een ingevulde 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 finishingVerouderde namen
openspec/config.yml wordt als alias gelezen wanneer config.yaml niet bestaat. Als beide bestanden bestaan, heeft config.yaml voorrang en wordt config.yml genegeerd. openspec init maakt config.yaml aan.