ship-create 1.0.0 → 1.2.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 CHANGED
@@ -1,39 +1,61 @@
1
- # SHIP CLI
1
+ # ship-create
2
2
 
3
- A zero-dependency, zero-API-key project scaffolder for The SHIP Method OS. Built for non-developersthere's nothing to `npm install` and nothing to sign up for before your first command works.
3
+ A zero-dependency, zero-API-key project scaffolder for The SHIP Method OS. Published on npm as [`ship-create`](https://www.npmjs.com/package/ship-create)no git clone, no API key, nothing to sign up for before your first command works.
4
4
 
5
5
  ## Run It
6
6
 
7
- From the repo root:
7
+ From anywhere — an empty folder, your desktop, wherever you want the new project to land:
8
8
 
9
9
  ```
10
- node ship-cli/create.mjs
10
+ npx ship-create
11
11
  ```
12
12
 
13
- That's it. No `npm install` needed for the CLI itself (it only uses Node.js built-ins). You do need [Node.js](https://nodejs.org) installed (18 or newer) — if `node -v` works in your terminal, you're ready.
13
+ That's it. No global install needed. You do need [Node.js](https://nodejs.org) installed (18 or newer) — if `node -v` works in your terminal, you're ready.
14
+
15
+ > Prefer a permanent global command? `npm install -g ship-create`, then just run `ship-create`.
14
16
 
15
17
  ## What It Asks
16
18
 
17
19
  1. **Project name** — e.g. "Acme CRM"
18
- 2. **What you're building** — pick from the 8 product types in [`../06-TEMPLATES/`](../06-TEMPLATES)
20
+ 2. **What you're building** — one of 8 product types (SaaS, CRM, membership, lead-gen, directory, dashboard, internal tool, marketplace)
19
21
  3. **Which AI tool you mainly use** — ChatGPT, Claude, Gemini, Cursor, or Windsurf
20
22
 
21
23
  ## What It Creates
22
24
 
23
- A new folder at `projects/<your-project-slug>/` containing:
25
+ A new folder at `./<your-project-slug>/`, in whatever directory you ran the command from, containing:
24
26
 
25
- - The full [`starter-kit/`](../starter-kit) app shell (sale page, member area, backoffice — working Next.js code on mock data)
27
+ - The full starter-kit app shell (sale page, member area, backoffice — working Next.js + Tailwind code on mock data)
26
28
  - `AGENTS.md`, `CLAUDE.md`, `.cursorrules`, `.windsurfrules` — copied in, so Cursor/Windsurf/Claude Code enforce the SHIP order automatically the moment you open the folder
27
29
  - `docs/PROJECT.md` — pre-filled with your project name and product type
28
30
  - `docs/<TYPE>_TEMPLATE.md` — the starter pack matching what you're building
29
31
  - `docs/HUMAN_FLOW.md` — blank template, ready for Stage 2
32
+ - `docs/PROMPTS.md` — the full Idea → Code prompt chain
30
33
  - `docs/FIRST_PROMPT.txt` — a ready-to-paste prompt for whichever AI tool you picked, with `PROJECT.md` already loaded into it
31
34
  - `NEXT_STEPS.md` — plain-language instructions for what to do next, tailored to your AI tool choice
32
35
 
36
+ Everything it needs is bundled inside this package's own `templates/` folder — nothing is read from the SHIP Method OS repo at runtime, so it works standalone via `npx` for anyone, without access to that (private) repo.
37
+
33
38
  ## Why No API Key
34
39
 
35
40
  If you already pay for ChatGPT Plus, Claude Pro, or Gemini Advanced, requiring a *separate* API key (different billing, different signup, different rate limits) to use this CLI would be pure friction. Instead, the CLI prepares the exact prompt you need and tells you where to paste it — into the tool you already have open in a browser tab.
36
41
 
37
42
  ## Re-running
38
43
 
39
- The CLI refuses to overwrite an existing `projects/<slug>/` folder — pick a different project name, or delete the old folder first if you want to start over.
44
+ The CLI refuses to overwrite an existing `./<slug>/` folder in your current directory — pick a different project name, or delete the old folder first if you want to start over.
45
+
46
+ ## Maintaining This Package
47
+
48
+ This folder lives inside the private `the-ship-method-os` repo but publishes as a separate public package. If the source templates change (`starter-kit/`, `01-STRUCTURE/PROJECT.md`, `02-HUMAN-FLOW/HUMAN_FLOW.md`, `03-INSTRUCTION/PROMPTS.md`, `06-TEMPLATES/*.md`, or the root agent rule files), re-sync them into `templates/` and bump the version before publishing:
49
+
50
+ ```
51
+ # from the repo root
52
+ cp -R starter-kit ship-cli/templates/starter-kit
53
+ rm -rf ship-cli/templates/starter-kit/{node_modules,.next,package-lock.json,next-env.d.ts,tsconfig.tsbuildinfo}
54
+ cp 01-STRUCTURE/PROJECT.md 02-HUMAN-FLOW/HUMAN_FLOW.md 03-INSTRUCTION/PROMPTS.md ship-cli/templates/docs/
55
+ cp 06-TEMPLATES/*.md ship-cli/templates/docs/product-types/
56
+ cp AGENTS.md CLAUDE.md .cursorrules .windsurfrules ship-cli/templates/
57
+
58
+ cd ship-cli
59
+ npm version patch # or minor/major
60
+ npm publish --access public
61
+ ```
package/create.mjs CHANGED
@@ -186,6 +186,14 @@ async function main() {
186
186
  }
187
187
  }
