vibe-ship-it 1.2.0 → 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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 sso-ss
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
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..." |
@@ -117,7 +118,7 @@ No enforced order. Build page 3 before page 1. Add login after 5 pages. Start wh
117
118
  investigator.agent.md ← Deep debugging
118
119
 
119
120
  CLAUDE.md ← Claude Code persona
120
- AGENTS.md ← OpenAI Codex persona
121
+ AGENTS.md ← OpenAI Codex persona (installed via npx init)
121
122
 
122
123
  .claude/commands/ ← Claude Code shortcuts
123
124
  check.md ← /check
@@ -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"')
@@ -109,7 +109,7 @@ if (command === 'init') {
109
109
  console.log('')
110
110
  } else {
111
111
  console.log('')
112
- console.log(' 🚀 just-ship-it — AI skill pack for designers who vibe-code')
112
+ console.log(' 🚀 vibe-ship-it — AI skill pack for designers who vibe-code')
113
113
  console.log('')
114
114
  console.log(' ┌─────────────────────────────────────────────────────────┐')
115
115
  console.log(' │ │')
@@ -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 │')
@@ -137,17 +137,17 @@ if (command === 'init') {
137
137
  console.log(' │ "Check it" → quick-check │')
138
138
  console.log(' │ "Is this production ready" → before-you-ship │')
139
139
  console.log(' │ │')
140
- console.log(' │ 5 COMMANDS (Claude Code) │')
140
+ console.log(' │ 6 COMMANDS (Claude Code) │')
141
141
  console.log(' │ │')
142
142
  console.log(' │ /check /ship /wow /stuck /save /explain │')
143
143
  console.log(' │ │')
144
144
  console.log(' └─────────────────────────────────────────────────────────┘')
145
145
  console.log('')
146
146
  console.log(' Usage:')
147
- console.log(' npx just-ship-it init Install into current project')
148
- console.log(' npx just-ship-it remove Remove from current project')
147
+ console.log(' npx vibe-ship-it init Install into current project')
148
+ console.log(' npx vibe-ship-it remove Remove from current project')
149
149
  console.log('')
150
- console.log(' Works with VS Code Copilot and Claude Code.')
150
+ console.log(' Works with VS Code Copilot, Claude Code, and OpenAI Codex.')
151
151
  console.log('')
152
152
  }
153
153
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vibe-ship-it",
3
- "version": "1.2.0",
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