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,301 @@
1
+ # 03 — UI Guidelines & Design System
2
+ > Panduan visual untuk konsistensi tampilan di Web (shadcn/ui) dan Mobile (Flutter).
3
+
4
+ ---
5
+
6
+ ## 1. Prinsip Desain
7
+
8
+ 1. **Mobile-First** — semua dimulai dari mobile, dikembangkan ke desktop
9
+ 2. **Consistency** — komponen sama terlihat sama di seluruh aplikasi
10
+ 3. **Clarity** — user selalu tahu apa yang bisa diklik dan apa hasilnya
11
+ 4. **Performance** — tidak ada animasi berat, gambar selalu dioptimasi sebelum upload
12
+
13
+ ---
14
+
15
+ ## 2. Color System
16
+
17
+ ### Brand Colors (ganti dengan warna brand proyek)
18
+ ```css
19
+ /* Tailwind custom colors di tailwind.config.ts */
20
+ colors: {
21
+ brand: {
22
+ 50: '#[hex]',
23
+ 100: '#[hex]',
24
+ 500: '#[hex]', /* main */
25
+ 600: '#[hex]', /* hover */
26
+ 900: '#[hex]',
27
+ }
28
+ }
29
+ ```
30
+
31
+ ### Semantic Colors (pakai Tailwind defaults)
32
+ ```
33
+ Success : green-500 (#22C55E)
34
+ Warning : amber-500 (#F59E0B)
35
+ Error : red-500 (#EF4444)
36
+ Info : blue-500 (#3B82F6)
37
+ ```
38
+
39
+ ### Neutral (Text & Background)
40
+ ```
41
+ Text primary : slate-900
42
+ Text secondary : slate-500
43
+ Text muted : slate-400
44
+ Border : slate-200
45
+ Background : slate-50
46
+ Surface : white
47
+ ```
48
+
49
+ ---
50
+
51
+ ## 3. Typography
52
+
53
+ | Element | Tailwind Class | Size |
54
+ |---------|----------------|------|
55
+ | Page title (H1) | `text-3xl font-bold` | 30px |
56
+ | Section title (H2) | `text-2xl font-semibold` | 24px |
57
+ | Card title (H3) | `text-lg font-semibold` | 18px |
58
+ | Body | `text-base` | 16px |
59
+ | Small / caption | `text-sm text-slate-500` | 14px |
60
+ | Label form | `text-sm font-medium` | 14px |
61
+ | Micro | `text-xs` | 12px |
62
+
63
+ **Font:** Inter (Google Fonts) — `font-family: 'Inter', system-ui, sans-serif`
64
+
65
+ ---
66
+
67
+ ## 4. Spacing
68
+
69
+ Gunakan kelipatan 4px (Tailwind default):
70
+
71
+ | Token | Value | Tailwind |
72
+ |-------|-------|---------|
73
+ | xs | 4px | `p-1` / `gap-1` |
74
+ | sm | 8px | `p-2` / `gap-2` |
75
+ | md | 16px | `p-4` / `gap-4` |
76
+ | lg | 24px | `p-6` / `gap-6` |
77
+ | xl | 32px | `p-8` / `gap-8` |
78
+ | 2xl | 48px | `p-12` / `gap-12` |
79
+
80
+ ---
81
+
82
+ ## 5. shadcn/ui Components — Pola Standar
83
+
84
+ ### Button
85
+ ```tsx
86
+ import { Button } from "@/components/ui/button"
87
+ import { Loader2 } from "lucide-react"
88
+
89
+ // Primary
90
+ <Button>Simpan</Button>
91
+
92
+ // Outline
93
+ <Button variant="outline">Batal</Button>
94
+
95
+ // Destructive
96
+ <Button variant="destructive">Hapus</Button>
97
+
98
+ // Loading state — WAJIB ada
99
+ <Button disabled={isLoading}>
100
+ {isLoading && <Loader2 className="mr-2 h-4 w-4 animate-spin" />}
101
+ {isLoading ? "Memproses..." : "Bayar Sekarang"}
102
+ </Button>
103
+ ```
104
+
105
+ ### Form Input
106
+ ```tsx
107
+ import { Input } from "@/components/ui/input"
108
+ import { Label } from "@/components/ui/label"
109
+
110
+ // Selalu pakai label + error message
111
+ <div className="space-y-2">
112
+ <Label htmlFor="email">Email</Label>
113
+ <Input
114
+ id="email"
115
+ type="email"
116
+ placeholder="nama@email.com"
117
+ {...register('email')}
118
+ className={errors.email ? 'border-red-500' : ''}
119
+ />
120
+ {errors.email && (
121
+ <p className="text-sm text-red-500">{errors.email.message}</p>
122
+ )}
123
+ </div>
124
+ ```
125
+
126
+ ### Card
127
+ ```tsx
128
+ import { Card, CardHeader, CardTitle, CardContent, CardFooter } from "@/components/ui/card"
129
+
130
+ <Card>
131
+ <CardHeader>
132
+ <CardTitle>Judul Card</CardTitle>
133
+ </CardHeader>
134
+ <CardContent>
135
+ {/* konten */}
136
+ </CardContent>
137
+ <CardFooter className="flex gap-2">
138
+ <Button>Aksi Utama</Button>
139
+ <Button variant="outline">Batal</Button>
140
+ </CardFooter>
141
+ </Card>
142
+ ```
143
+
144
+ ### Empty State — WAJIB di setiap list
145
+ ```tsx
146
+ import { Inbox } from "lucide-react"
147
+
148
+ <div className="flex flex-col items-center justify-center py-16 text-center">
149
+ <Inbox className="h-12 w-12 text-slate-300 mb-4" />
150
+ <h3 className="text-slate-600 font-medium">Belum ada data</h3>
151
+ <p className="text-slate-400 text-sm mt-1">
152
+ Mulai dengan menambahkan [item] pertama
153
+ </p>
154
+ <Button className="mt-4">Tambah [Item]</Button>
155
+ </div>
156
+ ```
157
+
158
+ ### Loading Skeleton
159
+ ```tsx
160
+ import { Skeleton } from "@/components/ui/skeleton"
161
+
162
+ // Card skeleton
163
+ <div className="space-y-3">
164
+ <Skeleton className="h-4 w-3/4" />
165
+ <Skeleton className="h-4 w-1/2" />
166
+ <Skeleton className="h-32 w-full rounded-lg" />
167
+ </div>
168
+ ```
169
+
170
+ ### Toast Notification
171
+ ```tsx
172
+ import { toast } from "sonner"
173
+
174
+ toast.success("Data berhasil disimpan")
175
+ toast.error("Gagal. Coba lagi beberapa saat.")
176
+ toast.loading("Memproses pembayaran...")
177
+ toast.promise(createPayment(), {
178
+ loading: "Membuat tagihan...",
179
+ success: "Tagihan berhasil dibuat",
180
+ error: "Gagal membuat tagihan",
181
+ })
182
+ ```
183
+
184
+ ### Badge Status
185
+ ```tsx
186
+ import { Badge } from "@/components/ui/badge"
187
+
188
+ // Status pembayaran Xendit
189
+ const statusVariant = {
190
+ PAID: 'default', // hijau
191
+ PENDING: 'secondary', // abu
192
+ FAILED: 'destructive', // merah
193
+ EXPIRED: 'outline', // outline
194
+ }
195
+
196
+ <Badge variant={statusVariant[status]}>{status}</Badge>
197
+ ```
198
+
199
+ ---
200
+
201
+ ## 6. Layout Patterns
202
+
203
+ ### Responsive Grid
204
+ ```tsx
205
+ // 1 kolom di mobile, 2-3 kolom di desktop
206
+ <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
207
+ ```
208
+
209
+ ### Page Container
210
+ ```tsx
211
+ <div className="container mx-auto px-4 py-6 max-w-6xl">
212
+ {/* konten halaman */}
213
+ </div>
214
+ ```
215
+
216
+ ### Dashboard Sidebar Layout
217
+ ```tsx
218
+ <div className="flex min-h-screen">
219
+ <aside className="w-64 border-r hidden md:block">
220
+ {/* sidebar */}
221
+ </aside>
222
+ <main className="flex-1 p-6">
223
+ {/* konten */}
224
+ </main>
225
+ </div>
226
+ ```
227
+
228
+ ---
229
+
230
+ ## 7. Icons
231
+
232
+ Gunakan **Lucide React** (sudah include di shadcn):
233
+ ```tsx
234
+ import { Plus, Trash2, Edit, ChevronRight, Loader2, CreditCard, CheckCircle } from "lucide-react"
235
+
236
+ // Ukuran standar
237
+ <Plus className="h-4 w-4" /> // inline dengan teks
238
+ <Edit className="h-5 w-5" /> // button icon
239
+ <Loader2 className="h-4 w-4 animate-spin" /> // loading
240
+ ```
241
+
242
+ ---
243
+
244
+ ## 8. Responsive Breakpoints
245
+
246
+ ```css
247
+ sm: 640px /* Tablet portrait */
248
+ md: 768px /* Tablet landscape */
249
+ lg: 1024px /* Desktop */
250
+ xl: 1280px /* Large desktop */
251
+ 2xl: 1536px /* Wide screen */
252
+ ```
253
+
254
+ ---
255
+
256
+ ## 9. Flutter Design System
257
+
258
+ ```dart
259
+ // lib/core/theme/app_theme.dart
260
+ ThemeData appTheme = ThemeData(
261
+ colorScheme: ColorScheme.fromSeed(
262
+ seedColor: const Color(0xFF[brandHex]),
263
+ brightness: Brightness.light,
264
+ ),
265
+ useMaterial3: true,
266
+ fontFamily: 'Inter',
267
+ cardTheme: CardTheme(
268
+ elevation: 0,
269
+ shape: RoundedRectangleBorder(
270
+ borderRadius: BorderRadius.circular(12),
271
+ side: BorderSide(color: Colors.grey.shade200),
272
+ ),
273
+ ),
274
+ );
275
+
276
+ // lib/core/constants/app_spacing.dart
277
+ class AppSpacing {
278
+ static const double xs = 4;
279
+ static const double sm = 8;
280
+ static const double md = 16;
281
+ static const double lg = 24;
282
+ static const double xl = 32;
283
+ static const double xxl = 48;
284
+ }
285
+
286
+ // lib/core/constants/app_radius.dart
287
+ class AppRadius {
288
+ static const double sm = 8;
289
+ static const double md = 12;
290
+ static const double lg = 16;
291
+ static const double full = 999;
292
+ }
293
+ ```
294
+
295
+ ### Flutter Color Tokens
296
+ ```dart
297
+ // Akses via Theme
298
+ Theme.of(context).colorScheme.primary // brand color
299
+ Theme.of(context).colorScheme.surface // card background
300
+ Theme.of(context).colorScheme.onSurface // text di atas surface
301
+ ```
@@ -0,0 +1,127 @@
1
+ # 04 — Sprint Backlog
2
+ > Update setiap sprint (1-2 minggu). AI membaca ini untuk tahu konteks task aktif.
3
+
4
+ ---
5
+
6
+ ## 🗓️ Sprint Aktif
7
+
8
+ | Field | Isi |
9
+ |-------|-----|
10
+ | **Sprint #** | 1 |
11
+ | **Periode** | [tanggal mulai] → [tanggal selesai] |
12
+ | **Goal** | [1 kalimat tujuan sprint ini, contoh: user bisa login dan lihat dashboard] |
13
+ | **PIC** | [nama] |
14
+
15
+ ---
16
+
17
+ ## 📋 Task Sprint 1
18
+
19
+ ### 🔴 In Progress
20
+ | ID | Task | PIC | Notes |
21
+ |----|------|-----|-------|
22
+ | T001 | [nama task] | [nama] | [catatan] |
23
+
24
+ ### 🟡 Todo
25
+ | ID | Task | Size | Prioritas |
26
+ |----|------|------|-----------|
27
+ | T002 | Setup project monorepo + Docker | S | P0 |
28
+ | T003 | Setup PostgreSQL + Prisma schema awal | S | P0 |
29
+ | T004 | Better Auth: login email + Google | M | P0 |
30
+ | T005 | Layout dashboard + sidebar (web) | M | P1 |
31
+ | T006 | Halaman login + register (web) | M | P0 |
32
+ | T007 | Setup Flutter project + navigation | M | P1 |
33
+ | T008 | Setup Socket.io server | S | P1 |
34
+ | T009 | Setup BullMQ + Redis | S | P1 |
35
+ | T010 | Integrasi Xendit sandbox | L | P1 |
36
+
37
+ ### 🟢 Done
38
+ | ID | Task | Selesai |
39
+ |----|------|---------|
40
+ | — | — | — |
41
+
42
+ ### 🚫 Blocked
43
+ | ID | Task | Blocker | Butuh Apa |
44
+ |----|------|---------|-----------|
45
+ | — | — | — | — |
46
+
47
+ ---
48
+
49
+ ## 📦 Product Backlog
50
+
51
+ ### Epic 1: Autentikasi & Onboarding
52
+ - [ ] T-001 Setup project, monorepo, Docker compose
53
+ - [ ] T-002 Better Auth: email + password
54
+ - [ ] T-003 Better Auth: Google OAuth
55
+ - [ ] T-004 Email verifikasi via Resend
56
+ - [ ] T-005 Forgot password flow
57
+ - [ ] T-006 Auth Flutter (simpan session di Hive)
58
+ - [ ] T-007 Protected routes web + Flutter
59
+
60
+ ### Epic 2: [Core Feature — ganti sesuai aplikasi]
61
+ - [ ] T-010 [task]
62
+ - [ ] T-011 [task]
63
+ - [ ] T-012 [task]
64
+
65
+ ### Epic 3: Pembayaran (Xendit)
66
+ - [ ] T-020 Setup Xendit SDK + credentials
67
+ - [ ] T-021 Buat payment link / invoice
68
+ - [ ] T-022 Webhook handler + verifikasi token
69
+ - [ ] T-023 BullMQ worker proses webhook
70
+ - [ ] T-024 Update order status setelah payment
71
+ - [ ] T-025 Socket.io notify client payment berhasil
72
+ - [ ] T-026 FCM push notif payment berhasil (Flutter)
73
+ - [ ] T-027 Halaman sukses/gagal payment
74
+ - [ ] T-028 Riwayat transaksi
75
+
76
+ ### Epic 4: Realtime & Notifikasi
77
+ - [ ] T-030 Socket.io room management (per user)
78
+ - [ ] T-031 Realtime order status update (web)
79
+ - [ ] T-032 Realtime order status update (Flutter)
80
+ - [ ] T-033 FCM setup + Firebase project
81
+ - [ ] T-034 Push notif dari BullMQ worker
82
+ - [ ] T-035 Email notifikasi via Resend
83
+
84
+ ### Epic 5: File Upload (NEO Object Storage)
85
+ - [ ] T-040 NEO S3 client setup
86
+ - [ ] T-041 Upload API route dengan validasi
87
+ - [ ] T-042 Resize/compress gambar via BullMQ job
88
+ - [ ] T-043 Flutter image picker + upload
89
+
90
+ ### Epic 6: Admin & Monitoring
91
+ - [ ] T-050 Admin dashboard (order, user, transaksi)
92
+ - [ ] T-051 Uptime Kuma setup
93
+ - [ ] T-052 Sentry error tracking
94
+ - [ ] T-053 Bull Board UI (monitor BullMQ jobs)
95
+
96
+ ---
97
+
98
+ ## 🐛 Bug Log
99
+
100
+ | ID | Deskripsi | Severity | Status | Ditemukan |
101
+ |----|-----------|----------|--------|-----------|
102
+ | — | — | — | — | — |
103
+
104
+ ---
105
+
106
+ ## 📏 Size Estimation
107
+
108
+ | Size | Waktu | Contoh |
109
+ |------|-------|--------|
110
+ | XS | < 1 jam | Fix typo, update copy, minor style |
111
+ | S | 1-3 jam | Setup config, 1 komponen sederhana |
112
+ | M | 3-6 jam | 1 halaman lengkap, 1 API route dengan logic |
113
+ | L | 6-12 jam | 1 fitur end-to-end (FE + BE + DB) |
114
+ | XL | > 12 jam | Epic besar — harus dipecah jadi task lebih kecil |
115
+
116
+ ---
117
+
118
+ ## 📝 Keputusan Sprint
119
+
120
+ ### Keputusan Teknis
121
+ - [catat keputusan teknis yang dibuat sprint ini]
122
+
123
+ ### Pelajaran
124
+ - [hal yang dipelajari]
125
+
126
+ ### Rencana Sprint Berikutnya
127
+ - [gambaran umum sprint selanjutnya]