188
188
 
189
+ // 2b. Copy the Claude Code skill (.claude/skills/ship-method/SKILL.md) so
190
+ // Claude Code can explicitly invoke the SHIP workflow as a skill, not
191
+ // just follow it as a passive rules file.
192
+ const claudeSkillSrc = path.join(TEMPLATES_DIR, ".claude");
193
+ if (fs.existsSync(claudeSkillSrc)) {
194
+ copyRecursiveExcluding(claudeSkillSrc, path.join(outDir, ".claude"), new Set());
195
+ }
196
+
189
197
  // 3. Create a docs/ folder with a pre-filled PROJECT.md and the matching product-type template.
190
198
  const docsDir = path.join(outDir, "docs");
191
199
  fs.mkdirSync(docsDir, { recursive: true });
@@ -281,6 +289,11 @@ This folder includes AGENTS.md / CLAUDE.md / .cursorrules / .windsurfrules.
281
289
  If you open this folder in Cursor, Windsurf, or Claude Code, those tools
282
290
  will automatically enforce filling Structure and Human Flow before
283
291
  generating feature code — you don't need to do anything extra.
292
+
293
+ If you use Claude Code specifically, there's also a \`.claude/skills/ship-method/SKILL.md\`
294
+ — Claude can invoke it directly as a skill (not just a passive rule file)
295
+ whenever you ask it to build a feature or review whether something is
296
+ ready to ship.
284
297
  `;
285
298
 
286
299
  fs.writeFileSync(path.join(outDir, "NEXT_STEPS.md"), nextSteps);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ship-create",
3
- "version": "1.0.0",
3
+ "version": "1.2.0",
4
4
  "description": "Scaffold a new project the SHIP Method way — Structure, Human Flow, Instruction, Publish. No git clone, no API key, just one command.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -0,0 +1,46 @@
1
+ ---
2
+ description: Drive this project through the SHIP Method — Structure, Human Flow, Instruction, Publish.
3
+ argument-hint: "[status | structure | human-flow | instruction | publish]"
4
+ ---
5
+
6
+ You are driving this project through **The SHIP Method** via the `/ship` shortcut. FIRST invoke the `ship-method` skill — it owns the gate definitions, the "never invent business facts" rule, and the Theme & First Screen procedure. This command is a thin orchestrator on top of it; do not duplicate or contradict the skill.
7
+
8
+ Argument passed: "$ARGUMENTS"
9
+
10
+ ## Step 1 — Locate the docs
11
+
12
+ Determine where this project's SHIP docs live and use whichever set exists:
13
+ - `ship-create`-generated project: `docs/PROJECT.md`, `docs/HUMAN_FLOW.md`, `docs/AI_BUILD_SPEC.md`.
14
+ - The SHIP Method OS repo itself: `01-STRUCTURE/PROJECT.md`, `02-HUMAN-FLOW/HUMAN_FLOW.md`, `03-INSTRUCTION/AI_BUILD_SPEC.md`.
15
+
16
+ ## Step 2 — Detect the current phase
17
+
18
+ Walk the gates in order and find the FIRST one not yet satisfied. A gate is unsatisfied if its file is missing OR its core sections still contain `[bracket placeholders]` or unedited template / "Worked Mini-Example" content instead of this project's real content.
19
+
20
+ 1. **S — Structure** — `PROJECT.md` core sections filled: Vision, Problem Statement, Target Audience, MVP Scope.
21
+ 2. **H — Human Flow** — `HUMAN_FLOW.md` core sections filled: Core Screens, Happy Path, and at least one error/empty state.
22
+ 3. **I — Instruction** — `AI_BUILD_SPEC.md` exists with functional requirements, data model, and API contract.
23
+ 4. **P — Publish** — Theme & First Screen done, feature code built from the spec, and the pre-launch checklist walked.
24
+
25
+ ## Step 3 — Handle the argument
26
+
27
+ - `status` → report each gate as pass/fail with one line on what's missing, then STOP (do not drive).
28
+ - `structure`/`s`, `human-flow`/`h`, `instruction`/`i`, `publish`/`p` → jump to that phase regardless of detection (used to revisit an earlier phase).
29
+ - empty or anything else → resume at the first incomplete gate from Step 2.
30
+
31
+ ## Step 4 — Drive the phase
32
+
33
+ Announce the phase and what is missing, e.g. "You're at **S — Structure**. `PROJECT.md` has N unfilled sections — let's fill them."
34
+
35
+ Then, **one question at a time** (pull questions from the relevant section headers):
36
+ - Ask → wait for the answer → **draft the real content into the doc** for that section.
37
+ - Never invent business facts (market size, pricing, metrics, quotes). If the user doesn't know, write a clearly-labeled placeholder like `[TBD: ...]` and move on.
38
+ - When the phase's required sections are filled, summarize what was written, confirm with the user, then advance to the next phase by re-running this flow.
39
+
40
+ For **P — Publish**, follow the `ship-method` skill's Theme & First Screen step (use `theme-guide.md`): derive 2-3 themes from `PROJECT.md`, let the user pick one, apply it, build the real homepage from `HUMAN_FLOW.md`, then build the remaining feature code from the spec, then walk `QA_CHECKLIST.md` / `LAUNCH_CHECKLIST.md`.
41
+
42
+ ## Rules
43
+
44
+ - Ask exactly one question per message.
45
+ - Do not generate feature/business-logic code until Gates 1-3 pass (scaffolding/config is fine anytime).
46
+ - `/ship` keeps no saved state — it re-detects the phase every run, so it always resumes correctly.
@@ -0,0 +1,75 @@
1
+ ---
2
+ name: ship-method
3
+ description: Use when starting any new product, feature, or "build me an app" request — before writing any application code. Walks through Structure, Human Flow, Instruction, Publish in order, using this repo's templates. Also use when asked to review whether a project is "ready to build" or "ready to ship."
4
+ ---
5
+
6
+ # The SHIP Method
7
+
8
+ You are operating inside a project built with **The SHIP Method OS**. The method has four phases, run strictly in order:
9
+
10
+ ```
11
+ S — STRUCTURE → H — HUMAN FLOW → I — INSTRUCTION → P — PUBLISH
12
+ (what & why) (the experience) (AI-ready specs) (ship it)
13
+ ```
14
+
15
+ The single most common reason AI-built products end up broken, scope-creeped, or unshippable: someone skips Structure and Human Flow and goes straight to "build me an app." This skill exists to stop that.
16
+
17
+ ## When to Use This Skill
18
+
19
+ - The user describes a new product/feature idea and wants something built
20
+ - The user asks you to generate code for a feature that doesn't have a filled spec yet
21
+ - The user asks "is this ready to build?" or "is this ready to ship?"
22
+ - You're about to scaffold, design a schema, or write business logic and no `PROJECT.md` / `HUMAN_FLOW.md` exists yet for it
23
+ - The user runs the `/ship` shortcut — drive them through the gates below one phase at a time, drafting their answers into the docs
24
+
25
+ ## The Checklist
26
+
27
+ Work through these gates in order. Do not let scope, urgency, or the user saying "just build it fast" skip a gate without at least naming what's being skipped.
28
+
29
+ - [ ] **Gate 1 — Structure exists.** Find or create `PROJECT.md` (template: `01-STRUCTURE/PROJECT.md` in this repo, or `docs/PROJECT.md` if this is a `ship-create`-generated project). Vision, Problem Statement, Target Audience, and MVP Scope must be filled — not placeholder brackets.
30
+ - [ ] **Gate 2 — Human Flow exists.** Find or create `HUMAN_FLOW.md`. Every core screen needs a happy path and at least one error/empty state defined before it gets built.
31
+ - [ ] **Gate 3 — Instruction exists.** Functional requirements, data model, and API contract are written somewhere concrete (`AI_BUILD_SPEC.md` / `docs/PROJECT.md`'s feature section) before you generate feature code.
32
+ - [ ] **Gate 4 — Theme & First Screen.** Once Gates 1-3 pass and before final polish/ship: derive 2-3 business-appropriate themes from `PROJECT.md`, let the user pick one, apply it (`app/globals.css`, `app/layout.tsx`), and record it in the design system; then read `HUMAN_FLOW.md` and replace the starter's generic `app/page.tsx` ("Pick your area") with the real entry point. See `theme-guide.md` in this skill folder.
33
+ - [ ] **Gate 5 — Publish readiness.** Before telling the user something is "done," check it against the relevant checklist (`QA_CHECKLIST.md`, `LAUNCH_CHECKLIST.md`) rather than declaring success from a clean build alone.
34
+
35
+ ## How to Apply This
36
+
37
+ 1. **If Gate 1 or 2 is missing or full of `[bracket placeholders]`:** stop, don't generate feature code. Instead, ask the user one specific question at a time to fill the gap — pull questions directly from the relevant template's section headers. Scaffolding, config, and boilerplate are fine to write anytime; business logic and feature code are gated.
38
+ 2. **If the user insists on skipping a gate** ("just build it, skip the docs"): comply, but say once, briefly, what's being skipped and the most likely thing that breaks later as a result. Don't refuse repeatedly or lecture.
39
+ 3. **If all gates are filled:** proceed normally — generate code straight from the spec, and flag if a code request contradicts what's already written in `PROJECT.md` or `HUMAN_FLOW.md` rather than silently overriding it.
40
+ 4. **When asked "is this ready to build/ship?":** walk the checklist above explicitly and report which gates pass/fail, rather than giving a vague yes/no.
41
+
42
+ ## Theme & First Screen (Gate 4)
43
+
44
+ Run this once Gates 1-3 pass, before final polish or shipping. The agent already
45
+ knows the business from `PROJECT.md`, so it can theme and build the front door
46
+ accurately.
47
+
48
+ 1. **Derive & choose a theme.** From `PROJECT.md`, produce 2-3 candidate themes
49
+ (palette as HSL token values + a font pairing). Present them and let the user
50
+ pick — never pick silently, never require brand assets the user didn't give.
51
+ 2. **Apply it.** Write the chosen tokens into `app/globals.css` (`:root` and
52
+ `.dark`), set fonts in `app/layout.tsx`, and record the choice in
53
+ `12-DESIGN-SYSTEM/DESIGN_SYSTEM.md` (or `docs/DESIGN_SYSTEM.md`).
54
+ 3. **Build the first screen.** Read `HUMAN_FLOW.md`, decide the real entry point
55
+ for this business, and replace the starter's `app/page.tsx` ("Pick your
56
+ area") with it — landing/sale for marketing-led products, app home/dashboard
57
+ redirect for tools. Adjust each area's main page to match.
58
+
59
+ Full procedure and the business-type → palette/font table: `theme-guide.md` in
60
+ this skill folder. (In this OS repo the app lives under `starter-kit/`.)
61
+
62
+ ## Reference Files (when present in this repo)
63
+
64
+ | Need | File |
65
+ |---|---|
66
+ | Business goals, scope, MVP | `01-STRUCTURE/PROJECT.md`, `01-STRUCTURE/MVP_SCOPE.md` |
67
+ | User journeys, screens | `02-HUMAN-FLOW/HUMAN_FLOW.md`, `02-HUMAN-FLOW/SCREEN_PLANNING.md` |
68
+ | Specs, prompt chain | `03-INSTRUCTION/AI_BUILD_SPEC.md`, `03-INSTRUCTION/PROMPTS.md` |
69
+ | Pre-launch checks | `04-PUBLISH/QA_CHECKLIST.md`, `04-PUBLISH/LAUNCH_CHECKLIST.md` |
70
+ | Product-type starter pack | `06-TEMPLATES/<TYPE>_TEMPLATE.md` |
71
+ | Design consistency | `12-DESIGN-SYSTEM/DESIGN_SYSTEM.md` |
72
+ | Business-type → palette/font theme guide | `theme-guide.md` (this skill folder) |
73
+ | Stack decisions | `13-TECH-STACK/STACK_DECISION_MATRIX.md` |
74
+
75
+ If this is a project generated by `ship-create`, the same files exist under `docs/` instead of the numbered folders above.
@@ -0,0 +1,72 @@
1
+ # Theme & First Screen — Reference Guide
2
+
3
+ Used by the SHIP Method's **Theme & First Screen** step (first step of the
4
+ PUBLISH phase). It tells you how to turn the business described in `PROJECT.md`
5
+ into (a) 2-3 theme candidates the user can choose from, and (b) a real homepage.
6
+
7
+ ## Where things live
8
+
9
+ In a `ship-create`-generated project the Next.js app is at the repo root:
10
+ - `app/globals.css` — theme tokens (HSL triplets) under `:root` and `.dark`
11
+ - `app/layout.tsx` — fonts via `next/font/google`, mapped to `--font-*` variables
12
+ - `app/page.tsx` — the root page (ships as a generic "Pick your area" screen)
13
+
14
+ In **this OS repo**, the same app lives under `starter-kit/` (e.g.
15
+ `starter-kit/app/globals.css`). Adjust paths accordingly.
16
+
17
+ Record the chosen theme in the design system doc:
18
+ `12-DESIGN-SYSTEM/DESIGN_SYSTEM.md` (or `docs/DESIGN_SYSTEM.md` in generated
19
+ projects).
20
+
21
+ ## Step 1 — Derive 2-3 theme candidates
22
+
23
+ Read `PROJECT.md` (vision, business type, target audience, any stated brand
24
+ colors). Map the business to a palette direction and a font pairing using the
25
+ table below as a starting point — then tailor, don't copy blindly.
26
+
27
+ | Business / mood | Palette direction | Font pairing (display / sans) |
28
+ |---|---|---|
29
+ | Finance, B2B, trust | Cool navy/slate base, restrained single accent | Serif or grotesk display / neutral sans |
30
+ | Legal, premium, luxury | Deep neutral (ink/charcoal), gold or burgundy accent | Classic serif / humanist sans |
31
+ | Kids, play, consumer fun | Bright, high-saturation, multiple accents | Rounded geometric sans / rounded sans |
32
+ | Health, wellness, calm | Soft greens/teals, low saturation | Humanist serif / soft sans |
33
+ | Tech, SaaS, developer | Dark base, one electric accent | Geometric sans / mono accents |
34
+ | Food, hospitality, warm | Warm earth tones, appetizing accent | Editorial serif / friendly sans |
35
+ | Creative, agency, bold | High-contrast, expressive accent | Display serif or bold grotesk / clean sans |
36
+
37
+ Each candidate MUST specify, as HSL triplets, values for every token in
38
+ `globals.css`: `--background --foreground --card --card-foreground --primary
39
+ --primary-foreground --secondary --secondary-foreground --accent
40
+ --accent-foreground --muted --muted-foreground --destructive
41
+ --destructive-foreground --success --success-foreground --border --input --ring`
42
+ plus a `--radius`, and a font pairing for `--font-display`, `--font-sans`,
43
+ `--font-mono`.
44
+
45
+ Present the candidates to the user (a one-line mood + the key colors each).
46
+ Let the user pick one. Do NOT pick silently. Do NOT require brand assets — use
47
+ them only if `PROJECT.md` provides them.
48
+
49
+ ## Step 2 — Apply the chosen theme
50
+
51
+ 1. In `app/globals.css`, set the token values under BOTH `:root` and `.dark`
52
+ (this kit keeps them identical). Keep the HSL-triplet format (e.g.
53
+ `--primary: 14 92% 58%;`) so `hsl(var(--x))` keeps working.
54
+ 2. In `app/layout.tsx`, swap the `next/font/google` imports to the chosen
55
+ fonts, keeping the variable names `--font-display`, `--font-sans`,
56
+ `--font-mono`. The starter uses `Fraunces` (display), `Work_Sans` (sans),
57
+ `JetBrains_Mono` (mono) as the reference pattern.
58
+ 3. Record the final palette + fonts in the design system doc as the source of
59
+ truth for later UI work.
60
+
61
+ ## Step 3 — Build the real first screen
62
+
63
+ Read `HUMAN_FLOW.md` and decide the true entry point for THIS business:
64
+ - Marketing-led (course, membership, leadgen) → root `app/page.tsx` becomes the
65
+ landing/sale page.
66
+ - Tool/dashboard/internal → root becomes the app home, or redirects to the
67
+ primary dashboard route.
68
+
69
+ Replace the generic "Pick your area" content in `app/page.tsx` with real content
70
+ drawn from the spec (no lorem). Adjust the main page of each area's route to
71
+ match. Then remind the user to update `FEATURE_MATRIX.md` and `QA_CHECKLIST.md`
72
+ if scope changed.
@@ -39,6 +39,11 @@ Full reference docs live in: `01-STRUCTURE/`, `02-HUMAN-FLOW/`, `03-INSTRUCTION/
39
39
 
