Keterampilan
Setiap keterampilan OpenSpec: argumen, apa yang dibuatnya, dan apa yang diresponsnya.
Keterampilan hadir dalam dua kelompok:
- Inti: terpasang secara default, loop perencanaan utama.
- Opsional: terpasang hanya saat Anda menambahkannya, melalui Profil.
Setiap keterampilan mengasumsikan proyek yang sudah menggunakan OpenSpec. Sebelum langkah pertamanya yang menulis apa pun, sebuah keterampilan memeriksa root yang telah di-resolve. Apa yang terjadi jika tidak ada bergantung pada bagaimana keterampilan tersebut diakses:
- Dipilih otomatis: agen Anda memilih keterampilan itu sendiri, tanpa Anda menyebut OpenSpec. Ia mengabaikan OpenSpec dan menjawab permintaan Anda secara normal, seperti yang akan dilakukan jika OpenSpec tidak terpasang.
- Permintaan OpenSpec eksplisit: Anda menyebut OpenSpec, menyebut keterampilan tersebut, atau menjalankan perintahnya. Ia berhenti sebelum menulis dan bertanya bagaimana melanjutkan: jalankan
openspec initdi sini, targetkan store dengan--store <id>, atau lanjutkan tanpa OpenSpec. Ia menunggu jawaban Anda.
Perintah selalu merupakan kasus kedua. Proyek yang openspec/config.yaml-nya menyebut store yang tidak dapat diselesaikan mesin ini (tidak terdaftar, atau baris store: yang salah format) tidak diperlakukan sebagai belum diinisialisasi: keterampilan berhenti dan menampilkan error store beserta perbaikannya. Tidak ada keterampilan yang membuat direktori openspec/ sendiri dalam kedua kasus tersebut. Entri di bawah menjelaskan apa yang dilakukan setiap keterampilan setelah root tersedia.
| Keterampilan | Pekerjaan | Tipe |
|---|---|---|
| openspec-explore | Memikirkan sebuah ide sebelum menjadi proposal perubahan | Inti |
| openspec-propose | Membuat proposal perubahan dengan semua artefak perencanaannya dalam satu langkah | Inti |
| openspec-apply-change | Mengimplementasikan tugas-tugas proposal perubahan | Inti |
| openspec-update-change | Merevisi rencana proposal perubahan | Inti |
| openspec-sync-specs | Menggabungkan pembaruan spesifikasi proposal perubahan ke dalam specs/ | Inti |
| openspec-archive-change | Memindahkan proposal perubahan yang selesai ke arsip | Inti |
| openspec-new-change | Memulai proposal perubahan sebagai kerangka kosong | Opsional |
| openspec-continue-change | Membuat artefak perencanaan berikutnya, satu per satu | Opsional |
| openspec-ff-change | Membuat proposal perubahan dengan semua artefak yang dibutuhkan implementasi, dalam satu kali proses | Opsional |
| openspec-verify-change | Memeriksa apakah implementasi sesuai dengan rencana | Opsional |
| openspec-bulk-archive-change | Mengarsipkan beberapa proposal perubahan sekaligus | Opsional |
| openspec-onboard | Mempelajari alur kerja dengan mengerjakan satu proposal perubahan nyata dari awal hingga akhir | Opsional |
Setiap entri di bawah menyebut keterampilan yang memiliki langkah berikutnya. Ketika profil Anda tidak menyertakan keterampilan tersebut, file yang terpasang tidak pernah menyebutnya: serah terima menjadi perintah openspec yang setara, atau permintaan langsung kepada Anda, dan baris yang hanya ada untuk menunjuk keterampilan yang hilang tidak ditulis sama sekali. Jadi keterampilan yang Anda miliki selalu menyerahkan ke keterampilan yang Anda miliki. Kelompok mana yang Anda dapatkan adalah Profil.
openspec-explore
Pikirkan sebuah ide sebelum menjadi proposal perubahan.
| Contract | Description |
|---|---|
| Arguments | Sebuah topik: sebuah ide, sebuah masalah, sebuah perbandingan, atau nama dari proposal perubahan yang sudah ada untuk dijelajahi dalam konteks. Jika tidak ada yang diberikan, ia masuk ke mode eksplorasi. |
| Creates | Tidak ada secara default. Ia hanya membaca dan menyelidiki. Atas permintaan, ia menangkap wawasan: sebuah proposal perubahan baru di bawah openspec/changes/<name>/, atau pembaruan pada proposal, desain, spesifikasi, atau tugas yang sudah ada. Tidak pernah kode. |
| Response | Percakapan terbuka tanpa keluaran yang diwajibkan. Ketika pemikiran mengkristal, ia merangkum masalah, pendekatan, pertanyaan terbuka, dan langkah selanjutnya, dan menawarkan untuk menangkapnya. Anda yang memutuskan. Implementasi tidak pernah dimulai di sini. |
openspec-propose
Buat proposal perubahan dan hasilkan semua artefak perencanaannya dalam satu langkah.
| Contract | Description |
|---|---|
| Arguments | Sebuah nama kebab-case (add-dark-mode) atau deskripsi biasa. Bertanya jika Anda tidak memberikan keduanya. |
| Creates | openspec/changes/<name>/ dengan setiap artefak yang didefinisikan skema, dalam urutan dependensi (berbasis spesifikasi: proposal, delta spesifikasi, desain, tugas). Tidak pernah kode. |
| Response | Artefak yang dibuat, siap untuk ditinjau, dan langkah selanjutnya. Berhenti di sana; implementasi menunggu openspec-apply-change. |
openspec-apply-change
Implementasikan tugas-tugas proposal perubahan, mengerjakan daftar hingga selesai atau terblokir.
| Contract | Description |
|---|---|
| Arguments | Sebuah nama proposal perubahan (add-auth), opsional. Jika target ambigu, ia mendaftar proposal perubahan yang aktif dan meminta Anda untuk memilih. |
| Creates | Kode: perubahan minimal yang diminta setiap tugas, dalam file proyek Anda. Dalam proposal perubahan, ia mencentang setiap tugas yang selesai (- [ ] ke - [x]) dalam file yang dilacak yang diidentifikasi oleh sourcePath dan line berbasis satu. Sebuah skema dapat melacak tugas di beberapa file. |
| Response | Kemajuan per tugas, lalu hitungan keseluruhan (N/M tugas selesai). Semua selesai: menyarankan openspec-archive-change. Diblokir oleh artefak yang hilang: mengarahkan ke openspec-continue-change, atau ke openspec status dan openspec instructions ketika keterampilan tersebut tidak terinstal (profil inti tidak menyertakannya). Tugas yang tidak jelas atau kesalahan: menjeda dan bertanya. |
openspec-update-change
Revisi artefak perencanaan yang sudah ada dari proposal perubahan dan jaga agar tetap koheren satu sama lain.
| Contract | Description |
|---|---|
| Arguments | Sebuah nama proposal perubahan, opsional, plus revisi yang Anda inginkan. Tanpa revisi yang dinyatakan, ia menjalankan tinjauan koherensi: artefak diperiksa satu sama lain untuk kontradiksi, kesenjangan, dan duplikasi. |
| Creates | Mengedit file artefak yang sudah ada. Satu pengecualian: untuk artefak yang ditulis sebagai glob, seperti specs/**/*.md, yang sudah memiliki setidaknya satu file, ia dapat menambahkan file pendamping yang hilang setelah Anda mengonfirmasi jalurnya. Artefak tanpa file apa pun adalah tugas openspec-continue-change. Tanpa keterampilan tersebut (profil inti tidak menyertakannya), ia mengarahkan ke openspec status dan openspec instructions sebagai gantinya. Tidak pernah kode. |
| Response | Menunjukkan setiap revisi yang diusulkan dan menulisnya hanya setelah Anda mengonfirmasi, satu artefak pada satu waktu. Berakhir dengan apa yang direvisi dan langkah selanjutnya; implementasi menunggu openspec-apply-change. |
openspec-sync-specs
Gabungkan pembaruan spesifikasi dari proposal perubahan ke specs/ tanpa mengarsipkannya.
| Contract | Description |
|---|---|
| Arguments | Sebuah nama proposal perubahan, opsional. Anda juga dapat menamai subset dari delta spesifikasinya, dan hanya yang itu yang disinkronkan. |
| Creates | Mengedit atau membuat openspec/specs/<capability-path>/spec.md untuk setiap delta spesifikasi, menggabungkan persyaratan yang ditambahkan, dimodifikasi, dihapus, dan diganti nama ke dalam spesifikasi utama. Tidak pernah kode. |
| Response | Ringkasan per kemampuan dari persyaratan yang ditambahkan, dimodifikasi, dihapus, atau diganti nama, setelah spesifikasi yang diperbarui divalidasi. Proposal perubahan tetap aktif; pengarsipan menunggu openspec-archive-change. |
openspec-archive-change
Pindahkan proposal perubahan yang telah selesai ke arsip.
| Contract | Description |
|---|---|
| Arguments | Sebuah nama proposal perubahan, opsional. |
| Creates | Memindahkan folder proposal perubahan ke openspec/changes/archive/YYYY-MM-DD-<name>/ (tidak ada tanggal ditambahkan jika nama sudah dimulai dengan satu). Dengan persetujuan Anda, ia terlebih dahulu menyinkronkan delta spesifikasi yang tertunda. Ketika openspec-sync-specs terinstal, ia menjalankan alur kerja tersebut. Jika tidak, ia menggabungkan delta spesifikasi ke dalam spesifikasi utama sendiri. Tidak pernah kode. |
| Response | Memperingatkan dan bertanya sebelum mengarsipkan dengan artefak atau tugas yang tidak lengkap, dan bertanya apakah akan menyinkronkan ketika delta spesifikasi ada. Berakhir dengan ringkasan: nama, skema, lokasi arsip, status sinkronisasi spesifikasi, dan peringatan apa pun. |
openspec-new-change
Mulai proposal perubahan sebagai kerangka kosong.
| Contract | Description |
|---|---|
| Arguments | Sebuah nama kebab-case (add-user-auth) atau deskripsi biasa, plus nama skema hanya untuk alur kerja non-default. Bertanya apa yang ingin Anda bangun jika Anda tidak memberikan keduanya. |
| Creates | openspec/changes/<name>/ sebagai kerangka kosong: belum ada artefak, tidak pernah kode. |
| Response | Nama dan lokasi kerangka, urutan artefak alur kerja, status (0/N selesai), dan template artefak pertama. Penyusunan artefak menunggu openspec-continue-change. |
openspec-continue-change
Buat artefak perencanaan berikutnya dalam proposal perubahan, satu pada satu waktu.
| Contract | Description |
|---|---|
| Arguments | Sebuah nama proposal perubahan, opsional. Jika masih ambigu, ia meminta Anda untuk memilih dari yang baru saja dimodifikasi. |
| Creates | Artefak siap berikutnya tunggal dalam urutan skema, ditulis ke dalam folder proposal perubahan. Satu artefak perjalanan, tidak pernah kode. |
| Response | Artefak yang dibuat, kemajuan (N dari M selesai), dan artefak mana yang dibuka. Ketika perencanaan selesai, ia menyatakannya; implementasi berpindah ke openspec-apply-change. |
openspec-ff-change
Buat proposal perubahan dan setiap artefak perencanaan yang diperlukan implementasi, dalam satu kali jalan.
| Contract | Description |
|---|---|
| Arguments | Sebuah nama kebab-case atau deskripsi biasa. Bertanya jika Anda tidak memberikan keduanya. Jika proposal perubahan yang dinamai sudah ada, ia menyarankan melanjutkannya sebagai gantinya. |
| Creates | openspec/changes/<name>/ dan setiap artefak perencanaan yang diperlukan implementasi, dalam urutan dependensi (berbasis spesifikasi: proposal, spesifikasi, desain, tugas), hanya menghilangkan artefak yang ditandai dilewati atau kondisional. Tidak pernah kode. |
| Response | Nama dan lokasi proposal perubahan, setiap artefak yang dibuat, dan artefak kondisional apa pun yang dilewati dan mengapa. Berhenti di sana; implementasi menunggu openspec-apply-change. |
openspec-verify-change
Periksa apakah implementasi cocok dengan artefak proposal perubahan.
| Contract | Description |
|---|---|
| Arguments | Sebuah nama proposal perubahan, opsional. Ketika ambigu, ia bertanya, mendaftar proposal perubahan yang memiliki artefak tugas. |
| Creates | Tidak ada. Ia membaca artefak proposal perubahan dan codebase. Verifikasi hanya laporan. |
| Response | Sebuah laporan: kartu skor untuk Kelengkapan, Kebenaran, dan Koherensi, lalu masalah KRITIS, PERINGATAN, dan SARAN dengan rekomendasi, dan penilaian kesiapan arsip akhir. Ia tidak mengubah apa pun dan tidak mengarsipkan. |
openspec-bulk-archive-change
Arsipkan beberapa proposal perubahan sekaligus.
| Contract | Description |
|---|---|
| Arguments | Tidak ada. Ia mendaftar proposal perubahan yang aktif dan meminta Anda untuk memilih sejumlah apa pun, dengan opsi untuk semua. Jika tidak ada yang aktif, ia menyatakannya dan berhenti. |
| Creates | openspec/changes/archive/YYYY-MM-DD-<name>/ per proposal perubahan yang diarsipkan (nama yang sudah ber tanggal mempertahankan prefiksnya). Delta spesifikasi masing-masing disinkronkan terlebih dahulu via openspec-sync-specs. Tidak pernah kode. |
| Response | Tabel status per proposal perubahan dan satu konfirmasi untuk seluruh batch, lalu ringkasan yang diarsipkan, dilewati, dan gagal, plus hasil sinkronisasi spesifikasi. Ketika dua proposal perubahan menyentuh spesifikasi yang sama, ia memeriksa codebase dan menyinkronkan delta yang diimplementasikan dari yang terlama terlebih dahulu. |
openspec-onboard
Pelajari alur kerja dengan mengerjakan satu proposal perubahan nyata dari awal hingga akhir.
| Contract | Description |
|---|---|
| Arguments | Tidak ada. Ia memindai codebase Anda untuk tugas pemula kecil dan meminta Anda untuk memilih satu atau mendeskripsikan milik Anda sendiri. |
| Creates | Proposal perubahan nyata untuk tugas yang dipilih, satu artefak pada satu waktu, lalu kode nyata setelah Anda mengonfirmasi implementasi. Mengarsipkan proposal perubahan di akhir. |
| Response | Walkthrough narasi dari siklus penuh dengan jeda untuk masukan Anda: eksplorasi, buat, bangun setiap artefak, implementasi, arsip. Berakhir dengan rekap dan petunjuk ke openspec-propose. Memakan waktu sekitar 15 hingga 20 menit. |