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.
Files changed (235) hide show
  1. package/README.md +56 -0
  2. package/bin/cli.js +56 -0
  3. package/package.json +26 -0
  4. package/templates/.agent/.shared/ui-ux-pro-max/data/charts.csv +26 -0
  5. package/templates/.agent/.shared/ui-ux-pro-max/data/colors.csv +97 -0
  6. package/templates/.agent/.shared/ui-ux-pro-max/data/icons.csv +101 -0
  7. package/templates/.agent/.shared/ui-ux-pro-max/data/landing.csv +31 -0
  8. package/templates/.agent/.shared/ui-ux-pro-max/data/products.csv +97 -0
  9. package/templates/.agent/.shared/ui-ux-pro-max/data/prompts.csv +24 -0
  10. package/templates/.agent/.shared/ui-ux-pro-max/data/react-performance.csv +45 -0
  11. package/templates/.agent/.shared/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
  12. package/templates/.agent/.shared/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
  13. package/templates/.agent/.shared/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
  14. package/templates/.agent/.shared/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
  15. package/templates/.agent/.shared/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
  16. package/templates/.agent/.shared/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
  17. package/templates/.agent/.shared/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
  18. package/templates/.agent/.shared/ui-ux-pro-max/data/stacks/react.csv +54 -0
  19. package/templates/.agent/.shared/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
  20. package/templates/.agent/.shared/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
  21. package/templates/.agent/.shared/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
  22. package/templates/.agent/.shared/ui-ux-pro-max/data/stacks/vue.csv +50 -0
  23. package/templates/.agent/.shared/ui-ux-pro-max/data/styles.csv +59 -0
  24. package/templates/.agent/.shared/ui-ux-pro-max/data/typography.csv +58 -0
  25. package/templates/.agent/.shared/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
  26. package/templates/.agent/.shared/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
  27. package/templates/.agent/.shared/ui-ux-pro-max/data/web-interface.csv +31 -0
  28. package/templates/.agent/.shared/ui-ux-pro-max/scripts/__pycache__/core.cpython-313.pyc +0 -0
  29. package/templates/.agent/.shared/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-313.pyc +0 -0
  30. package/templates/.agent/.shared/ui-ux-pro-max/scripts/core.py +258 -0
  31. package/templates/.agent/.shared/ui-ux-pro-max/scripts/design_system.py +1067 -0
  32. package/templates/.agent/.shared/ui-ux-pro-max/scripts/search.py +106 -0
  33. package/templates/.agent/agents/backend-specialist.md +263 -0
  34. package/templates/.agent/agents/code-archaeologist.md +106 -0
  35. package/templates/.agent/agents/database-architect.md +226 -0
  36. package/templates/.agent/agents/debugger.md +225 -0
  37. package/templates/.agent/agents/devops-engineer.md +242 -0
  38. package/templates/.agent/agents/documentation-writer.md +104 -0
  39. package/templates/.agent/agents/explorer-agent.md +73 -0
  40. package/templates/.agent/agents/frontend-specialist.md +593 -0
  41. package/templates/.agent/agents/game-developer.md +162 -0
  42. package/templates/.agent/agents/mobile-developer.md +377 -0
  43. package/templates/.agent/agents/orchestrator.md +416 -0
  44. package/templates/.agent/agents/penetration-tester.md +188 -0
  45. package/templates/.agent/agents/performance-optimizer.md +187 -0
  46. package/templates/.agent/agents/product-manager.md +112 -0
  47. package/templates/.agent/agents/product-owner.md +95 -0
  48. package/templates/.agent/agents/project-planner.md +406 -0
  49. package/templates/.agent/agents/qa-automation-engineer.md +103 -0
  50. package/templates/.agent/agents/security-auditor.md +170 -0
  51. package/templates/.agent/agents/seo-specialist.md +111 -0
  52. package/templates/.agent/agents/test-engineer.md +158 -0
  53. package/templates/.agent/mcp_config.json +129 -0
  54. package/templates/.agent/rules/GEMINI.md +273 -0
  55. package/templates/.agent/scripts/auto_preview.py +148 -0
  56. package/templates/.agent/scripts/checklist.py +217 -0
  57. package/templates/.agent/scripts/session_manager.py +120 -0
  58. package/templates/.agent/scripts/verify_all.py +327 -0
  59. package/templates/.agent/skills/api-patterns/SKILL.md +81 -0
  60. package/templates/.agent/skills/api-patterns/api-style.md +42 -0
  61. package/templates/.agent/skills/api-patterns/auth.md +24 -0
  62. package/templates/.agent/skills/api-patterns/documentation.md +26 -0
  63. package/templates/.agent/skills/api-patterns/graphql.md +41 -0
  64. package/templates/.agent/skills/api-patterns/rate-limiting.md +31 -0
  65. package/templates/.agent/skills/api-patterns/response.md +37 -0
  66. package/templates/.agent/skills/api-patterns/rest.md +40 -0
  67. package/templates/.agent/skills/api-patterns/scripts/api_validator.py +211 -0
  68. package/templates/.agent/skills/api-patterns/security-testing.md +122 -0
  69. package/templates/.agent/skills/api-patterns/trpc.md +41 -0
  70. package/templates/.agent/skills/api-patterns/versioning.md +22 -0
  71. package/templates/.agent/skills/app-builder/SKILL.md +75 -0
  72. package/templates/.agent/skills/app-builder/agent-coordination.md +71 -0
  73. package/templates/.agent/skills/app-builder/feature-building.md +53 -0
  74. package/templates/.agent/skills/app-builder/project-detection.md +34 -0
  75. package/templates/.agent/skills/app-builder/scaffolding.md +118 -0
  76. package/templates/.agent/skills/app-builder/tech-stack.md +41 -0
  77. package/templates/.agent/skills/app-builder/templates/SKILL.md +39 -0
  78. package/templates/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
  79. package/templates/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
  80. package/templates/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
  81. package/templates/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
  82. package/templates/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
  83. package/templates/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
  84. package/templates/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
  85. package/templates/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +122 -0
  86. package/templates/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +122 -0
  87. package/templates/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +169 -0
  88. package/templates/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +134 -0
  89. package/templates/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
  90. package/templates/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +119 -0
  91. package/templates/.agent/skills/architecture/SKILL.md +55 -0
  92. package/templates/.agent/skills/architecture/context-discovery.md +43 -0
  93. package/templates/.agent/skills/architecture/examples.md +94 -0
  94. package/templates/.agent/skills/architecture/pattern-selection.md +68 -0
  95. package/templates/.agent/skills/architecture/patterns-reference.md +50 -0
  96. package/templates/.agent/skills/architecture/trade-off-analysis.md +77 -0
  97. package/templates/.agent/skills/bash-linux/SKILL.md +199 -0
  98. package/templates/.agent/skills/behavioral-modes/SKILL.md +242 -0
  99. package/templates/.agent/skills/better-auth-patterns/SKILL.md +121 -0
  100. package/templates/.agent/skills/brainstorming/SKILL.md +163 -0
  101. package/templates/.agent/skills/brainstorming/dynamic-questioning.md +350 -0
  102. package/templates/.agent/skills/bullmq-worker/SKILL.md +124 -0
  103. package/templates/.agent/skills/clean-code/SKILL.md +201 -0
  104. package/templates/.agent/skills/code-review-checklist/SKILL.md +109 -0
  105. package/templates/.agent/skills/database-design/SKILL.md +52 -0
  106. package/templates/.agent/skills/database-design/database-selection.md +43 -0
  107. package/templates/.agent/skills/database-design/indexing.md +39 -0
  108. package/templates/.agent/skills/database-design/migrations.md +48 -0
  109. package/templates/.agent/skills/database-design/optimization.md +36 -0
  110. package/templates/.agent/skills/database-design/orm-selection.md +30 -0
  111. package/templates/.agent/skills/database-design/schema-design.md +56 -0
  112. package/templates/.agent/skills/database-design/scripts/schema_validator.py +172 -0
  113. package/templates/.agent/skills/deployment-procedures/SKILL.md +241 -0
  114. package/templates/.agent/skills/doc.md +177 -0
  115. package/templates/.agent/skills/documentation-templates/SKILL.md +194 -0
  116. package/templates/.agent/skills/feature-spec-writer/SKILL.md +76 -0
  117. package/templates/.agent/skills/frontend-design/SKILL.md +452 -0
  118. package/templates/.agent/skills/frontend-design/animation-guide.md +331 -0
  119. package/templates/.agent/skills/frontend-design/color-system.md +311 -0
  120. package/templates/.agent/skills/frontend-design/decision-trees.md +418 -0
  121. package/templates/.agent/skills/frontend-design/motion-graphics.md +306 -0
  122. package/templates/.agent/skills/frontend-design/scripts/accessibility_checker.py +183 -0
  123. package/templates/.agent/skills/frontend-design/scripts/ux_audit.py +722 -0
  124. package/templates/.agent/skills/frontend-design/typography-system.md +345 -0
  125. package/templates/.agent/skills/frontend-design/ux-psychology.md +1116 -0
  126. package/templates/.agent/skills/frontend-design/visual-effects.md +383 -0
  127. package/templates/.agent/skills/game-development/2d-games/SKILL.md +119 -0
  128. package/templates/.agent/skills/game-development/3d-games/SKILL.md +135 -0
  129. package/templates/.agent/skills/game-development/SKILL.md +167 -0
  130. package/templates/.agent/skills/game-development/game-art/SKILL.md +185 -0
  131. package/templates/.agent/skills/game-development/game-audio/SKILL.md +190 -0
  132. package/templates/.agent/skills/game-development/game-design/SKILL.md +129 -0
  133. package/templates/.agent/skills/game-development/mobile-games/SKILL.md +108 -0
  134. package/templates/.agent/skills/game-development/multiplayer/SKILL.md +132 -0
  135. package/templates/.agent/skills/game-development/pc-games/SKILL.md +144 -0
  136. package/templates/.agent/skills/game-development/vr-ar/SKILL.md +123 -0
  137. package/templates/.agent/skills/game-development/web-games/SKILL.md +150 -0
  138. package/templates/.agent/skills/geo-fundamentals/SKILL.md +156 -0
  139. package/templates/.agent/skills/geo-fundamentals/scripts/geo_checker.py +289 -0
  140. package/templates/.agent/skills/i18n-localization/SKILL.md +154 -0
  141. package/templates/.agent/skills/i18n-localization/scripts/i18n_checker.py +241 -0
  142. package/templates/.agent/skills/intelligent-routing/SKILL.md +335 -0
  143. package/templates/.agent/skills/lint-and-validate/SKILL.md +45 -0
  144. package/templates/.agent/skills/lint-and-validate/scripts/lint_runner.py +184 -0
  145. package/templates/.agent/skills/lint-and-validate/scripts/type_coverage.py +173 -0
  146. package/templates/.agent/skills/mcp-builder/SKILL.md +176 -0
  147. package/templates/.agent/skills/mobile-design/SKILL.md +394 -0
  148. package/templates/.agent/skills/mobile-design/decision-trees.md +516 -0
  149. package/templates/.agent/skills/mobile-design/mobile-backend.md +491 -0
  150. package/templates/.agent/skills/mobile-design/mobile-color-system.md +420 -0
  151. package/templates/.agent/skills/mobile-design/mobile-debugging.md +122 -0
  152. package/templates/.agent/skills/mobile-design/mobile-design-thinking.md +357 -0
  153. package/templates/.agent/skills/mobile-design/mobile-navigation.md +458 -0
  154. package/templates/.agent/skills/mobile-design/mobile-performance.md +767 -0
  155. package/templates/.agent/skills/mobile-design/mobile-testing.md +356 -0
  156. package/templates/.agent/skills/mobile-design/mobile-typography.md +433 -0
  157. package/templates/.agent/skills/mobile-design/platform-android.md +666 -0
  158. package/templates/.agent/skills/mobile-design/platform-ios.md +561 -0
  159. package/templates/.agent/skills/mobile-design/scripts/mobile_audit.py +670 -0
  160. package/templates/.agent/skills/mobile-design/touch-psychology.md +537 -0
  161. package/templates/.agent/skills/neo-storage/SKILL.md +115 -0
  162. package/templates/.agent/skills/nextjs-api-route/SKILL.md +134 -0
  163. package/templates/.agent/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +351 -0
  164. package/templates/.agent/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +240 -0
  165. package/templates/.agent/skills/nextjs-react-expert/3-server-server-side-performance.md +490 -0
  166. package/templates/.agent/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +264 -0
  167. package/templates/.agent/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +581 -0
  168. package/templates/.agent/skills/nextjs-react-expert/6-rendering-rendering-performance.md +432 -0
  169. package/templates/.agent/skills/nextjs-react-expert/7-js-javascript-performance.md +684 -0
  170. package/templates/.agent/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +150 -0
  171. package/templates/.agent/skills/nextjs-react-expert/9-cache-components.md +103 -0
  172. package/templates/.agent/skills/nextjs-react-expert/SKILL.md +293 -0
  173. package/templates/.agent/skills/nextjs-react-expert/scripts/convert_rules.py +222 -0
  174. package/templates/.agent/skills/nextjs-react-expert/scripts/react_performance_checker.py +252 -0
  175. package/templates/.agent/skills/nodejs-best-practices/SKILL.md +333 -0
  176. package/templates/.agent/skills/parallel-agents/SKILL.md +175 -0
  177. package/templates/.agent/skills/performance-profiling/SKILL.md +143 -0
  178. package/templates/.agent/skills/performance-profiling/scripts/lighthouse_audit.py +76 -0
  179. package/templates/.agent/skills/plan-writing/SKILL.md +152 -0
  180. package/templates/.agent/skills/powershell-windows/SKILL.md +167 -0
  181. package/templates/.agent/skills/prisma-7-patterns/SKILL.md +91 -0
  182. package/templates/.agent/skills/python-patterns/SKILL.md +441 -0
  183. package/templates/.agent/skills/red-team-tactics/SKILL.md +199 -0
  184. package/templates/.agent/skills/rust-pro/SKILL.md +176 -0
  185. package/templates/.agent/skills/seo-fundamentals/SKILL.md +129 -0
  186. package/templates/.agent/skills/seo-fundamentals/scripts/seo_checker.py +219 -0
  187. package/templates/.agent/skills/server-management/SKILL.md +161 -0
  188. package/templates/.agent/skills/systematic-debugging/SKILL.md +109 -0
  189. package/templates/.agent/skills/tailwind-patterns/SKILL.md +269 -0
  190. package/templates/.agent/skills/tdd-workflow/SKILL.md +149 -0
  191. package/templates/.agent/skills/testing-patterns/SKILL.md +178 -0
  192. package/templates/.agent/skills/testing-patterns/scripts/test_runner.py +219 -0
  193. package/templates/.agent/skills/uu-pdp-feature-check/SKILL.md +116 -0
  194. package/templates/.agent/skills/vibe-buildplan/SKILL.md +232 -0
  195. package/templates/.agent/skills/vibe-prd/SKILL.md +226 -0
  196. package/templates/.agent/skills/vibe-research/SKILL.md +162 -0
  197. package/templates/.agent/skills/vibe-techdesign/SKILL.md +195 -0
  198. package/templates/.agent/skills/vulnerability-scanner/SKILL.md +276 -0
  199. package/templates/.agent/skills/vulnerability-scanner/checklists.md +121 -0
  200. package/templates/.agent/skills/vulnerability-scanner/scripts/security_scan.py +458 -0
  201. package/templates/.agent/skills/web-design-guidelines/SKILL.md +57 -0
  202. package/templates/.agent/skills/webapp-testing/SKILL.md +187 -0
  203. package/templates/.agent/skills/webapp-testing/scripts/playwright_runner.py +173 -0
  204. package/templates/.agent/skills/xendit-integration/SKILL.md +100 -0
  205. package/templates/.agent/snippets/@react-component-template.tsx +29 -0
  206. package/templates/.agent/workflows/brainstorm.md +113 -0
  207. package/templates/.agent/workflows/create.md +59 -0
  208. package/templates/.agent/workflows/db-migrate.md +26 -0
  209. package/templates/.agent/workflows/debug.md +103 -0
  210. package/templates/.agent/workflows/deploy.md +35 -0
  211. package/templates/.agent/workflows/dev-reset.md +40 -0
  212. package/templates/.agent/workflows/enhance.md +63 -0
  213. package/templates/.agent/workflows/git-commit.md +24 -0
  214. package/templates/.agent/workflows/health-check.md +34 -0
  215. package/templates/.agent/workflows/new-feature.md +32 -0
  216. package/templates/.agent/workflows/orchestrate.md +237 -0
  217. package/templates/.agent/workflows/plan.md +89 -0
  218. package/templates/.agent/workflows/preview.md +81 -0
  219. package/templates/.agent/workflows/status.md +86 -0
  220. package/templates/.agent/workflows/test.md +144 -0
  221. package/templates/.agent/workflows/ui-ux-pro-max.md +296 -0
  222. package/templates/.agent/workflows/vibe-plan.md +133 -0
  223. package/templates/.agent/workflows/vibe-recap.md +17 -0
  224. package/templates/.antigravity/rules.md +64 -0
  225. package/templates/AGENTS.md +268 -0
  226. package/templates/docs/00A-PROJECT-CHARTER.md +33 -0
  227. package/templates/docs/00B-BRD.md +25 -0
  228. package/templates/docs/01-PRD.md +122 -0
  229. package/templates/docs/01B-SRS-LENGKAP.md +60 -0
  230. package/templates/docs/02-TECH-DESIGN.md +491 -0
  231. package/templates/docs/03-UI-GUIDELINES.md +301 -0
  232. package/templates/docs/04-BACKLOG.md +127 -0
  233. package/templates/docs/05-DEPLOYMENT.md +363 -0
  234. package/templates/docs/06-DEVELOPMENT-LOG.md +78 -0
  235. package/templates/specs/README.md +54 -0
