Skip to content

Konfigurasi Proyek (config.yaml) ​

Setiap bidang openspec/config.yaml: skema, konteks, dan aturan yang digunakan proyek ini dalam perencanaan.

Lokasi ​

Setiap proyek OpenSpec menyimpan file konfigurasinya di openspec/config.yaml, di root proyek.

Bidang ​

KunciTipeWajibEfek
schemastringYaSkema alur kerja yang diikuti oleh perubahan proyek ini
contextstringTidakDisuntikkan ke setiap artifact, apply, dan archive
rulesmap: ID artifact → daftar stringTidakAturan tambahan yang ditambahkan ke panduan bawaan satu artifact
operationsmap: operasi → daftar panduanTidakPanduan advisori untuk pekerjaan apply dan archive
storestringTidakRoot OpenSpec fallback ketika openspec/ ini hanya berisi konfigurasi
referenceslistTidakStore yang spesifikasinya diindeks ke dalam instruksi

Bidang yang tidak valid tidak pernah membuat perintah gagal. Setiap bidang divalidasi secara individual, dan nilai yang buruk dibuang dengan peringatan. File yang tidak dapat dibaca atau bukan YAML yang valid diabaikan dengan peringatan, kecuali oleh openspec validate, yang keluar dengan kode 1 agar CI menangkapnya.

Apa yang harus ditulis di bidang-bidang ini dibahas dalam Konfigurasi Proyek.

schema ​

Skema alur kerja yang diikuti oleh setiap perubahan di proyek ini. Nilai yang valid adalah spec-driven atau nama skema yang ditentukan oleh proyek. Jalankan openspec schemas untuk menampilkan daftar nama skema yang tersedia.

context ​

Teks bebas yang disuntikkan ke instruksi setiap artifact dan disediakan untuk apply dan archive. Batasnya adalah 50KB, dan nilai yang lebih besar diabaikan dengan peringatan.

rules ​

Aturan tambahan untuk satu artifact, ditambahkan ke panduan bawaan skema:

yaml
rules:
  proposal:
    - Keep proposals under 500 words

ID artifact tidak dibatasi pada nama bawaan, sehingga artifact dari skema kustom berfungsi sebagai kunci.

operations ​

Panduan advisori tentang bagaimana pekerjaan apply dan archive dilakukan, terpisah dari aturan artifact:

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

Hanya apply dan archive yang dibaca.

store ​

ID store yang digunakan sebagai root OpenSpec, dikonsultasikan hanya ketika direktori openspec/ ini hanya berisi konfigurasi (tidak ada specs/ atau changes/). Ini adalah fallback, bukan override. Urutan lengkapnya ada di Resolusi root.

references ​

ID store yang spesifikasinya digunakan oleh pekerjaan proyek ini. Indeks dari spesifikasi setiap store (id, ringkasan, perintah fetch) ditambahkan ke keluaran instruksi. Konten spesifikasi tidak pernah disisipkan secara inline, dan resolusi root tidak pernah terpengaruh. Entri adalah ID store atau map dengan id dan sumber clone remote opsional:

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

Contoh ​

config.yaml yang telah diisi:

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

Nama warisan ​

openspec/config.yml dibaca sebagai alias ketika config.yaml tidak ada. Ketika kedua file ada, config.yaml yang menang dan config.yml diabaikan. openspec init membuat config.yaml.