40
40
  6. **Never invent business facts** (market size, pricing, real metrics, real user quotes) into these docs. Draft clearly-labeled placeholders or ask the user instead.
41
41
 
42
+ 7. **Once the spec is complete, run the "Theme & First Screen" step before polishing or shipping.** When `01-STRUCTURE/PROJECT.md`, `02-HUMAN-FLOW/HUMAN_FLOW.md`, and `03-INSTRUCTION/AI_BUILD_SPEC.md` are filled (no `[bracket placeholders]`), and before calling anything ship-ready:
43
+ - **Theme:** Derive 2-3 theme candidates (color palette as HSL token values + a font pairing) from the business in `PROJECT.md`, present them, let the user pick one, then apply it to the app's `app/globals.css` and `app/layout.tsx` and record the choice in `12-DESIGN-SYSTEM/DESIGN_SYSTEM.md`.
44
+ - **Home:** Read `02-HUMAN-FLOW/HUMAN_FLOW.md`, determine the real entry point for this business, and replace the starter kit's generic `app/page.tsx` ("Pick your area") with it.
45
+ - Don't pick a theme silently and don't require brand assets the user didn't provide. See the `ship-method` skill's `theme-guide.md` for the business-type → palette/font reference. (In `ship-create` projects these docs live under `docs/`; in this OS repo the app lives under `starter-kit/`.)
46
+
42
47
  ## Quick Orientation for a New Agent Session
