Skip to content

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 ​

AnahtarTürZorunluEtki
schemastringEvetBu projedeki değişikliklerin izlediği iş akışı şeması
contextstringHayırHer artefakte, apply ve archive işlemlerine enjekte edilir
rulesmap: artifact ID → string listesiHayırTek bir artefaktın yerleşik yönergelerine eklenen ek kurallar
operationsmap: işlem → yönerge listesiHayırapply ve archive işleri için tavsiye niteliğindeki yönergeler
storestringHayırBu openspec/ dizini yalnızca yapılandırma içermekteyse kullanılacak yedek OpenSpec kökü
referenceslisteHayırUygulamaları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:

yaml
rules:
  proposal:
    - Keep proposals under 500 words

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

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

Yalnı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:

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

Örnek ​

Doldurulmuş bir 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

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