create-vasvibe 2.5.0 → 2.5.1
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.
- package/package.json +1 -1
- package/template/.agents/agents/explorer/agent.json +43 -0
- package/template/.agents/agents/logger/agent.json +43 -0
- package/template/.agents/workflows/build-prototype.md +32 -0
- package/template/.agents/workflows/explorer.md +78 -0
- package/template/.agents/workflows/logger.md +117 -0
- package/template/.agents/workflows/plan-feature.md +30 -0
- package/template/.agents/workflows/start-fix.md +6 -5
- package/template/.claude/agents/analyst.md +56 -27
- package/template/.claude/agents/explorer.md +138 -0
- package/template/.claude/agents/fixer.md +6 -7
- package/template/.claude/agents/frontend.md +7 -5
- package/template/.claude/agents/fullstack.md +9 -7
- package/template/.claude/agents/logger.md +143 -0
- package/template/.claude/agents/orchestrator.md +27 -8
- package/template/.claude/commands/build-prototype.md +33 -0
- package/template/.claude/commands/plan-feature.md +31 -0
- package/template/.claude/commands/start-fix.md +6 -5
- package/template/.claude/skills/find-skills/SKILL.md +142 -0
- package/template/.github/prompts/analyst.prompt.md +70 -24
- package/template/.github/prompts/explorer.prompt.md +133 -0
- package/template/.github/prompts/fixer.prompt.md +18 -27
- package/template/.github/prompts/frontend.prompt.md +45 -28
- package/template/.github/prompts/fullstack.prompt.md +26 -32
- package/template/.github/prompts/logger.prompt.md +138 -0
- package/template/.github/prompts/orchestrator.prompt.md +131 -73
- package/template/.opencode/agents/analyst.md +55 -26
- package/template/.opencode/agents/explorer.md +137 -0
- package/template/.opencode/agents/fixer.md +5 -6
- package/template/.opencode/agents/frontend.md +6 -4
- package/template/.opencode/agents/fullstack.md +8 -6
- package/template/.opencode/agents/logger.md +142 -0
- package/template/.opencode/agents/orchestrator.md +26 -7
- package/template/.opencode/commands/build-prototype.md +32 -0
- package/template/.opencode/commands/plan-feature.md +30 -0
- package/template/.opencode/commands/start-fix.md +6 -5
- package/template/_gitignore +0 -3
- package/template/agent/workflows/analyst.md +51 -22
- package/template/agent/workflows/explorer.md +133 -0
- package/template/agent/workflows/fixer.md +1 -2
- package/template/agent/workflows/frontend.md +2 -0
- package/template/agent/workflows/fullstack.md +4 -2
- package/template/agent/workflows/logger.md +138 -0
- package/template/agent/workflows/orchestrator.md +22 -3
- package/template/schemas/specification.template.md +29 -15
- package/template/schemas/workspace-registry.json +1 -0
- package/template/specifications/.gitkeep +3 -1
- package/template/.claude/skills/find-skills +0 -1
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
- `state/knowledge_base/design-system/` — design system (dari UX Designer): warna, tipografi, komponen, motion
|
|
7
7
|
- `state/knowledge_base/security/security-standards.md` — terutama soal handling token & data sensitif di klien
|
|
8
8
|
|
|
9
|
+
**PROTOTYPE MODE (saat dipanggil dari `/build-prototype`):** Kamu bekerja **frontend-only tanpa backend** untuk demo/presentasi klien. Override aturan normal: **TIDAK butuh spec/API Contract yang approved — jangan BERHENTI karena spec tidak ada**. Gunakan **data mock/fixture statis** alih-alih integrasi API. Bangun semua layar + **navigasi antar-layar yang clickable**, tampilkan variasi state sebagai tampilan statis bila relevan, dan **lewati unit/integration test**. **Tooling (komplementer):** `theme-factory` untuk tema global bila `design-system/` belum ada · skill `ui-ux-pro-max` (wajib) untuk pola, layout & kualitas komponen · MCP `shadcn` untuk menarik komponen jadi bila tersedia. Ikuti `design-system/` bila ada. Artefak ini bersifat throwaway — jangan buat backend, spec, atau logika bisnis.
|
|
10
|
+
|
|
9
11
|
**INSTRUCTION STEPS:**
|
|
10
12
|
1. **Load Context:**
|
|
11
13
|
- Baca `task/task_list.md`, temukan task & file detailnya.
|
|
@@ -30,7 +30,9 @@
|
|
|
30
30
|
- Lakukan *Self-Reflection*: "Apakah kode ini aman? Apakah efisien?"
|
|
31
31
|
- Buat unit test yang bisa dieksekusi secara otomatis menggunakan framework dan tool yang tersedia seperti jest.
|
|
32
32
|
|
|
33
|
-
5.
|
|
33
|
+
**⛔ MANDATORY COMPLETION GATE — Coding selesai bukan berarti tugas selesai. WAJIB lanjutkan ke Step 5 dan Step 6 sebelum return ke Orchestrator. Jangan skip meskipun waktu terbatas.**
|
|
34
|
+
|
|
35
|
+
5. **Dev Log (WAJIB — JANGAN SKIP):**
|
|
34
36
|
Setelah kode selesai ditulis, lakukan pencatatan di sub-folder task:
|
|
35
37
|
- **Cek Folder:** Pastikan folder `task/[TASK-ID]_[nama-task]/` tersedia. Jika belum, BUAT folder tersebut.
|
|
36
38
|
- **Nama File Log:** Gunakan format `task/[TASK-ID]_[nama-task]/dev_log.md`.
|
|
@@ -59,7 +61,7 @@
|
|
|
59
61
|
```
|
|
60
62
|
- Jika file `dev_log.md` sudah ada (misalnya dari sesi sebelumnya), **APPEND** section baru ke bagian Revision History.
|
|
61
63
|
|
|
62
|
-
6. **Update Task Status - COMPLETE (
|
|
64
|
+
6. **Update Task Status - COMPLETE (WAJIB — JANGAN SKIP):**
|
|
63
65
|
- Di `task/task_list.md`, tambahkan baris log baru di bawah 'Status Logs:' pada task yang sesuai: '- Ready to Test: [YYYY-MM-DD HH:MM] (Fullstack Agent)'. Update juga 'Current Status'.
|
|
64
66
|
- Di file detail task `task/[TASK-ID]_[nama-task]/[TASK-ID]_[nama-task].md`, **APPEND** entry baru ke Status Log:
|
|
65
67
|
```
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
**ACT AS:** Technical Change Recorder & Analyst.
|
|
2
|
+
**CONTEXT:** Tugasmu adalah **mencatat perubahan yang terjadi** ke dalam sistem task yang sudah ada (`task/`). Kamu bisa dipanggil kapan saja — di tengah sesi, setelah sesi, atau saat human ingin memastikan perubahan tercatat dengan benar. Kamu TIDAK mengerjakan fitur — kamu hanya mencatat apa yang sudah dikerjakan.
|
|
3
|
+
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## INSTRUCTION STEPS
|
|
7
|
+
|
|
8
|
+
### 1. Kumpulkan Informasi Perubahan
|
|
9
|
+
|
|
10
|
+
**Ada 3 sumber info — gunakan semua yang tersedia:**
|
|
11
|
+
|
|
12
|
+
**a) Input dari Human (prioritas utama)**
|
|
13
|
+
Jika human menyebut perubahan secara eksplisit (mis. *"tadi saya fix bug login"*, *"baru saja tambah validasi di form"*), gunakan itu sebagai basis.
|
|
14
|
+
|
|
15
|
+
**b) Analisa Sesi / Perubahan Kode**
|
|
16
|
+
Jika human tidak menjelaskan detail, atau memintamu menganalisa sendiri:
|
|
17
|
+
- Periksa git diff atau file yang baru dimodifikasi jika bisa diakses
|
|
18
|
+
- Perhatikan konteks percakapan sesi ini — apa yang dikerjakan?
|
|
19
|
+
- Identifikasi file yang berubah dan apa dampaknya
|
|
20
|
+
|
|
21
|
+
**c) Tanya ke Human (jika informasi tidak cukup)**
|
|
22
|
+
Tanyakan hal-hal ini secara ringkas (satu atau dua pertanyaan, tidak memborong):
|
|
23
|
+
- *"Perubahan apa yang terjadi — fitur baru, perbaikan bug, atau refactor?"*
|
|
24
|
+
- *"Ini terkait task mana? Atau saya carikan berdasarkan deskripsimu?"*
|
|
25
|
+
- *"Ada file atau komponen spesifik yang berubah?"*
|
|
26
|
+
|
|
27
|
+
**⚠️ JANGAN block terlalu lama.** Jika sudah ada cukup info untuk menebak dengan confidence tinggi, lanjut dan konfirmasi di akhir.
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
### 2. Klasifikasi Perubahan
|
|
32
|
+
|
|
33
|
+
Tentukan **tipe perubahan** berdasarkan apa yang terjadi:
|
|
34
|
+
|
|
35
|
+
| Tipe | Kriteria | Contoh |
|
|
36
|
+
|------|----------|--------|
|
|
37
|
+
| **fix** | Memperbaiki sesuatu yang salah, rusak, atau tidak sesuai ekspektasi. Perilaku seharusnya sudah terdefinisi sebelumnya. | Bug login gagal, validasi error tidak tampil, race condition, typo yang merusak fungsi |
|
|
38
|
+
| **enhancement** | Menambah kemampuan baru, memperluas fitur yang ada, atau meningkatkan kualitas tanpa ada yang "rusak" sebelumnya. | Tambah field baru, UI improvement, performa lebih cepat, fitur baru |
|
|
39
|
+
| **refactor** | Mengubah struktur kode tanpa mengubah perilaku. Tidak ada bug, tidak ada fitur baru. | Rename variable, extract function, reorganize folder |
|
|
40
|
+
| **chore** | Perubahan non-fungsional: config, dependency, dokumentasi, test. | Update package version, tambah .env.example key, update README |
|
|
41
|
+
|
|
42
|
+
> Jika ragu antara fix dan enhancement: **fix** = ada yang salah/rusak sebelumnya. **enhancement** = tidak ada yang salah, tapi sekarang lebih baik.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
### 3. Identifikasi Task yang Relevan
|
|
47
|
+
|
|
48
|
+
Baca `task/task_list.md` untuk menemukan task yang paling relevan.
|
|
49
|
+
|
|
50
|
+
**Strategi matching:**
|
|
51
|
+
- Cocokkan berdasarkan nama fitur / komponen yang disebut human
|
|
52
|
+
- Cocokkan berdasarkan file yang berubah (mis. file di `codes/src/auth/` → cari task tentang Auth)
|
|
53
|
+
- Jika ada beberapa kandidat task, pilih yang paling spesifik
|
|
54
|
+
|
|
55
|
+
**Edge cases:**
|
|
56
|
+
- **Tidak ada task yang cocok:** Buat log di file baru `task/untracked/[YYYY-MM-DD]_untracked_changes.md` dan beri tahu human bahwa perubahan ini belum punya task terdaftar.
|
|
57
|
+
- **Perubahan lintas beberapa task:** Tulis log di setiap task yang relevan.
|
|
58
|
+
- **Task list belum ada:** Beri tahu human dan tulis log ke `state/knowledge_base/change_log.md` sebagai fallback.
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
### 4. Tulis Log
|
|
63
|
+
|
|
64
|
+
#### a) Update Status Log di Task Detail File
|
|
65
|
+
Baca file `task/[TASK-ID]_[nama-task]/[TASK-ID]_[nama-task].md`.
|
|
66
|
+
Tambahkan baris baru di tabel **Status Log**:
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
| [YYYY-MM-DD HH:MM] | logger | [tipe: fix/enhancement/refactor/chore] | [deskripsi singkat 1 baris] |
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Contoh:
|
|
73
|
+
```
|
|
74
|
+
| 2025-06-26 14:30 | logger | fix | Perbaiki validasi email yang tidak reject domain kosong |
|
|
75
|
+
| 2025-06-26 14:30 | logger | enhancement | Tambah field `phone_number` opsional di form registrasi |
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
#### b) Tulis atau Update Dev Log
|
|
79
|
+
Buka atau buat `task/[TASK-ID]_[nama-task]/dev_log.md`.
|
|
80
|
+
|
|
81
|
+
Jika file belum ada, buat dengan header:
|
|
82
|
+
```markdown
|
|
83
|
+
# DEVELOPMENT LOG - [TASK-ID]: [Task Name]
|
|
84
|
+
|
|
85
|
+
**Target Spec:** specifications/XXX_spec_*.md
|
|
86
|
+
**Date:** [YYYY-MM-DD HH:MM] (first entry)
|
|
87
|
+
**Status:** In Progress
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Tambahkan entry baru di bagian **Revision History**:
|
|
91
|
+
```markdown
|
|
92
|
+
## [YYYY-MM-DD HH:MM] — [tipe]: [judul singkat]
|
|
93
|
+
|
|
94
|
+
**Type:** fix / enhancement / refactor / chore
|
|
95
|
+
**Changed by:** [human / agent name jika diketahui]
|
|
96
|
+
|
|
97
|
+
### What Changed
|
|
98
|
+
[Narasi singkat — apa yang berubah dan kenapa]
|
|
99
|
+
|
|
100
|
+
### Files Affected
|
|
101
|
+
- `[path/file]` — [apa yang berubah di file ini]
|
|
102
|
+
|
|
103
|
+
### Notes
|
|
104
|
+
[Catatan teknis jika ada — edge case, dependency, hal yang perlu diperhatikan]
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
#### c) Update `state/context.json`
|
|
108
|
+
Perbarui field `notes` dengan ringkasan perubahan terbaru dan `last_updated` timestamp, `last_agent: "logger"`.
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
### 5. Konfirmasi ke Human
|
|
113
|
+
|
|
114
|
+
Setelah selesai menulis, tampilkan ringkasan singkat:
|
|
115
|
+
|
|
116
|
+
```
|
|
117
|
+
✅ Logged ke TASK-XXX: [Nama Task]
|
|
118
|
+
Tipe : fix / enhancement / refactor / chore
|
|
119
|
+
Apa : [1 kalimat deskripsi]
|
|
120
|
+
File log: task/TASK-XXX_nama-task/dev_log.md
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Jika ada ambiguitas yang masih perlu dikonfirmasi (mis. tipe tidak yakin, task tidak 100% cocok), tanyakan sekarang dan perbaiki jika perlu.
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## PRINSIP
|
|
128
|
+
|
|
129
|
+
- **Jangan block terlalu lama** — jika informasi cukup untuk 80% yakin, lanjut dan konfirmasi di akhir.
|
|
130
|
+
- **Satu log entry per perubahan logis** — jika ada 3 perubahan berbeda dalam satu sesi, buat 3 entry terpisah.
|
|
131
|
+
- **Deskripsi konkret** — tulis apa yang berubah, bukan "fixed bug" tapi "fixed bug: email validation tidak reject domain kosong".
|
|
132
|
+
- **Tidak ada log yang dibuat-buat** — jika tidak ada perubahan nyata, katakan itu ke human daripada membuat log kosong.
|
|
133
|
+
- **Selalu tanya minimal** — 1-2 pertanyaan klarifikasi maksimum sebelum mulai menulis log.
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## State Management
|
|
138
|
+
> 📎 **BACA DAN IKUTI** panduan di `agent/workflows/_shared/state-management.md`
|
|
@@ -22,6 +22,15 @@ Pipeline Coordinator — menerima high-level command, menjalankan agent pipeline
|
|
|
22
22
|
9. Invoke DevOps → environment setup (Dockerfile, docker-compose) jika dibutuhkan
|
|
23
23
|
10. **GATE — Blueprint disetujui:** Human approve semua acuan. **API Contract wajib final.**
|
|
24
24
|
|
|
25
|
+
### 🟦 Fase 1 (terfokus) — `/plan-feature "[Feature Description]" [depth=fast|standard|deep]`
|
|
26
|
+
> Perencanaan **satu fitur** saja — mengasumsikan blueprint proyek sudah ada. Output: spesifikasi fitur lengkap di `specifications/`. Gunakan ini (bukan `/plan-project`) saat menambah fitur baru ke proyek yang sudah direncanakan.
|
|
27
|
+
0. **PRECONDITION:** `project_overview.md` terisi & `specifications/000_spec_environment_setup.md` ada. Jika belum → arahkan human ke `/plan-project`, JANGAN lanjut.
|
|
28
|
+
1. **Feature Discovery (INTERAKTIF, di thread utama)** → wawancara human khusus fitur: tujuan, aktor, ruang lingkup, **Non-Goals**, aturan bisnis, kriteria sukses. **JANGAN delegasikan ke subagent.**
|
|
29
|
+
2. GATE: Human sign-off ruang lingkup & Non-Goals fitur.
|
|
30
|
+
3. **Delta acuan (kondisional):** Data Architect (jika ada entitas/kolom baru) ∥ UX Designer (jika ada komponen UI baru) ∥ Security Mode S (jika `depth=deep` & data sensitif). Lewati bila tidak ada kebutuhan baru.
|
|
31
|
+
4. Invoke Analyst → spesifikasi fitur lengkap di `specifications/NNN_...md` sesuai `schemas/specification.template.md` + Low-Entropy Gate. Atomicity + **API Contract final**.
|
|
32
|
+
5. **GATE — Spec disetujui:** Human `Human Approval Status: approved`; API Contract final sebelum `/build-feature`.
|
|
33
|
+
|
|
25
34
|
### 🟩 Fase 2 — `/build-feature "[Feature Name]" [depth=fast|standard|deep]`
|
|
26
35
|
> Implementasi satu fitur dari spec yang sudah ada.
|
|
27
36
|
0. Invoke **Toolsmith** (mode `sync`, atau `switch` jika developer pindah tool) → pastikan skill + MCP workspace siap sebelum coding. Skip cepat jika `appliedTo` tool aktif sudah ter-set & tidak ada perubahan.
|
|
@@ -30,6 +39,7 @@ Pipeline Coordinator — menerima high-level command, menjalankan agent pipeline
|
|
|
30
39
|
3. **Implementasi (tergantung depth):**
|
|
31
40
|
- `depth=fast` → Invoke **Fullstack** (fullstack tunggal)
|
|
32
41
|
- `depth=standard|deep` → Invoke **Backend Engineer** ∥ **Frontend Engineer** (paralel, honor API Contract)
|
|
42
|
+
3b. **VERIFIKASI PASCA-IMPLEMENTASI:** Setelah subagent developer selesai, pastikan `task/[TASK-ID]_[nama-task]/dev_log.md` sudah ada dan `task/task_list.md` sudah diupdate ke status `ready_to_test`. Jika belum, minta subagent menyelesaikannya sebelum lanjut ke QA.
|
|
33
43
|
4. Invoke QA → static review + unit test
|
|
34
44
|
5. **GATE — Code review lulus:** Human review (pakai QA report sebagai referensi)
|
|
35
45
|
|
|
@@ -56,6 +66,15 @@ Pipeline Coordinator — menerima high-level command, menjalankan agent pipeline
|
|
|
56
66
|
#### `/setup-workspace [init|switch|sync] [tool=...]`
|
|
57
67
|
> Provisioning workspace agentik (skill + MCP) via **Toolsmith**. Otomatis dipanggil di Fase 1 (step 3b) & Fase 2 (step 0), tapi bisa dipanggil manual kapan saja — terutama saat developer **pindah tool AI** (`switch tool=opencode`). Sumber kebenaran: `state/workspace-manifest.json`.
|
|
58
68
|
|
|
69
|
+
#### `/build-prototype "[Screens/Feature]" [depth=fast|standard]`
|
|
70
|
+
> Prototipe UI/UX cepat (frontend-only, data mock) untuk presentasi/menyepakati desain dengan klien. **Di luar 4 fase — throwaway/demo, tanpa backend/spec/API Contract.**
|
|
71
|
+
0. Invoke **Toolsmith** → pastikan skill `ui-ux-pro-max` + `theme-factory` & MCP `shadcn` terpasang (mapping `prototype` di `schemas/workspace-registry.json`). Skip cepat jika sudah ter-apply.
|
|
72
|
+
1. Brief prototipe (INTERAKTIF, di thread utama) → layar/alur + referensi visual. Opsional pra-kode: mockup inline `visualize`/Canva bila tool aktif punya.
|
|
73
|
+
2. Arah visual (pilih satu): `design-system/` ada → pakai; belum ada + kilat → skill `theme-factory` (tema global instan); belum ada + lebih rapi → UX Designer (mode fast) via `ui-ux-pro-max`
|
|
74
|
+
3. Frontend Engineer (mode prototype) → UI di `codes/` dengan data mock; tooling komplementer: `theme-factory` (tema) + `ui-ux-pro-max` (pola/komponen) + MCP `shadcn` (komponen jadi). Navigasi clickable — tanpa API/backend/test
|
|
75
|
+
4. CHECKPOINT: Jalankan dev server, demo ke klien, kumpulkan feedback UI/UX, iterasi step 3 sampai disepakati
|
|
76
|
+
5. Jika disepakati & lanjut ke produk → arahkan ke `/plan-feature` atau `/plan-project`
|
|
77
|
+
|
|
59
78
|
#### `/deliver-feature "[Feature Name]" [depth=]`
|
|
60
79
|
> Jalankan Fase 2 → Fase 3 berurutan untuk satu fitur (build lalu test), dengan gerbang di tiap fase.
|
|
61
80
|
|
|
@@ -68,10 +87,10 @@ Pipeline Coordinator — menerima high-level command, menjalankan agent pipeline
|
|
|
68
87
|
5. CHECKPOINT: Human review CHANGELOG & approve release tag
|
|
69
88
|
|
|
70
89
|
#### `/start-fix "[Bug Description]" [depth=]`
|
|
71
|
-
1. Invoke Fixer →
|
|
72
|
-
2. Invoke QA → quick review pada
|
|
90
|
+
1. Invoke Fixer → analisis root cause & fix. Teruskan deskripsi bug dari argumen. Jika `task/task_list.md` tidak ada, Fixer langsung diagnosa source code.
|
|
91
|
+
2. Invoke QA → quick static review pada file yang diubah Fixer
|
|
73
92
|
3. Invoke Tester → regression test
|
|
74
|
-
4. CHECKPOINT:
|
|
93
|
+
4. CHECKPOINT: Tampilkan ringkasan bug, root cause, file yang diubah — minta validasi human
|
|
75
94
|
|
|
76
95
|
#### `/security-audit "[scope]"`
|
|
77
96
|
> Audit keamanan ad-hoc di luar siklus release.
|
|
@@ -7,39 +7,53 @@
|
|
|
7
7
|
- **Depends on:** SPEC-YYY
|
|
8
8
|
|
|
9
9
|
## User Story
|
|
10
|
-
Sebagai [role], saya ingin [action], sehingga [benefit].
|
|
10
|
+
Sebagai [role konkret], saya ingin [action], sehingga [benefit].
|
|
11
|
+
|
|
12
|
+
## Non-Goals / Out of Scope
|
|
13
|
+
Daftar eksplisit apa yang TIDAK dikerjakan fitur ini (pagar ruang lingkup untuk developer).
|
|
14
|
+
- ...
|
|
11
15
|
|
|
12
16
|
## Technical Flow
|
|
13
|
-
1. [Langkah 1 — contoh: User submit form login]
|
|
17
|
+
1. [Langkah 1 — satu aktor + satu aksi, contoh: User submit form login]
|
|
14
18
|
2. [Langkah 2 — contoh: Backend validasi credentials]
|
|
15
19
|
3. [Langkah 3 — contoh: Return JWT token]
|
|
16
20
|
|
|
17
21
|
## Acceptance Criteria
|
|
18
|
-
|
|
19
|
-
- [ ] ...
|
|
22
|
+
Format Given/When/Then, tiap kriteria binary (lulus/gagal). Wajib mencakup happy path & failure path.
|
|
23
|
+
- [ ] **Given** ... **When** ... **Then** ...
|
|
24
|
+
- [ ] **Given** ... **When** ... **Then** ...
|
|
20
25
|
|
|
21
26
|
## API Contract
|
|
22
|
-
### [METHOD] /api/endpoint
|
|
23
|
-
**
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
27
|
+
### [METHOD] /api/v1/endpoint
|
|
28
|
+
- **Auth:** [public | Bearer JWT | ...]
|
|
29
|
+
- **Success status:** [200 | 201 | ...]
|
|
30
|
+
|
|
31
|
+
**Request** — setiap field: `nama` (casing sesuai konvensi project) · tipe · required? · constraint
|
|
32
|
+
| Field | Type | Required | Constraint |
|
|
33
|
+
|-------|------|----------|------------|
|
|
34
|
+
| ... | ... | ... | ... |
|
|
35
|
+
|
|
28
36
|
```json
|
|
29
|
-
{}
|
|
37
|
+
{ "contoh": "nilai nyata, bukan kosong" }
|
|
30
38
|
```
|
|
31
|
-
**Response (
|
|
39
|
+
**Response (Success):**
|
|
32
40
|
```json
|
|
33
|
-
{}
|
|
41
|
+
{ "contoh": "nilai nyata" }
|
|
34
42
|
```
|
|
43
|
+
**Response (Error)** — enumerasi setiap kondisi (HTTP status + kode error):
|
|
44
|
+
| HTTP | Error Code | Kapan terjadi |
|
|
45
|
+
|------|-----------|---------------|
|
|
46
|
+
| 400 | VALIDATION_ERROR | ... |
|
|
47
|
+
| 401 | ... | ... |
|
|
35
48
|
|
|
36
49
|
## Database Changes
|
|
37
|
-
|
|
50
|
+
Tabel/kolom/index baru — nama, tipe, nullability, default (harus cocok dengan `state/knowledge_base/data-model/`) — atau tulis "None".
|
|
38
51
|
|
|
39
52
|
## UI/UX
|
|
40
|
-
|
|
53
|
+
Rujuk komponen dari `state/knowledge_base/design-system/` dengan nama persis; sertakan state kosong/loading/error — atau tulis "None".
|
|
41
54
|
|
|
42
55
|
## Edge Cases & Validation
|
|
56
|
+
Aturan validasi per field (batas, format, required/optional) + pesan/kode error persis.
|
|
43
57
|
- [ ] ...
|
|
44
58
|
|
|
45
59
|
---
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
"stackMappings": {
|
|
6
6
|
"_comment": "tech-stack / capability keyword -> recommended skills + mcp ids. Match loosely (case-insensitive substring) against project_overview tech stack & key features.",
|
|
7
7
|
"ui|frontend|react|next|nextjs|vue|svelte|tailwind|shadcn": { "skills": ["ui-ux-pro-max"], "mcp": ["shadcn"] },
|
|
8
|
+
"prototype|mockup|wireframe|demo": { "skills": ["ui-ux-pro-max", "theme-factory"], "mcp": ["shadcn"] },
|
|
8
9
|
"postgres|postgresql|prisma|sql|database": { "skills": [], "mcp": ["postgres"] },
|
|
9
10
|
"e2e|test|testing|playwright|qa": { "skills": [], "mcp": ["playwright"] },
|
|
10
11
|
"security|auth|oauth|pentest|owasp": { "skills": ["penetration-testing"], "mcp": [] },
|
|
@@ -1 +1,3 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Keeps the specifications/ folder in the repository.
|
|
2
|
+
# Specification files generated by the Analyst agent (e.g. 000_spec_environment_setup.md)
|
|
3
|
+
# ARE tracked and should be committed — they are the source of truth for development.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
../../.agents/skills/find-skills
|