ship-create 1.4.0 → 1.6.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.
@@ -51,11 +51,13 @@ All docs live under `docs/`:
51
51
 
52
52
  6. **Never invent business facts** (market size, pricing, real metrics, real user quotes). Draft clearly-labeled `[TBD: ...]` placeholders or ask the user.
53
53
 
54
- 7. **Once the spec is complete, run the "Theme & First Screen" step before polishing or shipping.**
55
- When `docs/PROJECT.md` and `docs/HUMAN_FLOW.md` are filled and `docs/AI_BUILD_SPEC.md` exists:
56
- - **Theme:** Invoke the `ui-ux-pro-max` skill. Using the business context from `docs/PROJECT.md`, derive 2-3 theme candidates (HSL color tokens + font pairing). Present them, let the user pick one, apply it to `app/globals.css` and `app/layout.tsx`. See `.claude/skills/ship-method/theme-guide.md` for a fallback business-type → palette reference.
57
- - **Home:** Read `docs/HUMAN_FLOW.md`, determine the real entry point for this business, and replace the starter kit's generic `app/page.tsx` with it.
58
- - Never pick a theme silently. Never require brand assets the user didn't provide.
54
+ 7. **When `/build` is invoked: act immediately, no planning, no task list.**
55
+ - **First:** read `docs/PROJECT.md` + `docs/HUMAN_FLOW.md` silently. If empty, ask one question: *"Describe your idea in one sentence."* Fill docs, then continue.
56
+ - **Second:** propose 23 theme options (one line each), let the user pick, apply to `app/globals.css` + `app/layout.tsx`. This is the first visible output.
57
+ - **Third:** replace `app/page.tsx` with the real home screen from `HUMAN_FLOW.md`. User runs `npm run dev` and sees their product.
58
+ - **Then:** ask "which feature first?" and build just that one.
59
+ - **No task list at start.** No spec before theme. No gate that blocks visible output.
60
+ - See `.claude/skills/ship-method/theme-guide.md` for product-type → palette reference.
59
61
 
60
62
  ## Quick Orientation for a New Agent Session
61
63
 
@@ -51,11 +51,13 @@ All docs live under `docs/`:
51
51
 
52
52
  6. **Never invent business facts** (market size, pricing, real metrics, real user quotes). Draft clearly-labeled `[TBD: ...]` placeholders or ask the user.
53
53
 
54
- 7. **Once the spec is complete, run the "Theme & First Screen" step before polishing or shipping.**
55
- When `docs/PROJECT.md` and `docs/HUMAN_FLOW.md` are filled and `docs/AI_BUILD_SPEC.md` exists:
56
- - **Theme:** Invoke the `ui-ux-pro-max` skill. Using the business context from `docs/PROJECT.md`, derive 2-3 theme candidates (HSL color tokens + font pairing). Present them, let the user pick one, apply it to `app/globals.css` and `app/layout.tsx`. See `.claude/skills/ship-method/theme-guide.md` for a fallback business-type → palette reference.
57
- - **Home:** Read `docs/HUMAN_FLOW.md`, determine the real entry point for this business, and replace the starter kit's generic `app/page.tsx` with it.
58
- - Never pick a theme silently. Never require brand assets the user didn't provide.
54
+ 7. **When `/build` is invoked: act immediately, no planning, no task list.**
55
+ - **First:** read `docs/PROJECT.md` + `docs/HUMAN_FLOW.md` silently. If empty, ask one question: *"Describe your idea in one sentence."* Fill docs, then continue.
56
+ - **Second:** propose 23 theme options (one line each), let the user pick, apply to `app/globals.css` + `app/layout.tsx`. This is the first visible output.
57
+ - **Third:** replace `app/page.tsx` with the real home screen from `HUMAN_FLOW.md`. User runs `npm run dev` and sees their product.
58
+ - **Then:** ask "which feature first?" and build just that one.
59
+ - **No task list at start.** No spec before theme. No gate that blocks visible output.
60
+ - See `.claude/skills/ship-method/theme-guide.md` for product-type → palette reference.
59
61
 
60
62
  ## Quick Orientation for a New Agent Session
61
63
 
@@ -51,11 +51,13 @@ All docs live under `docs/`:
51
51
 
52
52
  6. **Never invent business facts** (market size, pricing, real metrics, real user quotes). Draft clearly-labeled `[TBD: ...]` placeholders or ask the user.
53
53
 
