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 +21 -0
- package/README.md +4 -2
- package/bin/init.js +7 -7
- package/package.json +1 -1
- package/template/AGENTS.md +2 -0
- package/template/CLAUDE.md +2 -0
- package/template/_github/copilot-instructions.md +2 -0
- package/template/skills/design-system/SKILL.md +113 -0
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
|
-
###
|
|
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('
|
|
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(' 🚀
|
|
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(' │
|
|
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(' │
|
|
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
|
|
148
|
-
console.log(' npx
|
|
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
|
|
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
package/template/AGENTS.md
CHANGED
|
@@ -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 |
|
package/template/CLAUDE.md
CHANGED
|
@@ -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
|