codehava-agent-kit 2.0.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/README.md +78 -29
  2. package/package.json +2 -2
  3. package/templates/.agent/.shared/ACTIVE-template.md +44 -0
  4. package/templates/.agent/.shared/HANDOFF-template.md +75 -0
  5. package/templates/.agent/.shared/MEMORY-schema.md +117 -0
  6. package/templates/.agent/.shared/STATE-template.md +59 -0
  7. package/templates/.agent/.shared/checklists/planning-quality.md +69 -0
  8. package/templates/.agent/.shared/types/api-backend/config.md +25 -0
  9. package/templates/.agent/.shared/types/api-backend/guide.md +41 -0
  10. package/templates/.agent/.shared/types/api-backend/skill-loadout.md +16 -0
  11. package/templates/.agent/.shared/types/application/config.md +27 -0
  12. package/templates/.agent/.shared/types/application/guide.md +51 -0
  13. package/templates/.agent/.shared/types/application/skill-loadout.md +39 -0
  14. package/templates/.agent/.shared/types/campaign/config.md +24 -0
  15. package/templates/.agent/.shared/types/campaign/guide.md +36 -0
  16. package/templates/.agent/.shared/types/campaign/skill-loadout.md +12 -0
  17. package/templates/.agent/.shared/types/utility/config.md +24 -0
  18. package/templates/.agent/.shared/types/utility/guide.md +31 -0
  19. package/templates/.agent/.shared/types/utility/skill-loadout.md +10 -0
  20. package/templates/.agent/.shared/types/workflow/config.md +25 -0
  21. package/templates/.agent/.shared/types/workflow/guide.md +41 -0
  22. package/templates/.agent/.shared/types/workflow/skill-loadout.md +13 -0
  23. package/templates/.agent/SKILLS_INDEX.md +68 -7
  24. package/templates/.agent/agents/backend-specialist.md +12 -0
  25. package/templates/.agent/agents/database-architect.md +11 -0
  26. package/templates/.agent/agents/frontend-specialist.md +12 -0
  27. package/templates/.agent/agents/mobile-developer.md +11 -0
  28. package/templates/.agent/agents/penetration-tester.md +13 -0
  29. package/templates/.agent/agents/test-engineer.md +10 -0
  30. package/templates/.agent/rules/GEMINI.md +292 -183
  31. package/templates/.agent/skills/systematic-debugging/SKILL.md +202 -0
  32. package/templates/.agent/skills/vibe-prd/SKILL.md +48 -6
  33. package/templates/.agent/workflows/add-type.md +133 -0
  34. package/templates/.agent/workflows/apply.md +95 -0
  35. package/templates/.agent/workflows/graduate.md +150 -0
  36. package/templates/.agent/workflows/launch.md +127 -0
  37. package/templates/.agent/workflows/new-feature.md +21 -23
  38. package/templates/.agent/workflows/pause.md +118 -0
  39. package/templates/.agent/workflows/pipeline.md +95 -0
  40. package/templates/.agent/workflows/progress.md +103 -0
  41. package/templates/.agent/workflows/resume.md +105 -0
  42. package/templates/.agent/workflows/unify.md +126 -0
  43. package/templates/.agent/workflows/vibe-plan.md +135 -72
  44. package/templates/.agent/workflows/vibe-recap.md +89 -12
  45. package/templates/.antigravity/rules.md +75 -27
