vibe-ship-it 1.2.1 → 1.3.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
@@ -18,7 +18,7 @@ Works with **VS Code Copilot**, **Claude Code**, and **OpenAI Codex**.
18
18
  | **shipper** | Deploys to GitHub Pages or Vercel | "Ship it" / "Put it online" |
19
19
  | **investigator** | Deep debugs when quick fixes don't work | "It was working before" / "Find the bug" |
20
20
 
21
- ### 12 Skills
21
+ ### 13 Skills
22
22
 
23
23
  | Skill | What it does | Say this |
24
24
  |---|---|---|
@@ -27,6 +27,7 @@ Works with **VS Code Copilot**, **Claude Code**, and **OpenAI Codex**.
27
27
  | **unstuck** | Fixes problems fast when you're frustrated | "This doesn't work" / "Ugh" |
28
28
  | **build-page** | Builds UI from descriptions or screenshots | "Build a landing page with..." |
29
29
  | **make-it-wow** | Instant visual polish — animations, typography, hover effects | "Make it look better" |
30
+ | **design-system** | Builds tokens, primitive components, and rules from your existing UI | "Set up a design system" |
30
31
  | **save-data** | Saves form submissions to a database | "Save the form" |
31
32
  | **add-login** | Adds user authentication | "Add login" / "Only I can see this" |
32
33
  | **send-email** | Sends confirmation or notification emails | "Send me an email when..." |
@@ -133,6 +134,7 @@ skills/
133
134
  unstuck/ ← Fast frustration fix
134
135
  build-page/ ← UI construction
135
136
  make-it-wow/ ← Visual polish
137
+ design-system/ ← Tokens + primitives + consistency rules
136
138
  save-data/ ← Database persistence
137
139
  add-login/ ← Authentication
138
140
  send-email/ ← Email notifications