43
48
 
44
49
  If you (the AI agent) are opening this repo for the first time in a session:
@@ -39,6 +39,11 @@ Full reference docs live in: `01-STRUCTURE/`, `02-HUMAN-FLOW/`, `03-INSTRUCTION/
39
39
 
40
40
  6. **Never invent business facts** (market size, pricing, real metrics, real user quotes) into these docs. Draft clearly-labeled placeholders or ask the user instead.
41
41
 
42
+ 7. **Once the spec is complete, run the "Theme & First Screen" step before polishing or shipping.** When `01-STRUCTURE/PROJECT.md`, `02-HUMAN-FLOW/HUMAN_FLOW.md`, and `03-INSTRUCTION/AI_BUILD_SPEC.md` are filled (no `[bracket placeholders]`), and before calling anything ship-ready:
43
+ - **Theme:** Derive 2-3 theme candidates (color palette as HSL token values + a font pairing) from the business in `PROJECT.md`, present them, let the user pick one, then apply it to the app's `app/globals.css` and `app/layout.tsx` and record the choice in `12-DESIGN-SYSTEM/DESIGN_SYSTEM.md`.
44
+ - **Home:** Read `02-HUMAN-FLOW/HUMAN_FLOW.md`, determine the real entry point for this business, and replace the starter kit's generic `app/page.tsx` ("Pick your area") with it.
45
+ - Don't pick a theme silently and don't require brand assets the user didn't provide. See the `ship-method` skill's `theme-guide.md` for the business-type → palette/font reference. (In `ship-create` projects these docs live under `docs/`; in this OS repo the app lives under `starter-kit/`.)
46
+
42
47
  ## Quick Orientation for a New Agent Session
43
48
 
44
49
  If you (the AI agent) are opening this repo for the first time in a session:
@@ -39,6 +39,11 @@ Full reference docs live in: `01-STRUCTURE/`, `02-HUMAN-FLOW/`, `03-INSTRUCTION/
39
39
 
