@c0x12c/ai-toolkit 1.15.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-plugin/marketplace.json +16 -0
- package/.claude-plugin/plugin.json +12 -0
- package/README.md +439 -0
- package/VERSION +1 -0
- package/agents/design-critic.md +127 -0
- package/agents/idea-killer.md +72 -0
- package/agents/infrastructure-expert.md +49 -0
- package/agents/micronaut-backend-expert.md +45 -0
- package/agents/phase-reviewer.md +150 -0
- package/agents/research-planner.md +70 -0
- package/agents/solution-architect-cto.md +49 -0
- package/agents/sre-architect.md +49 -0
- package/agents/team-coordinator.md +111 -0
- package/bin/cli.js +780 -0
- package/claude-md/00-header.md +39 -0
- package/claude-md/01-core.md +105 -0
- package/claude-md/05-database.md +20 -0
- package/claude-md/11-backend-micronaut.md +19 -0
- package/claude-md/20-frontend-react.md +44 -0
- package/claude-md/25-ux-design.md +56 -0
- package/claude-md/30-infrastructure.md +24 -0
- package/claude-md/30-project-mgmt.md +119 -0
- package/claude-md/40-product.md +39 -0
- package/claude-md/50-ops.md +34 -0
- package/claude-md/60-research.md +27 -0
- package/claude-md/90-footer.md +21 -0
- package/commands/spartan/brainstorm.md +134 -0
- package/commands/spartan/brownfield.md +157 -0
- package/commands/spartan/build.md +435 -0
- package/commands/spartan/careful.md +94 -0
- package/commands/spartan/commit-message.md +112 -0
- package/commands/spartan/content.md +17 -0
- package/commands/spartan/context-save.md +161 -0
- package/commands/spartan/contribute.md +140 -0
- package/commands/spartan/daily.md +42 -0
- package/commands/spartan/debug.md +308 -0
- package/commands/spartan/deep-dive.md +55 -0
- package/commands/spartan/deploy.md +207 -0
- package/commands/spartan/e2e.md +264 -0
- package/commands/spartan/env-setup.md +166 -0
- package/commands/spartan/epic.md +199 -0
- package/commands/spartan/fe-review.md +181 -0
- package/commands/spartan/figma-to-code.md +260 -0
- package/commands/spartan/forensics.md +46 -0
- package/commands/spartan/freeze.md +84 -0
- package/commands/spartan/fundraise.md +53 -0
- package/commands/spartan/gate-review.md +229 -0
- package/commands/spartan/gsd-upgrade.md +376 -0
- package/commands/spartan/guard.md +42 -0
- package/commands/spartan/init-project.md +178 -0
- package/commands/spartan/init-rules.md +298 -0
- package/commands/spartan/interview.md +154 -0
- package/commands/spartan/kickoff.md +73 -0
- package/commands/spartan/kotlin-service.md +109 -0
- package/commands/spartan/lean-canvas.md +222 -0
- package/commands/spartan/lint-rules.md +122 -0
- package/commands/spartan/map-codebase.md +124 -0
- package/commands/spartan/migration.md +82 -0
- package/commands/spartan/next-app.md +317 -0
- package/commands/spartan/next-feature.md +212 -0
- package/commands/spartan/onboard.md +326 -0
- package/commands/spartan/outreach.md +16 -0
- package/commands/spartan/phase.md +142 -0
- package/commands/spartan/pitch.md +18 -0
- package/commands/spartan/plan.md +210 -0
- package/commands/spartan/pr-ready.md +202 -0
- package/commands/spartan/project.md +106 -0
- package/commands/spartan/qa.md +222 -0
- package/commands/spartan/research.md +254 -0
- package/commands/spartan/review.md +132 -0
- package/commands/spartan/scan-rules.md +173 -0
- package/commands/spartan/sessions.md +143 -0
- package/commands/spartan/spec.md +131 -0
- package/commands/spartan/startup.md +257 -0
- package/commands/spartan/team.md +570 -0
- package/commands/spartan/teardown.md +161 -0
- package/commands/spartan/testcontainer.md +97 -0
- package/commands/spartan/tf-cost.md +123 -0
- package/commands/spartan/tf-deploy.md +116 -0
- package/commands/spartan/tf-drift.md +100 -0
- package/commands/spartan/tf-import.md +107 -0
- package/commands/spartan/tf-module.md +121 -0
- package/commands/spartan/tf-plan.md +100 -0
- package/commands/spartan/tf-review.md +106 -0
- package/commands/spartan/tf-scaffold.md +109 -0
- package/commands/spartan/tf-security.md +147 -0
- package/commands/spartan/think.md +221 -0
- package/commands/spartan/unfreeze.md +13 -0
- package/commands/spartan/update.md +134 -0
- package/commands/spartan/ux.md +1233 -0
- package/commands/spartan/validate.md +193 -0
- package/commands/spartan/web-to-prd.md +706 -0
- package/commands/spartan/workstreams.md +109 -0
- package/commands/spartan/write.md +16 -0
- package/commands/spartan.md +386 -0
- package/frameworks/00-framework-comparison-guide.md +317 -0
- package/frameworks/01-lean-canvas.md +196 -0
- package/frameworks/02-design-sprint.md +304 -0
- package/frameworks/03-foundation-sprint.md +337 -0
- package/frameworks/04-business-model-canvas.md +391 -0
- package/frameworks/05-customer-development.md +426 -0
- package/frameworks/06-jobs-to-be-done.md +358 -0
- package/frameworks/07-mom-test.md +392 -0
- package/frameworks/08-value-proposition-canvas.md +488 -0
- package/frameworks/09-javelin-board.md +428 -0
- package/frameworks/10-build-measure-learn.md +467 -0
- package/frameworks/11-mvp-approaches.md +533 -0
- package/frameworks/think-before-build.md +593 -0
- package/lib/assembler.js +197 -0
- package/lib/assembler.test.js +159 -0
- package/lib/detector.js +166 -0
- package/lib/detector.test.js +221 -0
- package/lib/packs.js +16 -0
- package/lib/resolver.js +272 -0
- package/lib/resolver.test.js +298 -0
- package/lib/worktree.sh +104 -0
- package/package.json +50 -0
- package/packs/backend-micronaut.yaml +35 -0
- package/packs/backend-nodejs.yaml +15 -0
- package/packs/backend-python.yaml +15 -0
- package/packs/core.yaml +37 -0
- package/packs/database.yaml +21 -0
- package/packs/frontend-react.yaml +24 -0
- package/packs/infrastructure.yaml +40 -0
- package/packs/ops.yaml +16 -0
- package/packs/packs.compiled.json +371 -0
- package/packs/product.yaml +22 -0
- package/packs/project-mgmt.yaml +24 -0
- package/packs/research.yaml +39 -0
- package/packs/shared-backend.yaml +14 -0
- package/packs/ux-design.yaml +21 -0
- package/rules/backend-micronaut/API_DESIGN.md +313 -0
- package/rules/backend-micronaut/BATCH_PROCESSING.md +92 -0
- package/rules/backend-micronaut/CONTROLLERS.md +388 -0
- package/rules/backend-micronaut/KOTLIN.md +414 -0
- package/rules/backend-micronaut/RETROFIT_PLACEMENT.md +290 -0
- package/rules/backend-micronaut/SERVICES_AND_BEANS.md +325 -0
- package/rules/core/NAMING_CONVENTIONS.md +208 -0
- package/rules/core/SKILL_AUTHORING.md +174 -0
- package/rules/core/TIMEZONE.md +316 -0
- package/rules/database/ORM_AND_REPO.md +289 -0
- package/rules/database/SCHEMA.md +146 -0
- package/rules/database/TRANSACTIONS.md +311 -0
- package/rules/frontend-react/FRONTEND.md +344 -0
- package/rules/infrastructure/MODULES.md +260 -0
- package/rules/infrastructure/NAMING.md +196 -0
- package/rules/infrastructure/PROVIDERS.md +309 -0
- package/rules/infrastructure/SECURITY.md +310 -0
- package/rules/infrastructure/STATE_AND_BACKEND.md +237 -0
- package/rules/infrastructure/STRUCTURE.md +234 -0
- package/rules/infrastructure/VARIABLES.md +285 -0
- package/rules/shared-backend/ARCHITECTURE.md +46 -0
- package/rules/ux-design/DESIGN_PROCESS.md +176 -0
- package/skills/api-endpoint-creator/SKILL.md +455 -0
- package/skills/api-endpoint-creator/error-handling-guide.md +244 -0
- package/skills/api-endpoint-creator/examples.md +522 -0
- package/skills/api-endpoint-creator/testing-patterns.md +302 -0
- package/skills/article-writing/SKILL.md +109 -0
- package/skills/article-writing/examples.md +59 -0
- package/skills/backend-api-design/SKILL.md +84 -0
- package/skills/backend-api-design/code-patterns.md +138 -0
- package/skills/brainstorm/SKILL.md +95 -0
- package/skills/browser-qa/SKILL.md +87 -0
- package/skills/browser-qa/playwright-snippets.md +110 -0
- package/skills/ci-cd-patterns/SKILL.md +108 -0
- package/skills/ci-cd-patterns/workflows.md +149 -0
- package/skills/competitive-teardown/SKILL.md +93 -0
- package/skills/competitive-teardown/example-analysis.md +50 -0
- package/skills/content-engine/SKILL.md +131 -0
- package/skills/content-engine/examples.md +72 -0
- package/skills/database-patterns/SKILL.md +72 -0
- package/skills/database-patterns/code-templates.md +114 -0
- package/skills/database-table-creator/SKILL.md +141 -0
- package/skills/database-table-creator/examples.md +552 -0
- package/skills/database-table-creator/kotlin-templates.md +400 -0
- package/skills/database-table-creator/migration-template.sql +68 -0
- package/skills/database-table-creator/validation-checklist.md +337 -0
- package/skills/deep-research/SKILL.md +80 -0
- package/skills/design-intelligence/SKILL.md +268 -0
- package/skills/design-workflow/SKILL.md +127 -0
- package/skills/design-workflow/checklists.md +45 -0
- package/skills/idea-validation/SKILL.md +129 -0
- package/skills/idea-validation/example-report.md +50 -0
- package/skills/investor-materials/SKILL.md +122 -0
- package/skills/investor-materials/example-outline.md +70 -0
- package/skills/investor-outreach/SKILL.md +112 -0
- package/skills/investor-outreach/examples.md +76 -0
- package/skills/kotlin-best-practices/SKILL.md +58 -0
- package/skills/kotlin-best-practices/code-patterns.md +132 -0
- package/skills/market-research/SKILL.md +99 -0
- package/skills/security-checklist/SKILL.md +65 -0
- package/skills/security-checklist/audit-reference.md +95 -0
- package/skills/service-debugging/SKILL.md +116 -0
- package/skills/service-debugging/common-issues.md +65 -0
- package/skills/startup-pipeline/SKILL.md +152 -0
- package/skills/terraform-best-practices/SKILL.md +244 -0
- package/skills/terraform-module-creator/SKILL.md +284 -0
- package/skills/terraform-review/SKILL.md +222 -0
- package/skills/terraform-security-audit/SKILL.md +280 -0
- package/skills/terraform-service-scaffold/SKILL.md +574 -0
- package/skills/testing-strategies/SKILL.md +116 -0
- package/skills/testing-strategies/examples.md +103 -0
- package/skills/testing-strategies/integration-test-setup.md +71 -0
- package/skills/ui-ux-pro-max/SKILL.md +238 -0
- package/skills/ui-ux-pro-max/data/charts.csv +26 -0
- package/skills/ui-ux-pro-max/data/colors.csv +97 -0
- package/skills/ui-ux-pro-max/data/icons.csv +101 -0
- package/skills/ui-ux-pro-max/data/landing.csv +31 -0
- package/skills/ui-ux-pro-max/data/products.csv +97 -0
- package/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
- package/skills/ui-ux-pro-max/data/stacks/astro.csv +54 -0
- package/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
- package/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
- package/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
- package/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
- package/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
- package/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
- package/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/skills/ui-ux-pro-max/data/stacks/react.csv +54 -0
- package/skills/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
- package/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
- package/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
- package/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
- package/skills/ui-ux-pro-max/data/styles.csv +68 -0
- package/skills/ui-ux-pro-max/data/typography.csv +58 -0
- package/skills/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
- package/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/skills/ui-ux-pro-max/data/web-interface.csv +31 -0
- package/skills/ui-ux-pro-max/python-setup.md +146 -0
- package/skills/ui-ux-pro-max/scripts/core.py +253 -0
- package/skills/ui-ux-pro-max/scripts/design_system.py +1067 -0
- package/skills/ui-ux-pro-max/scripts/search.py +114 -0
- package/skills/web-to-prd/SKILL.md +478 -0
- package/templates/build-config.yaml +44 -0
- package/templates/commands-config.yaml +55 -0
- package/templates/competitor-analysis.md +60 -0
- package/templates/content/AGENT_TEMPLATE.md +47 -0
- package/templates/content/COMMAND_TEMPLATE.md +27 -0
- package/templates/content/RULE_TEMPLATE.md +40 -0
- package/templates/content/SKILL_TEMPLATE.md +41 -0
- package/templates/design-config.md +105 -0
- package/templates/design-doc.md +207 -0
- package/templates/epic.md +100 -0
- package/templates/feature-spec.md +181 -0
- package/templates/idea-canvas.md +47 -0
- package/templates/implementation-plan.md +159 -0
- package/templates/prd-template.md +86 -0
- package/templates/preamble.md +89 -0
- package/templates/project-readme.md +35 -0
- package/templates/quality-gates.md +230 -0
- package/templates/spartan-config.yaml +164 -0
- package/templates/user-interview.md +69 -0
- package/templates/validation-checklist.md +108 -0
- package/templates/workflow-backend-micronaut.md +409 -0
- package/templates/workflow-frontend-react.md +233 -0
|
@@ -0,0 +1,593 @@
|
|
|
1
|
+
# Think Before Build
|
|
2
|
+
|
|
3
|
+
A workflow for going from raw idea to confident build. Works for new projects and new features.
|
|
4
|
+
|
|
5
|
+
The goal: think deep before coding so you don't go back and forth.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Why This Exists
|
|
10
|
+
|
|
11
|
+
The old flow:
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
idea -> quick spec -> build -> "oh wait" -> change -> build -> "oh wait" -> change
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Back-and-forth happens because:
|
|
18
|
+
- You didn't think through the full picture before building
|
|
19
|
+
- UX surprises (build it, see it, hate it)
|
|
20
|
+
- Missing states (empty, loading, error)
|
|
21
|
+
- Feature connections you didn't think about
|
|
22
|
+
- Scope creep ("while I'm here...")
|
|
23
|
+
|
|
24
|
+
This workflow forces deep thinking before any code.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Two Entry Points
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
NEW PROJECT? NEW FEATURE?
|
|
32
|
+
| |
|
|
33
|
+
v v
|
|
34
|
+
Phase 0: PRODUCT + MVP MAP Skip to Phase 1
|
|
35
|
+
|
|
|
36
|
+
v
|
|
37
|
+
For each MVP feature:
|
|
38
|
+
Phase 1-6 (same as new feature)
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
- **New project**: Start at Phase 0. Define the product, pick MVP features, then build each one.
|
|
42
|
+
- **New feature** (existing project): Start at Phase 1. The product already exists.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Phase 0: PRODUCT + MVP MAP (new projects only, 20 min)
|
|
47
|
+
|
|
48
|
+
**Goal:** Pick the 3 features that make this a product. Not 10. Three.
|
|
49
|
+
|
|
50
|
+
### Framework: The Core Loop + Feature Kill List
|
|
51
|
+
|
|
52
|
+
#### Step 1: Find the Core Loop
|
|
53
|
+
|
|
54
|
+
Every product has one core loop - the thing the user does over and over:
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
CORE LOOP:
|
|
58
|
+
1. User [triggers something] ->
|
|
59
|
+
2. System [does something] ->
|
|
60
|
+
3. User [gets value] ->
|
|
61
|
+
4. (repeat)
|
|
62
|
+
|
|
63
|
+
Example (ShipNest):
|
|
64
|
+
1. User uploads app info ->
|
|
65
|
+
2. System publishes to app store ->
|
|
66
|
+
3. User's app is live ->
|
|
67
|
+
4. (repeat for next update)
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Your MVP must make this loop work. Everything else is extra.
|
|
71
|
+
|
|
72
|
+
#### Step 2: List All Features You Want
|
|
73
|
+
|
|
74
|
+
Brain dump every feature. Don't filter:
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
ALL FEATURES I WANT:
|
|
78
|
+
1. _________
|
|
79
|
+
2. _________
|
|
80
|
+
3. _________
|
|
81
|
+
4. _________
|
|
82
|
+
5. _________
|
|
83
|
+
6. _________
|
|
84
|
+
7. _________
|
|
85
|
+
...
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
#### Step 3: Kill Most of Them
|
|
89
|
+
|
|
90
|
+
For each feature, ask: "Can the core loop work without this?"
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
FEATURE CORE LOOP NEEDS IT? VERDICT
|
|
94
|
+
- [feature 1] YES MVP
|
|
95
|
+
- [feature 2] NO LATER
|
|
96
|
+
- [feature 3] YES MVP
|
|
97
|
+
- [feature 4] NO, but nice LATER
|
|
98
|
+
- [feature 5] NO LATER
|
|
99
|
+
- [feature 6] YES MVP
|
|
100
|
+
- [feature 7] NO NEVER (be honest)
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Rules:
|
|
104
|
+
- Max 3-5 features in MVP. If you have more, your core loop is too complex.
|
|
105
|
+
- Auth doesn't count as a feature (it's infrastructure).
|
|
106
|
+
- "Nice to have" means LATER, not MVP.
|
|
107
|
+
|
|
108
|
+
#### Step 4: Feature Tree + Dependency Map
|
|
109
|
+
|
|
110
|
+
Draw how features connect to each other. Which ones need other ones to work?
|
|
111
|
+
|
|
112
|
+
```
|
|
113
|
+
FEATURE TREE:
|
|
114
|
+
[infra feature] ──┬──> [feature A] ──> [feature C]
|
|
115
|
+
└──> [feature B]
|
|
116
|
+
|
|
117
|
+
Example (ShipNest):
|
|
118
|
+
Auth ──┬──> Project CRUD ──┬──> Screenshot Editor
|
|
119
|
+
│ └──> App Store Connect
|
|
120
|
+
└──> Dashboard (needs all above)
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Then write out the dependencies as rules:
|
|
124
|
+
|
|
125
|
+
```
|
|
126
|
+
DEPENDENCY MAP:
|
|
127
|
+
[feature A] needs [feature X] because: _________
|
|
128
|
+
[feature B] needs [feature X] because: _________
|
|
129
|
+
[feature C] needs [feature A] because: _________
|
|
130
|
+
[feature D] needs nothing (can build anytime)
|
|
131
|
+
|
|
132
|
+
Example:
|
|
133
|
+
Screenshot Editor needs Project CRUD because: screenshots belong to a project
|
|
134
|
+
App Store Connect needs Project CRUD because: you publish a project's app
|
|
135
|
+
Dashboard needs all because: it shows overview of everything
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
Rules:
|
|
139
|
+
- If A needs B, build B first. No exceptions.
|
|
140
|
+
- Features with no dependencies can be built in any order.
|
|
141
|
+
- If two features depend on each other, they're actually one feature. Merge them.
|
|
142
|
+
- Infra (auth, DB setup, project structure) always goes first.
|
|
143
|
+
|
|
144
|
+
#### Step 5: Build Order
|
|
145
|
+
|
|
146
|
+
Use the dependency map to set the order. Bottom of the tree first, top last:
|
|
147
|
+
|
|
148
|
+
```
|
|
149
|
+
MVP BUILD ORDER:
|
|
150
|
+
1. [feature] - no dependencies, foundation
|
|
151
|
+
2. [feature] - depends on #1
|
|
152
|
+
3. [feature] - depends on #1
|
|
153
|
+
4. [feature] - depends on #2 and #3
|
|
154
|
+
|
|
155
|
+
LATER (v2):
|
|
156
|
+
- [feature]
|
|
157
|
+
- [feature]
|
|
158
|
+
|
|
159
|
+
NEVER (be honest):
|
|
160
|
+
- [feature] - why: _________
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
#### Step 6: Stack & Structure
|
|
164
|
+
|
|
165
|
+
Pick your tools. Don't overthink this:
|
|
166
|
+
|
|
167
|
+
```
|
|
168
|
+
STACK:
|
|
169
|
+
- Frontend: _________
|
|
170
|
+
- Backend: _________
|
|
171
|
+
- Database: _________
|
|
172
|
+
- Auth: _________
|
|
173
|
+
- Hosting: _________
|
|
174
|
+
- Why this stack: _________ (use what you know, not what's trendy)
|
|
175
|
+
|
|
176
|
+
PROJECT STRUCTURE:
|
|
177
|
+
- Monorepo or separate repos: _________
|
|
178
|
+
- Key folders: _________
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
### Output
|
|
182
|
+
|
|
183
|
+
Feature tree, dependency map, build order, stack picked. Everything else is parked.
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
### Handoff to Phase 1
|
|
188
|
+
|
|
189
|
+
Follow the build order from Step 5. One feature at a time. Don't start the next feature until its dependencies are built and working.
|
|
190
|
+
|
|
191
|
+
```
|
|
192
|
+
Feature 1 (no deps) -> Phase 1-6 -> DONE
|
|
193
|
+
Feature 2 (needs #1) -> Phase 1-6 -> DONE
|
|
194
|
+
Feature 3 (needs #1) -> Phase 1-6 -> DONE (can run parallel with #2 if no shared dep)
|
|
195
|
+
Feature 4 (needs #2, #3) -> Phase 1-6 -> DONE
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
## Phase 1: DUMP (5 min)
|
|
201
|
+
|
|
202
|
+
**Goal:** Get everything out of your head. No filter. No judgment.
|
|
203
|
+
|
|
204
|
+
### Framework: JTBD + Brain Dump
|
|
205
|
+
|
|
206
|
+
Answer these 4 questions. Write fast, don't edit:
|
|
207
|
+
|
|
208
|
+
```
|
|
209
|
+
1. THE JOB
|
|
210
|
+
"When _________, I want to _________, so I can _________."
|
|
211
|
+
(situation) (motivation) (outcome)
|
|
212
|
+
|
|
213
|
+
2. THE TRIGGER
|
|
214
|
+
What moment makes the user need this?
|
|
215
|
+
What are they doing right before?
|
|
216
|
+
|
|
217
|
+
3. THE CURRENT PAIN
|
|
218
|
+
How do they solve this today without your feature?
|
|
219
|
+
What's annoying about the current way?
|
|
220
|
+
|
|
221
|
+
4. DREAM STATE
|
|
222
|
+
If this worked perfectly, what would the user say?
|
|
223
|
+
"Now I can finally ___________."
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
### Example
|
|
227
|
+
|
|
228
|
+
```
|
|
229
|
+
1. THE JOB
|
|
230
|
+
"When I have 10 screenshot variants for my app store listing,
|
|
231
|
+
I want to A/B test them,
|
|
232
|
+
so I can pick the one that gets the most downloads."
|
|
233
|
+
|
|
234
|
+
2. THE TRIGGER
|
|
235
|
+
User just finished making screenshots in the editor.
|
|
236
|
+
They're staring at 10 variants and don't know which is best.
|
|
237
|
+
|
|
238
|
+
3. THE CURRENT PAIN
|
|
239
|
+
They upload one, wait a week, check downloads.
|
|
240
|
+
Change it, wait another week. Takes months to optimize.
|
|
241
|
+
|
|
242
|
+
4. DREAM STATE
|
|
243
|
+
"Now I can test all 10 at once and know the winner in days."
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
### Output
|
|
247
|
+
|
|
248
|
+
A messy brain dump. That's fine. You clean it up in the next phase.
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## Phase 2: CHALLENGE (10 min)
|
|
253
|
+
|
|
254
|
+
**Goal:** Poke holes. Kill bad ideas early. Find the smallest version that works.
|
|
255
|
+
|
|
256
|
+
### Framework: Pre-Mortem + MoSCoW
|
|
257
|
+
|
|
258
|
+
#### Step 1: Pre-Mortem
|
|
259
|
+
|
|
260
|
+
Imagine it's 2 weeks from now. You built it and it failed. Why?
|
|
261
|
+
|
|
262
|
+
Write down 5 reasons it could fail:
|
|
263
|
+
|
|
264
|
+
```
|
|
265
|
+
FAILURE REASONS:
|
|
266
|
+
1. _________
|
|
267
|
+
2. _________
|
|
268
|
+
3. _________
|
|
269
|
+
4. _________
|
|
270
|
+
5. _________
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
For each one, ask: "Can I prevent this?" If yes, add it to your requirements. If no, maybe this feature isn't ready.
|
|
274
|
+
|
|
275
|
+
#### Step 2: MoSCoW Sort
|
|
276
|
+
|
|
277
|
+
Take everything from Phase 1 and sort it:
|
|
278
|
+
|
|
279
|
+
```
|
|
280
|
+
MUST HAVE (ship breaks without these)
|
|
281
|
+
- _________
|
|
282
|
+
- _________
|
|
283
|
+
|
|
284
|
+
SHOULD HAVE (really want, but can ship without)
|
|
285
|
+
- _________
|
|
286
|
+
|
|
287
|
+
COULD HAVE (nice but not important)
|
|
288
|
+
- _________
|
|
289
|
+
|
|
290
|
+
WON'T HAVE (explicitly not doing this time)
|
|
291
|
+
- _________
|
|
292
|
+
- _________
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
Rules:
|
|
296
|
+
- Max 3-5 items in MUST HAVE. If you have more, you're building too much.
|
|
297
|
+
- WON'T HAVE is the most important list. It prevents scope creep.
|
|
298
|
+
- If you're not sure, it's SHOULD HAVE, not MUST HAVE.
|
|
299
|
+
|
|
300
|
+
#### Step 3: The Bar Test
|
|
301
|
+
|
|
302
|
+
Explain the feature to an imaginary friend at a bar. One sentence:
|
|
303
|
+
|
|
304
|
+
```
|
|
305
|
+
"It lets you _________ so you don't have to _________."
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
If you can't say it in one sentence, it's too complex. Simplify.
|
|
309
|
+
|
|
310
|
+
### Output
|
|
311
|
+
|
|
312
|
+
A clean list of must-haves, a "won't have" list, and a one-sentence description.
|
|
313
|
+
|
|
314
|
+
---
|
|
315
|
+
|
|
316
|
+
## Phase 3: WALK THROUGH (15 min)
|
|
317
|
+
|
|
318
|
+
**Goal:** "Use" the feature in your head. Every screen, every click, every state.
|
|
319
|
+
|
|
320
|
+
This is the most important phase. If you nail this, you won't change things during build.
|
|
321
|
+
|
|
322
|
+
### Framework: Screen State Matrix
|
|
323
|
+
|
|
324
|
+
#### Step 1: List Every Screen
|
|
325
|
+
|
|
326
|
+
Write down every screen the user will see, in order:
|
|
327
|
+
|
|
328
|
+
```
|
|
329
|
+
SCREENS:
|
|
330
|
+
1. [Screen Name] - one line about what it shows
|
|
331
|
+
2. [Screen Name] - one line about what it shows
|
|
332
|
+
3. ...
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
#### Step 2: For Each Screen, Fill the State Matrix
|
|
336
|
+
|
|
337
|
+
Every screen has multiple states. List them all:
|
|
338
|
+
|
|
339
|
+
```
|
|
340
|
+
SCREEN: [Name]
|
|
341
|
+
URL: /path
|
|
342
|
+
|
|
343
|
+
STATES:
|
|
344
|
+
- Empty: what does the user see when there's no data?
|
|
345
|
+
- Loading: what shows while data loads?
|
|
346
|
+
- Success: what does the normal view look like?
|
|
347
|
+
- Error: what if the API fails?
|
|
348
|
+
- Partial: what if some data is missing? (optional fields null)
|
|
349
|
+
|
|
350
|
+
ACTIONS:
|
|
351
|
+
- [Button/Link] -> goes to [screen] / does [action]
|
|
352
|
+
- [Button/Link] -> goes to [screen] / does [action]
|
|
353
|
+
|
|
354
|
+
EDGE CASES:
|
|
355
|
+
- What if the list has 100+ items? (pagination?)
|
|
356
|
+
- What if the user has no permission?
|
|
357
|
+
- What if they're on mobile?
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
#### Step 3: Narrate the User Journey
|
|
361
|
+
|
|
362
|
+
Write it like a story. Walk through the happy path first, then the sad paths:
|
|
363
|
+
|
|
364
|
+
```
|
|
365
|
+
HAPPY PATH:
|
|
366
|
+
1. User opens [page]. They see [what].
|
|
367
|
+
2. They click [button]. [What happens].
|
|
368
|
+
3. They fill in [fields]. They click [submit].
|
|
369
|
+
4. They see [success state]. Done.
|
|
370
|
+
|
|
371
|
+
SAD PATH - Empty:
|
|
372
|
+
1. User opens [page]. There's no data yet.
|
|
373
|
+
2. They see [empty state message + CTA].
|
|
374
|
+
3. They click [CTA]. Goes to [creation flow].
|
|
375
|
+
|
|
376
|
+
SAD PATH - Error:
|
|
377
|
+
1. User fills in [fields]. Clicks [submit].
|
|
378
|
+
2. API returns error. They see [error message].
|
|
379
|
+
3. They fix [input] and retry.
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
### Output
|
|
383
|
+
|
|
384
|
+
A complete screen-by-screen walkthrough with all states.
|
|
385
|
+
|
|
386
|
+
---
|
|
387
|
+
|
|
388
|
+
## Phase 4: TECH CHECK (10 min)
|
|
389
|
+
|
|
390
|
+
**Goal:** Map the feature to actual code. Find conflicts and reuse chances.
|
|
391
|
+
|
|
392
|
+
### Framework: Impact Map
|
|
393
|
+
|
|
394
|
+
#### Step 1: Data Changes
|
|
395
|
+
|
|
396
|
+
```
|
|
397
|
+
NEW TABLES:
|
|
398
|
+
- [table_name]: [what it stores]
|
|
399
|
+
Columns: [list key columns]
|
|
400
|
+
|
|
401
|
+
CHANGED TABLES:
|
|
402
|
+
- [table_name]: add [column] because [reason]
|
|
403
|
+
|
|
404
|
+
NO TABLE CHANGES? Skip this.
|
|
405
|
+
```
|
|
406
|
+
|
|
407
|
+
#### Step 2: API Changes
|
|
408
|
+
|
|
409
|
+
```
|
|
410
|
+
NEW ENDPOINTS:
|
|
411
|
+
- [METHOD] /api/[path] - [what it does]
|
|
412
|
+
Request: { [key fields] }
|
|
413
|
+
Response: { data: { [key fields] } }
|
|
414
|
+
|
|
415
|
+
CHANGED ENDPOINTS:
|
|
416
|
+
- [METHOD] /api/[path] - [what changes]
|
|
417
|
+
```
|
|
418
|
+
|
|
419
|
+
#### Step 3: Existing Code Impact
|
|
420
|
+
|
|
421
|
+
This is where you catch conflicts:
|
|
422
|
+
|
|
423
|
+
```
|
|
424
|
+
REUSE:
|
|
425
|
+
- What existing components can I reuse? [list them]
|
|
426
|
+
- What existing API hooks can I reuse? [list them]
|
|
427
|
+
- What existing services/repos can I extend? [list them]
|
|
428
|
+
|
|
429
|
+
CONFLICTS:
|
|
430
|
+
- Does this change break any existing page? [which ones]
|
|
431
|
+
- Does this change any shared component? [which ones]
|
|
432
|
+
- Does this change any existing API response shape? [which ones]
|
|
433
|
+
|
|
434
|
+
DEPENDENCIES:
|
|
435
|
+
- Does this need a new npm package? [which one, why]
|
|
436
|
+
- Does this need a new env variable? [which one]
|
|
437
|
+
- Does this depend on another feature being done first? [which one]
|
|
438
|
+
```
|
|
439
|
+
|
|
440
|
+
#### Step 4: Effort Gut Check
|
|
441
|
+
|
|
442
|
+
```
|
|
443
|
+
T-shirt size: XS / S / M / L / XL
|
|
444
|
+
|
|
445
|
+
XS = 1-2 files changed, < 1 hour
|
|
446
|
+
S = 3-5 files, a few hours
|
|
447
|
+
M = 5-10 files, half a day
|
|
448
|
+
L = 10-20 files, full day
|
|
449
|
+
XL = 20+ files, multiple days -> consider splitting into smaller features
|
|
450
|
+
```
|
|
451
|
+
|
|
452
|
+
If it's XL, go back to Phase 2 and cut scope.
|
|
453
|
+
|
|
454
|
+
### Output
|
|
455
|
+
|
|
456
|
+
A list of DB changes, API changes, code impacts, and a size estimate.
|
|
457
|
+
|
|
458
|
+
---
|
|
459
|
+
|
|
460
|
+
## Phase 5: FINAL CUT (5 min)
|
|
461
|
+
|
|
462
|
+
**Goal:** Last chance to simplify before building. Lock the scope.
|
|
463
|
+
|
|
464
|
+
### Framework: The Three Filters
|
|
465
|
+
|
|
466
|
+
#### Filter 1: The Confidence Check
|
|
467
|
+
|
|
468
|
+
For each must-have from Phase 2, rate your confidence:
|
|
469
|
+
|
|
470
|
+
```
|
|
471
|
+
MUST HAVE CONFIDENCE
|
|
472
|
+
- [feature 1] HIGH / MEDIUM / LOW
|
|
473
|
+
- [feature 2] HIGH / MEDIUM / LOW
|
|
474
|
+
- [feature 3] HIGH / MEDIUM / LOW
|
|
475
|
+
```
|
|
476
|
+
|
|
477
|
+
- HIGH = I know exactly what to build and how
|
|
478
|
+
- MEDIUM = I know what to build but some details are fuzzy
|
|
479
|
+
- LOW = I'm guessing
|
|
480
|
+
|
|
481
|
+
Any LOW items? Either figure them out right now, or move them to v2.
|
|
482
|
+
|
|
483
|
+
#### Filter 2: The v1/v2 Split
|
|
484
|
+
|
|
485
|
+
```
|
|
486
|
+
v1 (shipping now):
|
|
487
|
+
- [thing 1]
|
|
488
|
+
- [thing 2]
|
|
489
|
+
- [thing 3]
|
|
490
|
+
|
|
491
|
+
v2 (shipping later):
|
|
492
|
+
- [thing 4]
|
|
493
|
+
- [thing 5]
|
|
494
|
+
```
|
|
495
|
+
|
|
496
|
+
v1 should be the smallest thing that's still useful. If a user can only do v1 and nothing else, would they still be happy? If no, you cut too much.
|
|
497
|
+
|
|
498
|
+
#### Filter 3: The Regret Test
|
|
499
|
+
|
|
500
|
+
Ask yourself:
|
|
501
|
+
- "Will I regret not thinking about _________ during build?"
|
|
502
|
+
- Walk through Phase 3 screens one more time, fast.
|
|
503
|
+
- Anything feel off? Fix it now. Not during build.
|
|
504
|
+
|
|
505
|
+
### Output
|
|
506
|
+
|
|
507
|
+
A locked scope. v1 is clear. v2 is parked. No more changes.
|
|
508
|
+
|
|
509
|
+
---
|
|
510
|
+
|
|
511
|
+
## Phase 6: BUILD
|
|
512
|
+
|
|
513
|
+
Now you build. Use the existing pipeline:
|
|
514
|
+
|
|
515
|
+
```
|
|
516
|
+
/spec -> /plan -> /build -> /review
|
|
517
|
+
```
|
|
518
|
+
|
|
519
|
+
The difference: your spec will be way better because you did the thinking first. Feed the phase outputs directly into /spec:
|
|
520
|
+
|
|
521
|
+
- Phase 0 (PRODUCT + MVP MAP) -> product definition, MVP features, stack
|
|
522
|
+
- Phase 1 (DUMP) -> fills the Problem and Goal sections
|
|
523
|
+
- Phase 2 (CHALLENGE) -> fills Requirements (must/should/could/won't)
|
|
524
|
+
- Phase 3 (WALK THROUGH) -> fills UI Changes, Edge Cases, Testing Criteria
|
|
525
|
+
- Phase 4 (TECH CHECK) -> fills Data Model, API Changes, Dependencies
|
|
526
|
+
- Phase 5 (FINAL CUT) -> confirms scope is locked
|
|
527
|
+
|
|
528
|
+
---
|
|
529
|
+
|
|
530
|
+
## How to Use This With Claude
|
|
531
|
+
|
|
532
|
+
### New Project
|
|
533
|
+
|
|
534
|
+
```
|
|
535
|
+
"I have a new project idea: [idea]. Let's think it through.
|
|
536
|
+
Start with Phase 0: PRODUCT."
|
|
537
|
+
```
|
|
538
|
+
|
|
539
|
+
### New Feature (existing project)
|
|
540
|
+
|
|
541
|
+
```
|
|
542
|
+
"I want to add [feature]. Let's think it through.
|
|
543
|
+
Start with Phase 1: DUMP."
|
|
544
|
+
```
|
|
545
|
+
|
|
546
|
+
Claude will guide you through each phase, ask questions, and challenge your ideas. Don't rush to build. Stay in the thinking phases until everything feels solid.
|
|
547
|
+
|
|
548
|
+
Move to the next phase only when you're satisfied with the current one.
|
|
549
|
+
|
|
550
|
+
---
|
|
551
|
+
|
|
552
|
+
## Quick Reference
|
|
553
|
+
|
|
554
|
+
| Phase | When | Time | Framework | Output |
|
|
555
|
+
|-------|------|------|-----------|--------|
|
|
556
|
+
| 0. PRODUCT + MVP MAP | New project | 20 min | Core Loop + Feature Kill List + Dependency Map | Feature tree, dependency map, build order, stack |
|
|
557
|
+
| 1. DUMP | Every feature | 5 min | JTBD + Brain Dump | Raw ideas, the job, the pain |
|
|
558
|
+
| 2. CHALLENGE | Every feature | 10 min | Pre-Mortem + MoSCoW | Must-haves, won't-haves, one-liner |
|
|
559
|
+
| 3. WALK THROUGH | Every feature | 15 min | Screen State Matrix | Every screen, every state, user journey |
|
|
560
|
+
| 4. TECH CHECK | Every feature | 10 min | Impact Map | DB/API changes, conflicts, size estimate |
|
|
561
|
+
| 5. FINAL CUT | Every feature | 5 min | Three Filters | Locked v1 scope, parked v2 |
|
|
562
|
+
| 6. BUILD | Every feature | varies | /spec -> /plan -> /build | Working feature |
|
|
563
|
+
|
|
564
|
+
---
|
|
565
|
+
|
|
566
|
+
## Anti-Patterns (Don't Do These)
|
|
567
|
+
|
|
568
|
+
**Product level:**
|
|
569
|
+
- **10 MVP features.** That's not an MVP. That's a product roadmap. Max 3-5.
|
|
570
|
+
- **Picking trendy stack.** Use what you know. Speed matters more than "best" tools.
|
|
571
|
+
|
|
572
|
+
**Feature level:**
|
|
573
|
+
- **Skipping Phase 3.** "I'll figure out the screens while coding." No. 80% of rework comes from this.
|
|
574
|
+
- **Too many must-haves.** If you have 8 must-haves, you have 0 must-haves. Max 5.
|
|
575
|
+
- **Empty "won't have" list.** If nothing is out of scope, everything is in scope. Scope creep.
|
|
576
|
+
- **Skipping the pre-mortem.** Feels negative, but it catches real problems early.
|
|
577
|
+
- **Going back to Phase 1 during Phase 5.** If you're rethinking the core idea in Phase 5, the idea wasn't ready. Start over.
|
|
578
|
+
- **Starting to code during Phase 4.** Tech check is for mapping, not building. Don't open the editor yet.
|
|
579
|
+
|
|
580
|
+
---
|
|
581
|
+
|
|
582
|
+
## The Full Picture
|
|
583
|
+
|
|
584
|
+
```
|
|
585
|
+
NEW PROJECT:
|
|
586
|
+
Phase 0 (Product + MVP Map) -> [Feature 1: Phase 1-6] -> [Feature 2: Phase 1-6] -> ...
|
|
587
|
+
|
|
588
|
+
NEW FEATURE:
|
|
589
|
+
Phase 1 (Dump) -> Phase 2 (Challenge) -> Phase 3 (Walk Through) -> Phase 4 (Tech Check) -> Phase 5 (Final Cut) -> Phase 6 (Build)
|
|
590
|
+
|
|
591
|
+
PHASE 6 BUILD PIPELINE:
|
|
592
|
+
/spec -> /plan -> /build -> /review
|
|
593
|
+
```
|