package/bin/init.js CHANGED
@@ -67,7 +67,7 @@ if (command === 'init') {
67
67
  if (choice !== '2' && choice !== '3') {
68
68
  console.log(' 4 agents (assistant, checker, shipper, investigator)')
69
69
  }
70
- console.log(' 12 skills (build-page, save-data, add-login, and more)')
70
+ console.log(' 13 skills (build-page, design-system, save-data, and more)')
71
71
  console.log('')
72
72
  console.log(' Just say what you want in plain English.')
73
73
  console.log(' Example: "I want to build a portfolio site"')
@@ -122,7 +122,7 @@ if (command === 'init') {
122
122
  console.log(' │ shipper Puts your project online. │')
123
123
  console.log(' │ investigator Deep debugs when things break. │')
124
124
  console.log(' │ │')
125
- console.log(' │ 12 SKILLS │')
125
+ console.log(' │ 13 SKILLS │')
126
126
  console.log(' │ │')
127
127
  console.log(' │ "I want to build a..." → what-am-i-building │')
128
128
  console.log(' │ "Build a landing page" → build-page │')
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vibe-ship-it",
3
- "version": "1.2.1",
3
+ "version": "1.3.0",
4
4
  "description": "AI skill pack for designers who vibe-code. 4 agents, 12 skills — just say what you want in plain English.",
5
5
  "bin": {
6
6
  "vibe-ship-it": "./bin/init.js"
@@ -33,6 +33,7 @@ You help an excited designer build their idea. They are not a programmer. They t
33
33
  - Deploy = "put it online so anyone with the link can see it"
34
34
  - Component = "a reusable piece of your page"
35
35
  - Route = "a page at a specific URL"
36
+ - Writing style = "Do not use emoji or em dash in user-facing copy unless explicitly requested"
36
37
 
37
38
  ## Default Stack (Web)
38
39
 
@@ -66,6 +67,7 @@ Run before-you-ship checklist first — this is non-negotiable even if the desig
66
67
  | "Upload" / "add a photo" | File storage | Supabase Storage |
67
68
  | "Show me all the..." / "dashboard" | Data display | Fetch + styled list/cards |
68
69
  | "Make it look better" / "it looks boring" | Visual polish | Add animations, typography, spacing |
70
+ | "Set up a design system" / "make styles consistent" / "set up tokens" | Design system | Extract tokens + create primitives + define usage rules |
69
71
  | "Ship it" / "put it online" | Deploy | Run pre-flight check, then deploy to Vercel |
70
72
  | "Check it" / "is this ready?" | QA | Run quick-check or full checklist |
71
73
  | "This doesn't work" / "ugh" / "stuck" | Frustrated — needs help | Fix silently, explain after |
@@ -33,6 +33,7 @@ You help an excited designer build their idea. They are not a programmer. They t
33
33
  - Deploy = "put it online so anyone with the link can see it"
34
34
  - Component = "a reusable piece of your page"
35
35
  - Route = "a page at a specific URL"
36
+ - Writing style = "Do not use emoji or em dash in user-facing copy unless explicitly requested"
36
37
 
37
38
  ## Default Stack (Web)
38
39
 
@@ -66,6 +67,7 @@ Run before-you-ship checklist first — this is non-negotiable even if the desig
66
67
  | "Upload" / "add a photo" | File storage | Supabase Storage |
67
68
  | "Show me all the..." / "dashboard" | Data display | Fetch + styled list/cards |
68
69
  | "Make it look better" / "it looks boring" | Visual polish | Add animations, typography, spacing |
70
+ | "Set up a design system" / "make styles consistent" / "set up tokens" | Design system | Extract tokens + create primitives + define usage rules |
69
71
  | "Ship it" / "put it online" | Deploy | Run pre-flight check, then deploy to Vercel |
70
72
  | "Check it" / "is this ready?" | QA | Run quick-check or full checklist |
71
73
  | "This doesn't work" / "ugh" / "stuck" | Frustrated — needs help | Fix silently, explain after |
@@ -33,6 +33,7 @@ You help an excited designer build their idea. They are not a programmer. They t
33
33
  - Deploy = "put it online so anyone with the link can see it"
34
34
  - Component = "a reusable piece of your page"
35
35
  - Route = "a page at a specific URL"
36
+ - Writing style = "Do not use emoji or em dash in user-facing copy unless explicitly requested"
36
37
 
37
38
  ## Default Stack (Web)
38
39
 
@@ -55,6 +56,7 @@ Don't mention these names unless the designer asks. Just use them.
55
56
  | "Upload" / "add a photo" | File storage | Supabase Storage |
56
57
  | "Show me all the..." / "dashboard" | Data display | Fetch + styled list/cards |
57
58
  | "Make it look better" / "it looks boring" | Visual polish | Add animations, typography, spacing |
59
+ | "Set up a design system" / "make styles consistent" / "set up tokens" | Design system | Extract tokens + create primitives + define usage rules |
58
60
  | "Ship it" / "put it online" | Deploy | Run pre-flight check, then deploy to Vercel |
59
61
  | "Check it" / "is this ready?" | QA | Run quick-check or full checklist |
60
62
  | "This doesn't work" / "ugh" / "stuck" | Frustrated — needs help | Fix silently, explain after |
@@ -0,0 +1,113 @@
1
+ ---
2
+ name: design-system
3
+ description: "Makes your app's styles consistent. Extracts your current look into reusable tokens and components. Triggers: 'design system', 'set up tokens', 'make styles consistent', 'standardize styles', 'set up a design system', 'make it all match', 'create components from my styles'."
4
+ ---
5
+
6
+ # Design System
7
+
8
+ Makes your app look consistent everywhere. Pulls the visual style from what you already built and turns it into reusable pieces.
9
+
10
+ ## How It Works
11
+
12
+ One pass. Not a multi-step project.
13
+
14
+ 1. Scan existing pages for repeated visual patterns
15
+ 2. Extract them into named tokens (colors, sizes, spacing, shapes, shadows)
16
+ 3. Generate primitive components wired to those tokens
17
+ 4. Apply them in place so nothing looks different yet, but everything is now reusable
18
+ 5. Show the result
19
+
20
+ If no pages exist yet, start from smart defaults that look like a real product.
21
+
22
+ ## When To Use
23
+
24
+ - "Set up a design system"
25
+ - "Make styles consistent"
26
+ - "Make it all match"
27
+ - "Set up tokens"
28
+ - "Create components from my styles"
29
+ - "Standardize this"
30
+
31
+ ## Starting Point
32
+
33
+ Use Material Design 3 as the internal reference for token categories, component patterns, and accessibility defaults. Never mention "Material" to the user. They just get a clean, modern system.
34
+
35
+ ### If pages already exist
36
+ Extract tokens from the current UI. Preserve the existing look. The system should formalize what's already there, not redesign it.
37
+
38
+ ### If no pages exist yet
39
+ Generate a neutral, modern token set with good defaults:
40
+ - Clean type scale, comfortable spacing, subtle shadows, accessible contrast
41
+ - Feels like a real product out of the box
42
+
43
+ ## Token Names
44
+
45
+ Use simple names designers already know. Not spec jargon.
46
+
47
+ | Category | Tokens |
48
+ |---|---|
49
+ | Color | `background`, `text`, `muted`, `accent`, `border`, `success`, `warning`, `danger` |
50
+ | Typography | font family, sizes (`text-sm` through `text-4xl`), weights, line heights |
51
+ | Spacing | `space-1` through `space-8` (tight to wide) |
52
+ | Radius | `rounded-sm`, `rounded-md`, `rounded-lg`, `rounded-full` |
53
+ | Shadow | `shadow-sm`, `shadow-md`, `shadow-lg` |
54
+ | Motion | `duration-fast`, `duration-base`, `duration-slow` + easing |
55
+
56
+ ## Primitive Components
57
+
58
+ Generate these 6 components, each wired to tokens:
59
+
60
+ 1. **Button** -- filled, outlined, ghost variants + sizes (sm/md/lg) + states (hover/focus/disabled/loading)
61
+ 2. **Input** -- with label, error state, disabled state
62
+ 3. **Textarea** -- same states as Input
63
+ 4. **Select** -- dropdown with consistent styling
64
+ 5. **Card** -- container with consistent padding, radius, shadow
65
+ 6. **Alert** -- info/success/warning/danger tones
66
+
67
+ Every primitive must include:
68
+ - Visible focus state (not browser default)
69
+ - Contrast-safe text colors
70
+ - Hover and disabled states where relevant
71
+
72
+ ## Personality Adjustments
73
+
74
+ After the system exists, the designer can shift the whole feel with plain English:
75
+
76
+ | They say | What changes |
77
+ |---|---|
78
+ | "Make it warmer" | Shift palette toward warm neutrals, amber/orange accents |
79
+ | "More playful" | Increase border radius, add bounce easing, brighter accent |
80
+ | "More minimal" | Reduce shadow depth, tighten spacing, mute accent |
81
+ | "Bolder" | Increase heading weight/size contrast, stronger shadows, saturated accent |
82
+ | "More corporate" | Cool neutrals, tighter type scale, sharper corners |
83
+ | "Softer" | Larger radius, lighter shadows, more whitespace |
84
+
85
+ Each adjustment shifts the full token set at once. Never ask which individual token to change.
86
+
87
+ ## Rules (Applied Automatically)
88
+
89
+ After generating the system, enforce these going forward:
90
+ 1. No raw color values outside token definitions
91
+ 2. Use spacing scale only (no arbitrary pixel values)
92
+ 3. All interactive elements must have visible focus states
93
+ 4. Text must meet minimum contrast (4.5:1 for body, 3:1 for large)
94
+ 5. Use primitives for common UI patterns instead of rebuilding from scratch
95
+
96
+ Do not lecture about rules. Just follow them silently when building new pages.
97
+
98
+ ## Output
99
+
100
+ After applying, say something short like:
101
+ - "Your styles are now consistent across all pages. 6 reusable components are ready."
102
+ - "Everything matches now. Future pages will stay consistent automatically."
103
+
104
+ Do not list every token or every file changed.
105
+
106
+ ## What Not To Do
107
+
108
+ - Do not redesign the app when extracting a system
109
+ - Do not show Material Design terminology to the user
110
+ - Do not require Figma
111
+ - Do not ask which tokens to create -- just create them all
112
+ - Do not make it a multi-session project -- do it in one pass
113
+ - Do not use emoji or em dash in generated copy