@@ -0,0 +1,202 @@
1
+ ---
2
+ name: systematic-debugging
3
+ description: "Gunakan skill ini ketika menemukan error, bug, crash, test failure, atau
4
+ performa yang tidak diharapkan. Skill ini mencakup 3L5W root cause analysis (5 Whys +
5
+ Search & Destroy + Global Mitigation), 4-level artifact verification, dan silent
6
+ self-healing protocol agar user tidak terbebani error teknis. Aktifkan secara otomatis
7
+ saat ada stack trace, TypeScript error, runtime crash, compilation failure, atau saat
8
+ @lint-and-validate menemukan masalah. Jangan tanya user cara fix — fix sendiri dulu."
9
+ risk: low
10
+ source: internal
11
+ date_added: "2025-04-10"
12
+ ---
13
+
14
+ # Systematic Debugging
15
+
16
+ > Bukan sekadar fix satu file — temukan dan eliminasi akar masalah dari seluruh codebase.
17
+ > Subagent bekerja ~70% kualitas. Gunakan skill ini dalam satu session untuk hasil terbaik.
18
+
19
+ ---
20
+
21
+ ## Kapan Menggunakan Skill Ini
22
+
23
+ - Ada error terminal, stack trace, atau crash
24
+ - TypeScript / ESLint melaporkan error
25
+ - Unit test atau E2E test gagal
26
+ - Komponen render salah atau data tidak muncul
27
+ - Performance drastis menurun setelah perubahan
28
+ - `@lint-and-validate` mendeteksi masalah
29
+
30
+ ---
31
+
32
+ ## Protokol: 3L5W (3 Legs, 5 Whys)
33
+
34
+ ### LEG 1 — Root Cause via 5 Whys
35
+
36
+ **Tanya "Kenapa?" minimal 5x berturut-turut sampai ketemu akar masalah struktural.**
37
+
38
+ ```
39
+ Error: Cannot read property 'id' of undefined
40
+
41
+ Kenapa 1: Kenapa 'id' undefined? → Object tidak di-return dari query
42
+ Kenapa 2: Kenapa query tidak return? → findFirst() return null jika tidak ada data
43
+ Kenapa 3: Kenapa data tidak ada? → User belum onboarded, field wajib belum diisi
44
+ Kenapa 4: Kenapa bisa sampai ke halaman ini tanpa onboarding? → Guard middleware tidak ada
45
+ Kenapa 5: Kenapa guard tidak ada? → Spec tidak mendefinisikan edge case ini
46
+
47
+ Root Cause: Missing onboarding guard → fix di middleware, bukan di component
48
+ ```
49
+
50
+ **Aturan Leg 1:**
51
+ - Jangan stop di simptom — terus gali sampai structural cause
52
+ - Jika tidak bisa 5x, minimal 3x
53
+ - Catat root cause sebelum lanjut ke Leg 2
54
+
55
+ ---
56
+
57
+ ### LEG 2 — Search & Destroy
58
+
59
+ **Cari pattern yang sama di SELURUH codebase — jangan fix hanya satu file.**
60
+
61
+ ```bash
62
+ # Contoh: jika root cause adalah missing null check
63
+ grep -r "\.id" src/ --include="*.ts" | grep -v "?.id"
64
+
65
+ # Jika root cause adalah missing await
66
+ grep -r "headers()" src/ --include="*.ts" | grep -v "await headers()"
67
+
68
+ # Jika root cause adalah missing error boundary
69
+ grep -r "fetch(" src/ --include="*.tsx" | grep -v "try {"
70
+ ```
71
+
72
+ **Yang harus dicari:**
73
+ - File lain yang pakai pattern/sintaks yang sama
74
+ - Komponen serupa yang mungkin terkena masalah sama
75
+ - Import yang salah path di seluruh project
76
+ - Environment variable yang missing di tempat lain
77
+
78
+ **Output Leg 2:** Daftar semua file yang perlu diperbaiki
79
+
80
+ ---
81
+
82
+ ### LEG 3 — Global Mitigation + Log
83
+
84
+ **Perbaiki SEMUA temuan + buat proteksi struktural + catat RCA.**
85
+
86
+ **Buat proteksi:**
87
+ ```typescript
88
+ // Null check
89
+ const userId = session?.user?.id ?? null
90
+ if (!userId) return redirect('/login')
91
+
92
+ // Zod validation
93
+ const schema = z.object({ id: z.string().min(1) })
94
+ const parsed = schema.safeParse(params)
95
+ if (!parsed.success) return notFound()
96
+
97
+ // Error boundary
98
+ try {
99
+ const result = await fetchData()
100
+ return result
101
+ } catch (error) {
102
+ logger.error('[module:method]', { error: error.message })
103
+ return null
104
+ }
105
+ ```
106
+
107
+ **Catat RCA di `docs/troubleshooting.md`:**
108
+ ```markdown
109
+ ## [YYYY-MM-DD] — [Judul Error Singkat]
110
+
111
+ **Simptom:** [apa yang terlihat]
112
+ **Root Cause:** [hasil 5 Whys]
113
+ **Files Affected:** [daftar file]
114
+ **Fix Applied:** [ringkasan fix]
115
+ **Prevention:** [apa yang ditambahkan agar tidak terulang]
116
+ ```
117
+
118
+ ---
119
+
120
+ ## 4-Level Artifact Verification (setelah fix)
121
+
122
+ Sebelum lapor "sudah diperbaiki" ke user, verifikasi:
123
+
124
+ | Level | Check | Cara Verify |
125
+ |-------|-------|-------------|
126
+ | **1. EXISTS** | File/function/fix sudah ada | Baca file, konfirm perubahan ada |
127
+ | **2. SUBSTANTIVE** | Logic benar, bukan stub kosong | Review konten — ada real logic? |
128
+ | **3. WIRED** | Connected ke caller yang benar | Cek import + invocation di caller |
129
+ | **4. DATA FLOWS** | Data benar-benar mengalir | Trace dari input → proses → output |
130
+
131
+ **Jangan laporkan DONE sebelum level 4 terpenuhi.**
132
+
133
+ ---
134
+
135
+ ## Escalation Status
136
+
137
+ | Status | Kondisi | Action |
138
+ |--------|---------|--------|
139
+ | **DONE** | Fix complete, 4-level verified | Lapor ke user dengan ringkasan |
140
+ | **DONE_WITH_CONCERNS** | Fix works tapi ada technical debt | Lapor + beri catatan recommendation |
141
+ | **NEEDS_CONTEXT** | Butuh info dari user untuk lanjut | Tanya 1 pertanyaan spesifik |
142
+ | **BLOCKED** | Tidak bisa lanjut tanpa keputusan user | Jelaskan opsi A vs B, minta pilihan |
143
+
144
+ ---
145
+
146
+ ## Silent Self-Healing Protocol (Non-Programmer Shield)
147
+
148
+ **DILARANG:**
149
+ - ❌ Paste stack trace mentah ke user
150
+ - ❌ Tanya "Bagaimana cara memperbaikinya?"
151
+ - ❌ Bilang "Ada error, tolong cek terminal"
152
+ - ❌ Fix parsial lalu lapor selesai
153
+
154
+ **WAJIB:**
155
+ - ✅ Telan error, analisis sendiri
156
+ - ✅ Jalankan 3L5W sampai selesai
157
+ - ✅ Fix semua temuan, bukan hanya satu file
158
+ - ✅ Baru lapor ke user setelah fix terverifikasi
159
+
160
+ **Format laporan ke user (setelah fix):**
161
+
162
+ ```
163
+ ✅ Error ditemukan dan diperbaiki.
164
+
165
+ Root cause: [1 kalimat jelas]
166
+ Fix: [apa yang diubah, di mana]
167
+ Files affected: [N] file
168
+ [Opsional] Catatan: [jika ada concern atau recommendation]
169
+ ```
170
+
171
+ ---
172
+
173
+ ## Decision Framework: Pilih Pendekatan
174
+
175
+ | Situasi | Pendekatan |
176
+ |---------|-----------|
177
+ | Error jelas, 1 file | Fix langsung + verify 4-level |
178
+ | Error sistemik, multiple files | 3L5W full + Search & Destroy |
179
+ | Error intermittent / race condition | Tambahkan logging dulu, reproduce, baru fix |
180
+ | Error di library/dependency | Check versi, cek breaking changes via context7, update imports |
181
+ | TypeScript error banyak sekaligus | Fix root type dulu, biarkan cascade resolve sendiri |
182
+ | Test failure setelah refactor | Check jika test masih relevan vs implementation sudah benar |
183
+
184
+ ---
185
+
186
+ ## Anti-patterns yang Harus Dihindari
187
+
188
+ - ❌ **Whack-a-mole fixing** — Fix simptom tanpa cari root cause
189
+ - ❌ **Single-file tunnel vision** — Fix satu file, ignore yang lain
190
+ - ❌ **Suppress errors** — `catch(e) {}` atau `as any` untuk skip error
191
+ - ❌ **Optimistic reporting** — Lapor selesai sebelum 4-level verified
192
+ - ❌ **Over-engineering fix** — Tambah abstraksi baru untuk masalah yang butuh null check biasa
193
+
194
+ ---
195
+
196
+ ## Integrasi dengan Skill Lain
197
+
198
+ - Setelah fix → panggil `@lint-and-validate` untuk confirm tidak ada regresi
199
+ - Jika root cause ada di database schema → konsultasi `@database-design`
200
+ - Jika root cause ada di auth flow → konsultasi `@auth-implementation-patterns`
201
+ - Jika performa issue → panggil `@performance-profiling`
202
+ - Catat semua fix di `docs/troubleshooting.md` untuk referensi session berikutnya
@@ -1,12 +1,14 @@
1
1
  ---