@@ -0,0 +1,268 @@
1
+ # AGENTS.md — Instruksi AI untuk Proyek Ini
2
+ > Letakkan file ini di **root folder project** (sejajar `package.json`).
3
+ > Dibaca otomatis oleh Antigravity, Cursor, Claude Code, dan AI IDE lainnya.
4
+ > **Stack diverifikasi: Maret 2026**
5
+
6
+ ---
7
+
8
+ ## 🎯 Identitas Proyek
9
+
10
+ - **Nama Proyek:** [nama proyek]
11
+ - **Tipe:** [Web App / Mobile / Marketplace]
12
+ - **Stack:** Next.js **16.1** (App Router) + Flutter **3.41.2** + PostgreSQL **17** + Prisma **7** + Better Auth **1.5**
13
+ - **Runtime:** Node.js **22 LTS**
14
+ - **Data Fetching:** Server Components (default) + TanStack Query (client mutations/realtime)
15
+ - **Arsitektur:** Modular Monolith — 1 Next.js app + 1 BullMQ worker container
16
+ - **Payment:** Xendit (split payment / disbursement) — hanya app dengan transaksi keuangan
17
+ - **Realtime:** Socket.io + BullMQ **5.x** (Redis **7.4 LTS**, shared instance)
18
+ - **Push Notif:** Firebase FCM — **hanya `firebase_messaging`**, Analytics/Crashlytics JANGAN diaktifkan
19
+ - **Storage:** NEO Object Storage Biznet Gio (S3-compatible, Indonesia)
20
+ - **CDN:** Cloudflare Free (DPA wajib di-accept) + NEO untuk serve file upload
21
+ - **Deploy:** Coolify di VPS Biznet Gio (Indonesia — comply UU PDP)
22
+ - **IDE:** Antigravity
23
+ - **Stack diverifikasi:** Maret 2026
24
+
25
+ ---
26
+
27
+ ## 📁 Dokumen Referensi
28
+
29
+ | Dokumen | Lokasi | Berisi |
30
+ |---------|--------|--------|
31
+ | PRD | `docs/01-PRD.md` | Fitur, user stories (REQ-XXX), scope MVP |
32
+ | Tech Design | `docs/02-TECH-DESIGN.md` | Stack, schema DB, API contracts, code patterns |
33
+ | UI Guidelines | `docs/03-UI-GUIDELINES.md` | Komponen shadcn, warna, Flutter design |
34
+ | Backlog | `docs/04-BACKLOG.md` | Task aktif sprint ini |
35
+ | Deployment | `docs/05-DEPLOYMENT.md` | Coolify, Dockerfile, CI/CD, backup |
36
+ | Dev Log | `docs/06-DEVELOPMENT-LOG.md` | Kenapa setiap keputusan teknis dibuat |
37
+ | Feature Specs | `specs/NNN-nama-fitur.md` | Blueprint fitur sebelum coding |
38
+
39
+ **Antigravity agent config:**
40
+
41
+ | File | Fungsi |
42
+ |------|--------|
43
+ | `.antigravity/rules.md` | Rules selalu aktif tiap sesi |
44
+ | `.agent/skills/` | 8 skills — auto-load saat relevan |
45
+ | `.agent/workflows/` | 6 workflows — panggil via `/nama` |
46
+ | `.agent/mcp_config.json` | Config MCP servers |
47
+
48
+ ---
49
+
50
+ ## ⚙️ 10 Aturan Coding — WAJIB
51
+
52
+ ### 1. Tanya dulu, coding belakangan
53
+ Jika ada ambiguitas → tanya sebelum generate kode panjang.
54
+ Untuk fitur size M atau L: cek `specs/` dulu — jika ada spec, ikuti acceptance criteria di sana.
55
+
56
+ ### 2. Satu fokus per sesi
57
+ Jika diminta buat form login → **hanya buat form login**. Jangan ubah layout atau routing.
58
+
59
+ ### 3. Jangan hapus kode tanpa konfirmasi
60
+ Tampilkan dulu apa yang akan dihapus → minta konfirmasi sebelum lanjut.
61
+
62
+ ### 4. TypeScript strict — no `any`, import Prisma dari generated path
63
+ ```typescript
64
+ // ❌ Prisma 7: ini sudah tidak valid
65
+ import { User } from '@prisma/client'
66
+
67
+ // ✅ Prisma 7: pakai generated path
68
+ import { User } from '@/generated/prisma'
69
+ ```
70
+
71
+ ### 5. Error handling wajib di setiap async function
72
+ ```typescript
73
+ try {
74
+ const data = await prisma.user.findMany({ take: 20 })
75
+ } catch (error) {
76
+ console.error('[user:findMany]', error)
77
+ throw error
78
+ }
79
+ ```
80
+
81
+ ### 6. Loading + Empty + Error state wajib
82
+ Setiap komponen yang fetch data HARUS punya ketiga state ini.
83
+
84
+ ### 7. Cek komponen yang sudah ada dulu
85
+ Sebelum buat komponen baru → cek `/components/ui/` dan `/components/[feature]/`.
86
+
87
+ ### 8. Mobile-first untuk semua UI Web
88
+ ```tsx
89
+ <div className="flex flex-col md:flex-row gap-4">
90
+ ```
91
+
92
+ ### 9. Env vars tidak pernah di-hardcode
93
+ ```typescript
94
+ // ❌ const url = "https://xendit.co"
95
+ // ✅ const url = process.env.XENDIT_BASE_URL
96
+ ```
97
+
98
+ ### 10. Next.js 16 — `params` DAN `headers()` wajib di-await
99
+ ```typescript
100
+ // ❌ Next.js 14 style — error di Next.js 16
101
+ export default function Page({ params }: { params: { id: string } }) {
102
+ const { id } = params
103
+ }
104
+ const session = await auth.api.getSession({ headers: headers() })
105
+
106
+ // ✅ Next.js 16 — params dan headers() sekarang async
107
+ export default async function Page({ params }: { params: Promise<{ id: string }> }) {
108
+ const { id } = await params
109
+ }
110
+ const session = await auth.api.getSession({ headers: await headers() })
111
+ ```
112
+
113
+ ### Format commit
114
+ ```
115
+ feat(auth): tambah login Google OAuth
116
+ fix(payment): perbaiki webhook Xendit tidak terproses
117
+ chore(deps): update Next.js ke 16.1
118
+ ```
119
+
120
+ ---
121
+
122
+ ## 🗄️ Database (Prisma 7 + PostgreSQL 17)
123
+
124
+ ### Setup Client Singleton (`lib/db/index.ts`)
125
+ ```typescript
126
+ import { PrismaClient } from '@/generated/prisma'
127
+ import { PrismaPg } from '@prisma/adapter-pg'
128
+
129
+ const adapter = new PrismaPg({ connectionString: process.env.DATABASE_URL! })
130
+ const globalForPrisma = globalThis as unknown as { prisma: PrismaClient }
131
+
132
+ export const prisma = globalForPrisma.prisma ?? new PrismaClient({ adapter })
133
+ if (process.env.NODE_ENV !== 'production') globalForPrisma.prisma = prisma
134
+ ```
135
+
136
+ ### Schema Generator (`prisma/schema.prisma`)
137
+ ```prisma
138
+ generator client {
139
+ provider = "prisma-client"
140
+ output = "../src/generated/prisma"
141
+ }
142
+ datasource db {
143
+ provider = "postgresql"
144
+ url = env("DATABASE_URL")
145
+ }
146
+ ```
147
+
148
+ ### Aturan Query
149
+ - Selalu `take` + `skip` pada `findMany` — tidak ada query tanpa limit
150
+ - Soft delete: `deletedAt DateTime?` — jangan hard delete data penting
151
+ - Semua tabel: `createdAt @default(now())` + `updatedAt @updatedAt`
152
+ - Multi-tabel: `prisma.$transaction(async (tx) => { ... })`
153
+ - Migration dev: `npx prisma migrate dev` | Production: `npx prisma migrate deploy`
154
+
155
+ ---
156
+
157
+ ## 💳 Xendit Payment
158
+
159
+ ```typescript
160
+ // Webhook — WAJIB await headers()
161
+ export async function POST(req: Request) {
162
+ const callbackToken = (await headers()).get('x-callback-token')
163
+ if (callbackToken !== process.env.XENDIT_CALLBACK_TOKEN) {
164
+ return Response.json({ error: 'Unauthorized' }, { status: 403 })
165
+ }
166
+ const payload = await req.json()
167
+ await paymentQueue.add('process-webhook', payload, { attempts: 3 })
168
+ return Response.json({ received: true })
169
+ }
170
+ ```
171
+
172
+ **Aturan:** Selalu verifikasi `x-callback-token`. Enqueue ke BullMQ — jangan proses langsung.
173
+
174
+ ---
175
+
176
+ ## 🔌 Socket.io + BullMQ
177
+
178
+ ```typescript
179
+ // Worker emit ke client setelah job selesai
180
+ worker.on('completed', (job, result) => {
181
+ io.to(`user_${result.userId}`).emit('payment:updated', result)
182
+ })
183
+
184
+ // Redis client
185
+ export const redis = new Redis(process.env.REDIS_URL!, {
186
+ maxRetriesPerRequest: null, // required untuk BullMQ
187
+ })
188
+ ```
189
+
190
+ ---
191
+
192
+ ## 🔒 Security + UU PDP
193
+
194
+ ```typescript
195
+ // API Route — WAJIB await headers()
196
+ const session = await auth.api.getSession({ headers: await headers() })
197
+ if (!session) return Response.json({ error: 'Unauthorized' }, { status: 401 })
198
+ ```
199
+
200
+ - ✅ Semua input divalidasi Zod sebelum masuk DB
201
+ - ✅ Firebase: hanya `firebase_messaging` — Analytics/Crashlytics = OFF
202
+ - ✅ Cloudflare DPA + Firebase DPT wajib di-accept (sekali oleh admin)
203
+ - ✅ Log tidak print password, token, NIK, nomor rekening
204
+ - ✅ Data sensitif (NIK, rekening) dienkripsi dengan pgcrypto di DB
205
+
206
+ ---
207
+
208
+ ## 📝 Format Prompt Efektif
209
+
210
+ ```
211
+ [KONTEKS] Fitur: [nama fitur]
212
+ [SPEC] Baca specs/NNN-nama.md jika ada
213
+ [TUGAS] Yang perlu dibuat: [deskripsi spesifik]
214
+ [CONSTRAINT] Jangan ubah: [file/komponen yang tidak boleh diubah]
215
+ use context7
216
+ ```
217
+
218
+ ## ⚡ Workflows
219
+
220
+ ### Planning (sebelum coding)
221
+ | Command | Gunakan ketika |
222
+ |---------|----------------|
223
+ | `/vibe-plan` | **Mulai project baru** — research → PRD → tech design → build plan |
224
+
225
+ ### Build (saat coding)
226
+ | Command | Gunakan ketika |
227
+ |---------|----------------|
228
+ | `/new-feature` | Mulai fitur baru size M/L |
229
+ | `/db-migrate` | Ada perubahan schema Prisma |
230
+ | `/deploy` | Push ke production |
231
+ | `/health-check` | Ada masalah atau monitoring rutin |
232
+ | `/git-commit` | Commit dengan format benar |
233
+ | `/dev-reset` | Environment dev bermasalah |
234
+
235
+ ## 🔌 MCP Servers
236
+
237
+ - **Context7** — docs real-time Next.js 16, Prisma 7, Better Auth, BullMQ → `use context7`
238
+ - **GitHub** — issues, PR, commits dari IDE
239
+ - **PostgreSQL** — schema dan query DB development (jangan production!)
240
+ - **Playwright** — E2E testing browser otomatis
241
+ - **Sentry** — production errors langsung ke context
242
+ - **Docker** — container logs dan status
243
+
244
+ Config lengkap di `.agent/mcp_config.json`
245
+
246
+ ---
247
+
248
+ ## 🧠 Skills — Daftar Lengkap
249
+
250
+ ### Planning Skills (jalankan sebelum coding project baru)
251
+ | Skill | Trigger |
252
+ |-------|---------|
253
+ | `vibe-research` | "riset dulu", "validasi ide", "analisa kompetitor" |
254
+ | `vibe-prd` | "buat PRD", "definisikan fitur", "scope MVP" |
255
+ | `vibe-techdesign` | "pilih stack", "desain arsitektur", "buat ERD" |
256
+ | `vibe-buildplan` | "buat sprint plan", "breakdown task", "berapa sprint" |
257
+
258
+ ### Build Skills (dipakai saat coding)
259
+ | Skill | Trigger |
260
+ |-------|---------|
261
+ | `prisma-7-patterns` | Coding DB, schema, migrate |
262
+ | `xendit-integration` | Payment, webhook, split |
263
+ | `nextjs-api-route` | Buat `route.ts`, Server Action |
264
+ | `better-auth-patterns` | Auth, login, session |
265
+ | `bullmq-worker` | Background job, queue |
266
+ | `uu-pdp-feature-check` | Fitur yang sentuh data pribadi |
267
+ | `feature-spec-writer` | Plan fitur baru, size M/L |
268
+ | `neo-storage` | Upload file, presigned URL |
@@ -0,0 +1,33 @@
1
+ # Project Charter
2
+ > Document Status: Draft / Reviewed / Approved
3
+ > Date: [YYYY-MM-DD]
4
+ > Project Sponsor: [Sponsor Name]
5
+ > Project Manager: [PM Name]
6
+
7
+ ## 1. Tujuan Proyek (Project Purpose/Justification)
8
+ Menjelaskan mengapa proyek ini dilakukan. Masalah bisnis apa yang sedang diselesaikan atau peluang apa yang ingin dimanfaatkan?
9
+
10
+ ## 2. Sasaran Proyek & Kriteria Sukses (Objectives & Success Criteria)
11
+ Sasaran proyek (bersifat *measurable* dan spesifik).
12
+ - **Scope (Ruang Lingkup):** [contoh: Meluncurkan aplikasi Android dan Web minimal]
13
+ - **Time (Waktu):** [contoh: MVP rampung dalam 2 bulan]
14
+ - **Cost (Biaya):** [contoh: Anggaran cloud dan lisensi di bawah $500/bulan]
15
+ - **Kualitas:** [contoh: Pengadopsian awal 1000 pengguna]
16
+
17
+ ## 3. Persyaratan Tingkat Tinggi (High-Level Requirements)
18
+ Fitur atau kapabilitas utama sistem secara makro (dari sisi non-teknis).
19
+
20
+ ## 4. Risiko Tingkat Tinggi (High-Level Risks)
21
+ Daftar risiko utama yang bisa menggagalkan proyek beserta *mitigation plan* ringkas.
22
+
23
+ ## 5. Ringkasan Milestone (Summary Milestone Schedule)
24
+ - Phase 1: Requirement Gathering (Minggu 1-2)
25
+ - Phase 2: UI/UX & Architecture (Minggu 3-4)
26
+ - Phase 3: MVP Development (Minggu 5-8)
27
+ - Phase 4: UAT & Launch (Minggu 9)
28
+
29
+ ## 6. Daftar Pemangku Kepentingan (Stakeholder List)
30
+ | Nama / Peran | Jabatan / Pengaruh | Kontak / Catatan |
31
+ |-------------|---------------------|------------------|
32
+ | [Nama] | Sponsor/CEO | Pengambil keputusan akhir |
33
+ | [Nama] | Pengguna Akhir | Target tester MVP |
@@ -0,0 +1,25 @@
1
+ # Business Requirements Document (BRD)
2
+ > Project: [Nama Proyek]
3
+ > Date: [YYYY-MM-DD]
4
+
5
+ ## 1. Executive Summary
6
+ Rangkuman singkat mengenai inisiatif bisnis ini—siapa yang membutuhkan dan nilai apa yang akan didapatkan perusahaan jika ini berhasil diimplementasikan.
7
+
8
+ ## 2. Business Objectives
9
+ Apa gol strategis inisiatif ini? (Contoh: Mengurangi beban CS hingga 40%, atau menigkatkan retensi pengguna baru sebesar 15%).
10
+
11
+ ## 3. Business Scope (In-Scope & Out-of-Scope)
12
+ - **In-Scope:** Proses, operasional, atau departemen yang tercakup oleh produk.
13
+ - **Out-of-Scope:** Proses yang secara eksplisit tidak akan dilayani pada iterasi rilis ini.
14
+
15
+ ## 4. Business Process Model (As-Is / To-Be)
16
+ - **As-Is Process:** Bagaimana proses berjalan saat ini tanpa produk ini.
17
+ - **To-Be Process:** Bagaimana produk baru ini akan merampingkan/memperbarui proses lama. (Bisa digambarkan dengan *Flowchart* tekstual).
18
+
19
+ ## 5. Business Use Cases
20
+ Kasus penggunaan yang diuraikan dari lensa tujuan bisnis.
21
+ - **BUC-01:** Customer bisa memproses komplain pengembalian dana mandiri. (Gol: Mengurangi interaksi CS manual).
22
+ - **BUC-02:** Sistem mendeteksi anomali fraud transaksi tinggi. (Gol: Preventif kerugian asuransi).
23
+
24
+ ## 6. Asumsi Bisnis & Constraints (Hambatan)
25
+ Asumsi-asumsi (contoh: user diasumsikan memiliki koneksi internet) dan constraints (contoh: integrasi bergantung pada kesiapan API bank).
@@ -0,0 +1,122 @@
1
+ # 01 — Product Requirements Document (PRD)
2
+ > Isi dokumen ini sebelum mulai coding sprint pertama.
3
+ > AI membaca ini sebagai konteks utama untuk memahami produk yang dibangun.
4
+
5
+ ---
6
+
7
+ ## 1. Ringkasan Produk
8
+
9
+ | Field | Isi |
10
+ |-------|-----|
11
+ | **Nama Produk** | [nama aplikasi] |
12
+ | **Tipe** | [Web App / Mobile App / Marketplace] |
13
+ | **Versi** | v0.1 — MVP |
14
+ | **Tanggal** | [tanggal] |
15
+ | **Owner** | [nama PIC] |
16
+
17
+ ### Elevator Pitch
18
+ > Aplikasi ini membantu **[siapa]** untuk **[melakukan apa]** sehingga **[manfaat utama]**.
19
+
20
+ ---
21
+
22
+ ## 2. Masalah & Target Pengguna
23
+
24
+ ### Problem Statement
25
+ [Jelaskan masalah nyata yang ada. Apa pain point pengguna saat ini?]
26
+
27
+ ### Target Pengguna
28
+ | Segmen | Deskripsi | Pain Point Utama |
29
+ |--------|-----------|--------------------|
30
+ | User Utama | [contoh: pemilik toko online] | [contoh: susah kelola pesanan] |
31
+ | User Sekunder | [contoh: pelanggan toko] | [contoh: checkout ribet] |
32
+ | Admin | [contoh: operator platform] | [contoh: rekonsiliasi manual] |
33
+
34
+ ---
35
+
36
+ ## 3. Fitur MVP
37
+
38
+ > **Prinsip:** Hanya fitur yang WAJIB untuk validasi bisnis. Sisanya masuk backlog.
39
+
40
+ ### ✅ In Scope
41
+ | ID | Fitur | Deskripsi | Prioritas |
42
+ |----|-------|-----------|-----------|
43
+ | F01 | Autentikasi | Login email, Google OAuth, session 7 hari | P0 |
44
+ | F02 | [nama fitur] | [deskripsi singkat] | P0 |
45
+ | F03 | [nama fitur] | [deskripsi singkat] | P1 |
46
+ | F04 | Pembayaran | Xendit payment link, webhook, split payment | P0 |
47
+ | F05 | Notifikasi | FCM push notif, email via Resend | P1 |
48
+
49
+ ### ❌ Out of Scope MVP
50
+ - [fitur yang sengaja ditunda]
51
+ - [fitur nice-to-have]
52
+
53
+ ---
54
+
55
+ ## 4. User Stories
56
+
57
+ > Format: **Sebagai [siapa], saya ingin [aksi], agar [tujuan].**
58
+
59
+ ### Autentikasi
60
+ - [ ] **REQ-001** Sebagai pengguna baru, saya ingin mendaftar dengan email/Google, agar bisa akses aplikasi
61
+ - [ ] **REQ-002** Sebagai pengguna, saya ingin login dan sesi tersimpan 7 hari, agar tidak perlu login ulang
62
+ - [ ] **REQ-003** Sebagai pengguna, saya ingin reset password via email, agar bisa akses akun jika lupa
63
+
64
+ ### [Modul Utama — ganti sesuai aplikasi]
65
+ - [ ] **REQ-010** Sebagai [role], saya ingin [aksi], agar [tujuan]
66
+ - [ ] **REQ-011** Sebagai [role], saya ingin [aksi], agar [tujuan]
67
+
68
+ ### Pembayaran (Xendit)
69
+ - [ ] **REQ-020** Sebagai pembeli, saya ingin membayar via VA/QRIS/e-wallet
70
+ - [ ] **REQ-021** Sebagai penjual, saya ingin dana langsung masuk rekening saya (split)
71
+ - [ ] **REQ-022** Sebagai admin, saya ingin melihat status semua transaksi
72
+
73
+ ### Notifikasi
74
+ - [ ] **REQ-030** Sebagai pengguna, saya ingin dapat push notif saat ada update penting
75
+ - [ ] **REQ-031** Sebagai pengguna, saya ingin dapat email konfirmasi pembayaran
76
+
77
+ ### UU PDP — Hak Pengguna (Wajib sesuai UU PDP No. 27/2022)
78
+ - [ ] **REQ-040** Sebagai pengguna, saya ingin dapat menghapus akun + semua data saya
79
+ - [ ] **REQ-041** Sebagai pengguna, saya ingin dapat mengunduh semua data pribadi saya
80
+ - [ ] **REQ-042** Sebagai pengguna, saya ingin dapat mencabut consent marketing kapan saja
81
+
82
+ ---
83
+
84
+ ## 5. Non-Functional Requirements
85
+
86
+ | Kategori | Requirement | Target |
87
+ |----------|-------------|--------|
88
+ | Performance | Load halaman utama | < 2 detik |
89
+ | Availability | Uptime | 99.9% |
90
+ | Security | Auth | Session DB (Better Auth 1.5) |
91
+ | Security | Payment | Xendit callback token verified |
92
+ | Security | Data sensitif | Enkripsi at-rest (pgcrypto) |
93
+ | Scalability | Concurrent users (MVP) | 100 users |
94
+ | Mobile | Platform | Android + iOS (Flutter 3.41.2) |
95
+ | Storage | File upload max | 5 MB |
96
+ | Regulasi | Compliance | UU PDP No. 27/2022 |
97
+
98
+ ---
99
+
100
+ ## 6. Success Metrics
101
+
102
+ | Metric | Target MVP (Bulan 1) | Cara Ukur |
103
+ |--------|---------------------|-----------|
104
+ | Registrasi user | [target] | DB count |
105
+ | Transaksi berhasil | [target] | Xendit dashboard |
106
+ | Uptime | 99.9% | Uptime Kuma |
107
+
108
+ ---
109
+
110
+ ## 7. Constraints & Asumsi
111
+
112
+ ### Constraints
113
+ - Tim: 2–3 orang
114
+ - Timeline MVP: [target tanggal]
115
+ - Budget infra: [estimasi/bulan]
116
+ - Regulasi: UU PDP No. 27/2022 (berlaku penuh Oktober 2024)
117
+
118
+ ### Asumsi
119
+ - User memiliki smartphone Android/iOS
120
+ - Merchant sudah terdaftar sebagai sub-merchant di Xendit
121
+ - Semua user WNI — tidak perlu multi-currency untuk MVP
122
+ - Primary database di Indonesia (Biznet Gio) untuk comply data residency
@@ -0,0 +1,60 @@
1
+ # Software Requirements Specification (SRS)
2
+ > Sistem: [Nama Proyek/Sistem]
3
+ > Versi: [1.0]
4
+ > Tanggal: [YYYY-MM-DD]
5
+
6
+ ## 1. Pendahuluan
7
+ ### 1.1 Tujuan
8
+ Dokumen ini mendefinisikan persyaratan fungsional dan non-fungsional, serta arsitektur dari sistem [Nama Proyek]. Tujuannya adalah memastikan pemahaman yang sama antara pemangku kepentingan dan tim pengembang (termasuk AI agent) mengenai target spesifik dari pengembangan peranti lunak.
9
+
10
+ ### 1.2 Ruang Lingkup (Scope)
11
+ Penjelasan ringkas mengenai batasan sistem. Apa yang akan dikembangkan dalam MVP dan apa yang termasuk di luar fase (Out of Scope).
12
+
13
+ ### 1.3 Referensi
14
+ - `docs/01-PRD.md` (Product Requirements Document terkait MVP)
15
+ - `docs/tech-design.md` (Spesifikasi Teknis)
16
+
17
+ ---
18
+
19
+ ## 2. Deskripsi Keseluruhan
20
+ ### 2.1 Konteks Sistem
21
+ Diagram tingkat tinggi atau deskripsi interaksi sistem dengan entitas eksternal (sistem pihak ketiga, pengguna akhir, layanan integrasi seperti Payment Gateway Xendit).
22
+
23
+ ### 2.2 Karakteristik Pengguna
24
+ Identifikasi setiap aktor. (Contoh: Admin, End-User, Guest).
25
+
26
+ ---
27
+
28
+ ## 3. Spesifikasi Persyaratan Fungsi (Functional Requirements)
29
+ Spesifikasikan dengan format *Use Case* atau cerita pengguna (User Stories) dengan rincian yang lebih dalam dibandingkan MVP PRD.
30
+
31
+ ### 3.1 Layanan Otentikasi
32
+ 1. Sistem harus mengijinkan user masuk menggunakan OAuth Google (Better Auth).
33
+ 2. Sistem wajib mengelola sesi kadaluwarsa pengguna secara otomatis.
34
+
35
+ ### 3.2 Modul Utama [Nama Modul]
36
+ _Rincian setiap interaksi yang terjadi pada sistem..._
37
+
38
+ ---
39
+
40
+ ## 4. Persyaratan Non-Fungsional (Non-Functional Requirements / NFR)
41
+ ### 4.1 Keamanan (Security)
42
+ - Sistem harus mengamankan data sensitif pengguna (seperti NIK) menggunakan enkripsi pgcrypto pada database PostgreSQL.
43
+ - Transmisi data wajib dibalut di bawah HTTPS.
44
+ - Proteksi terhadap *SQL Injection* dan *XSS* wajib ditegakkan (Zod Validations & Parameterized Queries).
45
+
46
+ ### 4.2 Kinerja (Performance)
47
+ 1. Kecepatan *load* halaman klien (LCP - Largest Contentful Paint) harus kurang dari 2.5 detik.
48
+ 2. *Webhook* transaksi harus mampu memproses antrean `BullMQ` dengan konkurensi minimal 10 task tanpa membebani thread antarmuka.
49
+
50
+ ### 4.3 Privasi Data (UU PDP Compliance)
51
+ Hak pengguna untuk mengakses, mengunduh (*data portability*), dan menghapus data personal (Right to Erasure) wajib tersedia secara mandiri di halaman pengaturan akun.
52
+
53
+ ---
54
+
55
+ ## 5. Pemodelan Data & Lingkungan
56
+ ### 5.1 Spesifikasi Skema Database
57
+ Diagram ERD secara tekstual atau penjelasan tabel utama (misal: relasi `Users` ke `Transactions` dalam rancangan Prisma 7).
58
+
59
+ ### 5.2 Strategi Backup & Pemulihan
60
+ Rincian metode *snapshot* di lingkungan produksi atau penyimpanan file pengguna yang direkam menuju NEO Object Storage Biznet.