Konfiguracja projektu (config.yaml)
Wszystkie pola pliku openspec/config.yaml: schemat, kontekst i reguły, z których ten projekt korzysta podczas planowania.
Lokalizacja
Każdy projekt OpenSpec przechowuje plik konfiguracyjny pod ścieżką openspec/config.yaml, w katalogu głównym projektu.
Pola
| Klucz | Typ | Wymagane | Efekt |
|---|---|---|---|
schema | string | Tak | Schemat przepływu pracy obowiązujący dla zmian w tym projekcie |
context | string | Nie | Wstrzykiwany do każdego artefaktu oraz operacji apply i archive |
rules | map: identyfikator artefaktu → lista ciągów znaków | Nie | Dodatkowe reguły dodawane do wbudowanych wskazówek jednego artefaktu |
operations | map: operacja → lista wskazówek | Nie | Wskazówki doradcze dotyczące pracy z apply i archive |
store | string | Nie | Zapasowy katalog główny OpenSpec, gdy ten katalog openspec/ zawiera tylko konfigurację |
references | list | Nie | Magazyny, których specyfikacje są indeksowane w instrukcjach |
Nieprawidłowe pola nigdy nie powodują niepowodzenia polecenia. Każde pole jest walidowane osobno, a nieprawidłowa wartość jest odrzucana z ostrzeżeniem. Plik, którego nie można odczytać lub który nie jest prawidłowym YAML, jest ignorowany z ostrzeżeniem — z wyjątkiem polecenia openspec validate, które kończy się kodem 1, aby CI mogło to wychwycić.
Co wpisywać w tych polach, opisano w Konfiguracja projektu.
schema
Schemat przepływu pracy, którego przestrzega każda zmiana w tym projekcie. Prawidłowe wartości to spec-driven lub nazwa schematu zdefiniowana w projekcie. Uruchom openspec schemas, aby wyświetlić listę dostępnych nazw schematów.
context
Dowolny tekst wstrzykiwany do instrukcji każdego artefaktu oraz przekazywany do operacji apply i archive. Limit wynosi 50 KB; większa wartość jest ignorowana z ostrzeżeniem.
rules
Dodatkowe reguły dla jednego artefaktu, dodawane do wbudowanych wskazówek schematu:
rules:
proposal:
- Keep proposals under 500 wordsIdentyfikatory artefaktów nie są ograniczone do nazw wbudowanych, więc artefakty ze schematów niestandardowych działają jako klucze.
operations
Wskazówki doradcze dotyczące sposobu prowadzenia prac z apply i archive, niezależne od reguł artefaktów:
operations:
apply:
guidance:
- Keep test summaries conciseOdczytywane są tylko apply i archive.
store
Identyfikator magazynu używany jako katalog główny OpenSpec, brany pod uwagę tylko wtedy, gdy katalog openspec/ zawiera wyłącznie konfigurację (brak katalogów specs/ lub changes/). Jest to mechanizm zapasowy, który nigdy nie nadpisuje. Pełna hierarchia jest opisana w Rozstrzyganie katalogu głównego.
references
Identyfikatory magazynów, z których specyfikacji korzystają prace w tym projekcie. Indeks specyfikacji każdego magazynu (id, podsumowanie, polecenie pobrania) jest dodawany do generowanych instrukcji. Treść specyfikacji nigdy nie jest osadzana bezpośrednio, a rozstrzyganie katalogu głównego nigdy nie ulega zmianie. Wpisem jest identyfikator magazynu lub mapa z id i opcjonalnym źródłem klonowania remote:
references:
- platform-specs
- id: billing-specs
remote: git@github.com:acme/billing-specs.gitPrzykład
Wypełniony plik 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 finishingStarsze nazwy
Plik openspec/config.yml jest odczytywany jako alias, gdy config.yaml nie istnieje. Gdy oba pliki istnieją, pierwszeństwo ma config.yaml, a config.yml jest ignorowany. Polecenie openspec init tworzy plik config.yaml.