54
- 7. **Once the spec is complete, run the "Theme & First Screen" step before polishing or shipping.**
55
- When `docs/PROJECT.md` and `docs/HUMAN_FLOW.md` are filled and `docs/AI_BUILD_SPEC.md` exists:
56
- - **Theme:** Invoke the `ui-ux-pro-max` skill. Using the business context from `docs/PROJECT.md`, derive 2-3 theme candidates (HSL color tokens + font pairing). Present them, let the user pick one, apply it to `app/globals.css` and `app/layout.tsx`. See `.claude/skills/ship-method/theme-guide.md` for a fallback business-type → palette reference.
57
- - **Home:** Read `docs/HUMAN_FLOW.md`, determine the real entry point for this business, and replace the starter kit's generic `app/page.tsx` with it.
58
- - Never pick a theme silently. Never require brand assets the user didn't provide.
54
+ 7. **When `/build` is invoked: act immediately, no planning, no task list.**
55
+ - **First:** read `docs/PROJECT.md` + `docs/HUMAN_FLOW.md` silently. If empty, ask one question: *"Describe your idea in one sentence."* Fill docs, then continue.
56
+ - **Second:** propose 23 theme options (one line each), let the user pick, apply to `app/globals.css` + `app/layout.tsx`. This is the first visible output.
57
+ - **Third:** replace `app/page.tsx` with the real home screen from `HUMAN_FLOW.md`. User runs `npm run dev` and sees their product.
58
+ - **Then:** ask "which feature first?" and build just that one.
59
+ - **No task list at start.** No spec before theme. No gate that blocks visible output.
60
+ - See `.claude/skills/ship-method/theme-guide.md` for product-type → palette reference.
59
61
 
60
62
  ## Quick Orientation for a New Agent Session
61
63
 