40
40
  6. **Never invent business facts** (market size, pricing, real metrics, real user quotes) into these docs. Draft clearly-labeled placeholders or ask the user instead.
41
41
 
42
+ 7. **Once the spec is complete, run the "Theme & First Screen" step before polishing or shipping.** When `01-STRUCTURE/PROJECT.md`, `02-HUMAN-FLOW/HUMAN_FLOW.md`, and `03-INSTRUCTION/AI_BUILD_SPEC.md` are filled (no `[bracket placeholders]`), and before calling anything ship-ready:
43
+ - **Theme:** Derive 2-3 theme candidates (color palette as HSL token values + a font pairing) from the business in `PROJECT.md`, present them, let the user pick one, then apply it to the app's `app/globals.css` and `app/layout.tsx` and record the choice in `12-DESIGN-SYSTEM/DESIGN_SYSTEM.md`.
44
+ - **Home:** Read `02-HUMAN-FLOW/HUMAN_FLOW.md`, determine the real entry point for this business, and replace the starter kit's generic `app/page.tsx` ("Pick your area") with it.
45
+ - Don't pick a theme silently and don't require brand assets the user didn't provide. See the `ship-method` skill's `theme-guide.md` for the business-type → palette/font reference. (In `ship-create` projects these docs live under `docs/`; in this OS repo the app lives under `starter-kit/`.)
46
+
42
47
  ## Quick Orientation for a New Agent Session
