Skip to content

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 ​

KluczTypWymaganeEfekt
schemastringTakSchemat przepływu pracy obowiązujący dla zmian w tym projekcie
contextstringNieWstrzykiwany do każdego artefaktu oraz operacji apply i archive
rulesmap: identyfikator artefaktu → lista ciągów znakówNieDodatkowe reguły dodawane do wbudowanych wskazówek jednego artefaktu
operationsmap: operacja → lista wskazówekNieWskazówki doradcze dotyczące pracy z apply i archive
storestringNieZapasowy katalog główny OpenSpec, gdy ten katalog openspec/ zawiera tylko konfigurację
referenceslistNieMagazyny, 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:

yaml
rules:
  proposal:
    - Keep proposals under 500 words

Identyfikatory 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:

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

Odczytywane 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:

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

Przykład ​

Wypełniony plik 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

Starsze 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.