aiblueprint-cli 1.4.59 → 1.4.61

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 (184) hide show
  1. package/README.md +16 -36
  2. package/agents-config/agents/action.md +1 -1
  3. package/agents-config/agents/explore-codebase.md +53 -53
  4. package/agents-config/agents/explore-docs.md +50 -69
  5. package/agents-config/agents/websearch.md +36 -40
  6. package/agents-config/claude-config/scripts/.claude/skills/fix-on-my-computer/SKILL.md +81 -0
  7. package/agents-config/claude-config/scripts/CLAUDE.md +10 -4
  8. package/agents-config/claude-config/scripts/bun.lockb +0 -0
  9. package/agents-config/claude-config/scripts/package.json +22 -30
  10. package/agents-config/claude-config/scripts/statusline/CLAUDE.md +37 -155
  11. package/agents-config/claude-config/scripts/statusline/README.md +18 -94
  12. package/agents-config/claude-config/scripts/statusline/defaults.json +13 -10
  13. package/agents-config/claude-config/scripts/statusline/fixtures/mock-transcript.jsonl +4 -4
  14. package/agents-config/claude-config/scripts/statusline/fixtures/test-input.json +4 -4
  15. package/agents-config/claude-config/scripts/statusline/src/commands/interactive-config.ts +403 -0
  16. package/agents-config/claude-config/scripts/statusline/src/index.ts +33 -82
  17. package/agents-config/claude-config/scripts/statusline/src/lib/config-types.ts +7 -1
  18. package/agents-config/claude-config/scripts/statusline/src/lib/formatters.ts +40 -0
  19. package/agents-config/claude-config/scripts/statusline/src/lib/presets.ts +13 -13
  20. package/agents-config/claude-config/scripts/statusline/src/lib/render-pure.ts +24 -5
  21. package/agents-config/claude-config/scripts/statusline/statusline.config.free.json +79 -0
  22. package/agents-config/claude-config/scripts/statusline/statusline.config.json +77 -77
  23. package/agents-config/codex-config/config.toml +9 -0
  24. package/agents-config/codex-config/hooks/command-deny-list.ts +203 -0
  25. package/agents-config/commands/prompts/create-vitejs-app.md +272 -0
  26. package/agents-config/commands/prompts/nextjs-add-prisma-db.md +136 -0
  27. package/agents-config/commands/prompts/nextjs-setup-better-auth.md +173 -0
  28. package/agents-config/commands/prompts/nextjs-setup-project.md +200 -0
  29. package/agents-config/commands/prompts/prompt.md +55 -0
  30. package/agents-config/commands/prompts/saas-challenge-idea.md +135 -0
  31. package/agents-config/commands/prompts/saas-create-architecture.md +242 -0
  32. package/agents-config/commands/prompts/saas-create-headline.md +132 -0
  33. package/agents-config/commands/prompts/saas-create-landing-copywritting.md +267 -0
  34. package/agents-config/commands/prompts/saas-create-legals-docs.md +176 -0
  35. package/agents-config/commands/prompts/saas-create-logos.md +240 -0
  36. package/agents-config/commands/prompts/saas-create-prd.md +195 -0
  37. package/agents-config/commands/prompts/saas-create-tasks.md +240 -0
  38. package/agents-config/commands/prompts/saas-define-pricing.md +293 -0
  39. package/agents-config/commands/prompts/saas-find-domain-name.md +190 -0
  40. package/agents-config/commands/prompts/saas-implement-landing-page.md +257 -0
  41. package/agents-config/commands/prompts/setup-tmux.md +160 -0
  42. package/agents-config/commands/prompts/tools.md +148 -0
  43. package/agents-config/scripts/.claude/skills/fix-on-my-computer/SKILL.md +81 -0
  44. package/agents-config/scripts/CLAUDE.md +37 -0
  45. package/agents-config/scripts/biome.json +37 -0
  46. package/agents-config/scripts/bun.lockb +0 -0
  47. package/agents-config/scripts/package.json +24 -0
  48. package/agents-config/scripts/statusline/CLAUDE.md +87 -0
  49. package/agents-config/scripts/statusline/README.md +117 -0
  50. package/agents-config/scripts/statusline/__tests__/context.test.ts +229 -0
  51. package/agents-config/scripts/statusline/__tests__/formatters.test.ts +108 -0
  52. package/agents-config/scripts/statusline/__tests__/statusline.test.ts +309 -0
  53. package/agents-config/scripts/statusline/defaults.json +82 -0
  54. package/agents-config/scripts/statusline/fixtures/mock-transcript.jsonl +4 -0
  55. package/agents-config/scripts/statusline/fixtures/test-input.json +35 -0
  56. package/agents-config/scripts/statusline/src/commands/interactive-config.ts +403 -0
  57. package/agents-config/scripts/statusline/src/index.ts +141 -0
  58. package/agents-config/scripts/statusline/src/lib/config-types.ts +110 -0
  59. package/agents-config/scripts/statusline/src/lib/config.ts +21 -0
  60. package/agents-config/scripts/statusline/src/lib/context.ts +103 -0
  61. package/agents-config/scripts/statusline/src/lib/formatters.ts +426 -0
  62. package/agents-config/scripts/statusline/src/lib/git.ts +100 -0
  63. package/agents-config/scripts/statusline/src/lib/menu-factories.ts +224 -0
  64. package/agents-config/scripts/statusline/src/lib/presets.ts +177 -0
  65. package/agents-config/scripts/statusline/src/lib/render-pure.ts +516 -0
  66. package/agents-config/scripts/statusline/src/lib/types.ts +36 -0
  67. package/agents-config/scripts/statusline/src/lib/utils.ts +15 -0
  68. package/agents-config/scripts/statusline/statusline.config.free.json +79 -0
  69. package/agents-config/scripts/statusline/statusline.config.json +79 -0
  70. package/agents-config/scripts/statusline/test-with-fixtures.ts +37 -0
  71. package/agents-config/scripts/statusline/test.ts +20 -0
  72. package/agents-config/scripts/statusline/tsconfig.json +27 -0
  73. package/agents-config/scripts/tsconfig.json +27 -0
  74. package/agents-config/skills/{subagent-creator → agents-managers}/SKILL.md +47 -47
  75. package/agents-config/skills/{subagent-creator/references/subagents.md → agents-managers/references/agents.md} +45 -45
  76. package/agents-config/skills/{subagent-creator → agents-managers}/references/context-management.md +20 -20
  77. package/agents-config/skills/{subagent-creator → agents-managers}/references/debugging-agents.md +27 -27
  78. package/agents-config/skills/{subagent-creator → agents-managers}/references/error-handling-and-recovery.md +19 -19
  79. package/agents-config/skills/{subagent-creator → agents-managers}/references/evaluation-and-testing.md +29 -29
  80. package/agents-config/skills/{subagent-creator → agents-managers}/references/orchestration-patterns.md +5 -5
  81. package/agents-config/skills/{subagent-creator/references/writing-subagent-prompts.md → agents-managers/references/writing-agent-prompts.md} +23 -23
  82. package/agents-config/skills/codex-environment/SKILL.md +2 -0
  83. package/agents-config/skills/commit/SKILL.md +2 -0
  84. package/agents-config/skills/create-pr/SKILL.md +2 -0
  85. package/agents-config/skills/environments-manager/SKILL.md +271 -0
  86. package/agents-config/skills/environments-manager/examples/claude/.worktreeinclude +3 -0
  87. package/agents-config/skills/environments-manager/examples/claude/commands/dev.md +5 -0
  88. package/agents-config/skills/environments-manager/examples/claude/commands/lint.md +5 -0
  89. package/agents-config/skills/environments-manager/examples/claude/commands/test.md +5 -0
  90. package/agents-config/skills/environments-manager/examples/claude/commands/typecheck.md +5 -0
  91. package/agents-config/skills/environments-manager/examples/claude/settings.json +24 -0
  92. package/agents-config/skills/environments-manager/examples/codex/environments/environment.toml +29 -0
  93. package/agents-config/skills/environments-manager/examples/cursor/worktrees.json +3 -0
  94. package/agents-config/skills/environments-manager/examples/scripts/claude-worktree-create.sh +96 -0
  95. package/agents-config/skills/environments-manager/examples/scripts/claude-worktree-remove.sh +66 -0
  96. package/agents-config/skills/environments-manager/examples/scripts/dev.sh +15 -0
  97. package/agents-config/skills/environments-manager/examples/scripts/worktree-down.sh +22 -0
  98. package/agents-config/skills/environments-manager/examples/scripts/worktree-up.sh +50 -0
  99. package/agents-config/skills/environments-manager/references/claude.md +156 -0
  100. package/agents-config/skills/environments-manager/references/codex.md +97 -0
  101. package/agents-config/skills/environments-manager/references/cursor.md +88 -0
  102. package/agents-config/skills/fix-pr-comments/SKILL.md +2 -0
  103. package/agents-config/skills/grill-me/SKILL.md +10 -0
  104. package/agents-config/skills/merge/SKILL.md +2 -0
  105. package/agents-config/skills/rules-manager/SKILL.md +191 -0
  106. package/agents-config/skills/rules-manager/references/agents-vs-claude.md +66 -0
  107. package/agents-config/skills/rules-manager/references/examples.md +117 -0
  108. package/agents-config/skills/skill-manager/SKILL.md +101 -0
  109. package/agents-config/skills/skill-manager/references/claude-code.md +81 -0
  110. package/agents-config/skills/skill-manager/references/codex.md +288 -0
  111. package/agents-config/skills/skill-manager/references/cursor.md +125 -0
  112. package/agents-config/skills/skill-manager/references/description-recommandation.md +97 -0
  113. package/agents-config/skills/skill-manager/scripts/inspect-description.ts +743 -0
  114. package/agents-config/skills/ultrathink/SKILL.md +2 -0
  115. package/dist/cli.js +581 -299
  116. package/package.json +1 -1
  117. package/agents-config/claude-config/scripts/statusline/data/.gitignore +0 -8
  118. package/agents-config/claude-config/scripts/statusline/data/.gitkeep +0 -0
  119. package/agents-config/claude-config/scripts/statusline/docs/ARCHITECTURE.md +0 -166
  120. package/agents-config/claude-config/scripts/statusline/src/tests/spend-v2.test.ts +0 -306
  121. package/agents-config/skills/apex/SKILL.md +0 -261
  122. package/agents-config/skills/apex/scripts/setup-templates.sh +0 -100
  123. package/agents-config/skills/apex/scripts/update-progress.sh +0 -80
  124. package/agents-config/skills/apex/steps/step-00-init.md +0 -267
  125. package/agents-config/skills/apex/steps/step-00b-branch.md +0 -126
  126. package/agents-config/skills/apex/steps/step-00b-economy.md +0 -244
  127. package/agents-config/skills/apex/steps/step-00b-interactive.md +0 -153
  128. package/agents-config/skills/apex/steps/step-01-analyze.md +0 -361
  129. package/agents-config/skills/apex/steps/step-02-plan.md +0 -264
  130. package/agents-config/skills/apex/steps/step-03-execute.md +0 -239
  131. package/agents-config/skills/apex/steps/step-04-validate.md +0 -251
  132. package/agents-config/skills/apex/templates/00-context.md +0 -43
  133. package/agents-config/skills/apex/templates/01-analyze.md +0 -10
  134. package/agents-config/skills/apex/templates/02-plan.md +0 -10
  135. package/agents-config/skills/apex/templates/03-execute.md +0 -10
  136. package/agents-config/skills/apex/templates/04-validate.md +0 -10
  137. package/agents-config/skills/apex/templates/README.md +0 -176
  138. package/agents-config/skills/apex/templates/step-complete.md +0 -7
  139. package/agents-config/skills/claude-memory/SKILL.md +0 -293
  140. package/agents-config/skills/claude-memory/references/comprehensive-example.md +0 -175
  141. package/agents-config/skills/claude-memory/references/optimize-guide.md +0 -300
  142. package/agents-config/skills/claude-memory/references/project-patterns.md +0 -334
  143. package/agents-config/skills/claude-memory/references/prompting-techniques.md +0 -411
  144. package/agents-config/skills/claude-memory/references/rules-directory-guide.md +0 -298
  145. package/agents-config/skills/claude-memory/references/section-templates.md +0 -347
  146. package/agents-config/skills/fix-errors/SKILL.md +0 -61
  147. package/agents-config/skills/fix-grammar/SKILL.md +0 -59
  148. package/agents-config/skills/ralph-loop/SKILL.md +0 -117
  149. package/agents-config/skills/ralph-loop/scripts/setup.sh +0 -278
  150. package/agents-config/skills/ralph-loop/steps/step-00-init.md +0 -215
  151. package/agents-config/skills/ralph-loop/steps/step-01-interactive-prd.md +0 -366
  152. package/agents-config/skills/ralph-loop/steps/step-02-create-stories.md +0 -273
  153. package/agents-config/skills/ralph-loop/steps/step-03-finish.md +0 -245
  154. package/agents-config/skills/skill-creator/LICENSE.txt +0 -202
  155. package/agents-config/skills/skill-creator/SKILL.md +0 -421
  156. package/agents-config/skills/skill-creator/package.json +0 -5
  157. package/agents-config/skills/skill-creator/references/output-patterns.md +0 -82
  158. package/agents-config/skills/skill-creator/references/progressive-disclosure-patterns.md +0 -374
  159. package/agents-config/skills/skill-creator/references/prompting-integration.md +0 -363
  160. package/agents-config/skills/skill-creator/references/real-world-examples.md +0 -513
  161. package/agents-config/skills/skill-creator/references/script-patterns.md +0 -385
  162. package/agents-config/skills/skill-creator/references/workflows.md +0 -28
  163. package/agents-config/skills/skill-creator/references/xml-tag-guide.md +0 -606
  164. package/agents-config/skills/skill-creator/scripts/init-skill.ts +0 -214
  165. package/agents-config/skills/skill-creator/scripts/package-skill.ts +0 -146
  166. package/agents-config/skills/skill-creator/scripts/validate.ts +0 -138
  167. package/agents-config/skills/workflow-apex-free/SKILL.md +0 -261
  168. package/agents-config/skills/workflow-apex-free/scripts/setup-templates.sh +0 -100
  169. package/agents-config/skills/workflow-apex-free/scripts/update-progress.sh +0 -80
  170. package/agents-config/skills/workflow-apex-free/steps/step-00-init.md +0 -267
  171. package/agents-config/skills/workflow-apex-free/steps/step-00b-branch.md +0 -126
  172. package/agents-config/skills/workflow-apex-free/steps/step-00b-economy.md +0 -244
  173. package/agents-config/skills/workflow-apex-free/steps/step-00b-interactive.md +0 -153
  174. package/agents-config/skills/workflow-apex-free/steps/step-01-analyze.md +0 -361
  175. package/agents-config/skills/workflow-apex-free/steps/step-02-plan.md +0 -264
  176. package/agents-config/skills/workflow-apex-free/steps/step-03-execute.md +0 -239
  177. package/agents-config/skills/workflow-apex-free/steps/step-04-validate.md +0 -251
  178. package/agents-config/skills/workflow-apex-free/templates/00-context.md +0 -43
  179. package/agents-config/skills/workflow-apex-free/templates/01-analyze.md +0 -10
  180. package/agents-config/skills/workflow-apex-free/templates/02-plan.md +0 -10
  181. package/agents-config/skills/workflow-apex-free/templates/03-execute.md +0 -10
  182. package/agents-config/skills/workflow-apex-free/templates/04-validate.md +0 -10
  183. package/agents-config/skills/workflow-apex-free/templates/README.md +0 -176
  184. package/agents-config/skills/workflow-apex-free/templates/step-complete.md +0 -7
@@ -0,0 +1,272 @@
1
+ ---
2
+ description: Create a Vite.js app with Tailwind CSS v4 and shadcn/ui in the current directory
3
+ argument-hint: [template]
4
+ ---
5
+
6
+ <objective>
7
+ Create a Vite.js project with Tailwind CSS v4 and shadcn/ui in the current directory, handling all edge cases intelligently.
8
+
9
+ Templates: vanilla, vanilla-ts, vue, vue-ts, react, react-ts, react-swc, react-swc-ts, preact, preact-ts, lit, lit-ts, svelte, svelte-ts, solid, solid-ts, qwik, qwik-ts
10
+
11
+ Default: react-ts (if no template specified)
12
+
13
+ Note: shadcn/ui only works with React templates (react, react-ts, react-swc, react-swc-ts)
14
+ </objective>
15
+
16
+ <context>
17
+ Directory contents: !`ls -la 2>/dev/null || echo "EMPTY"`
18
+ Package.json exists: !`test -f package.json && echo "YES" || echo "NO"`
19
+ Vite config exists: !`ls vite.config.* 2>/dev/null || echo "NONE"`
20
+ </context>
21
+
22
+ <verified_sources>
23
+ - Vite docs: https://vite.dev/guide/
24
+ - Tailwind v4 docs: https://tailwindcss.com/docs/installation/using-vite
25
+ - shadcn/ui Vite: https://ui.shadcn.com/docs/installation/vite
26
+ - shadcn/ui Tailwind v4: https://ui.shadcn.com/docs/tailwind-v4
27
+ </verified_sources>
28
+
29
+ <process>
30
+ 1. **Determine template**: Use `$ARGUMENTS` if provided, otherwise `react-ts`
31
+
32
+ 2. **Analyze current directory**:
33
+ - Has `package.json` with vite? → Existing Vite project, add Tailwind + shadcn
34
+ - Has `package.json` without vite? → Add Vite + Tailwind + shadcn
35
+ - No `package.json`? → Create fresh Vite project
36
+
37
+ 3. **Create Vite project** (if needed):
38
+ ```bash
39
+ npm create vite@latest . -- --template <template>
40
+ ```
41
+
42
+ If this fails (rare), use subfolder workaround:
43
+ ```bash
44
+ npm create vite@latest .vite-temp -- --template <template>
45
+ mv .vite-temp/* .vite-temp/.* . 2>/dev/null
46
+ rmdir .vite-temp
47
+ ```
48
+
49
+ 4. **Install dependencies**:
50
+ ```bash
51
+ npm install
52
+ ```
53
+
54
+ 5. **Install Tailwind CSS v4**:
55
+ ```bash
56
+ npm install tailwindcss@latest @tailwindcss/vite@latest
57
+ ```
58
+
59
+ 6. **Install @types/node** (required for path aliases):
60
+ ```bash
61
+ npm install -D @types/node
62
+ ```
63
+
64
+ 7. **Configure TypeScript paths** - Edit `tsconfig.json`:
65
+ ```json
66
+ {
67
+ "compilerOptions": {
68
+ "baseUrl": ".",
69
+ "paths": {
70
+ "@/*": ["./src/*"]
71
+ }
72
+ }
73
+ }
74
+ ```
75
+
76
+ Also edit `tsconfig.app.json` if it exists:
77
+ ```json
78
+ {
79
+ "compilerOptions": {
80
+ "baseUrl": ".",
81
+ "paths": {
82
+ "@/*": ["./src/*"]
83
+ }
84
+ }
85
+ }
86
+ ```
87
+
88
+ 8. **Configure Vite** - Edit `vite.config.ts`:
89
+ ```typescript
90
+ import path from "path"
91
+ import tailwindcss from "@tailwindcss/vite"
92
+ import react from "@vitejs/plugin-react"
93
+ import { defineConfig } from "vite"
94
+
95
+ export default defineConfig({
96
+ plugins: [react(), tailwindcss()],
97
+ resolve: {
98
+ alias: {
99
+ "@": path.resolve(__dirname, "./src"),
100
+ },
101
+ },
102
+ })
103
+ ```
104
+
105
+ 9. **Setup CSS** - Update `src/index.css`:
106
+ ```css
107
+ @import "tailwindcss";
108
+ ```
109
+
110
+ 10. **Initialize shadcn/ui** (React templates only):
111
+ ```bash
112
+ npx shadcn@latest init
113
+ ```
114
+
115
+ When prompted:
116
+ - Style: Default or New York
117
+ - Base color: Neutral (recommended)
118
+ - CSS variables: Yes
119
+
120
+ Or non-interactive:
121
+ ```bash
122
+ npx shadcn@latest init -y -b neutral
123
+ ```
124
+
125
+ 11. **Add shadcn components**:
126
+ ```bash
127
+ npx shadcn@latest add button badge
128
+ ```
129
+
130
+ 12. **Create landing page** - Replace `src/App.tsx` with:
131
+ ```tsx
132
+ import { Button } from "@/components/ui/button"
133
+ import { Badge } from "@/components/ui/badge"
134
+
135
+ function App() {
136
+ return (
137
+ <div className="min-h-svh bg-gradient-to-b from-background to-muted">
138
+ {/* Hero Section */}
139
+ <div className="container mx-auto px-4 py-16 sm:py-24">
140
+ <div className="flex flex-col items-center text-center space-y-8">
141
+ {/* Badge */}
142
+ <Badge variant="secondary" className="px-4 py-1.5 text-sm">
143
+ Powered by Vite + Tailwind v4 + shadcn/ui
144
+ </Badge>
145
+
146
+ {/* Main Heading */}
147
+ <h1 className="text-4xl sm:text-6xl lg:text-7xl font-bold tracking-tight">
148
+ <span className="bg-gradient-to-r from-foreground via-foreground/80 to-foreground bg-clip-text">
149
+ ViteJS
150
+ </span>
151
+ <span className="text-primary"> Ready</span>
152
+ </h1>
153
+
154
+ {/* Subtitle */}
155
+ <p className="max-w-2xl text-lg sm:text-xl text-muted-foreground">
156
+ Your project is set up with the modern stack. Start building something amazing.
157
+ </p>
158
+
159
+ {/* CTA Buttons */}
160
+ <div className="flex flex-col sm:flex-row gap-4 pt-4">
161
+ <Button size="lg" className="min-w-40">
162
+ Get Started
163
+ </Button>
164
+ <Button size="lg" variant="outline" className="min-w-40">
165
+ Documentation
166
+ </Button>
167
+ </div>
168
+
169
+ {/* Tech Stack */}
170
+ <div className="pt-12 flex flex-wrap justify-center gap-8 text-muted-foreground">
171
+ <div className="flex items-center gap-2">
172
+ <div className="size-2 rounded-full bg-yellow-500" />
173
+ <span className="text-sm font-medium">Vite</span>
174
+ </div>
175
+ <div className="flex items-center gap-2">
176
+ <div className="size-2 rounded-full bg-cyan-500" />
177
+ <span className="text-sm font-medium">Tailwind v4</span>
178
+ </div>
179
+ <div className="flex items-center gap-2">
180
+ <div className="size-2 rounded-full bg-blue-500" />
181
+ <span className="text-sm font-medium">React</span>
182
+ </div>
183
+ <div className="flex items-center gap-2">
184
+ <div className="size-2 rounded-full bg-neutral-500" />
185
+ <span className="text-sm font-medium">shadcn/ui</span>
186
+ </div>
187
+ </div>
188
+ </div>
189
+ </div>
190
+
191
+ {/* Feature Cards */}
192
+ <div className="container mx-auto px-4 pb-16">
193
+ <div className="grid sm:grid-cols-2 lg:grid-cols-3 gap-6">
194
+ {[
195
+ { title: "Lightning Fast", desc: "Instant HMR and optimized builds with Vite" },
196
+ { title: "Type Safe", desc: "Full TypeScript support out of the box" },
197
+ { title: "Beautiful UI", desc: "Pre-built components with shadcn/ui" },
198
+ ].map((feature) => (
199
+ <div
200
+ key={feature.title}
201
+ className="group rounded-xl border bg-card p-6 transition-colors hover:bg-accent"
202
+ >
203
+ <h3 className="font-semibold text-lg mb-2">{feature.title}</h3>
204
+ <p className="text-sm text-muted-foreground">{feature.desc}</p>
205
+ </div>
206
+ ))}
207
+ </div>
208
+ </div>
209
+
210
+ {/* Footer */}
211
+ <footer className="border-t py-8">
212
+ <p className="text-center text-sm text-muted-foreground">
213
+ Edit <code className="font-mono bg-muted px-1.5 py-0.5 rounded">src/App.tsx</code> to get started
214
+ </p>
215
+ </footer>
216
+ </div>
217
+ )
218
+ }
219
+
220
+ export default App
221
+ ```
222
+
223
+ 13. **Clean up default files** (optional):
224
+ - Delete `src/App.css` (styles now in Tailwind)
225
+ - Delete `src/assets/react.svg` (not needed)
226
+ - Update `index.html` title to your project name
227
+
228
+ 14. **Verify setup**:
229
+ ```bash
230
+ npm run dev
231
+ ```
232
+
233
+ You should see a modern landing page with:
234
+ - Gradient background
235
+ - "ViteJS Ready" heading
236
+ - Tech stack indicators
237
+ - Feature cards
238
+ - Responsive design
239
+ </process>
240
+
241
+ <edge_cases>
242
+ - **Non-React template**: Skip shadcn/ui steps (only add Tailwind). shadcn/ui requires React.
243
+ - **Non-empty directory**: Vite supports this natively (PR #15272, Dec 2023)
244
+ - **Existing package.json**: Skip Vite creation, add dependencies to existing project
245
+ - **Existing vite.config**: MERGE plugins and alias config, don't replace
246
+ - **JavaScript (not TypeScript)**: Use `jsconfig.json` instead of `tsconfig.json` for paths
247
+ - **PowerShell (Windows)**: Use `---` instead of `--`: `npm create vite@latest . --- --template react-ts`
248
+ - **shadcn init fails**: Ensure tsconfig paths and vite alias are configured BEFORE running init
249
+ - **Tailwind v4 + shadcn**: Fully supported as of Feb 2025. Uses OKLCH colors, @theme inline directive
250
+ </edge_cases>
251
+
252
+ <shadcn_notes>
253
+ - shadcn/ui now supports Tailwind v4 and React 19 (Feb 2025 update)
254
+ - Components use `data-slot` attributes for styling
255
+ - HSL colors converted to OKLCH
256
+ - `toast` deprecated, use `sonner` instead
257
+ - Buttons use default cursor (not pointer)
258
+ - All components work with modern browsers only
259
+ </shadcn_notes>
260
+
261
+ <success_criteria>
262
+ - Vite project created in current directory
263
+ - `tailwindcss` and `@tailwindcss/vite` in package.json
264
+ - `tailwindcss()` plugin in vite.config
265
+ - Path alias `@` configured in tsconfig and vite.config
266
+ - `src/index.css` has `@import "tailwindcss"`
267
+ - `components.json` exists (shadcn config)
268
+ - `src/components/ui/button.tsx` and `badge.tsx` exist
269
+ - `src/App.tsx` contains the "ViteJS Ready" landing page
270
+ - `npm run dev` runs without errors
271
+ - Landing page displays with gradient, heading, buttons, and feature cards
272
+ </success_criteria>
@@ -0,0 +1,136 @@
1
+ ---
2
+ description: Setup Prisma ORM with PostgreSQL in a Next.js project with schema, migrations, and seed data
3
+ ---
4
+
5
+ <objective>
6
+ Setup Prisma in the current Next.js project with a production-ready database configuration.
7
+
8
+ This creates a complete database layer including schema, migrations, client helper, seed script, and API routes for verification. Designed for projects using Neon PostgreSQL.
9
+ </objective>
10
+
11
+ <context>
12
+ Project structure: !`ls -la`
13
+ Package manager: !`cat package.json | grep -A2 '"packageManager"'`
14
+ Existing prisma config: !`ls prisma/ 2>/dev/null || echo "No prisma folder yet"`
15
+ TypeScript config: !`cat tsconfig.json | head -30`
16
+ </context>
17
+
18
+ <process>
19
+ ## Phase 1: Information Gathering
20
+
21
+ 1. **Ask for table structure** - Prompt user to describe ONE simple table to verify Prisma works:
22
+ - Table name and purpose
23
+ - Fields with types (String, Int, DateTime, Boolean)
24
+ - Example: "Post table with id, title, content, published, createdAt"
25
+
26
+ 2. **Inspect existing structure** - Before coding:
27
+ - Check if `src/` folder exists
28
+ - Read `tsconfig.json` for path aliases
29
+ - Identify where `lib/` folder should be created
30
+
31
+ ## Phase 2: Installation
32
+
33
+ 3. **Install dependencies**:
34
+ ```bash
35
+ pnpm add prisma @prisma/client
36
+ pnpm add -D tsx
37
+ npx prisma init
38
+ ```
39
+
40
+ 4. **Configure database provider** - Update `prisma/schema.prisma`:
41
+ - Set provider to "postgresql"
42
+ - Configure generator output path based on project structure
43
+
44
+ ## Phase 3: Schema & Configuration
45
+
46
+ 5. **Create schema** - Add the user-defined table with:
47
+ - `id` as String with `@id @default(cuid())`
48
+ - User-specified fields
49
+ - `createdAt DateTime @default(now())`
50
+ - `updatedAt DateTime @updatedAt`
51
+
52
+ 6. **Configure exclusions**:
53
+ - Add generated folder to `.eslintignore`
54
+ - Add generated folder to `tsconfig.json` exclude array
55
+
56
+ 7. **Create Prisma client helper** - Create singleton pattern in `lib/prisma.ts`:
57
+ ```typescript
58
+ import { PrismaClient } from "@/generated/client";
59
+
60
+ const globalForPrisma = globalThis as unknown as {
61
+ prisma: PrismaClient | undefined;
62
+ };
63
+
64
+ export const prisma = globalForPrisma.prisma ?? new PrismaClient();
65
+
66
+ if (process.env.NODE_ENV !== "production") globalForPrisma.prisma = prisma;
67
+ ```
68
+
69
+ 8. **Create prisma.config.ts** - Root configuration:
70
+ ```typescript
71
+ import path from "node:path";
72
+ import { defineConfig } from "prisma/config";
73
+
74
+ export default defineConfig({
75
+ schema: path.join("prisma", "schema.prisma"),
76
+ migrations: {
77
+ seed: `tsx prisma/seed.ts`,
78
+ },
79
+ });
80
+ ```
81
+
82
+ ## Phase 4: Data & Verification
83
+
84
+ 9. **Create seed script** - `prisma/seed.ts` with 5-10 realistic records
85
+
86
+ 10. **Run migrations**:
87
+ ```bash
88
+ npx prisma generate
89
+ npx prisma migrate dev --name init
90
+ npx prisma db seed
91
+ ```
92
+
93
+ 11. **Create example API route** - `app/api/example/route.ts`:
94
+ - GET endpoint fetching all records
95
+ - POST endpoint creating new record
96
+ - Proper error handling
97
+
98
+ 12. **Add package.json scripts**:
99
+ ```json
100
+ {
101
+ "db:generate": "prisma generate",
102
+ "db:push": "prisma db push",
103
+ "db:migrate": "prisma migrate dev",
104
+ "db:studio": "prisma studio",
105
+ "db:seed": "prisma db seed"
106
+ }
107
+ ```
108
+
109
+ ## Phase 5: Documentation
110
+
111
+ 13. **Update CLAUDE.md** with:
112
+ - Database provider and connection info
113
+ - Schema overview
114
+ - Available db scripts
115
+ </process>
116
+
117
+ <constraints>
118
+ **FORBIDDEN - Do not create**:
119
+ - User, Account, Session, VerificationToken tables (auth tables)
120
+ - Any user-related fields or foreign keys
121
+ - More than ONE table (keep it minimal for verification)
122
+
123
+ **REQUIRED**:
124
+ - Adapt paths to existing project structure
125
+ - Use cuid() for IDs, not uuid or auto-increment
126
+ - Configure generator output path correctly
127
+ - Create seed data with realistic values
128
+ </constraints>
129
+
130
+ <success_criteria>
131
+ - `pnpm prisma generate` completes without errors
132
+ - `pnpm prisma migrate dev` creates migration successfully
133
+ - `pnpm prisma db seed` populates database
134
+ - API route returns data when called
135
+ - No TypeScript or ESLint errors in generated files
136
+ </success_criteria>
@@ -0,0 +1,173 @@
1
+ ---
2
+ description: Setup Better Auth with Email OTP authentication and shadcn/ui components in a Next.js project
3
+ ---
4
+
5
+ <objective>
6
+ Setup Better Auth in the current Next.js project with Email OTP authentication flow.
7
+
8
+ This creates a production-ready authentication system with Resend email delivery, a beautiful sign-in page using shadcn/ui, and an account management page. Uses Prisma adapter for database integration.
9
+ </objective>
10
+
11
+ <context>
12
+ Project structure: !`ls -la`
13
+ Prisma schema: !`cat prisma/schema.prisma 2>/dev/null | head -40 || echo "No Prisma schema"`
14
+ Existing auth: !`ls src/lib/auth* 2>/dev/null || ls lib/auth* 2>/dev/null || echo "No auth files"`
15
+ Path aliases: !`cat tsconfig.json | grep -A5 '"paths"'`
16
+ </context>
17
+
18
+ <process>
19
+ ## Phase 1: Prerequisites
20
+
21
+ 1. **Ask for Resend API Key** - Prompt user:
22
+ > "I need your Resend API key to send OTP emails. Get it from https://resend.com/api-keys"
23
+
24
+ 2. **Verify Prisma is configured**:
25
+ - Check `prisma/schema.prisma` exists
26
+ - Identify Prisma client import path (custom output or default)
27
+ - Confirm `lib/prisma.ts` singleton exists
28
+
29
+ ## Phase 2: Installation
30
+
31
+ 3. **Install dependencies**:
32
+ ```bash
33
+ pnpm add better-auth resend
34
+ ```
35
+
36
+ 4. **Install shadcn/ui components**:
37
+ ```bash
38
+ pnpm dlx shadcn@latest add input label card button tabs input-otp
39
+ ```
40
+
41
+ 5. **Get reference components** (study then delete):
42
+ ```bash
43
+ pnpm dlx shadcn@latest add https://coss.com/origin/r/comp-326.json
44
+ pnpm dlx shadcn@latest add https://coss.com/origin/r/comp-324.json
45
+ ```
46
+
47
+ ## Phase 3: Configuration
48
+
49
+ 6. **Configure environment variables** - Add to `.env`:
50
+ ```
51
+ BETTER_AUTH_SECRET="[generate with: openssl rand -base64 32]"
52
+ BETTER_AUTH_URL="http://localhost:3000"
53
+ RESEND_API_KEY="[user-provided]"
54
+ RESEND_FROM_EMAIL="onboarding@resend.dev"
55
+ ```
56
+
57
+ 7. **Create Better Auth instance** - `src/lib/auth.ts`:
58
+ ```typescript
59
+ import { betterAuth } from "better-auth";
60
+ import { prismaAdapter } from "better-auth/adapters/prisma";
61
+ import { emailOTP } from "better-auth/plugins";
62
+ import { prisma } from "./prisma";
63
+ import { Resend } from "resend";
64
+
65
+ const resend = new Resend(process.env.RESEND_API_KEY);
66
+
67
+ export const auth = betterAuth({
68
+ database: prismaAdapter(prisma, { provider: "postgresql" }),
69
+ emailAndPassword: { enabled: false },
70
+ plugins: [
71
+ emailOTP({
72
+ async sendVerificationOTP({ email, otp, type }) {
73
+ await resend.emails.send({
74
+ from: process.env.RESEND_FROM_EMAIL!,
75
+ to: email,
76
+ subject: type === "sign-in" ? "Sign in to your account" : "Verify your email",
77
+ html: `<p>Your verification code is: <strong>${otp}</strong></p><p>This code will expire in 5 minutes.</p>`,
78
+ });
79
+ },
80
+ otpLength: 6,
81
+ expiresIn: 300,
82
+ }),
83
+ ],
84
+ secret: process.env.BETTER_AUTH_SECRET!,
85
+ baseURL: process.env.BETTER_AUTH_URL!,
86
+ });
87
+ ```
88
+
89
+ 8. **Generate Prisma schema** using Better Auth CLI:
90
+ ```bash
91
+ npx @better-auth/cli generate --config src/lib/auth.ts
92
+ npx prisma migrate dev --name add_better_auth
93
+ npx prisma generate
94
+ ```
95
+
96
+ 9. **Create API route handler** - `app/api/auth/[...all]/route.ts`:
97
+ ```typescript
98
+ import { auth } from "@/lib/auth";
99
+ import { toNextJsHandler } from "better-auth/next-js";
100
+
101
+ export const { GET, POST } = toNextJsHandler(auth.handler);
102
+ ```
103
+
104
+ 10. **Create auth client** - `src/lib/auth-client.ts`:
105
+ ```typescript
106
+ import { createAuthClient } from "better-auth/react";
107
+ import { emailOTPClient } from "better-auth/client/plugins";
108
+
109
+ export const authClient = createAuthClient({
110
+ baseURL: process.env.NEXT_PUBLIC_BETTER_AUTH_URL || "http://localhost:3000",
111
+ plugins: [emailOTPClient()],
112
+ });
113
+
114
+ export const { signIn, signOut, useSession } = authClient;
115
+ ```
116
+
117
+ ## Phase 4: UI Implementation
118
+
119
+ 11. **Study reference components** - Read comp-326 and comp-324 patterns:
120
+ - Note form layouts, validation patterns, UX flows
121
+ - Understand OTP input behavior
122
+
123
+ 12. **Create sign-in page** - `app/sign-in/page.tsx`:
124
+ - Two-step flow: email input → OTP verification
125
+ - Use `InputOTP` component with 6 slots
126
+ - Auto-submit on complete with `onComplete` handler
127
+ - Loading states and error handling with `text-destructive`
128
+ - Redirect to `/account` on success
129
+
130
+ 13. **Create account page** - `app/account/page.tsx`:
131
+ - Protected route (redirect if no session)
132
+ - Tabs for Profile and Security
133
+ - Profile form with name update
134
+ - Sign out button
135
+ - Session info display
136
+
137
+ 14. **Delete reference components** - Remove comp-326 and comp-324 files
138
+
139
+ ## Phase 5: Integration & Testing
140
+
141
+ 15. **Update layout** - Add TanStack Query provider if needed for session management
142
+
143
+ 16. **Update home page** - Add auth status display with sign-in/account links
144
+
145
+ 17. **Test complete flow**:
146
+ - Navigate to `/sign-in`
147
+ - Enter email, receive OTP
148
+ - Verify OTP, redirect to `/account`
149
+ - Update name, sign out
150
+ </process>
151
+
152
+ <constraints>
153
+ **UI RULES**:
154
+ - ONLY use shadcn/ui components and theme colors
155
+ - NEVER use custom colors - only background, foreground, primary, secondary, muted, accent, destructive
156
+ - All styling via Tailwind with theme-aware classes
157
+ - NO hardcoded colors like #000, blue-500, etc.
158
+
159
+ **FLEXIBILITY**:
160
+ - Check Prisma client location before importing
161
+ - Adapt all paths to project structure
162
+ - Match existing path alias conventions
163
+ </constraints>
164
+
165
+ <success_criteria>
166
+ - Sign-in page renders with email input
167
+ - OTP email is sent via Resend
168
+ - OTP verification signs user in
169
+ - Account page shows session data
170
+ - Name update persists to database
171
+ - Sign out clears session and redirects
172
+ - No TypeScript or linting errors
173
+ </success_criteria>