@withmata/blueprints 0.3.5 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/skills/audit/SKILL.md +4 -4
- package/.claude/skills/blueprint-catalog/SKILL.md +17 -7
- package/.claude/skills/copywrite/SKILL.md +187 -0
- package/.claude/skills/copywrite-landing/SKILL.md +489 -0
- package/.claude/skills/design-system/SKILL.md +970 -0
- package/.claude/skills/new-project/SKILL.md +168 -112
- package/.claude/skills/scaffold-auth/SKILL.md +9 -9
- package/.claude/skills/scaffold-db/SKILL.md +14 -14
- package/.claude/skills/scaffold-env/SKILL.md +4 -4
- package/.claude/skills/scaffold-foundation/SKILL.md +15 -15
- package/.claude/skills/scaffold-tailwind/SKILL.md +17 -3
- package/.claude/skills/scaffold-ui/SKILL.md +155 -36
- package/ENGINEERING.md +2 -2
- package/blueprints/discovery/design-system/BLUEPRINT.md +1479 -0
- package/blueprints/discovery/marketing-copywriting/BLUEPRINT.md +664 -0
- package/blueprints/features/auth-better-auth/BLUEPRINT.md +20 -22
- package/blueprints/features/db-drizzle-postgres/BLUEPRINT.md +12 -12
- package/blueprints/features/db-drizzle-postgres/files/db/src/example-entity.ts +1 -1
- package/blueprints/features/db-drizzle-postgres/files/db/src/scripts/seed.ts +1 -1
- package/blueprints/features/env-t3/BLUEPRINT.md +1 -1
- package/blueprints/features/tailwind-v4/BLUEPRINT.md +9 -2
- package/blueprints/features/tailwind-v4/files/tailwind-config/shared-styles.css +80 -1
- package/blueprints/features/ui-shared-components/BLUEPRINT.md +411 -78
- package/blueprints/features/ui-shared-components/files/ui/components/ui/alert-dialog.tsx +192 -0
- package/blueprints/features/ui-shared-components/files/ui/components/ui/avatar.tsx +71 -0
- package/blueprints/features/ui-shared-components/files/ui/components/ui/badge.tsx +52 -0
- package/blueprints/features/ui-shared-components/files/ui/components/ui/breadcrumb.tsx +122 -0
- package/blueprints/features/ui-shared-components/files/ui/components/ui/button.tsx +56 -0
- package/blueprints/features/ui-shared-components/files/ui/components/ui/card-select.tsx +72 -0
- package/blueprints/features/ui-shared-components/files/ui/components/ui/card.tsx +100 -0
- package/blueprints/features/ui-shared-components/files/ui/components/ui/collapsible.tsx +34 -0
- package/blueprints/features/ui-shared-components/files/ui/components/ui/combobox.tsx +301 -0
- package/blueprints/features/ui-shared-components/files/ui/components/ui/dropdown-menu.tsx +264 -0
- package/blueprints/features/ui-shared-components/files/ui/components/ui/empty-state.tsx +43 -0
- package/blueprints/features/ui-shared-components/files/ui/components/ui/entity-select.tsx +110 -0
- package/blueprints/features/ui-shared-components/files/ui/components/ui/field.tsx +237 -0
- package/blueprints/features/ui-shared-components/files/ui/components/ui/form-field.tsx +217 -0
- package/blueprints/features/ui-shared-components/files/ui/components/ui/input-group.tsx +161 -0
- package/blueprints/features/ui-shared-components/files/ui/components/ui/input.tsx +20 -0
- package/blueprints/features/ui-shared-components/files/ui/components/ui/label.tsx +20 -0
- package/blueprints/features/ui-shared-components/files/ui/components/ui/org-switcher.tsx +114 -0
- package/blueprints/features/ui-shared-components/files/ui/components/ui/page-header.tsx +45 -0
- package/blueprints/features/ui-shared-components/files/ui/components/ui/pagination.tsx +52 -0
- package/blueprints/features/ui-shared-components/files/ui/components/ui/pill-select.tsx +151 -0
- package/blueprints/features/ui-shared-components/files/ui/components/ui/popover.tsx +41 -0
- package/blueprints/features/ui-shared-components/files/ui/components/ui/search-input.tsx +49 -0
- package/blueprints/features/ui-shared-components/files/ui/components/ui/select.tsx +205 -0
- package/blueprints/features/ui-shared-components/files/ui/components/ui/selected-entity-card.tsx +47 -0
- package/blueprints/features/ui-shared-components/files/ui/components/ui/separator.tsx +25 -0
- package/blueprints/features/ui-shared-components/files/ui/components/ui/sidebar.tsx +389 -0
- package/blueprints/features/ui-shared-components/files/ui/components/ui/status-filter.tsx +43 -0
- package/blueprints/features/ui-shared-components/files/ui/components/ui/tag-input.tsx +131 -0
- package/blueprints/features/ui-shared-components/files/ui/components/ui/textarea.tsx +18 -0
- package/blueprints/features/ui-shared-components/files/ui/components/ui/user-menu.tsx +149 -0
- package/blueprints/features/ui-shared-components/files/ui/components.json +11 -8
- package/blueprints/features/ui-shared-components/files/ui/package.json +20 -11
- package/blueprints/foundation/monorepo-turbo/BLUEPRINT.md +19 -20
- package/blueprints/foundation/monorepo-turbo/files/root/package.json +1 -1
- package/dist/index.js +27 -10
- package/package.json +1 -1
- package/blueprints/features/tailwind-v4/files/tailwind-config/package.json +0 -20
- package/blueprints/foundation/monorepo-turbo/files/root/pnpm-workspace.yaml +0 -5
|
@@ -12,19 +12,14 @@ Take a product from idea to running code. This command walks through the full li
|
|
|
12
12
|
Load all available blueprints so you understand what's possible:
|
|
13
13
|
|
|
14
14
|
```
|
|
15
|
-
~/.withmata/blueprints/blueprints/discovery
|
|
15
|
+
~/.withmata/blueprints/blueprints/discovery/*/BLUEPRINT.md
|
|
16
16
|
~/.withmata/blueprints/blueprints/discovery/product-discovery/templates/*
|
|
17
17
|
~/.withmata/blueprints/blueprints/foundation/monorepo-turbo/BLUEPRINT.md
|
|
18
18
|
~/.withmata/blueprints/blueprints/foundation/monorepo-turbo/files/**/*
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
Also scan for available feature blueprints:
|
|
22
|
-
|
|
23
|
-
```
|
|
24
19
|
~/.withmata/blueprints/blueprints/features/*/BLUEPRINT.md
|
|
25
20
|
```
|
|
26
21
|
|
|
27
|
-
Only consider a
|
|
22
|
+
Only consider a blueprint "available" if its BLUEPRINT.md has `Status: Complete`. If not found, run `npx @withmata/blueprints` to install.
|
|
28
23
|
|
|
29
24
|
## Step 2: Assess Current State
|
|
30
25
|
|
|
@@ -33,39 +28,107 @@ Before doing anything, understand where this project stands.
|
|
|
33
28
|
**Check `.project-context.md`** in the target project root. This file tracks what has already been done:
|
|
34
29
|
|
|
35
30
|
- **Has a `## Product Discovery` section?** Discovery is complete.
|
|
31
|
+
- **Has `marketing-copywriting` under `## Installed Blueprints`?** Marketing copy exists.
|
|
32
|
+
- **Has `design-system` under `## Installed Blueprints`?** Design system is defined.
|
|
36
33
|
- **Has a `## Foundation` section?** Foundation is scaffolded.
|
|
37
|
-
- **Has entries under `## Installed Blueprints`?**
|
|
34
|
+
- **Has other entries under `## Installed Blueprints`?** Features are installed.
|
|
38
35
|
|
|
39
36
|
**Explore the target directory:**
|
|
40
37
|
|
|
41
|
-
- Empty directory? Fresh start
|
|
42
|
-
- Has `docs/product/`? Discovery was done
|
|
38
|
+
- Empty directory? Fresh start.
|
|
39
|
+
- Has `docs/product/`? Discovery was done.
|
|
40
|
+
- Has `docs/pages/`? Marketing copy was written.
|
|
41
|
+
- Has `docs/design/`? Design system was defined.
|
|
43
42
|
- Has `package.json`, `turbo.json`, workspace dirs? Foundation was done.
|
|
44
|
-
- Has auth files, DB packages, etc.? Features were installed.
|
|
43
|
+
- Has auth files, DB packages, UI components, etc.? Features were installed.
|
|
44
|
+
|
|
45
|
+
## Step 3: Choose a Pathway
|
|
46
|
+
|
|
47
|
+
Based on what you found, present the appropriate options. Lead with the product, not the tech.
|
|
48
|
+
|
|
49
|
+
---
|
|
45
50
|
|
|
46
|
-
|
|
51
|
+
### If nothing exists (fresh start):
|
|
47
52
|
|
|
48
|
-
|
|
53
|
+
"This is a fresh start. What kind of project are you kicking off?
|
|
49
54
|
|
|
50
|
-
|
|
55
|
+
1. **Build a product** (recommended)
|
|
56
|
+
Define what you're building, write the marketing, design the look, then set up the codebase and wire in features. The full journey from idea to running code.
|
|
57
|
+
*Stages: Discovery → Marketing Copy → Design System → Foundation → Features*
|
|
51
58
|
|
|
52
|
-
|
|
59
|
+
2. **Quick start with design**
|
|
60
|
+
Skip product discovery — jump straight to defining the visual identity and setting up the codebase. Best when you already know what you're building but want it to look unique.
|
|
61
|
+
*Stages: Design System → Foundation → Features*
|
|
53
62
|
|
|
54
|
-
|
|
63
|
+
3. **Quick start**
|
|
64
|
+
Skip straight to code. Set up the codebase and start adding features immediately. Best for tinkering, prototyping, or experiments.
|
|
65
|
+
*Stages: Foundation → Features*
|
|
55
66
|
|
|
56
|
-
|
|
67
|
+
You can always add product docs (`/discover`), marketing copy (`/copywrite`), or a design system (`/design-system`) later."
|
|
57
68
|
|
|
58
|
-
|
|
69
|
+
- **Build a product** → Stage 1 → 2 → 3 → 4 → 5 → 6
|
|
70
|
+
- **Quick start with design** → Stage 3 → 4 → 5 → 6
|
|
71
|
+
- **Quick start** → Stage 4 → 5 → 6
|
|
72
|
+
|
|
73
|
+
For quick start modes, create a minimal `.project-context.md`:
|
|
74
|
+
```yaml
|
|
75
|
+
## Foundation
|
|
76
|
+
quick_start: true
|
|
77
|
+
```
|
|
59
78
|
|
|
60
79
|
---
|
|
61
80
|
|
|
62
|
-
|
|
81
|
+
### If discovery exists but no code:
|
|
63
82
|
|
|
64
|
-
|
|
83
|
+
"You've already defined [product name] — [problem statement]. Here's what we can do next:
|
|
84
|
+
|
|
85
|
+
1. **Continue the journey** — Write marketing copy, define visual identity, then set up the codebase.
|
|
86
|
+
*Next: Marketing Copy → Design System → Foundation → Features*
|
|
87
|
+
|
|
88
|
+
2. **Jump to code** — Set up the codebase now, come back to marketing and design later.
|
|
89
|
+
*Next: Foundation → Features*"
|
|
90
|
+
|
|
91
|
+
If marketing copy also exists, adjust to show design system and/or foundation as next options. Always show what's already done and what's available.
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
### If codebase exists (foundation or single-repo detected):
|
|
96
|
+
|
|
97
|
+
"This project has a codebase already. Here's what's available:
|
|
98
|
+
|
|
99
|
+
**Discovery & Design** (produce docs, not code):
|
|
100
|
+
- `/discover` — Product discovery [done ✓ / not started]
|
|
101
|
+
- `/copywrite` — Marketing page copy [done ✓ / not started]
|
|
102
|
+
- `/design-system` — Visual identity & tokens [done ✓ / not started]
|
|
103
|
+
|
|
104
|
+
**Features** (wire into the codebase):
|
|
105
|
+
- `/scaffold-env` — Environment variables [installed ✓ / available]
|
|
106
|
+
- `/scaffold-tailwind` — Tailwind design system [installed ✓ / available]
|
|
107
|
+
- `/scaffold-ui` — UI component library [installed ✓ / available]
|
|
108
|
+
- `/scaffold-db` — Database [installed ✓ / available]
|
|
109
|
+
- `/scaffold-auth` — Authentication [installed ✓ / available]
|
|
110
|
+
|
|
111
|
+
What do you want to work on?"
|
|
112
|
+
|
|
113
|
+
This is the **existing project** pathway — no forced order, just a menu of what's available with status indicators.
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
### If everything is done:
|
|
118
|
+
|
|
119
|
+
"This project looks fully set up — [list what's installed]. Want to add more capabilities, revisit any decisions, or start building?"
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Stages
|
|
65
124
|
|
|
66
|
-
|
|
125
|
+
Each stage is self-contained. The skill runs them in order for the full lifecycle, but any stage can be entered independently based on the pathway chosen.
|
|
67
126
|
|
|
68
|
-
|
|
127
|
+
### Stage 1: Product Discovery
|
|
128
|
+
|
|
129
|
+
> "Before we write any code, let's get clear on what we're building and why it matters."
|
|
130
|
+
|
|
131
|
+
Follow the full discovery process from the product-discovery blueprint. This is a rigorous product conversation — challenge assumptions, research the market, push until the product thesis is sharp.
|
|
69
132
|
|
|
70
133
|
1. **Initial Framing** — What are you building? Who is it for? Why does it need to exist?
|
|
71
134
|
2. **Problem Deep Dive** — 5 Whys to get past symptoms to root cause
|
|
@@ -73,163 +136,156 @@ Follow the full discovery process from the product-discovery blueprint. This is
|
|
|
73
136
|
4. **Solution Positioning** — Competitive landscape, differentiation, "why now?"
|
|
74
137
|
5. **Synthesis** — Distill everything into a defensible product thesis
|
|
75
138
|
|
|
76
|
-
|
|
77
|
-
|
|
139
|
+
Output:
|
|
78
140
|
```
|
|
79
141
|
docs/product/
|
|
80
|
-
├── product-thesis.md
|
|
81
|
-
├── product-brief.md
|
|
142
|
+
├── product-thesis.md
|
|
143
|
+
├── product-brief.md
|
|
82
144
|
└── users/
|
|
83
|
-
├── archetype-[name].md
|
|
84
|
-
└── research-summary.md
|
|
145
|
+
├── archetype-[name].md
|
|
146
|
+
└── research-summary.md
|
|
85
147
|
```
|
|
86
148
|
|
|
87
149
|
Create or update `.project-context.md` with the `## Product Discovery` section.
|
|
88
150
|
|
|
89
|
-
|
|
151
|
+
**Pause:** "We've defined [product name] around [N] core pillars: [list them]. The primary user is [archetype]. Ready for the next stage, or want to stop here?"
|
|
90
152
|
|
|
91
|
-
|
|
153
|
+
### Stage 2: Marketing Copy (Optional)
|
|
92
154
|
|
|
93
|
-
"
|
|
155
|
+
> "Now that we know what we're building, let's write the words that sell it."
|
|
94
156
|
|
|
95
|
-
|
|
157
|
+
Read the marketing-copywriting BLUEPRINT.md at `~/.withmata/blueprints/blueprints/discovery/marketing-copywriting/BLUEPRINT.md`.
|
|
96
158
|
|
|
97
|
-
|
|
159
|
+
The `/copywrite-landing` skill is best for the first page (usually a homepage or main landing page). After that, offer additional pages via `/copywrite` (pricing, about, features, etc.).
|
|
98
160
|
|
|
99
|
-
|
|
161
|
+
Output: `docs/pages/` with structured copy files.
|
|
100
162
|
|
|
101
|
-
|
|
163
|
+
**Pause:** "We've got copy for [list pages]. Ready to define the visual identity, or move to code?"
|
|
102
164
|
|
|
103
|
-
|
|
104
|
-
1. **Monorepo** — multiple packages, shared config, Turborepo (recommended for larger products with separate frontend/backend/packages)
|
|
105
|
-
2. **Single-repo** — one application, everything in one package.json (simpler for smaller products or standalone apps)"
|
|
165
|
+
### Stage 3: Design System (Optional)
|
|
106
166
|
|
|
107
|
-
|
|
108
|
-
```yaml
|
|
109
|
-
project_type: monorepo # or single-repo
|
|
110
|
-
```
|
|
167
|
+
> "Let's make your product look like YOUR product, not a template."
|
|
111
168
|
|
|
112
|
-
|
|
113
|
-
- If **single-repo**: skip Stage 2 entirely, proceed to Stage 3 (Features). Note in context: "Foundation skipped — single-repo project."
|
|
169
|
+
Read the design-system BLUEPRINT.md at `~/.withmata/blueprints/blueprints/discovery/design-system/BLUEPRINT.md`.
|
|
114
170
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
## Stage 2: Foundation
|
|
171
|
+
Walk through: creative direction → colors → typography → spacing → layout → components → shadows → animation → generate outputs.
|
|
118
172
|
|
|
119
|
-
|
|
173
|
+
Output: `docs/design/design-system.md` + `docs/design/shared-styles.css`
|
|
120
174
|
|
|
121
|
-
|
|
175
|
+
**Pause:** "Your visual identity is defined — [creative north star]. Custom tokens are ready. When we scaffold Tailwind, these will be used automatically."
|
|
122
176
|
|
|
123
|
-
|
|
177
|
+
### Stage 4: Project Type
|
|
124
178
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
-
|
|
179
|
+
"Are you building a:
|
|
180
|
+
1. **Monorepo** — multiple packages, shared config, Turborepo (recommended for larger products)
|
|
181
|
+
2. **Single-repo** — one application, one package.json (simpler for standalone apps)"
|
|
128
182
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
3. **Node.js version** — defaults to `>=22`
|
|
183
|
+
Record in `.project-context.md` under `## Foundation`:
|
|
184
|
+
```yaml
|
|
185
|
+
project_type: monorepo # or single-repo
|
|
186
|
+
```
|
|
134
187
|
|
|
135
|
-
|
|
188
|
+
- **Monorepo** → proceed to Stage 5
|
|
189
|
+
- **Single-repo** → skip Stage 5, proceed to Stage 6. Note: "Foundation skipped — single-repo project."
|
|
136
190
|
|
|
137
|
-
|
|
191
|
+
### Stage 5: Foundation (Monorepo Only)
|
|
138
192
|
|
|
139
|
-
|
|
140
|
-
2. Briefly verify the dev server boots: `pnpm dev`
|
|
141
|
-
3. Append the `## Foundation` section to `.project-context.md`
|
|
193
|
+
> "Let's build the structure to support the product."
|
|
142
194
|
|
|
143
|
-
|
|
195
|
+
Skip for single-repo projects.
|
|
144
196
|
|
|
145
|
-
|
|
197
|
+
Read discovery context to inform technical decisions:
|
|
198
|
+
- Derive npm scope from product name
|
|
199
|
+
- Apply technical constraints from discovery
|
|
146
200
|
|
|
147
|
-
|
|
201
|
+
Three questions (skip any already answered):
|
|
202
|
+
1. **npm scope** — defaults from product name
|
|
203
|
+
2. **Project name** — human-readable
|
|
204
|
+
3. **Node.js version** — defaults to `>=22`
|
|
148
205
|
|
|
149
|
-
|
|
206
|
+
Scaffold the monorepo skeleton. After scaffolding:
|
|
207
|
+
1. Run `bun install`
|
|
208
|
+
2. Verify `bun dev` boots
|
|
209
|
+
3. Append `## Foundation` to `.project-context.md`
|
|
150
210
|
|
|
151
|
-
|
|
211
|
+
**Pause:** "The codebase is ready. Want to add features now?"
|
|
152
212
|
|
|
153
|
-
|
|
213
|
+
### Stage 6: Features
|
|
154
214
|
|
|
155
|
-
> "Let's wire in what
|
|
215
|
+
> "Let's wire in what the product needs."
|
|
156
216
|
|
|
157
|
-
If discovery was completed, reference
|
|
217
|
+
If discovery was completed, reference product pillars when presenting features. If not, present a straightforward capability list.
|
|
158
218
|
|
|
159
|
-
|
|
219
|
+
Read each `BLUEPRINT.md` under `blueprints/features/*/` and show only those with `Status: Complete`.
|
|
160
220
|
|
|
161
|
-
**Present
|
|
221
|
+
**Present in dependency order** (db before auth, tailwind before UI):
|
|
162
222
|
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
- **What it enables for the product** — tie it to a pillar or user need when possible
|
|
166
|
-
- **Dependencies** — note if it requires another blueprint (e.g., "requires Database")
|
|
167
|
-
- **Command** — the slash command to run it individually
|
|
223
|
+
```
|
|
224
|
+
Available features:
|
|
168
225
|
|
|
169
|
-
|
|
226
|
+
1. Environment Variables — /scaffold-env
|
|
227
|
+
Type-safe validated env vars. Standalone.
|
|
170
228
|
|
|
171
|
-
|
|
172
|
-
|
|
229
|
+
2. Tailwind Design System — /scaffold-tailwind
|
|
230
|
+
Full token system. Auto-detects custom design if /design-system was run.
|
|
173
231
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
If org plugin: team/workspace management for [archetype need].
|
|
177
|
-
```
|
|
232
|
+
3. UI Component Library — /scaffold-ui
|
|
233
|
+
31 base components. Auto-installs Tailwind first.
|
|
178
234
|
|
|
179
|
-
|
|
235
|
+
4. Database — /scaffold-db
|
|
236
|
+
Drizzle ORM + PostgreSQL with schema groups.
|
|
180
237
|
|
|
181
|
-
|
|
238
|
+
5. Authentication — /scaffold-auth
|
|
239
|
+
Better Auth + organizations. Requires Database.
|
|
182
240
|
|
|
183
|
-
|
|
241
|
+
Which of these does the project need?
|
|
242
|
+
```
|
|
184
243
|
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
244
|
+
For each selected feature:
|
|
245
|
+
1. Read the BLUEPRINT.md and all template files
|
|
246
|
+
2. Read `.project-context.md` for current state
|
|
247
|
+
3. Follow the scaffold process
|
|
248
|
+
4. Append to `## Installed Blueprints`
|
|
189
249
|
|
|
190
|
-
After each
|
|
250
|
+
After each: "[Feature] is wired in. Want to add another?"
|
|
191
251
|
|
|
192
252
|
---
|
|
193
253
|
|
|
194
|
-
##
|
|
254
|
+
## Final Summary
|
|
195
255
|
|
|
196
|
-
Once the user is done (whether after one stage or all
|
|
256
|
+
Once the user is done (whether after one stage or all six):
|
|
197
257
|
|
|
198
258
|
### What We Built
|
|
199
|
-
|
|
200
|
-
- **The
|
|
201
|
-
- **The
|
|
202
|
-
- **The
|
|
259
|
+
- **The product** (if discovery ran) — what it is, who it's for, the core pillars
|
|
260
|
+
- **The marketing** (if copy ran) — what pages were created
|
|
261
|
+
- **The visual identity** (if design ran) — the creative north star, key design decisions
|
|
262
|
+
- **The codebase** (if foundation ran) — how the structure supports the product
|
|
263
|
+
- **The capabilities** (if features ran) — what's wired in
|
|
203
264
|
|
|
204
265
|
### Getting Started
|
|
205
|
-
|
|
206
266
|
```
|
|
207
|
-
|
|
267
|
+
bun dev # Start the development server
|
|
208
268
|
```
|
|
209
269
|
|
|
210
270
|
### Environment Variables to Set
|
|
211
|
-
|
|
212
271
|
List any env vars that need values (aggregated from all stages).
|
|
213
272
|
|
|
214
273
|
### Manual Steps Remaining
|
|
215
|
-
|
|
216
|
-
List anything that can't be automated (aggregated from all stages).
|
|
274
|
+
List anything that can't be automated.
|
|
217
275
|
|
|
218
276
|
### What's Next
|
|
219
|
-
|
|
220
|
-
Suggest next steps in terms of product progress, not just technical tasks. Reference specific commands:
|
|
221
|
-
|
|
222
|
-
- "The product thesis identified [pillar] as a core pillar — `/scaffold-auth` wires in the user accounts and access control to support that."
|
|
277
|
+
Suggest next steps in terms of product progress:
|
|
223
278
|
- "Run `/audit` to see all available blueprints and what would benefit your project."
|
|
224
279
|
- "Start building the core product experience — the [archetype]'s primary workflow."
|
|
280
|
+
- Reference specific commands for capabilities not yet installed.
|
|
225
281
|
|
|
226
282
|
---
|
|
227
283
|
|
|
228
284
|
## Important Notes
|
|
229
285
|
|
|
230
|
-
- **Resumable** — this command always checks `.project-context.md` before starting. Run it again anytime to pick up where you left off, or use
|
|
286
|
+
- **Resumable** — this command always checks `.project-context.md` before starting. Run it again anytime to pick up where you left off, or use individual commands (`/discover`, `/copywrite`, `/design-system`, `/scaffold-foundation`, `/scaffold-auth`).
|
|
231
287
|
- **Non-destructive** — never overwrite existing files without asking. If a stage was already completed, confirm before redoing it.
|
|
232
288
|
- **Product-first** — every technical decision should trace back to the product definition. When in doubt, reference the pillars, the archetype, and the problem statement.
|
|
233
|
-
- **Conversational** — this is a guided conversation, not a script. Adapt to the user's pace. If they want to skip ahead, let them. If they want to dig deeper
|
|
234
|
-
- **Project context is the source of truth** — every stage reads it, every stage appends to it. This is how stages communicate
|
|
235
|
-
- **
|
|
289
|
+
- **Conversational** — this is a guided conversation, not a script. Adapt to the user's pace. If they want to skip ahead, let them. If they want to dig deeper, follow their lead.
|
|
290
|
+
- **Project context is the source of truth** — every stage reads it, every stage appends to it. This is how stages communicate across sessions.
|
|
291
|
+
- **Any stage can be run independently** — the individual skills (`/discover`, `/copywrite`, `/design-system`, `/scaffold-tailwind`, etc.) work standalone. `/new-project` orchestrates them, but they don't depend on it.
|
|
@@ -104,7 +104,7 @@ Before making any changes, explore the target project to understand:
|
|
|
104
104
|
|
|
105
105
|
Check `.project-context.md` for `project_type`. If not present, detect:
|
|
106
106
|
|
|
107
|
-
- **Monorepo indicators**: `
|
|
107
|
+
- **Monorepo indicators**: `turbo.json`, `"workspaces"` in root `package.json`, `pnpm-workspace.yaml`, `nx.json`, or `lerna.json`
|
|
108
108
|
- **Single-repo indicators**: Single `package.json` at root, `src/` directory, no workspace config
|
|
109
109
|
|
|
110
110
|
Confirm with user: "This looks like a [monorepo|single-repo] project. Is that right?"
|
|
@@ -235,7 +235,7 @@ Based on the project structure, project context, and user answers, adapt the blu
|
|
|
235
235
|
- Add scripts directly to root `package.json`:
|
|
236
236
|
- `auth:generate` -> `npx @better-auth/cli@latest generate --config ./src/lib/auth/index.ts --output ./src/db/auth/schema.ts --yes`
|
|
237
237
|
- `auth:migrate` -> `drizzle-kit generate --config ./drizzle/auth/drizzle.config.ts && drizzle-kit migrate --config ./drizzle/auth/drizzle.config.ts`
|
|
238
|
-
- `auth:setup` -> `
|
|
238
|
+
- `auth:setup` -> `bun auth:generate && bun auth:migrate`
|
|
239
239
|
- No Turbo tasks needed
|
|
240
240
|
|
|
241
241
|
## Step 5: Update Project Context
|
|
@@ -286,9 +286,9 @@ Then append:
|
|
|
286
286
|
|
|
287
287
|
```markdown
|
|
288
288
|
### auth-better-auth maintenance
|
|
289
|
-
- After modifying Better Auth server config, plugins, or providers: run `
|
|
290
|
-
- After updating `better-auth` package: run `
|
|
291
|
-
- After adding/changing env vars: update all `.env` files and verify `
|
|
289
|
+
- After modifying Better Auth server config, plugins, or providers: run `bun auth:generate && bun auth:migrate`
|
|
290
|
+
- After updating `better-auth` package: run `bun auth:generate`, check for schema changes, migrate if needed
|
|
291
|
+
- After adding/changing env vars: update all `.env` files and verify `bun dev` starts clean
|
|
292
292
|
- After changing `BETTER_AUTH_URL` or `FRONTEND_DOMAIN`: verify CORS config and OAuth callback URLs
|
|
293
293
|
- After any auth changes: verify `{BETTER_AUTH_URL}/api/auth/ok` responds
|
|
294
294
|
- Never edit the auto-generated auth schema directly — modify the Better Auth config and regenerate
|
|
@@ -306,13 +306,13 @@ List every package that needs to be installed, grouped by workspace:
|
|
|
306
306
|
|
|
307
307
|
```
|
|
308
308
|
# Server (apis/server or wherever auth lives)
|
|
309
|
-
|
|
309
|
+
bun add better-auth drizzle-orm pg resend @t3-oss/env-core zod dotenv
|
|
310
310
|
|
|
311
311
|
# Client (apps/web)
|
|
312
|
-
|
|
312
|
+
bun add better-auth swr react-hook-form @hookform/resolvers zod @t3-oss/env-nextjs
|
|
313
313
|
|
|
314
314
|
# DB package (packages/db) — dev deps
|
|
315
|
-
|
|
315
|
+
bun add -d drizzle-kit pg
|
|
316
316
|
```
|
|
317
317
|
|
|
318
318
|
Adjust based on what's already installed in the project.
|
|
@@ -343,7 +343,7 @@ List anything that can't be automated:
|
|
|
343
343
|
1. **Create a PostgreSQL database** for auth (if using separate auth DB)
|
|
344
344
|
2. **Set up Google OAuth** — create OAuth 2.0 credentials in Google Cloud Console, add redirect URI
|
|
345
345
|
3. **Set up Resend** — create an account, verify your domain, get API key
|
|
346
|
-
4. **Run auth setup** — `
|
|
346
|
+
4. **Run auth setup** — `bun auth:setup` (generates schema + runs migrations)
|
|
347
347
|
5. **Build auth UI pages** — follow the Auth Flows section in BLUEPRINT.md to create the pages matching your design system
|
|
348
348
|
6. **Test the auth flow** — sign up, verify email, sign in, create org (if applicable)
|
|
349
349
|
|
|
@@ -78,7 +78,7 @@ Before making any changes, explore the target project to understand:
|
|
|
78
78
|
|
|
79
79
|
Check `.project-context.md` for `project_type`. If not present, detect:
|
|
80
80
|
|
|
81
|
-
- **Monorepo indicators**: `
|
|
81
|
+
- **Monorepo indicators**: `turbo.json`, `"workspaces"` in root `package.json`, `pnpm-workspace.yaml`, `nx.json`, or `lerna.json`
|
|
82
82
|
- **Single-repo indicators**: Single `package.json` at root, `src/` directory, no workspace config
|
|
83
83
|
|
|
84
84
|
Confirm with user: "This looks like a [monorepo|single-repo] project. Is that right?"
|
|
@@ -93,7 +93,7 @@ Record the project type in `.project-context.md` if not already there (add `proj
|
|
|
93
93
|
3. What npm scope is used? Check root or any workspace `package.json`.
|
|
94
94
|
4. What is the shared TypeScript config package name? Check `config/typescript-config/` or similar.
|
|
95
95
|
5. Does `turbo.json` exist? Are there any existing db-related tasks?
|
|
96
|
-
6. Does `pnpm-workspace.yaml`
|
|
96
|
+
6. Does the root `package.json` `workspaces` field include `packages/*`? (Or does `pnpm-workspace.yaml` if using pnpm?)
|
|
97
97
|
|
|
98
98
|
**If single-repo:**
|
|
99
99
|
1. Does `src/db/` already exist? If so, what's in it?
|
|
@@ -102,7 +102,7 @@ Record the project type in `.project-context.md` if not already there (add `proj
|
|
|
102
102
|
4. Is there an existing `.env` or `.env.local`?
|
|
103
103
|
|
|
104
104
|
**Both:**
|
|
105
|
-
- Package manager — pnpm, npm,
|
|
105
|
+
- Package manager — bun (default), pnpm, npm, or yarn?
|
|
106
106
|
|
|
107
107
|
Skip exploration for anything already documented in `.project-context.md`.
|
|
108
108
|
|
|
@@ -183,7 +183,7 @@ If `packages/db/` already exists:
|
|
|
183
183
|
- `db:migrate` -> `turbo run {{GROUP}}:migrate --filter={{SCOPE}}/db --no-cache`
|
|
184
184
|
- `db:studio` -> `turbo run drizzle:studio:{{GROUP}} --filter={{SCOPE}}/db --no-cache`
|
|
185
185
|
- `db:seed` -> `turbo run seed --filter={{SCOPE}}/db --no-cache`
|
|
186
|
-
- Verify `pnpm-workspace.yaml`
|
|
186
|
+
- Verify root `package.json` `workspaces` field includes `packages/*` (or `pnpm-workspace.yaml` if using pnpm)
|
|
187
187
|
|
|
188
188
|
**If single-repo:**
|
|
189
189
|
- Add scripts directly to root `package.json` (direct drizzle-kit calls, no Turbo):
|
|
@@ -248,7 +248,7 @@ Then append:
|
|
|
248
248
|
```markdown
|
|
249
249
|
### db-drizzle-postgres maintenance
|
|
250
250
|
- After creating a new schema file: add it to `drizzle/<group>/drizzle.config.ts` schema array AND the group's `index.ts` barrel export
|
|
251
|
-
- After any schema change: run `
|
|
251
|
+
- After any schema change: run `bun <group>:generate && bun <group>:migrate`
|
|
252
252
|
- After adding a new schema group: create drizzle config, add package.json export, add scripts (see BLUEPRINT.md "Adding a New Schema Group")
|
|
253
253
|
- After updating drizzle-orm/drizzle-kit: run generate and check migration diff for unexpected changes
|
|
254
254
|
- Never use glob patterns in drizzle.config.ts schema — always list files explicitly, excluding index.ts
|
|
@@ -267,15 +267,15 @@ List every package that needs to be installed. Adjust based on project type and
|
|
|
267
267
|
**If monorepo:**
|
|
268
268
|
```bash
|
|
269
269
|
# In packages/db/
|
|
270
|
-
|
|
271
|
-
|
|
270
|
+
bun add drizzle-orm dotenv
|
|
271
|
+
bun add -d drizzle-kit pg @types/pg tsx typescript
|
|
272
272
|
```
|
|
273
273
|
|
|
274
274
|
**If single-repo:**
|
|
275
275
|
```bash
|
|
276
276
|
# At project root
|
|
277
|
-
|
|
278
|
-
|
|
277
|
+
bun add drizzle-orm dotenv
|
|
278
|
+
bun add -d drizzle-kit pg @types/pg tsx
|
|
279
279
|
```
|
|
280
280
|
|
|
281
281
|
### Environment Variables
|
|
@@ -289,11 +289,11 @@ pnpm add -D drizzle-kit pg @types/pg tsx
|
|
|
289
289
|
|
|
290
290
|
1. **Create a PostgreSQL database** — `createdb {{GROUP}}_db` (or use your database hosting provider)
|
|
291
291
|
2. **Set DATABASE_URL** — update the `.env` file with your actual connection string
|
|
292
|
-
3. **Install dependencies** — `
|
|
293
|
-
4. **Generate initial migration** — `
|
|
294
|
-
5. **Apply migration** — `
|
|
295
|
-
6. **Verify** — `
|
|
296
|
-
7. **(Optional) Run seed** — `
|
|
292
|
+
3. **Install dependencies** — `bun install` from the project root
|
|
293
|
+
4. **Generate initial migration** — `bun db:generate`
|
|
294
|
+
5. **Apply migration** — `bun db:migrate`
|
|
295
|
+
6. **Verify** — `bun db:studio` (should open Drizzle Studio showing your tables)
|
|
296
|
+
7. **(Optional) Run seed** — `bun db:seed` (inserts sample data)
|
|
297
297
|
|
|
298
298
|
### Files Created
|
|
299
299
|
|
|
@@ -78,7 +78,7 @@ Before making any changes, explore the target project to understand:
|
|
|
78
78
|
|
|
79
79
|
Check `.project-context.md` for `project_type`. If not present, detect:
|
|
80
80
|
|
|
81
|
-
- **Monorepo indicators**: `
|
|
81
|
+
- **Monorepo indicators**: `turbo.json`, `"workspaces"` in root `package.json`, `pnpm-workspace.yaml`, `nx.json`, or `lerna.json`
|
|
82
82
|
- **Single-repo indicators**: Single `package.json` at root, `src/` directory, no workspace config
|
|
83
83
|
|
|
84
84
|
Confirm with user: "This looks like a [monorepo|single-repo] project. Is that right?"
|
|
@@ -226,12 +226,12 @@ After scaffolding, provide the user with a clear summary:
|
|
|
226
226
|
|
|
227
227
|
**Next.js apps:**
|
|
228
228
|
```bash
|
|
229
|
-
|
|
229
|
+
bun add @t3-oss/env-nextjs zod
|
|
230
230
|
```
|
|
231
231
|
|
|
232
232
|
**Backend apps:**
|
|
233
233
|
```bash
|
|
234
|
-
|
|
234
|
+
bun add @t3-oss/env-core zod dotenv
|
|
235
235
|
```
|
|
236
236
|
|
|
237
237
|
### Files Created
|
|
@@ -255,7 +255,7 @@ import { env } from "./env.js";
|
|
|
255
255
|
|
|
256
256
|
- Fill in `.env.local` with your actual values (use `.env.example` as reference)
|
|
257
257
|
- As you add features, add their env vars to the schema files and `.env.example`
|
|
258
|
-
- Run `
|
|
258
|
+
- Run `bun dev` to verify env validation passes
|
|
259
259
|
|
|
260
260
|
## Important Notes
|
|
261
261
|
|