ship-create 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +39 -0
- package/create.mjs +301 -0
- package/package.json +25 -0
- package/templates/.cursorrules +51 -0
- package/templates/.windsurfrules +51 -0
- package/templates/AGENTS.md +51 -0
- package/templates/CLAUDE.md +51 -0
- package/templates/docs/HUMAN_FLOW.md +205 -0
- package/templates/docs/PROJECT.md +154 -0
- package/templates/docs/PROMPTS.md +246 -0
- package/templates/docs/product-types/CRM_TEMPLATE.md +78 -0
- package/templates/docs/product-types/DASHBOARD_TEMPLATE.md +78 -0
- package/templates/docs/product-types/DIRECTORY_TEMPLATE.md +75 -0
- package/templates/docs/product-types/INTERNAL_TOOL_TEMPLATE.md +77 -0
- package/templates/docs/product-types/LEADGEN_TEMPLATE.md +78 -0
- package/templates/docs/product-types/MARKETPLACE_TEMPLATE.md +81 -0
- package/templates/docs/product-types/MEMBERSHIP_TEMPLATE.md +80 -0
- package/templates/docs/product-types/SAAS_TEMPLATE.md +79 -0
- package/templates/starter-kit/README.md +64 -0
- package/templates/starter-kit/app/backoffice/content/page.tsx +93 -0
- package/templates/starter-kit/app/backoffice/layout.tsx +105 -0
- package/templates/starter-kit/app/backoffice/page.tsx +165 -0
- package/templates/starter-kit/app/backoffice/settings/page.tsx +145 -0
- package/templates/starter-kit/app/backoffice/users/page.tsx +134 -0
- package/templates/starter-kit/app/globals.css +141 -0
- package/templates/starter-kit/app/layout.tsx +43 -0
- package/templates/starter-kit/app/member/(app)/billing/page.tsx +137 -0
- package/templates/starter-kit/app/member/(app)/content/page.tsx +111 -0
- package/templates/starter-kit/app/member/(app)/dashboard/page.tsx +129 -0
- package/templates/starter-kit/app/member/(app)/layout.tsx +130 -0
- package/templates/starter-kit/app/member/(app)/settings/page.tsx +96 -0
- package/templates/starter-kit/app/member/login/page.tsx +106 -0
- package/templates/starter-kit/app/member/signup/page.tsx +120 -0
- package/templates/starter-kit/app/page.tsx +82 -0
- package/templates/starter-kit/app/sale/_components/cta-footer.tsx +66 -0
- package/templates/starter-kit/app/sale/_components/faq.tsx +107 -0
- package/templates/starter-kit/app/sale/_components/features.tsx +95 -0
- package/templates/starter-kit/app/sale/_components/hero.tsx +106 -0
- package/templates/starter-kit/app/sale/_components/pricing.tsx +133 -0
- package/templates/starter-kit/app/sale/_components/problem.tsx +59 -0
- package/templates/starter-kit/app/sale/_components/testimonials.tsx +100 -0
- package/templates/starter-kit/app/sale/page.tsx +21 -0
- package/templates/starter-kit/components/ui/avatar.tsx +50 -0
- package/templates/starter-kit/components/ui/badge.tsx +36 -0
- package/templates/starter-kit/components/ui/button.tsx +56 -0
- package/templates/starter-kit/components/ui/card.tsx +78 -0
- package/templates/starter-kit/components/ui/input.tsx +24 -0
- package/templates/starter-kit/components/ui/table.tsx +88 -0
- package/templates/starter-kit/components/ui/tabs.tsx +55 -0
- package/templates/starter-kit/lib/mock-data.ts +118 -0
- package/templates/starter-kit/lib/utils.ts +6 -0
- package/templates/starter-kit/next.config.mjs +6 -0
- package/templates/starter-kit/package.json +36 -0
- package/templates/starter-kit/postcss.config.mjs +9 -0
- package/templates/starter-kit/tailwind.config.ts +83 -0
- package/templates/starter-kit/tsconfig.json +41 -0
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
# HUMAN_FLOW.md
|
|
2
|
+
|
|
3
|
+
**Phase:** H — Human Flow
|
|
4
|
+
**Purpose:** Maps how a real person actually moves through your product — screen by screen, decision by decision — before you write a single AI build prompt. Skipping this step is the #1 reason AI-generated apps feel disjointed: the AI builds beautiful screens with no idea how they connect.
|
|
5
|
+
|
|
6
|
+
> Every screen named here should eventually exist as a route in `INFORMATION_ARCHITECTURE.md`. If you can't name the screen here, the AI can't build it with intent there.
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## 1. User Journey
|
|
11
|
+
|
|
12
|
+
> The macro view: what does the user experience from "never heard of this" to "can't live without this"? Detailed stage-by-stage mapping lives in `USER_JOURNEY.md` — this section is the compressed version that anchors everything below it.
|
|
13
|
+
|
|
14
|
+
### Template
|
|
15
|
+
|
|
16
|
+
| Stage | What the user is trying to do | Where they are emotionally |
|
|
17
|
+
|---|---|---|
|
|
18
|
+
| Discovery | [describe X] | [describe X] |
|
|
19
|
+
| First use | [describe X] | [describe X] |
|
|
20
|
+
| Habitual use | [describe X] | [describe X] |
|
|
21
|
+
| Advocacy | [describe X] | [describe X] |
|
|
22
|
+
|
|
23
|
+
### Worked Mini-Example: Signup → First Value
|
|
24
|
+
|
|
25
|
+
| Stage | What the user is trying to do | Where they are emotionally |
|
|
26
|
+
|---|---|---|
|
|
27
|
+
| Discovery | Sees a tweet showing the product solving a problem they have | Skeptical but curious — "does this actually work or is it another tool I'll abandon" |
|
|
28
|
+
| First use | Signs up, expects to be productive in under 2 minutes | Impatient, evaluating — will bounce at the first confusing screen |
|
|
29
|
+
| Habitual use | Comes back daily because it's now part of their workflow | Comfortable, trusting — starts inviting teammates |
|
|
30
|
+
| Advocacy | Recommends it unprompted because it saved them real time | Proud to be an early adopter |
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## 2. User Flow
|
|
35
|
+
|
|
36
|
+
> The sequence of *steps* a user takes to complete one specific task — more granular than the journey, less granular than a wireframe. Map one flow per core task.
|
|
37
|
+
|
|
38
|
+
### Template
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
[Entry point] → [Step 1: action] → [Step 2: action] → [Decision point?]
|
|
42
|
+
├─ Yes → [Step 3a]
|
|
43
|
+
└─ No → [Step 3b]
|
|
44
|
+
→ [Outcome / success state]
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
- **Flow name:** [describe X]
|
|
48
|
+
- **Entry point(s):** [where can a user start this flow — homepage CTA, email link, in-app nudge]
|
|
49
|
+
- **Steps required to reach value:** [count them — every extra step is a drop-off risk]
|
|
50
|
+
- **Exit points** (where can they bail, and is that okay?): [describe X]
|
|
51
|
+
|
|
52
|
+
### Worked Mini-Example: Signup → First Value
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
Landing page CTA → Email entered → Magic link sent → Link clicked
|
|
56
|
+
→ Account created → Onboarding question: "What are you trying to do?"
|
|
57
|
+
├─ "Track leads" → Pre-filled CRM template loaded
|
|
58
|
+
└─ "Manage projects" → Pre-filled project template loaded
|
|
59
|
+
→ User sees their first populated screen with sample data already in it
|
|
60
|
+
→ "Aha" moment: user edits the sample data to make it theirs
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
- **Flow name:** First-time signup to first edit (activation)
|
|
64
|
+
- **Entry point(s):** Landing page hero CTA, referral link, Product Hunt listing
|
|
65
|
+
- **Steps required to reach value:** 5 (email → link click → account → template choice → first edit)
|
|
66
|
+
- **Exit points:** User can abandon at email entry (no commitment yet, acceptable) or at template choice (concerning — means the templates don't match their need)
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## 3. Navigation Structure
|
|
71
|
+
|
|
72
|
+
> How does a user get from any screen to any other screen? This is the connective tissue — detailed sitemap notation lives in `INFORMATION_ARCHITECTURE.md`.
|
|
73
|
+
|
|
74
|
+
### Template
|
|
75
|
+
|
|
76
|
+
| Nav element | Location | Items it contains | Visible to which persona/role |
|
|
77
|
+
|---|---|---|---|
|
|
78
|
+
| Primary nav | [describe X] | [list screens] | [describe X] |
|
|
79
|
+
| Secondary nav | [describe X] | [list screens] | [describe X] |
|
|
80
|
+
| User/account menu | [describe X] | [list items] | [describe X] |
|
|
81
|
+
|
|
82
|
+
### Worked Mini-Example
|
|
83
|
+
|
|
84
|
+
| Nav element | Location | Items it contains | Visible to which persona/role |
|
|
85
|
+
|---|---|---|---|
|
|
86
|
+
| Primary nav | Left sidebar | Dashboard, Projects, Reports, Settings | All logged-in users |
|
|
87
|
+
| Secondary nav | Top bar within Projects | List view / Board view toggle | All logged-in users |
|
|
88
|
+
| User/account menu | Top-right avatar dropdown | Profile, Billing, Invite team, Log out | All logged-in users; Billing hidden from non-admin roles |
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## 4. Core Screens
|
|
93
|
+
|
|
94
|
+
> List every screen that exists in the MVP. If a screen isn't on this list, it shouldn't be in the build prompt yet.
|
|
95
|
+
|
|
96
|
+
### Template
|
|
97
|
+
|
|
98
|
+
| Screen name | Purpose (one sentence) | Primary action available | Persona who uses it most |
|
|
99
|
+
|---|---|---|---|
|
|
100
|
+
| [Screen name] | [describe X] | [describe X] | [describe X] |
|
|
101
|
+
|
|
102
|
+
### Worked Mini-Example
|
|
103
|
+
|
|
104
|
+
| Screen name | Purpose (one sentence) | Primary action available | Persona who uses it most |
|
|
105
|
+
|---|---|---|---|
|
|
106
|
+
| Landing page | Convince a visitor to start a trial | "Start free trial" CTA | First-time visitor |
|
|
107
|
+
| Signup | Capture email and create account with zero friction | Submit email for magic link | First-time visitor |
|
|
108
|
+
| Onboarding question | Route the user to a relevant starter template | Select use-case | New user, day 0 |
|
|
109
|
+
| Dashboard | Show the user their current state at a glance | Open a project / create new | Returning user |
|
|
110
|
+
| Project detail | Let the user do the core task (add/edit records) | Add record, edit record | Returning user, daily |
|
|
111
|
+
| Settings → Billing | Let the user manage their subscription | Upgrade, cancel, update card | Account admin |
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## 5. Happy Path
|
|
116
|
+
|
|
117
|
+
> The single sequence where everything goes right — no errors, no hesitation, no edge cases. This is what your demo video shows.
|
|
118
|
+
|
|
119
|
+
### Template
|
|
120
|
+
|
|
121
|
+
```
|
|
122
|
+
1. [Step]
|
|
123
|
+
2. [Step]
|
|
124
|
+
3. [Step]
|
|
125
|
+
4. [Outcome: user has achieved value]
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### Worked Mini-Example
|
|
129
|
+
|
|
130
|
+
```
|
|
131
|
+
1. User clicks "Start free trial" from landing page
|
|
132
|
+
2. User enters email, receives magic link instantly, clicks it
|
|
133
|
+
3. User answers one onboarding question ("Track leads")
|
|
134
|
+
4. User lands on dashboard pre-loaded with a sample lead pipeline
|
|
135
|
+
5. User edits one sample lead to reflect a real one
|
|
136
|
+
6. Outcome: user has created their first real record within 90 seconds
|
|
137
|
+
of landing on the page — activation achieved
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## 6. Error States
|
|
143
|
+
|
|
144
|
+
> Every screen with user input needs a defined error state. "The AI will figure it out" is how you get a blank white screen in production.
|
|
145
|
+
|
|
146
|
+
### Template
|
|
147
|
+
|
|
148
|
+
| Trigger | What the user sees | Recovery action available |
|
|
149
|
+
|---|---|---|
|
|
150
|
+
| [e.g., invalid input] | [describe X] | [describe X] |
|
|
151
|
+
| [e.g., network/API failure] | [describe X] | [describe X] |
|
|
152
|
+
| [e.g., permission denied] | [describe X] | [describe X] |
|
|
153
|
+
|
|
154
|
+
### Worked Mini-Example
|
|
155
|
+
|
|
156
|
+
| Trigger | What the user sees | Recovery action available |
|
|
157
|
+
|---|---|---|
|
|
158
|
+
| Magic link expired (>15 min old) | "This link has expired. We've sent you a new one." | New link auto-sent, no re-typing email |
|
|
159
|
+
| API/server error while saving a record | Inline toast: "Couldn't save — check your connection and try again" with the edited data preserved on screen | Retry button; data is not lost from the form |
|
|
160
|
+
| Non-admin tries to access Billing | Redirected to Dashboard with a toast: "Ask your account admin to manage billing" | Link to "Request admin access" (sends notification to admin) |
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## 7. Empty States
|
|
165
|
+
|
|
166
|
+
> The first thing a new user sees before they have any data. A bad empty state (literally empty) kills activation. A good one teaches and invites action.
|
|
167
|
+
|
|
168
|
+
### Template
|
|
169
|
+
|
|
170
|
+
| Screen | What's shown when there's no data yet | Call to action |
|
|
171
|
+
|---|---|---|
|
|
172
|
+
| [Screen name] | [describe X] | [describe X] |
|
|
173
|
+
|
|
174
|
+
### Worked Mini-Example
|
|
175
|
+
|
|
176
|
+
| Screen | What's shown when there's no data yet | Call to action |
|
|
177
|
+
|---|---|---|
|
|
178
|
+
| Dashboard, brand-new account | Pre-loaded sample data with a banner: "This is sample data — try editing it" | "Edit this lead" highlighted with a subtle pulse animation |
|
|
179
|
+
| Project detail, after user deletes all records | Illustration + text: "No records yet. Add your first one to get started." | "+ Add record" button, large and centered |
|
|
180
|
+
| Reports, before enough data exists | "Reports unlock once you have 5+ records. You have 2." | Progress indicator (2/5) + "Add more records" link back to project |
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## 8. Edge Cases
|
|
185
|
+
|
|
186
|
+
> The situations that aren't errors, but aren't the happy path either — they will happen, and "we'll deal with it later" is how trust erodes.
|
|
187
|
+
|
|
188
|
+
### Template
|
|
189
|
+
|
|
190
|
+
| Edge case | Why it matters | How the product should handle it |
|
|
191
|
+
|---|---|---|
|
|
192
|
+
| [describe X] | [describe X] | [describe X] |
|
|
193
|
+
|
|
194
|
+
### Worked Mini-Example
|
|
195
|
+
|
|
196
|
+
| Edge case | Why it matters | How the product should handle it |
|
|
197
|
+
|---|---|---|
|
|
198
|
+
| User signs up twice with the same email on different devices | Confusing if they think they have two accounts | Detect existing account on email entry, send login link instead of creating a duplicate |
|
|
199
|
+
| User on Free tier hits their usage cap mid-task | Hard usage walls mid-task feel punitive and kill trust | Soft warning at 80% usage ("You're close to your limit"), graceful upgrade prompt at 100% rather than a silent block |
|
|
200
|
+
| Team admin removes a user who has records assigned to them | Orphaned data breaks reports and ownership history | Reassign records to admin by default, prompt for reassignment instead of deleting silently |
|
|
201
|
+
| User's session expires while mid-edit on a long form | Losing unsaved work is one of the most trust-destroying UX failures | Autosave drafts client-side every 10s; restore draft on re-login |
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
**Next step:** Move to [`USER_JOURNEY.md`](./USER_JOURNEY.md) to map the full Awareness → Referral lifecycle in detail, stage by stage.
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
# PROJECT.md
|
|
2
|
+
|
|
3
|
+
**Phase:** S — Structure
|
|
4
|
+
**Purpose:** The single source of truth for *what* you're building and *why*, before any UX or code work starts. Every AI build prompt in `03-Instruction/` should be able to point back to this file instead of re-explaining the product from scratch.
|
|
5
|
+
|
|
6
|
+
> Fill every section. "TBD" is allowed once, on a first pass — it is not allowed by the time you move to `02-Human-Flow/HUMAN_FLOW.md`.
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## 1. Product Vision
|
|
11
|
+
|
|
12
|
+
*One paragraph. What does this product become if it succeeds in 2 years? Write it like a mission statement, not a feature list.*
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
[Product Name] is a [category] that helps [target audience]
|
|
16
|
+
[achieve outcome] by [core mechanism], without [the old painful way].
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## 2. Problem Statement
|
|
20
|
+
|
|
21
|
+
- **Who has this problem:**
|
|
22
|
+
- **What is the problem, specifically (not "things are hard"):**
|
|
23
|
+
- **How do they solve it today (workarounds, competitors, spreadsheets, manual labor):**
|
|
24
|
+
- **Why do existing solutions fail them:**
|
|
25
|
+
- **Cost of the problem** (time, money, missed opportunity, stress) — quantify if possible:
|
|
26
|
+
|
|
27
|
+
## 3. Opportunity
|
|
28
|
+
|
|
29
|
+
- **Why now** (market shift, new tech, behavior change, regulation, AI cost drop, etc.):
|
|
30
|
+
- **Market size / addressable audience** (rough is fine — TAM/SAM/SOM or just a number you trust):
|
|
31
|
+
- **Unfair advantage** (your access, audience, data, speed, niche knowledge):
|
|
32
|
+
- **Why AI makes this newly buildable by you, solo or with a small team:**
|
|
33
|
+
|
|
34
|
+
## 4. Target Audience
|
|
35
|
+
|
|
36
|
+
| Attribute | Description |
|
|
37
|
+
|---|---|
|
|
38
|
+
| Primary segment | |
|
|
39
|
+
| Secondary segment | |
|
|
40
|
+
| Demographics / firmographics | |
|
|
41
|
+
| Where they hang out (channels) | |
|
|
42
|
+
| What they currently pay for adjacent solutions | |
|
|
43
|
+
| Buying trigger (what makes them search for this *today*) | |
|
|
44
|
+
|
|
45
|
+
## 5. User Personas
|
|
46
|
+
|
|
47
|
+
> Create 1 primary persona minimum, up to 3. Do not skip this even for B2B/internal tools — "the admin" and "the end user" are personas too.
|
|
48
|
+
|
|
49
|
+
### Persona 1: [Name / Role]
|
|
50
|
+
- **Goal:**
|
|
51
|
+
- **Frustration:**
|
|
52
|
+
- **Tech comfort level:**
|
|
53
|
+
- **Quote that sounds like them:** "______"
|
|
54
|
+
- **What "success" looks like for them in this product:**
|
|
55
|
+
|
|
56
|
+
### Persona 2: [Name / Role]
|
|
57
|
+
- **Goal:**
|
|
58
|
+
- **Frustration:**
|
|
59
|
+
- **Tech comfort level:**
|
|
60
|
+
- **Quote that sounds like them:** "______"
|
|
61
|
+
- **What "success" looks like for them in this product:**
|
|
62
|
+
|
|
63
|
+
## 6. Jobs To Be Done
|
|
64
|
+
|
|
65
|
+
> Format: *When I [situation], I want to [motivation], so I can [expected outcome].*
|
|
66
|
+
|
|
67
|
+
| # | Job Statement | Priority (H/M/L) |
|
|
68
|
+
|---|---|---|
|
|
69
|
+
| 1 | | |
|
|
70
|
+
| 2 | | |
|
|
71
|
+
| 3 | | |
|
|
72
|
+
|
|
73
|
+
## 7. Business Goals
|
|
74
|
+
|
|
75
|
+
- **Primary business goal (pick one):** Revenue / Users / Retention / Strategic positioning / Cost reduction
|
|
76
|
+
- **Specific target:** (e.g., "$10k MRR by Q3" / "500 active orgs by launch+90d")
|
|
77
|
+
- **Secondary goals:**
|
|
78
|
+
- **Non-goals** (explicitly out of scope for the business right now):
|
|
79
|
+
|
|
80
|
+
## 8. Success Metrics
|
|
81
|
+
|
|
82
|
+
| Metric | Definition | Target | How Measured |
|
|
83
|
+
|---|---|---|---|
|
|
84
|
+
| North Star Metric | | | |
|
|
85
|
+
| Activation metric | | | |
|
|
86
|
+
| Retention metric | | | |
|
|
87
|
+
| Revenue metric | | | |
|
|
88
|
+
| Leading indicator (early signal) | | | |
|
|
89
|
+
|
|
90
|
+
## 9. Revenue Model
|
|
91
|
+
|
|
92
|
+
- **Model type:** Subscription / Usage-based / One-time / Freemium / Marketplace take-rate / Ads / Services
|
|
93
|
+
- **Pricing tiers (draft):**
|
|
94
|
+
| Tier | Price | Who it's for | What's included |
|
|
95
|
+
|---|---|---|---|
|
|
96
|
+
| | | | |
|
|
97
|
+
- **Unit economics assumption** (CAC, LTV, gross margin — rough is fine at this stage):
|
|
98
|
+
- **What converts a free/trial user to paid:**
|
|
99
|
+
|
|
100
|
+
## 10. Feature Prioritization
|
|
101
|
+
|
|
102
|
+
> Score every candidate feature. Use RICE (Reach × Impact × Confidence ÷ Effort) or MoSCoW. Pick one method and stay consistent.
|
|
103
|
+
|
|
104
|
+
| Feature | Reach | Impact | Confidence | Effort | Score | Decision |
|
|
105
|
+
|---|---|---|---|---|---|---|
|
|
106
|
+
| | | | | | | Must / Should / Could / Won't |
|
|
107
|
+
|
|
108
|
+
## 11. MVP Scope
|
|
109
|
+
|
|
110
|
+
- **MVP hypothesis:** "If we build X for Y, then Z will happen."
|
|
111
|
+
- **In scope (the absolute minimum to test the hypothesis):**
|
|
112
|
+
- [ ]
|
|
113
|
+
- [ ]
|
|
114
|
+
- [ ]
|
|
115
|
+
- **Explicitly out of scope for MVP:**
|
|
116
|
+
- [ ]
|
|
117
|
+
- [ ]
|
|
118
|
+
- **MVP "done" definition:**
|
|
119
|
+
|
|
120
|
+
## 12. V1 Scope
|
|
121
|
+
|
|
122
|
+
> V1 = first version you charge money for / put in front of real, non-friendly users at scale.
|
|
123
|
+
|
|
124
|
+
- **Adds on top of MVP:**
|
|
125
|
+
- [ ]
|
|
126
|
+
- [ ]
|
|
127
|
+
- **Quality bar for V1** (performance, design polish, support, legal/compliance):
|
|
128
|
+
|
|
129
|
+
## 13. V2 Scope
|
|
130
|
+
|
|
131
|
+
> Park ideas here so they stop competing for attention in MVP/V1 planning.
|
|
132
|
+
|
|
133
|
+
- **Candidate features (not committed):**
|
|
134
|
+
- [ ]
|
|
135
|
+
- [ ]
|
|
136
|
+
- **Trigger to revisit this list:** (e.g., "after 100 paying customers" / "after MVP retention > 30%")
|
|
137
|
+
|
|
138
|
+
## 14. Risks
|
|
139
|
+
|
|
140
|
+
| Risk | Type (Market/Tech/Team/Legal/Financial) | Likelihood | Impact | Mitigation |
|
|
141
|
+
|---|---|---|---|---|
|
|
142
|
+
| | | | | |
|
|
143
|
+
|
|
144
|
+
## 15. Assumptions
|
|
145
|
+
|
|
146
|
+
> List every assumption this plan depends on. Each one is a thing that could be wrong and should eventually be tested.
|
|
147
|
+
|
|
148
|
+
| Assumption | Confidence (H/M/L) | How / when we'll validate it |
|
|
149
|
+
|---|---|---|
|
|
150
|
+
| | | |
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
**Next step:** Once this file has no unresolved TBDs, move to [`02-Human-Flow/HUMAN_FLOW.md`](../02-Human-Flow/HUMAN_FLOW.md).
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
# PROMPTS.md
|
|
2
|
+
|
|
3
|
+
**Phase:** I — Instruction
|
|
4
|
+
**Purpose:** The complete prompt chain that turns a raw idea into shipped code, one AI conversation at a time. Each stage builds on the output of the one before it. Skipping a stage (e.g. jumping from "idea" straight to "code generation") is the single most common reason AI-built products end up broken, scope-creeped, or unshippable. Run the stages **in order**, every time.
|
|
5
|
+
|
|
6
|
+
> Every prompt below is copy-pasteable as-is. Replace bracketed placeholders, paste in the referenced SHIP Method file, and run it. Each stage also tells you exactly how to adapt it for ChatGPT, Claude, Gemini, and Cursor.
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## The Chain
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
1. Idea → rough concept, problem, audience
|
|
14
|
+
2. Product Spec → 01-STRUCTURE/PROJECT.md filled out
|
|
15
|
+
3. UX Spec → 02-HUMAN-FLOW/HUMAN_FLOW.md filled out
|
|
16
|
+
4. Technical Spec → TECH_SPEC.md + DATABASE_SPEC.md filled out
|
|
17
|
+
5. Build Plan → ordered, scoped task list from AI_BUILD_SPEC.md
|
|
18
|
+
6. Code Generation → actual code, one task at a time
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Each stage's **output is the next stage's input.** Do not let an AI tool skip ahead and generate code in stage 2 "to save time" — that's exactly the shortcut SHIP exists to prevent.
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Stage 1 — Idea → Product Spec
|
|
26
|
+
|
|
27
|
+
**Goal:** Turn a vague idea into a filled `01-STRUCTURE/PROJECT.md`.
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
You are helping me turn a raw product idea into a structured product spec.
|
|
31
|
+
|
|
32
|
+
My raw idea: [describe your idea in 2-5 sentences — audience, problem, what
|
|
33
|
+
you imagine building]
|
|
34
|
+
|
|
35
|
+
I want you to fill out the following template completely. Do not skip
|
|
36
|
+
sections. If you don't have enough information for a section, ask me a
|
|
37
|
+
specific clarifying question instead of writing a generic placeholder.
|
|
38
|
+
|
|
39
|
+
Push back on weak answers — if my problem statement is vague ("things are
|
|
40
|
+
hard"), ask me to quantify it. If my target audience is "everyone," force me
|
|
41
|
+
to pick a primary segment.
|
|
42
|
+
|
|
43
|
+
Here is the template to fill (from PROJECT.md):
|
|
44
|
+
|
|
45
|
+
[PASTE THE FULL CONTENTS OF 01-STRUCTURE/PROJECT.md HERE]
|
|
46
|
+
|
|
47
|
+
Output the completed template in the same markdown format, ready to save
|
|
48
|
+
back into my repo as 01-STRUCTURE/PROJECT.md.
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
**Adapting per tool:**
|
|
52
|
+
|
|
53
|
+
- **ChatGPT:** Paste the full prompt + template in one message. If you have ChatGPT Projects, save `PROJECT.md`'s blank template as a Project file once — then you only need to paste your raw idea in new chats within that Project.
|
|
54
|
+
- **Claude:** Same approach. If you have Claude Projects, add the blank `PROJECT.md` template and `README.md` (for SHIP philosophy context) as Project knowledge — then every new chat in that Project already has the template loaded; you just paste your idea.
|
|
55
|
+
- **Gemini:** Paste the full prompt in one message. Gemini Gems can hold the template as a persistent system instruction the same way Projects work in ChatGPT/Claude — set this up once if you'll run this stage repeatedly.
|
|
56
|
+
- **Cursor:** This stage is conceptual, not code — Cursor adds little value here over a chat tool unless your repo is already initialized. If you do use it, open `01-STRUCTURE/PROJECT.md` in the editor and reference it with `@PROJECT.md` in chat instead of pasting; Cursor will read the file directly. Use Cursor's Ask/Chat mode, not Agent mode — you don't want it editing files autonomously yet.
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Stage 2 — Product Spec → UX Spec
|
|
61
|
+
|
|
62
|
+
**Goal:** Turn the completed `PROJECT.md` into a filled `02-HUMAN-FLOW/HUMAN_FLOW.md` (user journeys, screens, flows).
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
You are a senior product designer. I have a completed product spec below.
|
|
66
|
+
Your job is to design the human-facing flow: every screen, every user
|
|
67
|
+
journey, every decision point — before any code gets written.
|
|
68
|
+
|
|
69
|
+
Here is my completed product spec:
|
|
70
|
+
|
|
71
|
+
[PASTE YOUR COMPLETED 01-STRUCTURE/PROJECT.md HERE]
|
|
72
|
+
|
|
73
|
+
For each persona and each Job To Be Done listed above, map out:
|
|
74
|
+
1. The end-to-end user journey (entry point → goal achieved → what happens next)
|
|
75
|
+
2. Every screen needed, named clearly (e.g. "Lead Detail", not "Screen 3")
|
|
76
|
+
3. For each screen: what the user sees, what actions are available, what
|
|
77
|
+
happens on success and on error/empty state
|
|
78
|
+
4. Navigation: how does the user get from screen to screen?
|
|
79
|
+
5. Call out any screen that serves more than one persona differently
|
|
80
|
+
|
|
81
|
+
Flag anything in the product spec that doesn't translate cleanly into a flow
|
|
82
|
+
— that's usually a sign the product spec itself is underspecified, not a
|
|
83
|
+
design problem to paper over.
|
|
84
|
+
|
|
85
|
+
Output as a structured markdown document I can save as
|
|
86
|
+
02-HUMAN-FLOW/HUMAN_FLOW.md.
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
**Adapting per tool:**
|
|
90
|
+
|
|
91
|
+
- **ChatGPT / Claude / Gemini:** Chat-first tools are ideal here — this stage is pure reasoning and writing, no code. If you have screens sketched (Figma, paper, screenshots), attach images; Claude and Gemini both handle multi-image reasoning well for "does this flow match what I drew" checks.
|
|
92
|
+
- **Cursor:** If `01-STRUCTURE/PROJECT.md` already exists in your repo, reference it with `@01-STRUCTURE/PROJECT.md` instead of pasting — Cursor pulls the live file so it's always in sync with edits. Still use Chat mode; this is a planning document, not code.
|
|
93
|
+
- **Windsurf:** Same pattern as Cursor — use its Cascade chat with the file referenced via the repo context picker rather than pasted text, so the model always sees the latest saved version.
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Stage 3 — UX Spec → Technical Spec
|
|
98
|
+
|
|
99
|
+
**Goal:** Turn the human flow into `TECH_SPEC.md` and `DATABASE_SPEC.md` — stack decisions and data model.
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
You are a pragmatic solutions architect advising a non-technical/solo
|
|
103
|
+
founder. I have a product spec and a UX flow below. Your job is to produce
|
|
104
|
+
two things: a technical architecture decision record, and a database schema
|
|
105
|
+
— both scoped to what this product actually needs, not what's impressive.
|
|
106
|
+
|
|
107
|
+
Bias toward boring, proven, cheap-to-operate technology unless there's a
|
|
108
|
+
specific reason (stated in the product spec) to do otherwise. Call out when
|
|
109
|
+
I'm over-engineering.
|
|
110
|
+
|
|
111
|
+
Product spec:
|
|
112
|
+
[PASTE COMPLETED 01-STRUCTURE/PROJECT.md HERE]
|
|
113
|
+
|
|
114
|
+
UX / flow spec:
|
|
115
|
+
[PASTE COMPLETED 02-HUMAN-FLOW/HUMAN_FLOW.md HERE]
|
|
116
|
+
|
|
117
|
+
Fill out these two templates completely, including the worked-example
|
|
118
|
+
sections (replace the examples with my actual product):
|
|
119
|
+
|
|
120
|
+
TECH_SPEC.md template:
|
|
121
|
+
[PASTE THE FULL CONTENTS OF 03-INSTRUCTION/TECH_SPEC.md HERE]
|
|
122
|
+
|
|
123
|
+
DATABASE_SPEC.md template:
|
|
124
|
+
[PASTE THE FULL CONTENTS OF 03-INSTRUCTION/DATABASE_SPEC.md HERE]
|
|
125
|
+
|
|
126
|
+
For the database schema, write real SQL (or your stated ORM's schema syntax)
|
|
127
|
+
in a code block, not prose description. Include indexes and RLS/auth
|
|
128
|
+
constraints if the stack uses Postgres + RLS.
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
**Adapting per tool:**
|
|
132
|
+
|
|
133
|
+
- **Claude:** Strong at holding two large templates plus two prior specs in context at once and producing long, structured SQL — this is the best chat-first tool for this stage if you're choosing one.
|
|
134
|
+
- **ChatGPT:** Equally capable; if using GPT-4-class models, ask it to "think step by step about the schema before writing it" to reduce missed relationships — explicit reasoning requests measurably improve schema completeness.
|
|
135
|
+
- **Gemini:** Good for this stage especially if your specs are long (large context window) — paste both full specs without trimming.
|
|
136
|
+
- **Cursor:** This is where Cursor starts adding real value — open the repo, reference `@01-STRUCTURE/PROJECT.md` and `@02-HUMAN-FLOW/HUMAN_FLOW.md`, and ask it to write `TECH_SPEC.md`/`DATABASE_SPEC.md` directly into `03-INSTRUCTION/` using Agent mode. It can also grep your existing codebase (if one exists) to keep stack choices consistent with what's already there — chat-only tools can't do that.
|
|
137
|
+
- **Windsurf:** Same advantage as Cursor (codebase-aware). Use Cascade in Write mode if you want it to save the files directly; review the diff before accepting.
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## Stage 4 — Technical Spec → Build Plan
|
|
142
|
+
|
|
143
|
+
**Goal:** Turn the specs into a filled `AI_BUILD_SPEC.md` and an ordered, scoped task list — the Build Plan.
|
|
144
|
+
|
|
145
|
+
```
|
|
146
|
+
You are a technical project manager preparing work for an AI code generator.
|
|
147
|
+
Your job is NOT to write code yet. Your job is to turn the specs below into
|
|
148
|
+
(a) a completed AI_BUILD_SPEC.md, and (b) an ordered build plan: a numbered
|
|
149
|
+
list of discrete, independently testable tasks, each small enough to
|
|
150
|
+
generate and review in one sitting (roughly: one task = one PR).
|
|
151
|
+
|
|
152
|
+
For each task in the build plan, specify:
|
|
153
|
+
- Task name
|
|
154
|
+
- What files/modules it touches
|
|
155
|
+
- Dependencies (which earlier tasks must be done first)
|
|
156
|
+
- Definition of done (how I verify it works before moving to the next task)
|
|
157
|
+
|
|
158
|
+
Order tasks so that: data layer → API layer → UI layer → integration/polish,
|
|
159
|
+
and so that nothing depends on a task that comes later in the list.
|
|
160
|
+
|
|
161
|
+
Product spec:
|
|
162
|
+
[PASTE 01-STRUCTURE/PROJECT.md]
|
|
163
|
+
|
|
164
|
+
UX spec:
|
|
165
|
+
[PASTE 02-HUMAN-FLOW/HUMAN_FLOW.md]
|
|
166
|
+
|
|
167
|
+
Tech spec:
|
|
168
|
+
[PASTE 03-INSTRUCTION/TECH_SPEC.md]
|
|
169
|
+
|
|
170
|
+
Database spec:
|
|
171
|
+
[PASTE 03-INSTRUCTION/DATABASE_SPEC.md]
|
|
172
|
+
|
|
173
|
+
AI_BUILD_SPEC.md template to fill:
|
|
174
|
+
[PASTE THE FULL CONTENTS OF 03-INSTRUCTION/AI_BUILD_SPEC.md HERE]
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
**Adapting per tool:**
|
|
178
|
+
|
|
179
|
+
- **ChatGPT / Claude / Gemini:** All three handle this planning stage well since it's still reasoning-heavy, not code-heavy. Ask explicitly for the task list in a format you can paste into a task tracker (table or checklist) — don't accept prose paragraphs.
|
|
180
|
+
- **Cursor:** Strong choice if you want the build plan to live in the repo and reference real file paths it can already see (e.g. "Task 3 touches `app/api/leads/route.ts`" — Cursor can confirm that path exists). Use Agent mode to write `AI_BUILD_SPEC.md` directly, but stay in plan/ask mode for the task list itself — don't let it start coding yet.
|
|
181
|
+
- **Windsurf:** Same as Cursor. Its Planning mode (if available in your version) is built exactly for this stage — use it instead of free-form chat if present.
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## Stage 5 — Build Plan → Code Generation
|
|
186
|
+
|
|
187
|
+
**Goal:** Generate real, working code — one task at a time, never the whole build plan in one prompt.
|
|
188
|
+
|
|
189
|
+
```
|
|
190
|
+
You are implementing ONE task from an approved build plan. Do not implement
|
|
191
|
+
any other task. Do not refactor unrelated code. Do not add features not
|
|
192
|
+
listed in the acceptance criteria.
|
|
193
|
+
|
|
194
|
+
Task: [paste the single task block from your build plan — name, files,
|
|
195
|
+
dependencies, definition of done]
|
|
196
|
+
|
|
197
|
+
Relevant specs (for context only — do not re-derive requirements, just use
|
|
198
|
+
these as ground truth for naming, types, and constraints):
|
|
199
|
+
|
|
200
|
+
Database schema for this task:
|
|
201
|
+
[PASTE the relevant table(s) from 03-INSTRUCTION/DATABASE_SPEC.md]
|
|
202
|
+
|
|
203
|
+
API contract for this task:
|
|
204
|
+
[PASTE the relevant rows from the API Requirements table in
|
|
205
|
+
03-INSTRUCTION/AI_BUILD_SPEC.md]
|
|
206
|
+
|
|
207
|
+
Stack constraints:
|
|
208
|
+
[PASTE relevant rows from 03-INSTRUCTION/TECH_SPEC.md, e.g. "Next.js 14 App
|
|
209
|
+
Router, Tailwind, shadcn/ui, Supabase client with RLS"]
|
|
210
|
+
|
|
211
|
+
Existing code conventions to follow: [paste a short example file from your
|
|
212
|
+
codebase showing naming/style conventions, or say "none yet — establish
|
|
213
|
+
conventions and state them in your response"]
|
|
214
|
+
|
|
215
|
+
After writing the code:
|
|
216
|
+
1. List every file you created or modified.
|
|
217
|
+
2. State explicitly how I verify this task is done, matching the Definition
|
|
218
|
+
of Done above.
|
|
219
|
+
3. Flag anything you had to assume because the spec didn't cover it.
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
**Adapting per tool:**
|
|
223
|
+
|
|
224
|
+
- **Cursor (recommended default for this stage):** Use Agent mode inside the actual repo. Reference real files with `@filename` instead of pasting code conventions — it reads them directly and stays consistent with the existing codebase. Cursor can also run the dev server and lint/typecheck in the same session, so "verify this is done" can include "and confirm it builds," not just "here's how a human checks."
|
|
225
|
+
- **Windsurf:** Same strength as Cursor — codebase-aware Agent/Cascade mode, can run terminal commands to verify. Choose whichever editor you're already living in; the prompt is identical.
|
|
226
|
+
- **Claude:** Strong raw code quality and good at following constraints literally (useful when "don't touch unrelated code" matters). Without IDE integration, paste relevant existing files manually each time — Claude has no memory of your repo between chats unless you're using a tool with file access (e.g. Claude Code, which reads your repo directly the way Cursor does).
|
|
227
|
+
- **ChatGPT:** Similarly strong code generation; same caveat — chat-only ChatGPT has no repo access, so you must paste existing file contents for it to match conventions. If you have Code Interpreter/Canvas, use it to iterate on a single file in place rather than regenerating full files each time.
|
|
228
|
+
- **Gemini:** Capable, particularly for larger files thanks to context window — useful if a single task touches an unusually large existing file you'd rather not chunk.
|
|
229
|
+
|
|
230
|
+
**Universal rule for this stage:** one task per prompt, every time. A build plan with 12 tasks means 12 separate code-generation prompts (and 12 reviews), not one mega-prompt. This is the single highest-leverage discipline in the entire SHIP method — most "AI built it wrong" complaints trace back to skipping this.
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
## Compatibility Notes
|
|
235
|
+
|
|
236
|
+
| Tool | Strengths for this chain | How to feed it context | Gotchas |
|
|
237
|
+
|---|---|---|---|
|
|
238
|
+
| **ChatGPT** | Strong general reasoning at Stages 1-4; Projects feature gives persistent context across chats; Canvas useful for iterative single-file editing at Stage 6 | Paste full file contents into chat, or upload as a file attachment; use a Project with SHIP templates pre-loaded for repeat use | No native repo access — it cannot see your actual codebase unless you paste it; easy to accidentally let it "fill gaps" with invented requirements if your spec has holes — always ask it to flag assumptions |
|
|
239
|
+
| **Claude** | Excellent at holding multiple long documents in context at once (Stages 3-4); literal instruction-following at Stage 6 (good at "only do X, nothing else"); Projects hold persistent SHIP doc context | Paste full file contents, or use Claude Projects with templates as project knowledge; Claude Code (CLI) reads your repo directly like an IDE tool, closing the gap with Cursor/Windsurf | Same as ChatGPT for chat-only Claude.ai — no live repo access unless using Claude Code; very literal, so a vague task description produces a literal-but-wrong result rather than a creative guess |
|
|
240
|
+
| **Gemini** | Largest context window of the three chat tools — best for pasting very long specs without trimming; Gems provide persistent context similar to Projects | Paste full contents in one message; set up a Gem with blank SHIP templates for repeated use across multiple product builds | Output formatting (tables/code blocks) occasionally needs cleanup when copying back into markdown files; verify generated SQL/code blocks render cleanly before saving |
|
|
241
|
+
| **Cursor** | Best tool for Stages 3-6 once a repo exists — reads files via `@mentions`, can run terminal commands, lint, and typecheck in the same session as code generation; Agent mode can write spec files directly into `03-INSTRUCTION/` | Reference real files with `@filename` instead of pasting; keep specs as actual files in the repo so they're always current | Easy to let Agent mode run ahead and start generating code before specs are locked — explicitly stay in Ask/Chat mode for Stages 1-4, switch to Agent only at Stage 6; always review diffs before accepting |
|
|
242
|
+
| **Windsurf** | Comparable to Cursor for Stages 3-6 — Cascade mode is codebase-aware and can execute/verify; dedicated Planning mode (where available) maps well onto Stage 4 | Reference repo files via the built-in context picker rather than pasting; keep specs saved as files, not just chat history | Same discipline risk as Cursor — confirm you're in a planning/chat mode (not full auto-apply) until specs are finalized; review every auto-applied change before trusting "definition of done" claims |
|
|
243
|
+
|
|
244
|
+
---
|
|
245
|
+
|
|
246
|
+
**Next step:** Once Stage 6 code generation is complete for all build-plan tasks, move to `04-PUBLISH/` to prepare for launch.
|