@@ -0,0 +1,50 @@
1
+ # Design Spec
2
+
3
+ > Screen-by-screen design decisions. Auto-populated by the `uiux-frontend` skill during `/build`. Each section is filled when that screen is built — do not write speculative specs for unbuilt screens.
4
+
5
+ ---
6
+
7
+ ## Global decisions
8
+
9
+ | Decision | Value |
10
+ |----------|-------|
11
+ | Site type | `[FILL: Landing page / Member system]` |
12
+ | Language | `[FILL: Thai / English]` |
13
+ | Font | `[FILL]` |
14
+ | Color palette | `[FILL: shadcn palette name]` |
15
+ | UI trend | `[FILL]` |
16
+ | Trend source | `[FILL: URL or publication that confirmed this trend is current]` |
17
+
18
+ ---
19
+
20
+ ## Screen specs
21
+
22
+ Each screen gets one entry. Format:
23
+
24
+ ```
25
+ ### [Screen name] — [route e.g. /dashboard]
26
+ Status: [planned / in-progress / done]
27
+ Layout: [pattern used]
28
+ Trend application: [how the trend is expressed here]
29
+ Key components: [shadcn components used]
30
+ States: [loading ✓/✗ | empty ✓/✗ | error ✓/✗ | success ✓/✗]
31
+ Revenue link: [how this screen connects to money]
32
+ Notes: [any deviations from the design system, or decisions to revisit]
33
+ ```
34
+
35
+ ---
36
+
37
+ <!-- SCREENS BELOW — filled by uiux-frontend skill during /build -->
38
+
39
+ ### Home / Entry screen — /
40
+ Status: planned
41
+ Layout:
42
+ Trend application:
43
+ Key components:
44
+ States: loading ✗ | empty ✗ | error ✗ | success ✗
45
+ Revenue link:
46
+ Notes:
47
+
48
+ ---
49
+
50
+ <!-- Add a new entry below for each screen as it gets built -->
@@ -0,0 +1,145 @@
1
+ # Design System
2
+
3
+ > Auto-generated by `/build`. Update here when design decisions change — this is the source of truth for all visual decisions in this project.
4
+
5
+ ---
6
+
7
+ ## Stack
8
+
9
+ | Layer | Choice |
10
+ |-------|--------|
11
+ | CSS framework | Tailwind CSS v4 |
12
+ | Component library | shadcn/ui |
13
+ | Font loading | `next/font/google` |
14
+
15
+ ---
16
+
17
+ ## Color Palette
18
+
19
+ **Base theme:** `[FILL: zinc / slate / blue / green / orange / rose / violet]`
20
+
21
+ All color tokens are from shadcn's CSS variable system. Do not hardcode hex or rgb values anywhere — use only these tokens:
22
+
23
+ | Token | Usage |
24
+ |-------|-------|
25
+ | `bg-background` | Page background (always white in light mode) |
26
+ | `text-foreground` | Primary text |
27
+ | `text-muted-foreground` | Secondary text, captions, placeholders |
28
+ | `bg-primary` | Primary action background |
29
+ | `text-primary-foreground` | Text on primary background |
30
+ | `bg-secondary` | Secondary/subtle backgrounds |
31
+ | `border` | Dividers, card borders |
32
+ | `bg-destructive` | Error states, delete actions |
33
+ | `bg-accent` | Hover/active backgrounds |
34
+ | `bg-card` | Card surfaces |
35
+ | `bg-sidebar` | Sidebar background |
36
+
37
+ **Dark mode:** not scoped for MVP — defer until user requests it.
38
+
39
+ ---
40
+
41
+ ## Typography
42
+
43
+ **Language:** `[FILL: Thai / English]`
44
+
45
+ **Font:** `[FILL: Prompt / IBM Plex Thai / Noto Sans Thai / Anuphan / Inter / Geist / Playfair Display + DM Sans]`
46
+
47
+ **Font stack type:** `[FILL: Single-stack (Thai) / Sans-only (Modern) / Serif + Sans (Luxury)]`
48
+
49
+ | Role | Tailwind classes | Notes |
50
+ |------|-----------------|-------|
51
+ | Display / Hero h1 | `[FILL]` | Used in hero sections only |
52
+ | Page title h1 | `text-3xl font-bold` (Thai) / `text-3xl font-bold tracking-tight` (EN) | |
53
+ | Section heading h2 | `text-xl font-semibold` | |
54
+ | Card heading h3 | `text-base font-semibold` | |
55
+ | Body | `text-base font-normal leading-relaxed` | Thai: `leading-loose` for denser text |
56
+ | Caption / helper | `text-sm text-muted-foreground` | |
57
+ | Label | `text-sm font-medium` | Form labels |
58
+ | Button | `text-sm font-medium` | |
59
+
60
+ ---
61
+
62
+ ## Spacing Scale
63
+
64
+ Using Tailwind's default spacing scale. These are the project's agreed units — don't introduce other values:
65
+
66
+ | Use | Class | px |
67
+ |-----|-------|----|
68
+ | Page horizontal padding | `px-4 sm:px-6 lg:px-8` | 16 / 24 / 32 |
69
+ | Section vertical gap | `space-y-8` / `gap-8` | 32 |
70
+ | Card padding | `p-6` | 24 |
71
+ | Form field gap | `space-y-4` | 16 |
72
+ | Inline item gap | `gap-2` / `gap-3` | 8 / 12 |
73
+ | Min touch target | `h-11` | 44 |
74
+
75
+ ---
76
+
77
+ ## Border Radius
78
+
79
+ | Token | Class | Usage |
80
+ |-------|-------|-------|
81
+ | Default | `rounded-md` | Buttons, inputs, badges |
82
+ | Card | `rounded-lg` | Cards, modals, sheets |
83
+ | Full | `rounded-full` | Avatars, tags, pills |
84
+
85
+ ---
86
+
87
+ ## Shadow
88
+
89
+ | Class | Usage |
90
+ |-------|-------|
91
+ | `shadow-sm` | Cards, inputs on focus |
92
+ | `shadow-md` | Dropdowns, popovers |
93
+ | `shadow-lg` | Modals, dialogs |
94
+ | `shadow-none` | Flat/minimal screens |
95
+
96
+ ---
97
+
98
+ ## UI Trend
99
+
100
+ **Selected trend:** `[FILL: trend name]`
101
+ **Reason:** `[FILL: why this trend fits this product + audience]`
102
+
103
+ **Trend implementation rules for this project:**
104
+ `[FILL: specific Tailwind classes and patterns used to express the trend — filled by /build Step 4]`
105
+
106
+ **Trend scope:** Applied to `[FILL: hero section / cards / overall layout / specific screens]`. Not applied to: forms, error states, data tables (keep those neutral for usability).
107
+
108
+ ---
109
+
110
+ ## Component Decisions
111
+
112
+ | Need | Component | Notes |
113
+ |------|-----------|-------|
114
+ | Navigation | `[FILL]` | |
115
+ | Data entry | `[FILL]` | |
116
+ | Data display | `[FILL]` | |
117
+ | Modals | `[FILL]` | |
118
+ | Feedback | `[FILL]` | |
119
+ | Global search | `[FILL: Command / none]` | |
120
+
121
+ ---
122
+
123
+ ## Icons
124
+
125
+ Use `lucide-react` (already bundled with shadcn). Do not mix icon libraries.
126
+
127
+ ---
128
+
129
+ ## Animation
130
+
131
+ Keep animations subtle and intentional:
132
+ - Micro-interactions: `transition-all duration-150`
133
+ - Modal/sheet open: shadcn built-in (Radix transitions)
134
+ - Trend-specific animation: `[FILL: if any — e.g. spring scale for Squishy UI]`
135
+ - Disable if `prefers-reduced-motion`: wrap custom animations in `@media (prefers-reduced-motion: no-preference)`
136
+
137
+ ---
138
+
139
+ ## Accessibility Baseline
140
+
141
+ - Contrast: ≥ 4.5:1 for body text, ≥ 3:1 for large text/UI components
142
+ - Focus ring: Tailwind `ring-2 ring-primary ring-offset-2` (shadcn default)
143
+ - Every form input paired with `<Label htmlFor="...">`
144
+ - Icon-only buttons: `aria-label` required
145
+ - Color not used as the only differentiator (always pair color with shape/text)