43
48
 
44
49
  If you (the AI agent) are opening this repo for the first time in a session:
@@ -39,6 +39,11 @@ Full reference docs live in: `01-STRUCTURE/`, `02-HUMAN-FLOW/`, `03-INSTRUCTION/
39
39
 
40
40
  6. **Never invent business facts** (market size, pricing, real metrics, real user quotes) into these docs. Draft clearly-labeled placeholders or ask the user instead.
41
41
 
42
+ 7. **Once the spec is complete, run the "Theme & First Screen" step before polishing or shipping.** When `01-STRUCTURE/PROJECT.md`, `02-HUMAN-FLOW/HUMAN_FLOW.md`, and `03-INSTRUCTION/AI_BUILD_SPEC.md` are filled (no `[bracket placeholders]`), and before calling anything ship-ready:
43
+ - **Theme:** Derive 2-3 theme candidates (color palette as HSL token values + a font pairing) from the business in `PROJECT.md`, present them, let the user pick one, then apply it to the app's `app/globals.css` and `app/layout.tsx` and record the choice in `12-DESIGN-SYSTEM/DESIGN_SYSTEM.md`.
44
+ - **Home:** Read `02-HUMAN-FLOW/HUMAN_FLOW.md`, determine the real entry point for this business, and replace the starter kit's generic `app/page.tsx` ("Pick your area") with it.
45
+ - Don't pick a theme silently and don't require brand assets the user didn't provide. See the `ship-method` skill's `theme-guide.md` for the business-type → palette/font reference. (In `ship-create` projects these docs live under `docs/`; in this OS repo the app lives under `starter-kit/`.)
46
+
42
47
  ## Quick Orientation for a New Agent Session
43
48
 
44
49
  If you (the AI agent) are opening this repo for the first time in a session: