Skip to content

Proje yapılandırması ​

İş akışlarının değişiklikleri istediğiniz şekilde planlamasını sağlayın; config.yaml içinde birkaç satırla.

openspec/config.yaml, iş akışlarına değişiklikleri nasıl planlamak istediğinizi söyler.

Örneğin, aşağıdaki yapılandırma tasks.md yapıtı için oluşturma kurallarını günceller:

yaml
rules:
  tasks:
    - End every task with a commit

Ajan çalıştığında, bu kurallardan yararlanır ve her görevin bir commit adımıyla bittiğinden emin olur.

Kuralları kısa tutun. Buradaki her şey ajanın bağlamına girer ve ayrıntılı kurallar çıktıyı kötüleştirebilir.

Nasıl çalışır ​

config.yaml, ajanın yapıtlar oluştururken veya iş akışı boyunca çalışırken aldığı talimatları içerir.

Her çalıştırmada şunlar olur:

  1. Bir iş akışı çalıştırırsınız (ör. /openspec-propose).
  2. Ajan openspec instructions komutunu çağırır.
  3. Komut, config.yaml dosyanızdan bağlamınızı ve kurallarınızı okur.
  4. OpenSpec'in yerleşik talimatları ve özelleştirmeleriniz, ajan için tek bir istemde birleştirilir.
  5. Ajan, yapıtı yazmak için bu istemi izler.

Örneğin, bir context alanı ve bu sayfanın başındaki kural ile openspec instructions komutunun tasks.md için döndürdüğü şey şudur (kısaltılmış ve açıklamalı):

xml
<artifact id="tasks" change="add-dark-mode" schema="spec-driven">

  <!-- config.yaml dosyanızdan: context -->
  <project_context>
    Tasarımlar ve görevler Windows, macOS ve Linux'u kapsamalı
    Tüm yapıtları İspanyolca yazın
  </project_context>

  <!-- config.yaml dosyanızdan: tasks kuralları -->
  <rules>
    - Her görevi bir commit ile bitir
  </rules>

  <!-- OpenSpec'ten: yerleşik rehberlik -->
  <instruction>
    ...iyi bir tasks.md nasıl yazılır...
  </instruction>

  <template>
    ...doldurulacak tasks.md yapısı...
  </template>

</artifact>

Yapılandırmanız önce gelir, ardından OpenSpec'in yerleşik talimatı ve şablonu gelir. Kurallar yerleşik olanlara eklenir ve asla onların yerine geçmez. config.yaml dosyanızda yapılan düzenlemeler ajanı bir sonraki çalıştırmada etkiler.

Alanlar ​

Üç alan, ajanın aldığı şeyi şekillendirir. Her alanın tam sözleşmesi (türler, sınırlar, doğrulama) Project configuration (config.yaml) içindedir.

AlanNe yaparNereye eklenir
contextAjanın her zaman aldığı talimatlarHer şey: her yapıt, apply, archive
rulesBir yapıt için ek talimatlarYalnızca o yapıtın oluşturulması
operationsBir iş akışı adımının nasıl yürütüleceğine dair rehberlikYalnızca apply ve archive

config.yaml'nin diğer alanları (schema, store, references), bir projenin hangi şemayı ve hangi OpenSpec kökünü kullandığını seçer. Sözleşme sayfası bunları kapsar.

Son sütun kesindir, bu nedenle bir alan yalnızca orada listelenen adımlara ulaşır. Özellikle, verify asla rules almaz. Uygulamayı yazıldığı gibi yapıtlara karşı kontrol eder.

context ​

context, ajanın bir yapıt oluştururken, görevleri uygularken veya bir değişikliği arşivlerken aldığı arka plandır.

yaml
context: |
  We ship cross-platform. Designs and tasks must cover Windows, macOS, and Linux
  Write all artifacts in Spanish

context'i iş akışı çıktısını şekillendirmesi gereken olgular ve kısıtlamalar için kullanın. Kalıcı proje belgelerini projenin belge dosyalarında tutun ve ajanın kodu okuyarak öğrenebileceği her şeyi dışarıda bırakın.

Başka bir dil: context her yapıta ulaştığı için, ajana proposal, spec, design ve tasks yapıtlarını İspanyolca yazmasını söylemek üzere Write all artifacts in Spanish. ekleyebilirsiniz.

rules ​

rules bir yapıta eklenir, yapıt kimliğine göre anahtarlanır. Her satır, o yapıtın yerleşik rehberliğine eklenir:

yaml
rules:
  proposal:
    - Keep proposals under 500 words
  tasks:
    - Every UI task includes a Playwright test

Öneriler artık kısa kalıyor ve tasks.md her zaman tarayıcı testleri planlıyor. Diğer her yapıt dokunulmamış.

operations ​

operations, ajanın apply ve archive işlemlerini nasıl yürüttüğüne rehberlik eder; yapıtların ne söylediğinden ziyade:

yaml
operations:
  apply:
    guidance:
      - Run the linter before marking a task complete
  archive:
    guidance:
      - Summarize what shipped before archiving

Apply sırasında, ajan görevleri tamamlarken lint yapar. Archive sırasında, bir özetle kapanır.

config.yaml yeterli olmadığında ​

Config, standart iş akışının üzerine talimatlar ekler, ancak hangi yapıtların var olduğunu veya nasıl yapılandırıldıklarını değiştiremez. Bu düzeyde bir kontrol istediğinizde veya kurallar davranışı tutarlı bir şekilde yönlendirmiyorsa, bir şemayı fork edin.