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
| Kunci | Tipe | Wajib | Efek |
|---|---|---|---|
schema | string | Ya | Skema alur kerja yang diikuti oleh perubahan proyek ini |
context | string | Tidak | Disuntikkan ke setiap artifact, apply, dan archive |
rules | map: ID artifact → daftar string | Tidak | Aturan tambahan yang ditambahkan ke panduan bawaan satu artifact |
operations | map: operasi → daftar panduan | Tidak | Panduan advisori untuk pekerjaan apply dan archive |
store | string | Tidak | Root OpenSpec fallback ketika openspec/ ini hanya berisi konfigurasi |
references | list | Tidak | Store 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:
rules:
proposal:
- Keep proposals under 500 wordsID 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:
operations:
apply:
guidance:
- Keep test summaries conciseHanya 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:
references:
- platform-specs
- id: billing-specs
remote: git@github.com:acme/billing-specs.gitContoh
config.yaml yang telah diisi:
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 finishingNama 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.