codehava-agent-kit 1.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.
- package/README.md +56 -0
- package/bin/cli.js +56 -0
- package/package.json +26 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/charts.csv +26 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/colors.csv +97 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/icons.csv +101 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/landing.csv +31 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/products.csv +97 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/prompts.csv +24 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/react-performance.csv +45 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/stacks/react.csv +54 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/stacks/vue.csv +50 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/styles.csv +59 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/typography.csv +58 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/templates/.agent/.shared/ui-ux-pro-max/data/web-interface.csv +31 -0
- package/templates/.agent/.shared/ui-ux-pro-max/scripts/__pycache__/core.cpython-313.pyc +0 -0
- package/templates/.agent/.shared/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-313.pyc +0 -0
- package/templates/.agent/.shared/ui-ux-pro-max/scripts/core.py +258 -0
- package/templates/.agent/.shared/ui-ux-pro-max/scripts/design_system.py +1067 -0
- package/templates/.agent/.shared/ui-ux-pro-max/scripts/search.py +106 -0
- package/templates/.agent/agents/backend-specialist.md +263 -0
- package/templates/.agent/agents/code-archaeologist.md +106 -0
- package/templates/.agent/agents/database-architect.md +226 -0
- package/templates/.agent/agents/debugger.md +225 -0
- package/templates/.agent/agents/devops-engineer.md +242 -0
- package/templates/.agent/agents/documentation-writer.md +104 -0
- package/templates/.agent/agents/explorer-agent.md +73 -0
- package/templates/.agent/agents/frontend-specialist.md +593 -0
- package/templates/.agent/agents/game-developer.md +162 -0
- package/templates/.agent/agents/mobile-developer.md +377 -0
- package/templates/.agent/agents/orchestrator.md +416 -0
- package/templates/.agent/agents/penetration-tester.md +188 -0
- package/templates/.agent/agents/performance-optimizer.md +187 -0
- package/templates/.agent/agents/product-manager.md +112 -0
- package/templates/.agent/agents/product-owner.md +95 -0
- package/templates/.agent/agents/project-planner.md +406 -0
- package/templates/.agent/agents/qa-automation-engineer.md +103 -0
- package/templates/.agent/agents/security-auditor.md +170 -0
- package/templates/.agent/agents/seo-specialist.md +111 -0
- package/templates/.agent/agents/test-engineer.md +158 -0
- package/templates/.agent/mcp_config.json +129 -0
- package/templates/.agent/rules/GEMINI.md +273 -0
- package/templates/.agent/scripts/auto_preview.py +148 -0
- package/templates/.agent/scripts/checklist.py +217 -0
- package/templates/.agent/scripts/session_manager.py +120 -0
- package/templates/.agent/scripts/verify_all.py +327 -0
- package/templates/.agent/skills/api-patterns/SKILL.md +81 -0
- package/templates/.agent/skills/api-patterns/api-style.md +42 -0
- package/templates/.agent/skills/api-patterns/auth.md +24 -0
- package/templates/.agent/skills/api-patterns/documentation.md +26 -0
- package/templates/.agent/skills/api-patterns/graphql.md +41 -0
- package/templates/.agent/skills/api-patterns/rate-limiting.md +31 -0
- package/templates/.agent/skills/api-patterns/response.md +37 -0
- package/templates/.agent/skills/api-patterns/rest.md +40 -0
- package/templates/.agent/skills/api-patterns/scripts/api_validator.py +211 -0
- package/templates/.agent/skills/api-patterns/security-testing.md +122 -0
- package/templates/.agent/skills/api-patterns/trpc.md +41 -0
- package/templates/.agent/skills/api-patterns/versioning.md +22 -0
- package/templates/.agent/skills/app-builder/SKILL.md +75 -0
- package/templates/.agent/skills/app-builder/agent-coordination.md +71 -0
- package/templates/.agent/skills/app-builder/feature-building.md +53 -0
- package/templates/.agent/skills/app-builder/project-detection.md +34 -0
- package/templates/.agent/skills/app-builder/scaffolding.md +118 -0
- package/templates/.agent/skills/app-builder/tech-stack.md +41 -0
- package/templates/.agent/skills/app-builder/templates/SKILL.md +39 -0
- package/templates/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
- package/templates/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
- package/templates/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
- package/templates/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
- package/templates/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
- package/templates/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
- package/templates/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
- package/templates/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +122 -0
- package/templates/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +122 -0
- package/templates/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +169 -0
- package/templates/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +134 -0
- package/templates/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
- package/templates/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +119 -0
- package/templates/.agent/skills/architecture/SKILL.md +55 -0
- package/templates/.agent/skills/architecture/context-discovery.md +43 -0
- package/templates/.agent/skills/architecture/examples.md +94 -0
- package/templates/.agent/skills/architecture/pattern-selection.md +68 -0
- package/templates/.agent/skills/architecture/patterns-reference.md +50 -0
- package/templates/.agent/skills/architecture/trade-off-analysis.md +77 -0
- package/templates/.agent/skills/bash-linux/SKILL.md +199 -0
- package/templates/.agent/skills/behavioral-modes/SKILL.md +242 -0
- package/templates/.agent/skills/better-auth-patterns/SKILL.md +121 -0
- package/templates/.agent/skills/brainstorming/SKILL.md +163 -0
- package/templates/.agent/skills/brainstorming/dynamic-questioning.md +350 -0
- package/templates/.agent/skills/bullmq-worker/SKILL.md +124 -0
- package/templates/.agent/skills/clean-code/SKILL.md +201 -0
- package/templates/.agent/skills/code-review-checklist/SKILL.md +109 -0
- package/templates/.agent/skills/database-design/SKILL.md +52 -0
- package/templates/.agent/skills/database-design/database-selection.md +43 -0
- package/templates/.agent/skills/database-design/indexing.md +39 -0
- package/templates/.agent/skills/database-design/migrations.md +48 -0
- package/templates/.agent/skills/database-design/optimization.md +36 -0
- package/templates/.agent/skills/database-design/orm-selection.md +30 -0
- package/templates/.agent/skills/database-design/schema-design.md +56 -0
- package/templates/.agent/skills/database-design/scripts/schema_validator.py +172 -0
- package/templates/.agent/skills/deployment-procedures/SKILL.md +241 -0
- package/templates/.agent/skills/doc.md +177 -0
- package/templates/.agent/skills/documentation-templates/SKILL.md +194 -0
- package/templates/.agent/skills/feature-spec-writer/SKILL.md +76 -0
- package/templates/.agent/skills/frontend-design/SKILL.md +452 -0
- package/templates/.agent/skills/frontend-design/animation-guide.md +331 -0
- package/templates/.agent/skills/frontend-design/color-system.md +311 -0
- package/templates/.agent/skills/frontend-design/decision-trees.md +418 -0
- package/templates/.agent/skills/frontend-design/motion-graphics.md +306 -0
- package/templates/.agent/skills/frontend-design/scripts/accessibility_checker.py +183 -0
- package/templates/.agent/skills/frontend-design/scripts/ux_audit.py +722 -0
- package/templates/.agent/skills/frontend-design/typography-system.md +345 -0
- package/templates/.agent/skills/frontend-design/ux-psychology.md +1116 -0
- package/templates/.agent/skills/frontend-design/visual-effects.md +383 -0
- package/templates/.agent/skills/game-development/2d-games/SKILL.md +119 -0
- package/templates/.agent/skills/game-development/3d-games/SKILL.md +135 -0
- package/templates/.agent/skills/game-development/SKILL.md +167 -0
- package/templates/.agent/skills/game-development/game-art/SKILL.md +185 -0
- package/templates/.agent/skills/game-development/game-audio/SKILL.md +190 -0
- package/templates/.agent/skills/game-development/game-design/SKILL.md +129 -0
- package/templates/.agent/skills/game-development/mobile-games/SKILL.md +108 -0
- package/templates/.agent/skills/game-development/multiplayer/SKILL.md +132 -0
- package/templates/.agent/skills/game-development/pc-games/SKILL.md +144 -0
- package/templates/.agent/skills/game-development/vr-ar/SKILL.md +123 -0
- package/templates/.agent/skills/game-development/web-games/SKILL.md +150 -0
- package/templates/.agent/skills/geo-fundamentals/SKILL.md +156 -0
- package/templates/.agent/skills/geo-fundamentals/scripts/geo_checker.py +289 -0
- package/templates/.agent/skills/i18n-localization/SKILL.md +154 -0
- package/templates/.agent/skills/i18n-localization/scripts/i18n_checker.py +241 -0
- package/templates/.agent/skills/intelligent-routing/SKILL.md +335 -0
- package/templates/.agent/skills/lint-and-validate/SKILL.md +45 -0
- package/templates/.agent/skills/lint-and-validate/scripts/lint_runner.py +184 -0
- package/templates/.agent/skills/lint-and-validate/scripts/type_coverage.py +173 -0
- package/templates/.agent/skills/mcp-builder/SKILL.md +176 -0
- package/templates/.agent/skills/mobile-design/SKILL.md +394 -0
- package/templates/.agent/skills/mobile-design/decision-trees.md +516 -0
- package/templates/.agent/skills/mobile-design/mobile-backend.md +491 -0
- package/templates/.agent/skills/mobile-design/mobile-color-system.md +420 -0
- package/templates/.agent/skills/mobile-design/mobile-debugging.md +122 -0
- package/templates/.agent/skills/mobile-design/mobile-design-thinking.md +357 -0
- package/templates/.agent/skills/mobile-design/mobile-navigation.md +458 -0
- package/templates/.agent/skills/mobile-design/mobile-performance.md +767 -0
- package/templates/.agent/skills/mobile-design/mobile-testing.md +356 -0
- package/templates/.agent/skills/mobile-design/mobile-typography.md +433 -0
- package/templates/.agent/skills/mobile-design/platform-android.md +666 -0
- package/templates/.agent/skills/mobile-design/platform-ios.md +561 -0
- package/templates/.agent/skills/mobile-design/scripts/mobile_audit.py +670 -0
- package/templates/.agent/skills/mobile-design/touch-psychology.md +537 -0
- package/templates/.agent/skills/neo-storage/SKILL.md +115 -0
- package/templates/.agent/skills/nextjs-api-route/SKILL.md +134 -0
- package/templates/.agent/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +351 -0
- package/templates/.agent/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +240 -0
- package/templates/.agent/skills/nextjs-react-expert/3-server-server-side-performance.md +490 -0
- package/templates/.agent/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +264 -0
- package/templates/.agent/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +581 -0
- package/templates/.agent/skills/nextjs-react-expert/6-rendering-rendering-performance.md +432 -0
- package/templates/.agent/skills/nextjs-react-expert/7-js-javascript-performance.md +684 -0
- package/templates/.agent/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +150 -0
- package/templates/.agent/skills/nextjs-react-expert/9-cache-components.md +103 -0
- package/templates/.agent/skills/nextjs-react-expert/SKILL.md +293 -0
- package/templates/.agent/skills/nextjs-react-expert/scripts/convert_rules.py +222 -0
- package/templates/.agent/skills/nextjs-react-expert/scripts/react_performance_checker.py +252 -0
- package/templates/.agent/skills/nodejs-best-practices/SKILL.md +333 -0
- package/templates/.agent/skills/parallel-agents/SKILL.md +175 -0
- package/templates/.agent/skills/performance-profiling/SKILL.md +143 -0
- package/templates/.agent/skills/performance-profiling/scripts/lighthouse_audit.py +76 -0
- package/templates/.agent/skills/plan-writing/SKILL.md +152 -0
- package/templates/.agent/skills/powershell-windows/SKILL.md +167 -0
- package/templates/.agent/skills/prisma-7-patterns/SKILL.md +91 -0
- package/templates/.agent/skills/python-patterns/SKILL.md +441 -0
- package/templates/.agent/skills/red-team-tactics/SKILL.md +199 -0
- package/templates/.agent/skills/rust-pro/SKILL.md +176 -0
- package/templates/.agent/skills/seo-fundamentals/SKILL.md +129 -0
- package/templates/.agent/skills/seo-fundamentals/scripts/seo_checker.py +219 -0
- package/templates/.agent/skills/server-management/SKILL.md +161 -0
- package/templates/.agent/skills/systematic-debugging/SKILL.md +109 -0
- package/templates/.agent/skills/tailwind-patterns/SKILL.md +269 -0
- package/templates/.agent/skills/tdd-workflow/SKILL.md +149 -0
- package/templates/.agent/skills/testing-patterns/SKILL.md +178 -0
- package/templates/.agent/skills/testing-patterns/scripts/test_runner.py +219 -0
- package/templates/.agent/skills/uu-pdp-feature-check/SKILL.md +116 -0
- package/templates/.agent/skills/vibe-buildplan/SKILL.md +232 -0
- package/templates/.agent/skills/vibe-prd/SKILL.md +226 -0
- package/templates/.agent/skills/vibe-research/SKILL.md +162 -0
- package/templates/.agent/skills/vibe-techdesign/SKILL.md +195 -0
- package/templates/.agent/skills/vulnerability-scanner/SKILL.md +276 -0
- package/templates/.agent/skills/vulnerability-scanner/checklists.md +121 -0
- package/templates/.agent/skills/vulnerability-scanner/scripts/security_scan.py +458 -0
- package/templates/.agent/skills/web-design-guidelines/SKILL.md +57 -0
- package/templates/.agent/skills/webapp-testing/SKILL.md +187 -0
- package/templates/.agent/skills/webapp-testing/scripts/playwright_runner.py +173 -0
- package/templates/.agent/skills/xendit-integration/SKILL.md +100 -0
- package/templates/.agent/snippets/@react-component-template.tsx +29 -0
- package/templates/.agent/workflows/brainstorm.md +113 -0
- package/templates/.agent/workflows/create.md +59 -0
- package/templates/.agent/workflows/db-migrate.md +26 -0
- package/templates/.agent/workflows/debug.md +103 -0
- package/templates/.agent/workflows/deploy.md +35 -0
- package/templates/.agent/workflows/dev-reset.md +40 -0
- package/templates/.agent/workflows/enhance.md +63 -0
- package/templates/.agent/workflows/git-commit.md +24 -0
- package/templates/.agent/workflows/health-check.md +34 -0
- package/templates/.agent/workflows/new-feature.md +32 -0
- package/templates/.agent/workflows/orchestrate.md +237 -0
- package/templates/.agent/workflows/plan.md +89 -0
- package/templates/.agent/workflows/preview.md +81 -0
- package/templates/.agent/workflows/status.md +86 -0
- package/templates/.agent/workflows/test.md +144 -0
- package/templates/.agent/workflows/ui-ux-pro-max.md +296 -0
- package/templates/.agent/workflows/vibe-plan.md +133 -0
- package/templates/.agent/workflows/vibe-recap.md +17 -0
- package/templates/.antigravity/rules.md +64 -0
- package/templates/AGENTS.md +268 -0
- package/templates/docs/00A-PROJECT-CHARTER.md +33 -0
- package/templates/docs/00B-BRD.md +25 -0
- package/templates/docs/01-PRD.md +122 -0
- package/templates/docs/01B-SRS-LENGKAP.md +60 -0
- package/templates/docs/02-TECH-DESIGN.md +491 -0
- package/templates/docs/03-UI-GUIDELINES.md +301 -0
- package/templates/docs/04-BACKLOG.md +127 -0
- package/templates/docs/05-DEPLOYMENT.md +363 -0
- package/templates/docs/06-DEVELOPMENT-LOG.md +78 -0
- package/templates/specs/README.md +54 -0
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: vibe-prd
|
|
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)
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Vibe PRD — Product Requirements Document Generator
|
|
13
|
+
|
|
14
|
+
Skill ini menghasilkan PRD yang lengkap dan siap dipakai agent untuk coding.
|
|
15
|
+
Bukan template kosong — output-nya sudah terisi berdasarkan jawaban user.
|
|
16
|
+
|
|
17
|
+
## Persiapan
|
|
18
|
+
|
|
19
|
+
**Pertama:** Cek apakah `docs/research-[AppName].md` sudah ada.
|
|
20
|
+
- Jika ada → baca dulu, gunakan sebagai konteks, skip pertanyaan yang sudah terjawab
|
|
21
|
+
- Jika tidak ada → mulai dari awal dengan pertanyaan lengkap
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Pertanyaan yang Diajukan (satu per satu)
|
|
26
|
+
|
|
27
|
+
**Q1:** "Nama aplikasinya apa, dan dalam satu kalimat — apa yang dilakukan aplikasi ini?"
|
|
28
|
+
|
|
29
|
+
**Q2:** "Siapa yang akan menggunakan aplikasi ini?
|
|
30
|
+
Deskripsikan minimal 2 tipe user (contoh: pembeli & penjual, pasien & dokter, murid & guru)"
|
|
31
|
+
|
|
32
|
+
**Q3:** "Apa 3 fitur PALING PENTING yang harus ada di MVP?
|
|
33
|
+
(Yang tanpanya, aplikasi tidak bisa dipakai sama sekali)"
|
|
34
|
+
|
|
35
|
+
**Q4:** "Selain 3 fitur itu, fitur apa lagi yang ingin ada tapi bisa ditunda?
|
|
36
|
+
(Yang penting tapi tidak blocking untuk launch pertama)"
|
|
37
|
+
|
|
38
|
+
**Q5:** "Untuk fitur pembayaran:
|
|
39
|
+
- Apakah ada transaksi uang di aplikasi ini?
|
|
40
|
+
- Jika ya: siapa yang bayar ke siapa? Ada split payment ke merchant/penjual?
|
|
41
|
+
- Metode pembayaran apa yang harus didukung? (VA, QRIS, kartu, e-wallet)"
|
|
42
|
+
|
|
43
|
+
**Q6:** "Platform apa yang dibutuhkan?
|
|
44
|
+
- Web app saja?
|
|
45
|
+
- Mobile app saja (Android/iOS)?
|
|
46
|
+
- Keduanya?
|
|
47
|
+
- Apakah butuh versi desktop/tablet yang berbeda?"
|
|
48
|
+
|
|
49
|
+
**Q7:** "Ada requirement teknis atau bisnis khusus?
|
|
50
|
+
- Harus offline-capable?
|
|
51
|
+
- Multi-bahasa? (Indonesia/English)
|
|
52
|
+
- Aksesibilitas?
|
|
53
|
+
- SLA/uptime target?
|
|
54
|
+
- Berapa estimasi user di bulan pertama?"
|
|
55
|
+
|
|
56
|
+
**Q8:** "Apa definisi 'sukses' untuk MVP ini?
|
|
57
|
+
(Contoh: 100 user aktif, 20 transaksi, atau validasi bahwa user mau bayar)"
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Verification Echo
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
Saya akan buat PRD dengan:
|
|
65
|
+
- Aplikasi: [nama] — [deskripsi singkat]
|
|
66
|
+
- User types: [list user]
|
|
67
|
+
- MVP features (P0): [3 fitur utama]
|
|
68
|
+
- Nice-to-have (P1): [fitur tambahan]
|
|
69
|
+
- Payment: [ada/tidak, model]
|
|
70
|
+
- Platform: [web/mobile/keduanya]
|
|
71
|
+
- Target sukses: [metric]
|
|
72
|
+
|
|
73
|
+
Generate PRD sekarang? (yes/no)
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## Output: `docs/01-PRD.md` (TERISI PENUH)
|
|
79
|
+
|
|
80
|
+
```markdown
|
|
81
|
+
# 01 — Product Requirements Document (PRD)
|
|
82
|
+
> Nama: [Nama Aplikasi] | Versi: v0.1 MVP | Dibuat: [tanggal]
|
|
83
|
+
> Generated oleh skill vibe-prd — update manual jika ada perubahan scope
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## 1. Ringkasan Produk
|
|
88
|
+
|
|
89
|
+
| Field | Isi |
|
|
90
|
+
|-------|-----|
|
|
91
|
+
| **Nama Produk** | [nama] |
|
|
92
|
+
| **Tipe** | [Web App / Mobile App / Keduanya] |
|
|
93
|
+
| **Versi** | v0.1 — MVP |
|
|
94
|
+
| **Tanggal** | [tanggal hari ini] |
|
|
95
|
+
| **Owner** | [nama dari research atau tanyakan] |
|
|
96
|
+
|
|
97
|
+
### Elevator Pitch
|
|
98
|
+
> [Nama Aplikasi] membantu **[target user]** untuk **[melakukan apa]**
|
|
99
|
+
> sehingga **[manfaat utama]** — tanpa harus **[pain point lama]**.
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## 2. Target Pengguna
|
|
104
|
+
|
|
105
|
+
### Persona Utama
|
|
106
|
+
**[Nama Persona 1]** — [role/profesi]
|
|
107
|
+
- Usia: [estimasi]
|
|
108
|
+
- Tech-savvy: [rendah/menengah/tinggi]
|
|
109
|
+
- Pain point: [masalah utama]
|
|
110
|
+
- Goal: [apa yang ingin dicapai]
|
|
111
|
+
|
|
112
|
+
**[Nama Persona 2]** — [role/profesi]
|
|
113
|
+
- Usia: [estimasi]
|
|
114
|
+
- Tech-savvy: [rendah/menengah/tinggi]
|
|
115
|
+
- Pain point: [masalah utama]
|
|
116
|
+
- Goal: [apa yang ingin dicapai]
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## 3. Fitur MVP
|
|
121
|
+
|
|
122
|
+
### ✅ P0 — Harus Ada (MVP Blocker)
|
|
123
|
+
| ID | Fitur | Deskripsi | Kenapa Penting |
|
|
124
|
+
|----|-------|-----------|----------------|
|
|
125
|
+
| F01 | [nama] | [deskripsi konkret] | [alasan bisnis] |
|
|
126
|
+
| F02 | [nama] | [deskripsi konkret] | [alasan bisnis] |
|
|
127
|
+
| F03 | [nama] | [deskripsi konkret] | [alasan bisnis] |
|
|
128
|
+
|
|
129
|
+
### 🟡 P1 — Penting tapi Bisa Ditunda
|
|
130
|
+
| ID | Fitur | Deskripsi | Sprint Target |
|
|
131
|
+
|----|-------|-----------|---------------|
|
|
132
|
+
| F04 | [nama] | [deskripsi] | Sprint 2 |
|
|
133
|
+
| F05 | [nama] | [deskripsi] | Sprint 3 |
|
|
134
|
+
|
|
135
|
+
### ❌ Out of Scope MVP
|
|
136
|
+
- [fitur yang sengaja ditunda — dengan alasan]
|
|
137
|
+
- [fitur yang butuh validasi lebih dulu]
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## 4. User Stories
|
|
142
|
+
|
|
143
|
+
> Format: Sebagai [siapa], saya ingin [aksi], agar [tujuan].
|
|
144
|
+
> ID REQ-XXX untuk traceability ke backlog dan kode.
|
|
145
|
+
|
|
146
|
+
### [Nama Persona 1]
|
|
147
|
+
- [ ] **REQ-001** Sebagai [persona 1], saya ingin [aksi dari F01], agar [tujuan]
|
|
148
|
+
- [ ] **REQ-002** Sebagai [persona 1], saya ingin [aksi dari F02], agar [tujuan]
|
|
149
|
+
- [ ] **REQ-003** Sebagai [persona 1], saya ingin [lanjutan], agar [tujuan]
|
|
150
|
+
|
|
151
|
+
### [Nama Persona 2]
|
|
152
|
+
- [ ] **REQ-010** Sebagai [persona 2], saya ingin [aksi], agar [tujuan]
|
|
153
|
+
- [ ] **REQ-011** Sebagai [persona 2], saya ingin [aksi], agar [tujuan]
|
|
154
|
+
|
|
155
|
+
### Pembayaran (jika ada)
|
|
156
|
+
- [ ] **REQ-020** Sebagai pembeli, saya ingin membayar via [metode], agar transaksi mudah
|
|
157
|
+
- [ ] **REQ-021** Sebagai [penerima dana], saya ingin dana masuk otomatis, agar tidak perlu manual transfer
|
|
158
|
+
- [ ] **REQ-022** Sebagai admin, saya ingin melihat semua transaksi, agar bisa rekonsiliasi
|
|
159
|
+
|
|
160
|
+
### Notifikasi
|
|
161
|
+
- [ ] **REQ-030** Sebagai pengguna, saya ingin dapat notifikasi saat [event penting], agar tidak ketinggalan
|
|
162
|
+
- [ ] **REQ-031** Sebagai pengguna, saya ingin dapat email konfirmasi [aksi], agar ada bukti
|
|
163
|
+
|
|
164
|
+
### UU PDP — Hak Pengguna (Wajib)
|
|
165
|
+
- [ ] **REQ-040** Sebagai pengguna, saya ingin dapat menghapus akun dan semua data saya
|
|
166
|
+
- [ ] **REQ-041** Sebagai pengguna, saya ingin dapat mengunduh semua data pribadi saya
|
|
167
|
+
- [ ] **REQ-042** Sebagai pengguna, saya ingin dapat mencabut consent marketing kapan saja
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## 5. Non-Functional Requirements
|
|
172
|
+
|
|
173
|
+
| Kategori | Requirement | Target |
|
|
174
|
+
|----------|-------------|--------|
|
|
175
|
+
| Performance | Load halaman utama | < 2 detik |
|
|
176
|
+
| Availability | Uptime | [99% / 99.9%] |
|
|
177
|
+
| Concurrent Users | MVP | [estimasi dari Q7] |
|
|
178
|
+
| Security | Auth | Session DB (Better Auth 1.5) |
|
|
179
|
+
| Security | Payment (jika ada) | Xendit callback token verified |
|
|
180
|
+
| Mobile | Platform | [Android / iOS / Keduanya] |
|
|
181
|
+
| Storage | File upload max | 5 MB |
|
|
182
|
+
| Regulasi | Compliance | UU PDP No. 27/2022 |
|
|
183
|
+
| [spesifik] | [dari Q7] | [target] |
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
## 6. Success Metrics (Definition of Done untuk MVP)
|
|
188
|
+
|
|
189
|
+
| Metric | Target | Cara Ukur |
|
|
190
|
+
|--------|--------|-----------|
|
|
191
|
+
| [dari Q8 — metric sukses 1] | [angka] | [tool/cara ukur] |
|
|
192
|
+
| [dari Q8 — metric sukses 2] | [angka] | [tool/cara ukur] |
|
|
193
|
+
| Uptime | [target]% | Uptime Kuma |
|
|
194
|
+
| Error rate | < 1% | Sentry |
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
## 7. Constraints & Asumsi
|
|
199
|
+
|
|
200
|
+
### Constraints
|
|
201
|
+
- Tim: [dari research]
|
|
202
|
+
- Timeline MVP: [dari research]
|
|
203
|
+
- Budget infrastruktur: [dari research]
|
|
204
|
+
- Regulasi: UU PDP No. 27/2022 (berlaku penuh Oktober 2024)
|
|
205
|
+
- [constraint lain dari Q6]
|
|
206
|
+
|
|
207
|
+
### Asumsi
|
|
208
|
+
- [asumsi 1 yang perlu divalidasi]
|
|
209
|
+
- [asumsi 2]
|
|
210
|
+
- Semua user WNI (tidak perlu multi-currency untuk MVP, kecuali disebutkan)
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
*Next step: Jalankan skill `vibe-techdesign` untuk menentukan stack dan arsitektur.*
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
---
|
|
217
|
+
|
|
218
|
+
## Aturan Penting
|
|
219
|
+
|
|
220
|
+
- Output harus **terisi penuh** — tidak ada placeholder `[isi di sini]` yang tersisa dari jawaban user
|
|
221
|
+
- REQ IDs harus unik dan sequential — agent akan merujuk ID ini saat coding
|
|
222
|
+
- Jangan tambahkan fitur yang tidak disebutkan user — scope creep adalah musuh MVP
|
|
223
|
+
- Jika user menyebutkan fitur yang terlalu kompleks untuk MVP, masukkan ke P1 dan jelaskan kenapa
|
|
224
|
+
- Payment section: muncul hanya jika user konfirmasi ada transaksi keuangan
|
|
225
|
+
- **STRUKTUR DOKUMEN WAJIB**: Selaraskan dan lengkapi hierarki PRD yang dihasilkan dengan elemen-elemen profesional dari `docs/SRS-Template.md`.
|
|
226
|
+
- Setelah generate, reminder: "Simpan PRD ini, lalu jalankan `/vibe-techdesign` untuk langkah berikutnya"
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: vibe-research
|
|
3
|
+
description: |
|
|
4
|
+
Use at the START of a new project, before PRD or coding.
|
|
5
|
+
Triggers on "riset aplikasi ini", "research dulu", "validasi ide",
|
|
6
|
+
"analisa kompetitor", "apakah ide ini layak", "sebelum mulai project",
|
|
7
|
+
or /vibe-plan step 1.
|
|
8
|
+
Output: docs/research-[AppName].md
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Vibe Research — Validasi Ide Sebelum Coding
|
|
12
|
+
|
|
13
|
+
Skill ini memandu riset mendalam sebelum menulis satu baris kode.
|
|
14
|
+
Tujuan: pastikan ide layak dibangun, ada pasarnya, dan stack-nya realistis.
|
|
15
|
+
|
|
16
|
+
## Cara Kerja
|
|
17
|
+
|
|
18
|
+
Tanya user **satu pertanyaan per giliran**. Tunggu jawaban sebelum lanjut.
|
|
19
|
+
Setelah semua pertanyaan dijawab, lakukan **Verification Echo**, lalu generate dokumen.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Pertanyaan yang Diajukan (satu per satu)
|
|
24
|
+
|
|
25
|
+
**Q1:** "Ceritakan ide aplikasinya — masalah apa yang diselesaikan, dan untuk siapa?"
|
|
26
|
+
|
|
27
|
+
**Q2:** "Siapa target pengguna utamanya? (usia, profesi, lokasi, tingkat tech-savvy)"
|
|
28
|
+
|
|
29
|
+
**Q3:** "Aplikasi sejenis apa yang sudah ada? Apa kekurangan mereka menurut kamu?"
|
|
30
|
+
|
|
31
|
+
**Q4:** "Bagaimana rencana monetisasinya? (gratis, freemium, subscription, marketplace fee, dll)"
|
|
32
|
+
|
|
33
|
+
**Q5:** "Apa yang membuat aplikasi ini berbeda atau lebih baik dari yang sudah ada?"
|
|
34
|
+
|
|
35
|
+
**Q6:** "Ada constraint teknis atau bisnis yang perlu diperhatikan?
|
|
36
|
+
- Budget infrastruktur per bulan?
|
|
37
|
+
- Timeline target MVP?
|
|
38
|
+
- Tim berapa orang?
|
|
39
|
+
- Ada regulasi khusus? (fintech, kesehatan, anak-anak, dll)"
|
|
40
|
+
|
|
41
|
+
**Q7 (opsional):** "Ada fitur AI atau integrasi khusus yang diinginkan?"
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Verification Echo (sebelum generate)
|
|
46
|
+
|
|
47
|
+
Sebelum generate, tampilkan ringkasan ke user:
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
Saya akan riset berdasarkan:
|
|
51
|
+
- Ide: [ringkasan ide]
|
|
52
|
+
- Target: [target user]
|
|
53
|
+
- Kompetitor: [yang disebutkan]
|
|
54
|
+
- Monetisasi: [model bisnis]
|
|
55
|
+
- Diferensiasi: [keunggulan]
|
|
56
|
+
- Constraint: [budget, timeline, tim]
|
|
57
|
+
|
|
58
|
+
Lanjut generate riset? (yes/no)
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## Output: `docs/research-[AppName].md`
|
|
64
|
+
|
|
65
|
+
Generate dokumen dengan struktur berikut:
|
|
66
|
+
|
|
67
|
+
```markdown
|
|
68
|
+
# Research — [Nama Aplikasi]
|
|
69
|
+
> Dibuat: [tanggal] | Diperbarui: [tanggal]
|
|
70
|
+
|
|
71
|
+
## 1. Ringkasan Ide
|
|
72
|
+
[1 paragraf deskripsi aplikasi, masalah, dan solusi]
|
|
73
|
+
|
|
74
|
+
## 2. Analisa Pasar
|
|
75
|
+
|
|
76
|
+
### Target Pengguna
|
|
77
|
+
| Segmen | Karakteristik | Pain Point |
|
|
78
|
+
|--------|---------------|------------|
|
|
79
|
+
| [segmen 1] | [deskripsi] | [masalah utama] |
|
|
80
|
+
| [segmen 2] | [deskripsi] | [masalah utama] |
|
|
81
|
+
|
|
82
|
+
### Ukuran Pasar (estimasi)
|
|
83
|
+
[Estimasi TAM/SAM/SOM berdasarkan konteks Indonesia jika relevan]
|
|
84
|
+
|
|
85
|
+
## 3. Analisa Kompetitor
|
|
86
|
+
|
|
87
|
+
| Kompetitor | Kelebihan | Kekurangan | Model Bisnis |
|
|
88
|
+
|------------|-----------|------------|--------------|
|
|
89
|
+
| [nama] | [+] | [-] | [model] |
|
|
90
|
+
| [nama] | [+] | [-] | [model] |
|
|
91
|
+
|
|
92
|
+
### Celah yang Bisa Diisi
|
|
93
|
+
- [peluang 1]
|
|
94
|
+
- [peluang 2]
|
|
95
|
+
|
|
96
|
+
## 4. Model Bisnis & Monetisasi
|
|
97
|
+
|
|
98
|
+
### Opsi yang Direkomendasikan
|
|
99
|
+
[Rekomendasi berdasarkan konteks aplikasi dan pasar Indonesia]
|
|
100
|
+
|
|
101
|
+
### Estimasi Revenue (kasar, tahun 1)
|
|
102
|
+
| Skenario | Asumsi | Estimasi |
|
|
103
|
+
|----------|--------|----------|
|
|
104
|
+
| Konservatif | [asumsi] | [angka] |
|
|
105
|
+
| Moderat | [asumsi] | [angka] |
|
|
106
|
+
|
|
107
|
+
## 5. Diferensiasi & Competitive Advantage
|
|
108
|
+
- [keunggulan 1 — konkret dan defensible]
|
|
109
|
+
- [keunggulan 2]
|
|
110
|
+
|
|
111
|
+
## 6. Risiko & Mitigasi
|
|
112
|
+
|
|
113
|
+
| Risiko | Tingkat | Mitigasi |
|
|
114
|
+
|--------|---------|----------|
|
|
115
|
+
| [risiko teknis] | Tinggi/Medium/Rendah | [cara mitigasi] |
|
|
116
|
+
| [risiko pasar] | ... | ... |
|
|
117
|
+
| [risiko regulasi] | ... | ... |
|
|
118
|
+
|
|
119
|
+
## 7. Regulasi & Compliance
|
|
120
|
+
|
|
121
|
+
[Jika fintech → OJK, Xendit, UU PDP]
|
|
122
|
+
[Jika kesehatan → regulasi Kemenkes]
|
|
123
|
+
[Jika marketplace → UU PDP, pajak platform]
|
|
124
|
+
[Jika aplikasi anak → COPPA equivalent Indonesia]
|
|
125
|
+
|
|
126
|
+
## 8. Rekomendasi Stack Awal (preview)
|
|
127
|
+
[Bukan final — hanya arah. Tech Design akan lebih detail]
|
|
128
|
+
- Platform: [Web / Mobile / Keduanya]
|
|
129
|
+
- Backend: [estimasi]
|
|
130
|
+
- Database: [estimasi]
|
|
131
|
+
- Payment: [jika perlu]
|
|
132
|
+
|
|
133
|
+
## 9. Go/No-Go Assessment
|
|
134
|
+
|
|
135
|
+
| Faktor | Score (1-5) | Catatan |
|
|
136
|
+
|--------|-------------|---------|
|
|
137
|
+
| Ukuran pasar | [1-5] | [catatan] |
|
|
138
|
+
| Kompetisi | [1-5] | [catatan] |
|
|
139
|
+
| Feasibility teknis | [1-5] | [catatan] |
|
|
140
|
+
| Potensi monetisasi | [1-5] | [catatan] |
|
|
141
|
+
| **Total** | **/20** | |
|
|
142
|
+
|
|
143
|
+
**Rekomendasi:** GO / PIVOT / NO-GO
|
|
144
|
+
**Alasan:** [1-2 kalimat]
|
|
145
|
+
|
|
146
|
+
## 10. Pertanyaan yang Masih Terbuka
|
|
147
|
+
- [hal yang perlu divalidasi lebih lanjut sebelum build]
|
|
148
|
+
- [asumsi yang belum terkonfirmasi]
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
*Next step: Jalankan skill `vibe-prd` untuk membuat PRD berdasarkan riset ini.*
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## Aturan Penting
|
|
157
|
+
|
|
158
|
+
- Jadilah jujur jika ide punya risiko tinggi — lebih baik tau sekarang daripada setelah coding 3 bulan
|
|
159
|
+
- Fokus pada konteks **Indonesia**: pasar lokal, payment local (Xendit/Midtrans), regulasi UU PDP
|
|
160
|
+
- Jika user belum menyebut kompetitor, suggest yang paling relevan berdasarkan deskripsi ide
|
|
161
|
+
- Estimasi angka harus realistis, bukan overly optimistic
|
|
162
|
+
- Setelah generate, reminder user: "Simpan file ini, lalu jalankan `/vibe-prd` untuk langkah berikutnya"
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: vibe-techdesign
|
|
3
|
+
description: |
|
|
4
|
+
Use after vibe-prd, or when deciding architecture and stack.
|
|
5
|
+
Triggers on "pilih stack", "desain arsitektur", "database apa yang cocok",
|
|
6
|
+
"tech design", "buat ERD", "struktur folder", "pilih framework",
|
|
7
|
+
or /vibe-plan step 3.
|
|
8
|
+
Requires: docs/01-PRD.md (baca dulu sebelum mulai).
|
|
9
|
+
Output: mengisi docs/02-TECH-DESIGN.md dengan stack dan arsitektur spesifik proyek ini.
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Vibe Tech Design — Architecture & Stack Decision Maker
|
|
13
|
+
|
|
14
|
+
Skill ini membantu memilih stack yang tepat dan merancang arsitektur
|
|
15
|
+
berdasarkan PRD yang sudah ada. Output-nya mengisi `docs/02-TECH-DESIGN.md`
|
|
16
|
+
dengan keputusan spesifik proyek ini — bukan template kosong.
|
|
17
|
+
|
|
18
|
+
## Persiapan
|
|
19
|
+
|
|
20
|
+
**Pertama:** Baca `docs/01-PRD.md` (wajib ada).
|
|
21
|
+
**Kedua:** Baca `docs/research-[AppName].md` jika ada.
|
|
22
|
+
|
|
23
|
+
Gunakan informasi dari kedua dokumen untuk skip pertanyaan yang sudah terjawab.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Pertanyaan yang Diajukan (satu per satu)
|
|
28
|
+
|
|
29
|
+
**Q1:** "Tim kamu terdiri dari siapa?
|
|
30
|
+
- Berapa developer?
|
|
31
|
+
- Level experience? (junior, mid, senior)
|
|
32
|
+
- Ada yang pernah pakai stack tertentu?"
|
|
33
|
+
|
|
34
|
+
**Q2:** "Untuk deployment dan infrastruktur:
|
|
35
|
+
- Punya VPS sendiri atau mau pakai cloud provider?
|
|
36
|
+
- Budget infra per bulan kira-kira berapa?
|
|
37
|
+
- Perlu data center Indonesia? (untuk regulasi atau latency)"
|
|
38
|
+
|
|
39
|
+
**Q3:** "Untuk database:
|
|
40
|
+
- Tipe data apa yang paling banyak disimpan? (relasional, dokumen, file media)
|
|
41
|
+
- Perlu pencarian teks/full-text search?
|
|
42
|
+
- Ada kebutuhan data real-time? (chat, notifikasi live, tracking)"
|
|
43
|
+
|
|
44
|
+
**Q4:** "Untuk fitur khusus dari PRD:
|
|
45
|
+
- [Generate pertanyaan spesifik berdasarkan fitur di PRD]
|
|
46
|
+
Contoh jika ada marketplace: 'Siapa yang bisa upload produk? Berapa max foto per produk?'
|
|
47
|
+
Contoh jika ada chat: 'Berapa peserta per conversation? Perlu history chat?'
|
|
48
|
+
Contoh jika ada laporan: 'Format laporan apa? PDF, Excel, atau dashboard?'"
|
|
49
|
+
|
|
50
|
+
**Q5:** "Ada integrasi pihak ketiga yang sudah diputuskan?
|
|
51
|
+
(Selain payment — payment sudah diputuskan dari PRD)
|
|
52
|
+
Contoh: maps, SMS/WhatsApp, e-KYC, logistik (JNE, Sicepat), dll"
|
|
53
|
+
|
|
54
|
+
**Q6:** "Untuk skala dan performa:
|
|
55
|
+
- Berapa user aktif yang ditarget di tahun pertama?
|
|
56
|
+
- Ada fitur yang akan sangat banyak dipakai? (heavy read vs heavy write)
|
|
57
|
+
- Perlu handle file upload besar? (video, dokumen besar)"
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Logic: Rekomendasi Stack Berdasarkan Jawaban
|
|
62
|
+
|
|
63
|
+
Gunakan decision tree ini untuk rekomendasikan stack yang tepat:
|
|
64
|
+
|
|
65
|
+
### Platform
|
|
66
|
+
```
|
|
67
|
+
PRD: mobile only → Flutter + minimal web (admin panel saja)
|
|
68
|
+
PRD: web only → Next.js only
|
|
69
|
+
PRD: keduanya → Next.js + Flutter (stack yang sudah kita punya)
|
|
70
|
+
PRD: web-heavy dengan admin → Next.js + Flutter untuk end-user mobile
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Database
|
|
74
|
+
```
|
|
75
|
+
Data relasional, perlu ACID transaction → PostgreSQL 17 (default)
|
|
76
|
+
Perlu full-text search → PostgreSQL + pg_trgm extension (tidak perlu Elasticsearch untuk MVP)
|
|
77
|
+
Perlu real-time → PostgreSQL + Socket.io (sudah di stack)
|
|
78
|
+
Ada data semi-structured → PostgreSQL dengan JSONB column (cukup untuk MVP)
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### Background Jobs
|
|
82
|
+
```
|
|
83
|
+
Perlu email, notif, payment processing → BullMQ + Redis (sudah di stack)
|
|
84
|
+
Perlu scheduled jobs (laporan harian, dll) → BullMQ dengan cron option
|
|
85
|
+
Tidak perlu background processing → Skip BullMQ, simplify stack
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Storage
|
|
89
|
+
```
|
|
90
|
+
Upload file/gambar → NEO Object Storage (sudah di stack, Indonesia)
|
|
91
|
+
Tidak ada file upload → Skip storage setup
|
|
92
|
+
Video content heavy → Pertimbangkan Mux atau Cloudflare Stream (bukan NEO)
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### Auth
|
|
96
|
+
```
|
|
97
|
+
Login biasa + Google OAuth → Better Auth 1.5 (sudah di stack)
|
|
98
|
+
Perlu multi-tenant (SaaS) → Better Auth dengan organizations plugin
|
|
99
|
+
Perlu 2FA → Better Auth dengan TOTP plugin
|
|
100
|
+
Perlu magic link → Better Auth sudah support
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### Payment
|
|
104
|
+
```
|
|
105
|
+
Ada transaksi keuangan → Xendit (wajib, satu-satunya dengan native split payment Indonesia)
|
|
106
|
+
Split ke merchant/seller → Xendit dengan forUserID
|
|
107
|
+
Tidak ada transaksi → Hapus Xendit dari stack, hemat kompleksitas
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## Verification Echo
|
|
113
|
+
|
|
114
|
+
```
|
|
115
|
+
Rekomendasi stack untuk [Nama Aplikasi]:
|
|
116
|
+
|
|
117
|
+
Platform: [Web/Mobile/Keduanya]
|
|
118
|
+
Stack utama: Next.js 16.1 + [Flutter 3.41.2 jika mobile]
|
|
119
|
+
Database: PostgreSQL 17 + [ekstensi jika perlu]
|
|
120
|
+
Auth: Better Auth 1.5
|
|
121
|
+
Payment: [Xendit / tidak ada]
|
|
122
|
+
Background jobs: [BullMQ / tidak perlu]
|
|
123
|
+
Storage: [NEO Object Storage / tidak perlu]
|
|
124
|
+
Realtime: [Socket.io / tidak perlu]
|
|
125
|
+
Infra: [Biznet Gio + Coolify / alternatif jika beda]
|
|
126
|
+
|
|
127
|
+
Penyesuaian dari stack standar:
|
|
128
|
+
- [list hal yang berbeda dari template default]
|
|
129
|
+
|
|
130
|
+
Setuju dengan stack ini? (yes/no/ada yang mau diubah)
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## Output: Update `docs/02-TECH-DESIGN.md`
|
|
136
|
+
|
|
137
|
+
Setelah user setuju, update `docs/02-TECH-DESIGN.md` dengan:
|
|
138
|
+
|
|
139
|
+
1. **Bagian 1 (Tech Stack)** — isi tabel dengan versi konkret, tambahkan/hapus baris sesuai keputusan
|
|
140
|
+
2. **Bagian 3 (Struktur Folder)** — sesuaikan dengan nama app dan fitur yang ada di PRD
|
|
141
|
+
3. **Bagian 4 ke bawah** — tambahkan section spesifik jika ada integrasi unik (maps, KYC, dll)
|
|
142
|
+
|
|
143
|
+
Juga generate **ERD awal** berdasarkan user stories di PRD:
|
|
144
|
+
|
|
145
|
+
```markdown
|
|
146
|
+
## ERD Awal — [Nama Aplikasi]
|
|
147
|
+
|
|
148
|
+
### Tabel Utama
|
|
149
|
+
|
|
150
|
+
```prisma
|
|
151
|
+
// Berdasarkan fitur di PRD — generate model Prisma yang relevan
|
|
152
|
+
|
|
153
|
+
model User {
|
|
154
|
+
id String @id @default(cuid())
|
|
155
|
+
email String @unique
|
|
156
|
+
name String?
|
|
157
|
+
role Role @default(USER)
|
|
158
|
+
// tambah field sesuai kebutuhan aplikasi
|
|
159
|
+
createdAt DateTime @default(now())
|
|
160
|
+
updatedAt DateTime @updatedAt
|
|
161
|
+
deletedAt DateTime?
|
|
162
|
+
@@map("users")
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
// [tambah model lain berdasarkan fitur di PRD]
|
|
166
|
+
// Contoh: jika marketplace → model Product, Order, OrderItem, Review
|
|
167
|
+
// Jika booking: → model Booking, Service, TimeSlot, Provider
|
|
168
|
+
// Jika SaaS: → model Organization, Subscription, Plan
|
|
169
|
+
```
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
Dan **API Endpoints awal**:
|
|
173
|
+
|
|
174
|
+
```markdown
|
|
175
|
+
## API Contracts Awal
|
|
176
|
+
|
|
177
|
+
| Method | Endpoint | Auth | Deskripsi | REQ ref |
|
|
178
|
+
|--------|----------|------|-----------|---------|
|
|
179
|
+
| POST | /api/auth/sign-up | public | Registrasi | REQ-001 |
|
|
180
|
+
| POST | /api/auth/sign-in | public | Login | REQ-002 |
|
|
181
|
+
| GET | /api/[resource] | user | [dari PRD] | REQ-XXX |
|
|
182
|
+
| POST | /api/[resource] | user | [dari PRD] | REQ-XXX |
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
## Aturan Penting
|
|
188
|
+
|
|
189
|
+
- Stack default kita (Next.js 16 + Flutter + Prisma 7 + Better Auth) adalah titik awal — modifikasi seperlunya
|
|
190
|
+
- Jangan over-engineer: jika fitur bisa pakai PostgreSQL saja, jangan tambahkan Redis
|
|
191
|
+
- Setiap keputusan stack harus punya alasan bisnis/teknis yang jelas
|
|
192
|
+
- ERD harus mencerminkan user stories di PRD — bukan generic template
|
|
193
|
+
- Setelah generate, tambahkan entry ke `docs/06-DEVELOPMENT-LOG.md`:
|
|
194
|
+
`[KEPUTUSAN] Stack [AppName] dipilih: [ringkasan stack] — Alasan: [ringkasan]`
|
|
195
|
+
- Reminder user: "Tech design sudah jadi. Jalankan `/vibe-buildplan` untuk buat rencana sprint."
|