aiblueprint-cli 1.4.82 → 1.4.83

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