2
2
  name: vibe-prd
3
3
  description: |
4
- Use after vibe-research, or when starting to define product requirements.
5
- Triggers on "buat PRD", "definisikan fitur", "apa yang harus dibangun",
6
- "scope MVP", "user stories", "requirements aplikasi",
7
- or /vibe-plan step 2.
8
- Requires: docs/research-[AppName].md (jika ada, baca dulu).
9
- Output: docs/01-PRD.md (terisi penuh, bukan template kosong)
4
+ Gunakan skill ini saat user ingin mendefinisikan requirements, membuat PRD, menentukan
5
+ fitur MVP, menulis user stories, atau memulai planning produk baru. Aktifkan untuk
6
+ kata kunci: "buat PRD", "definisikan fitur", "apa yang harus dibangun", "scope MVP",
7
+ "user stories", "requirements aplikasi", "fitur apa yang perlu dibuat", atau saat
8
+ /vibe-plan masuk ke Step 2. Skill ini menghasilkan docs/01-PRD.md yang terisi penuh
9
+ dengan BDD acceptance criteria (Given/When/Then) per fitur output siap untuk /apply.
10
+ Setelah PRD selesai, chain ke vibe-techdesign. Jangan skip skill ini — PRD yang buruk
11
+ menghasilkan hallucinated code.
10
12
  ---
