Proje yapılandırması (config.yaml)
openspec/config.yaml dosyasındaki her alan: bu projenin plan yapmak için kullandığı şema, bağlam ve kurallar.
Konum
Her OpenSpec projesi yapılandırma dosyasını proje kökünde openspec/config.yaml konumunda tutar.
Alanlar
| Anahtar | Tür | Zorunlu | Etki |
|---|---|---|---|
schema | string | Evet | Bu projedeki değişikliklerin izlediği iş akışı şeması |
context | string | Hayır | Her artefakte, apply ve archive işlemlerine enjekte edilir |
rules | map: artifact ID → string listesi | Hayır | Tek bir artefaktın yerleşik yönergelerine eklenen ek kurallar |
operations | map: işlem → yönerge listesi | Hayır | apply ve archive işleri için tavsiye niteliğindeki yönergeler |
store | string | Hayır | Bu openspec/ dizini yalnızca yapılandırma içermekteyse kullanılacak yedek OpenSpec kökü |
references | liste | Hayır | Uygulamaların, bu projenin işlerinde dayandığı store kimlikleri; bu store'ların spesifikasyonları talimatlara dizinlenir |
Geçersiz alanlar bir komutun başarısız olmasına neden olmaz. Her alan kendi kendine doğrulanır ve hatalı bir değer uyarı ile düşürülür. Okunamayan veya geçerli YAML olmayan bir dosya, openspec validate komutu hariç uyarı ile yok sayılır; bu komut CI'nin bunu yakalayabilmesi için 1 çıkış koduyla biter.
Bu alanlara neler yazılması gerektiği Proje yapılandırması bölümünde açıklanmıştır.
schema
Bu projedeki her değişikliğin izlediği iş akışı şeması. Geçerli değerler spec-driven veya projenin tanımladığı bir şema adıdır. Kullanılabilir şema adlarını listelemek için openspec schemas komutunu çalıştırın.
context
Her artefaktın talimatlarına enjekte edilen ve apply ile archive işlemlerine sağlanan serbest metin. Limit 50KB'dir ve daha büyük değerler uyarı ile yok sayılır.
rules
Bir artefakt için, şemanın yerleşik yönergelerine eklenen ek kurallar:
rules:
proposal:
- Keep proposals under 500 wordsArtefakt ID'leri yerleşik adlarla sınırlı değildir, bu nedenle özel şemalardan gelen artefaktlar anahtar olarak çalışır.
operations
Apply ve archive işlerinin nasıl yürütüleceğine dair, artefakt kurallarından ayrı olarak tavsiye niteliğindeki yönergeler:
operations:
apply:
guidance:
- Keep test summaries conciseYalnızca apply ve archive okunur.
store
OpenSpec kökü olarak kullanılan bir store kimliği; yalnızca bu openspec/ dizini config-only (spesifikasyonlar veya değişiklikler yoksa) olduğunda sorgulanır. Bu bir yedeklemedir, asla bir geçersiz kılma değildir. Tam sıralama Kök çözümleme bölümündedir.
references
Bu projenin işlerinin dayandığı store kimlikleri. Her store'un spesifikasyonlarının bir indeksi (id, özet, çekme komutu) talimat çıktısına eklenir. Spesifikasyon içeriği asla gömülmez ve kök çözümleme asla etkilenmez. Bir giriş, bir store kimliği veya id ve isteğe bağlı bir remote klon kaynağı içeren bir harita olabilir:
references:
- platform-specs
- id: billing-specs
remote: git@github.com:acme/billing-specs.gitÖrnek
Doldurulmuş bir 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 finishingEski adlar
config.yaml mevcut değilse openspec/config.yml bir takma ad olarak okunur. Her iki dosya da mevcut ise config.yaml kazanır ve config.yml yok sayılır. openspec init config.yaml dosyasını oluşturur.