11
13
 
12
14
  # Vibe PRD — Product Requirements Document Generator
@@ -226,3 +228,43 @@ Generate PRD sekarang? (yes/no)
226
228
  - Payment section: muncul hanya jika user konfirmasi ada transaksi keuangan
227
229
  - **STRUKTUR DOKUMEN WAJIB**: Selaraskan dan lengkapi hierarki PRD yang dihasilkan dengan elemen-elemen profesional dari `docs/SRS-Template.md`.
228
230
  - **SKILL CHAINING:** Setelah dokumen PRD selesai dibuat, JANGAN BERHENTI. Secara proaktif tanyakan kepada user: *"PRD sudah siap! Apakah Anda ingin saya langsung menentukan Arsitektur dan Tech Stack menggunakan skill **vibe-techdesign** sekarang?"* Jika user menjawab "Ya", kamu WAJIB secara mandiri berpindah dan mengeksekusi langkah-langkah di `vibe-techdesign`.
231
+
232
+ ## BDD Acceptance Criteria — Quality Gate (WAJIB)
233
+
234
+ Sebelum PRD dianggap selesai, pastikan setiap fitur P0 memiliki:
235
+
236
+ ```
237
+ ✅ Acceptance Criteria Checklist per Fitur P0:
238
+ □ Ada minimal 1 AC success path (Given/When/Then)
239
+ □ Ada minimal 1 AC error/edge case path
240
+ □ 4 UI states terdefinisi: loading, empty, error, success
241
+ □ REQ ID sudah assigned dan unik
242
+ □ Data contract / API format sudah terdefinisi (jika relevan)
243
+ ```
244
+
245
+ Jika ada fitur P0 yang belum punya AC lengkap → **JANGAN lanjut ke vibe-techdesign**.
246
+ Tanyakan user dulu sampai AC-nya lengkap.
247
+
248
+ **Format AC yang benar:**
249
+ ```
250
+ Given [kondisi awal yang spesifik — bukan generic]
251
+ When [aksi yang dilakukan user — satu aksi per AC]
252
+ Then [hasil yang dapat diverifikasi — bisa di-test secara objective]
253
+ ```
254
+
255
+ **Format AC yang salah (hindari):**
256
+ ```
257
+ ❌ Given the user is logged in, When they use the app, Then it works
258
+ ✅ Given user sudah login dan cart berisi 2 item, When user tap "Checkout",
259
+ Then muncul halaman payment summary dengan total harga dan pilihan metode bayar
260
+ ```
261
+
262
+ ## SEED Integration Note
263
+
264
+ Jika skill ini dipanggil dari `/vibe-plan`, project type sudah diketahui.
265
+ Sesuaikan pertanyaan dan output:
266
+ - **Application** → tanyakan semua Q1-Q8
267
+ - **API/Backend** → fokus Q3 (endpoints), Q4 (auth), skip Q6 (platform UI)
268
+ - **Campaign** → ganti Q3 dengan "Konten utama apa?", skip Q5 (payment)
269
+ - **Utility** → tanyakan Q1, Q3 saja (single purpose), skip payment dan platform
270
+ - **Workflow** → fokus Q3 (steps/actions) dan Q7 (error handling strategy)
@@ -0,0 +1,133 @@
1
+ ---
2
+ description: |
3
+ Buat custom project type baru untuk /vibe-plan.
4
+ Gunakan saat 5 default types (Application, API/Backend, Campaign, Utility, Workflow)
5
+ tidak cocok dengan kategori project kamu, atau ada pola project berulang yang
6
+ butuh guided conversation sendiri. Output: 3 file di .agent/.shared/types/{type}/
7
+ ---
8
+
9
+ # /add-type — Create Custom Project Type
10
+
11
+ Extend /vibe-plan dengan project type baru yang sepenuhnya customizable.
12
+
13
+ ---
14
+
15
+ ## Langkah 1 — Nama Type
16
+
17
+ ```
18
+ Berikan nama untuk project type baru kamu:
19
+ - Format: lowercase, hyphen untuk spasi
20
+ - Contoh: "chrome-extension", "microservice", "mobile-game", "saas-landing"
21
+ - Singular (bukan plural)
22
+ ```
23
+
24
+ Cek apakah type sudah ada di `.agent/.shared/types/`:
25
+ - Jika sudah ada → "Type '[nama]' sudah ada. Mau edit yang existing atau buat nama baru?"
26
+ - Jika belum ada → lanjut
27
+
28
+ ---
29
+
30
+ ## Langkah 2 — Definisikan Sections
31
+
32
+ ```
33
+ List topik percakapan untuk type ini, dalam urutan prioritas:
34
+
35
+ Contoh untuk "chrome-extension":
36
+ 1. Problem & Target User
37
+ 2. Extension Permissions
38
+ 3. Content Script vs Background Worker
39
+ 4. Storage Strategy (chrome.storage vs IndexedDB)
40
+ 5. Distribution (personal/team/Chrome Web Store)
41
+ 6. Done Criteria & Test Cases
42
+
43
+ Rigor level:
44
+ tight — Fast-moving, tahan scope creep (seperti Utility)
45
+ standard — Balanced exploration (seperti Workflow)
46
+ deep — Thorough, architecture-focused (seperti Application)
47
+ creative — Generative, loose approach (seperti Campaign)
48
+ ```
49
+
50
+ ---
51
+
52
+ ## Langkah 3 — Generate 3 Files
53
+
54
+ Buat di `.agent/.shared/types/[nama-type]/`:
55
+
56
+ ### File 1: guide.md
57
+
58
+ ```markdown
59
+ # [Type Name] — Conversation Guide
60
+
61
+ ## Section 1: [Nama Section]
62
+ **Explore:** [Pertanyaan-pertanyaan yang perlu dijawab untuk section ini]
63
+ **Suggest:** [Rekomendasi proaktif jika user stuck — "For X, biasanya Y karena..."]
64
+ **Depth:** required/optional
65
+
66
+ ## Section 2: [Nama Section]
67
+ **Explore:** [...]
68
+ **Suggest:** [...]
69
+ **Depth:** required/optional
70
+
71
+ [... ulangi untuk semua sections ...]
72
+ ```
73
+
74
+ ### File 2: config.md
75
+
76
+ ```markdown
77
+ # [Type Name] — Configuration
78
+
79
+ | Setting | Value |
80
+ |---------|-------|
81
+ | Rigor | [tight/standard/deep/creative] |
82
+ | Demeanor | "[Deskripsi cara AI coaching untuk type ini]" |
83
+ | Sections | [N] |
84
+
85
+ ## Required Sections
86
+ - [Section 1]
87
+ - [Section 2]
88
+ ...
89
+
90
+ ## Optional Sections
91
+ - [Section N]
92
+ ```
93
+
94
+ ### File 3: skill-loadout.md
95
+
96
+ ```markdown
97
+ # [Type Name] — Skill Loadout
98
+
99
+ ## Recommended Skills from 600+ Library
100
+
101
+ | Skill | Priority | Why |
102
+ |-------|----------|-----|
103
+ | [skill-name] | required | [alasan] |
104
+ | [skill-name] | recommended | [alasan] |
105
+ | [skill-name] | optional | [alasan] |
106
+ ```
107
+
108
+ ---
109
+
110
+ ## Langkah 4 — Konfirmasi
111
+
112
+ ```
113
+ ✅ Custom type '[nama]' siap digunakan!
114
+
115
+ Files dibuat:
116
+ .agent/.shared/types/[nama]/guide.md
117
+ .agent/.shared/types/[nama]/config.md
118
+ .agent/.shared/types/[nama]/skill-loadout.md
119
+
120
+ Type baru langsung tersedia tanpa perlu modifikasi file lain.
121
+
122
+ Test sekarang: /vibe-plan
123
+ → Saat ditanya project type, ketik '[nama]'
124
+ ```
125
+
126
+ ---
127
+
128
+ ## Aturan
129
+
130
+ - Type baru tidak menimpa type default (composable design)
131
+ - Rigor **tight** = aktif resist expansion — gunakan untuk single-purpose types
132
+ - Rigor **deep** = butuh coverage luas sebelum graduate — untuk complex projects
133
+ - Sections optional boleh di-skip jika user sudah punya jawabannya
@@ -0,0 +1,95 @@
1
+ ---
2
+ description: |
3
+ Kerjakan semua task dalam plan satu per satu, verifikasi tiap task sebelum lanjut.
4
+ Gunakan setelah /vibe-plan atau /new-feature menghasilkan plan.
5
+ Selalu tutup dengan /unify setelah semua task selesai.
6
+ ---
7
+
8
+ # /apply — Mengerjakan Plan
9
+
10
+ Mulai mengerjakan semua task dalam plan. Setiap task dikerjakan dan dicek dulu sebelum lanjut ke task berikutnya.
11
+
12
+ ---
13
+
14
+ ## Langkah 1 — Cek Plan
15
+
16
+ Baca PLANNING.md atau plan file yang tersedia. Jika tidak ada plan → tanya user: "Kamu mau mulai dari mana? Jelaskan fitur yang ingin dibangun."
17
+
18
+ **Jika scope terlalu besar (6+ file atau tidak jelas):**
19
+ > "Pekerjaan ini cukup besar. Saya sarankan kita bagi jadi dua bagian: [X] dulu, baru [Y]. Setuju?"
20
+
21
+ ---
22
+
23
+ ## Langkah 2 — Kerjakan Task Satu per Satu
24
+
25
+ Untuk setiap task:
26
+
27
+ ### A: Baca task + syarat keberhasilan (internal)
28
+
29
+ Baca task, acceptance criteria, dan file yang akan diubah. Lakukan ini secara internal — jangan tampilkan ke user.
30
+
31
+ ### B: Cari skill yang relevan (internal, silent)
32
+
33
+ Search `.agent/skills/` untuk skill yang cocok. Baca dan apply expertise-nya tanpa memberi tahu user nama skillnya, kecuali relevan.
34
+
35
+ ### C: Kerjakan
36
+
37
+ - Implement task
38
+ - Hanya ubah file yang ada di daftar task
39
+ - Jangan sentuh file yang tidak terkait
40
+
41
+ ### D: Verifikasi (internal, silent)
42
+
43
+ Sebelum lanjut, pastikan secara diam-diam:
44
+ 1. File/function sudah benar-benar ada
45
+ 2. Ada logika nyata, bukan placeholder kosong
46
+ 3. Sudah terhubung ke bagian kode yang memanggilnya
47
+ 4. Data bisa mengalir dari awal sampai akhir
48
+
49
+ ### E: Laporkan ke user (plain language)
50
+
51
+ ```
52
+ ✅ [nama task] — selesai
53
+ ⚠️ [nama task] — selesai, ada catatan: [penjelasan sederhana]
54
+ ❓ Saya butuh tahu: [satu pertanyaan spesifik]
55
+ 🚫 Tidak bisa lanjut karena: [alasan jelas]. Kamu mau: A) [opsi A] atau B) [opsi B]?
56
+ ```
57
+
58
+ ---
59
+
60
+ ## Langkah 3 — Cek Keseluruhan (internal)
61
+
62
+ Setelah semua task selesai, jalankan pengecekan internal (lint, type-check, test jika ada). Jika ada masalah, perbaiki dulu sebelum lapor ke user.
63
+
64
+ ---
65
+
66
+ ## Langkah 4 — Ringkasan ke User
67
+
68
+ ```
69
+ ✅ Semua selesai!
70
+
71
+ Yang sudah dikerjakan:
72
+ - [nama task 1]
73
+ - [nama task 2]
74
+ - [nama task 3]
75
+
76
+ [Jika ada catatan:]
77
+ ⚠️ [nama task]: [penjelasan catatan dalam bahasa sederhana]
78
+
79
+ [Jika ada yang belum:]
80
+ ⏸️ [nama task]: menunggu keputusanmu — [pertanyaan/opsi]
81
+
82
+ File yang diubah: [N] file
83
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
84
+ Langkah selanjutnya: ketik /unify untuk merangkum sesi ini.
85
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
86
+ ```
87
+
88
+ ---
89
+
90
+ ## Aturan Penting
91
+
92
+ - Kerjakan satu task sebelum mulai task berikutnya
93
+ - Jika ada temuan di luar scope plan → catat, jangan fix langsung, tanya user dulu
94
+ - Jangan tutup sesi tanpa `/unify`
95
+ - Jika tidak bisa lanjut → selalu lapor dan minta keputusan, jangan diam-diam skip
@@ -0,0 +1,150 @@
1
+ ---
2
+ description: |
3
+ Validasi PLANNING.md lalu promosikan project ke struktur direktori siap-coding.
4
+ Jalankan setelah /vibe-plan selesai dan PLANNING.md sudah diisi penuh.
5
+ Menghasilkan: app directory dengan git init + README yang disintesis dari planning.
6
+ Gunakan /launch jika ingin graduate + langsung init STATE.md dalam satu command.
7
+ ---
8
+
9
+ # /graduate — Promote Project ke Buildable Directory
10
+
11
+ Workflow ini memindahkan project dari fase ideation ke struktur siap-coding.
12
+ Hanya boleh dijalankan jika PLANNING.md sudah melewati quality gate.
13
+
14
+ ---
15
+
16
+ ## Langkah 1 — Deteksi Project
17
+
18
+ Cek argument atau tanya user:
19
+
20
+ ```
21
+ Argument yang diterima: /graduate [nama-project]
22
+
23
+ Jika tidak ada argument:
24
+ → Scan folder projects/ untuk semua PLANNING.md
25
+ → Tampilkan daftar:
26
+
27
+ Projects yang siap di-graduate:
28
+ 1. [nama-project-1] (Application) — dibuat: 2025-04-10
29
+ 2. [nama-project-2] (Utility) — dibuat: 2025-04-09
30
+
31
+ Pilih nomor project atau ketik nama:
32
+ ```
33
+
34
+ ---
35
+
36
+ ## Langkah 2 — Quality Gate (dari planning-quality checklist)
37
+
38
+ Baca `.agent/.shared/checklists/planning-quality.md` dan validasi PLANNING.md.
39
+
40
+ ```
41
+ 📋 Validasi Planning Quality — [Nama Project]
42
+
43
+ Universal Checks:
44
+ □ Project type terdefinisi di header?
45
+ □ Problem statement spesifik (nama masalah, audience, why)?
46
+ □ Minimal 1 design decision dengan rationale?
47
+ □ Open questions section ada (even if empty)?
48
+ □ Next actions terdefinisi (minimal 1)?
49
+
50
+ Type-Specific Checks ([Type]):
51
+ □ Semua required sections terisi (bukan placeholder)?
52
+ □ Depth sesuai rigor level?
53
+
54
+ PAUL-Readiness (jika akan /launch):
55
+ □ Phase breakdown ada dengan shippable milestones?
56
+ □ Tech stack resolved (tidak ada critical TBD)?
57
+ □ Detail cukup untuk AI derive milestones tanpa tanya ulang?
58
+ ```
59
+
60
+ **Hasil:**
61
+ - **Pass** → lanjut ke Langkah 3
62
+ - **Warn** → tampilkan gap, tanya: "Ada bagian yang ingin dilengkapi, atau lanjut graduate?"
63
+ - **Fail** → "PLANNING.md belum cukup detail. Kembali ke `/vibe-plan` untuk melengkapi bagian: [list bagian yang kurang]"
64
+
65
+ ---
66
+
67
+ ## Langkah 3 — Synthesize README
68
+
69
+ Buat README bersih yang disintesis dari PLANNING.md (bukan copy-paste):
70
+
71
+ ```markdown
72
+ # [Nama Project]
73
+
74
+ > [Elevator pitch 1-2 kalimat dari problem statement]
75
+
76
+ ## Overview
77
+ [Deskripsi singkat apa yang dibangun]
78
+
79
+ ## Tech Stack
80
+ [Stack yang sudah dipilih di PLANNING.md]
81
+
82
+ ## Getting Started
83
+ [Placeholder — akan diisi saat development]
84
+
85
+ ## Project Structure
86
+ [Placeholder — akan diisi saat development]
87
+
88
+ ---
89
+ *Generated from PLANNING.md on [tanggal] — update seiring development*
90
+ ```
91
+
92
+ Tampilkan ke user: "README draft sudah siap. Approve untuk graduate?"
93
+
94
+ ---
95
+
96
+ ## Langkah 4 — Create Project Structure
97
+
98
+ Setelah user approve:
99
+
100
+ ```bash
101
+ # Buat direktori app
102
+ mkdir -p apps/[nama-project]
103
+
104
+ # Copy PLANNING.md sebagai referensi
105
+ cp projects/[nama-project]/PLANNING.md apps/[nama-project]/PLANNING.md
106
+
107
+ # Init git
108
+ cd apps/[nama-project]
109
+ git init
110
+ git add README.md PLANNING.md
111
+ git commit -m "chore: initialize project from PLANNING.md"
112
+ ```
113
+
114
+ Struktur direktori yang dibuat:
115
+ ```
116
+ apps/[nama-project]/
117
+ ├── README.md ← Synthesized dari planning
118
+ ├── PLANNING.md ← Copied dari projects/
119
+ ├── docs/ ← Siap untuk PRD, Tech Design, dll
120
+ └── specs/ ← Siap untuk feature specs
121
+ ```
122
+
123
+ ---
124
+
125
+ ## Langkah 5 — Update Tracking
126
+
127
+ Tandai project sebagai graduated di `.agent/ACTIVE.md`:
128
+
129
+ ```
130
+ [nama-project]: graduated → apps/[nama-project]/ on [tanggal]
131
+ ```
132
+
133
+ ---
134
+
135
+ ## Langkah 6 — Closing
136
+
137
+ ```
138
+ 🎓 Project [nama-project] berhasil di-graduate!
139
+
140
+ 📁 Location: apps/[nama-project]/
141
+ 🌿 Git: initialized (1 commit)
142
+ 📄 README: synthesized dari PLANNING.md
143
+
144
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
145
+ Next steps:
146
+ /launch → graduate + init STATE.md sekaligus (next time)
147
+ /apply → mulai eksekusi PLANNING.md sekarang
148
+ /progress → lihat status current project
149
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
150
+ ```