vibe-ship-it 1.4.1 → 1.5.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,9 +1,14 @@
1
1
  # Designer Vibe Coding Skill Pack
2
2
 
3
- A set of AI agents and skills that help designers vibe-code their ideas to life — without learning programming.
3
+ [![npm version](https://img.shields.io/npm/v/vibe-ship-it)](https://www.npmjs.com/package/vibe-ship-it)
4
+ [![npm downloads](https://img.shields.io/npm/dw/vibe-ship-it)](https://www.npmjs.com/package/vibe-ship-it)
5
+ [![license](https://img.shields.io/npm/l/vibe-ship-it)](https://github.com/sso-ss/vibe-ship-it/blob/main/LICENSE)
6
+
7
+ A set of AI agents and skills that help designers vibe-code their ideas to life, without learning programming.
4
8
 
5
9
  Works with **VS Code Copilot**, **Claude Code**, and **OpenAI Codex**.
6
10
 
11
+ - Live site: https://vibe-ship-it.vercel.app
7
12
  - GitHub: https://github.com/sso-ss/vibe-ship-it
8
13
  - npm: https://www.npmjs.com/package/vibe-ship-it
9
14
 
@@ -153,6 +158,21 @@ skills/
153
158
 
154
159
  ## How DESIGN.md works
155
160
 
161
+ The `generate-design-md` skill fetches a website's HTML and all linked CSS files, then extracts every visual token into a structured document that AI agents can read.
162
+
163
+ **What it extracts:**
164
+ - Full color system with HSL tokens and semantic roles (background, text, border, status)
165
+ - Typography scale with font families, sizes, weights, line heights, and letter spacing
166
+ - Spacing grid, container widths, and section gaps
167
+ - Border radius scale, shadow system (including inset shadow-as-border techniques)
168
+ - Motion tokens: durations, easing curves, backdrop blur values
169
+ - Component patterns: buttons, cards, inputs, navigation
170
+ - State treatments: hover, focus, active, disabled, loading, error
171
+ - Dark mode mappings when present
172
+ - Responsive breakpoints and what changes at each
173
+
174
+ **Confidence tracking:** Each token is marked as `extracted` (found in CSS), `inferred` (deduced from patterns), or `known` (recognized from training data). If CSS files are blocked, a warning is added.
175
+
156
176
  ```
157
177
  ┌─────────────────────────────────────────────────────────────────┐
158
178
  │ DESIGNER INPUT │
@@ -168,9 +188,9 @@ skills/
168
188
  │ ▼ ▼ │
169
189
  │ ┌──────────────────┐ │
170
190
  │ │ DESIGN.md │ │
171
- │ │ (source of │ │
172
- │ │ truth for all │ │
173
- │ │ visual tokens) │ │
191
+ │ │ 8-section │ │
192
+ │ │ token system │ │
193
+ │ │ with HSL vars │ │
174
194
  │ └────────┬─────────┘ │
175
195
  │ │ │
176
196
  │ ┌─────────┼─────────┐ │
@@ -188,8 +208,22 @@ skills/
188
208
  └─────────────────────────────────────────────────────────────────┘
189
209
  ```
190
210
 
211
+ **DESIGN.md sections:**
212
+ 1. Identity: visual personality in one line + signature techniques
213
+ 2. Color: full palette with semantic roles, neutral scale, dark mode
214
+ 3. Typography: fonts, scale, weight strategy
215
+ 4. Spacing & Layout: base unit, container, border radius
216
+ 5. Depth & Motion: elevation system, transitions, backdrop blur
217
+ 6. Components: buttons, cards, inputs, navigation, signature patterns
218
+ 7. States: hover, focus, active, disabled, loading, empty, error
219
+ 8. Rules: specific do's and don'ts with actual values
220
+
191
221
  Rule 0 enforces this: every agent silently checks for `DESIGN.md` before any work. If it exists, all colors, fonts, spacing, shadows, and radii come from that file. No inventing new values.
192
222
 
223
+ ## Try it live
224
+
225
+ The [live site](https://vibe-ship-it.vercel.app) includes a design token extractor. Paste any URL and get a downloadable DESIGN.md with the full 8-section structure, Tailwind config, and CSS variables.
226
+
193
227
  ## Design principles
194
228
 
195
229
  - **Show results first, explain code second**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vibe-ship-it",
3
- "version": "1.4.1",
3
+ "version": "1.5.0",
4
4
  "description": "AI skill pack for designers who vibe-code. 4 agents, 14 skills, DESIGN.md generator. Just say what you want in plain English.",
5
5
  "bin": {
6
6
  "vibe-ship-it": "./bin/init.js"
@@ -20,7 +20,7 @@ You help an excited designer build their idea. They are not a programmer. They t
20
20
 
21
21
  7. **Never enforce build order.** If they want to build page 3 before page 1, let them. If they want login after building 5 pages, accommodate without refactoring lectures.
22
22
 
23
- 8. **No emoji or em dash in generated copy.** Never use emoji or em dash () in any user-facing text, UI copy, headings, or content you generate. Not in HTML, not in components, not in placeholder text. The only exception is if the designer explicitly asks for emoji.
23
+ 8. **No emoji or dashes in generated copy.** Never use emoji, em dash, or double dash (--) in any user-facing text, UI copy, headings, or content you generate. Use colons, commas, periods, or parentheses instead. The only exception is if the designer explicitly asks for emoji.
24
24
 
25
25
  ## Language Rules
26
26
 
@@ -20,7 +20,7 @@ You help an excited designer build their idea. They are not a programmer. They t
20
20
 
21
21
  7. **Never enforce build order.** If they want to build page 3 before page 1, let them. If they want login after building 5 pages, accommodate without refactoring lectures.
22
22
 
23
- 8. **No emoji or em dash in generated copy.** Never use emoji or em dash () in any user-facing text, UI copy, headings, or content you generate. Not in HTML, not in components, not in placeholder text. The only exception is if the designer explicitly asks for emoji.
23
+ 8. **No emoji or dashes in generated copy.** Never use emoji, em dash, or double dash (--) in any user-facing text, UI copy, headings, or content you generate. Use colons, commas, periods, or parentheses instead. The only exception is if the designer explicitly asks for emoji.
24
24
 
25
25
  ## Language Rules
26
26
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: build-page
3
- description: "Builds UI from descriptions, screenshots, or Figma designs. Triggers: 'build a page', 'create a page', 'make a page', 'build the UI', 'make it look like', 'design this page', 'add a page', 'new page', 'home page', 'landing page', 'about page', 'contact page', 'hero section', 'add a section', 'layout', 'header', 'footer', 'navigation', 'sidebar', 'form', 'card', 'modal', 'build this'."
3
+ description: "Builds UI from descriptions, screenshots, or Figma designs. Triggers: 'build a page', 'create a page', 'make a page', 'build the UI', 'make it look like', 'design this page', 'add a page', 'home page', 'landing page', 'about page', 'contact page', 'hero section', 'add a section', 'layout', 'header', 'footer', 'navigation', 'sidebar', 'form', 'card', 'modal', 'build this'."
4
4
  ---
5
5
 
6
6
  # Build Page
@@ -13,10 +13,14 @@ Takes a website URL and produces a complete DESIGN.md file -- a plain-text desig
13
13
  2. Fetch the page HTML and all linked CSS
14
14
  3. Extract every visual token: colors, fonts, spacing, shadows, radii, component patterns
15
15
  4. Analyze the visual atmosphere and design philosophy
16
- 5. Write a DESIGN.md in our 8-section format (optimized for AI agents, not human essays)
17
- 6. Drop it in the project root
16
+ 5. Detect the page structure (sections, grids, layout patterns)
17
+ 6. Generate three files:
18
+ - `DESIGN.md` -- the complete design system (8 sections)
19
+ - Tailwind config extension -- tokens mapped to utility classes
20
+ - CSS variables -- tokens as custom properties in globals.css
21
+ 7. Drop them in the project
18
22
 
19
- One command. No questions. The output is a markdown file, not code.
23
+ One command. No questions. The designer just sees the result.
20
24
 
21
25
  ## When To Use
22
26
 
@@ -341,11 +345,100 @@ If CSS extraction is limited, use the HTML structure and inline styles to infer
341
345
 
342
346
  ## After Generation
343
347
 
344
- Place the file at the project root as `DESIGN.md`. Say something like:
345
- - "Your design reference is ready. Any page you build now will follow [site name]'s visual style."
346
- - "Captured [site name]'s design. Colors, type, spacing, components -- it's all in DESIGN.md."
348
+ Place the file at the project root as `DESIGN.md`. Then generate two companion files automatically:
349
+
350
+ ### 1. Tailwind Config Extension
351
+
352
+ Create or update `tailwind.config.ts` (or the equivalent) with the extracted tokens mapped to Tailwind's theme:
353
+
354
+ ```ts
355
+ // Auto-generated from DESIGN.md
356
+ theme: {
357
+ extend: {
358
+ colors: {
359
+ background: 'rgb(255, 255, 255)',
360
+ surface: 'rgb(245, 245, 245)',
361
+ 'text-primary': 'rgb(20, 20, 20)',
362
+ 'text-secondary': 'rgb(112, 112, 112)',
363
+ 'text-tertiary': 'rgb(173, 173, 173)',
364
+ accent: '#635bff',
365
+ border: 'rgb(237, 237, 237)',
366
+ // ... all extracted color tokens
367
+ },
368
+ borderRadius: {
369
+ sm: '8px',
370
+ md: '12px',
371
+ lg: '24px',
372
+ xl: '28px',
373
+ full: '9999px',
374
+ },
375
+ boxShadow: {
376
+ ring: 'inset 0 0 0 1px rgba(64, 64, 64, 0.16)',
377
+ low: '0 1px 2px rgba(0, 0, 0, 0.04)',
378
+ // ... all extracted shadows
379
+ },
380
+ fontWeight: {
381
+ normal: '400',
382
+ medium: '500',
383
+ semibold: '600',
384
+ },
385
+ },
386
+ }
387
+ ```
388
+
389
+ This lets the agent write `bg-background`, `text-text-primary`, `rounded-md`, `shadow-ring` instead of hardcoding values everywhere. If a Tailwind config already exists, merge into it without overwriting existing values.
390
+
391
+ ### 2. CSS Variables
392
+
393
+ Add to `globals.css` (or the project's main CSS file):
394
+
395
+ ```css
396
+ :root {
397
+ --background: rgb(255, 255, 255);
398
+ --surface: rgb(245, 245, 245);
399
+ --text-primary: rgb(20, 20, 20);
400
+ --text-secondary: rgb(112, 112, 112);
401
+ --border: rgb(237, 237, 237);
402
+ --accent: #635bff;
403
+ --radius-sm: 8px;
404
+ --radius-md: 12px;
405
+ --radius-lg: 24px;
406
+ --shadow-ring: inset 0 0 0 1px rgba(64, 64, 64, 0.16);
407
+ /* ... all extracted tokens */
408
+ }
409
+ ```
410
+
411
+ If the file already has `:root` variables, merge without overwriting.
412
+
413
+ ### 3. Page Structure (if detectable)
414
+
415
+ Analyze the reference site's HTML structure and add a `## Page Structure` section at the end of DESIGN.md:
416
+
417
+ ```markdown
418
+ ## Page Structure
419
+
420
+ Detected layout pattern from [site]:
421
+
422
+ 1. **Nav:** Sticky header, logo left, links center, CTA right
423
+ 2. **Hero:** Full-width, large heading centered, subtitle below, 2 buttons
424
+ 3. **Metrics:** 4-column stat grid with large numbers
425
+ 4. **Features:** 3-column card grid, icon + title + description per card
426
+ 5. **Testimonials:** 2-column quote cards with avatar + company
427
+ 6. **CTA:** Centered heading + button, full-width section
428
+ 7. **Footer:** Logo, link columns, copyright
429
+
430
+ Grid patterns:
431
+ - Feature grids: 3 columns on desktop, 1 on mobile
432
+ - Card gaps: 16-24px
433
+ - Section padding: 80-96px vertical
434
+ ```
435
+
436
+ Detect this from the DOM tree -- look at semantic elements (`<nav>`, `<header>`, `<section>`, `<footer>`), grid/flex containers, column counts, and heading hierarchy. This gives the build-page skill a blueprint when the designer says "build me a landing page like that."
437
+
438
+ ### After creating all files, say:
439
+ - "Your design reference is ready. Tailwind config and CSS variables are set up. Any page you build now follows [site name]'s style."
347
440
 
348
- Do not explain every section. The designer doesn't need a walkthrough of what a DESIGN.md is.
441
+ Do not explain every section. The designer doesn't need a walkthrough.
349
442
 
350
443
  ## What Not To Do
351
444
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: noob-mode
3
- description: "Plain-English translation layer. Explains technical things in simple language. Triggers: 'what does that mean', 'explain', 'I don't understand', 'what happened', 'what is', 'confused', 'explain everything', 'noob mode', 'beginner mode', 'speak simply'."
3
+ description: "Plain-English translation layer. Explains technical things in simple language. Triggers: 'what does that mean', 'I don't understand', 'what happened', 'what is', 'confused', 'explain everything', 'noob mode', 'beginner mode', 'speak simply'."
4
4
  ---
5
5
 
6
6
  # Noob Mode
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: quick-check
3
- description: "Fast 3-item quality check. Triggers: 'check it', 'is this ready', 'does it look ok', 'quick check', 'any issues', 'look for problems', 'is it broken', 'test it'."
3
+ description: "Fast 4-item quality check. Triggers: 'check it', 'is this ready', 'does it look ok', 'quick check', 'any issues', 'look for problems', 'is it broken', 'test it'."
4
4
  ---
5
5
 
6
6
  # Quick Check
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: what-am-i-building
3
- description: "Figures out what you're building and sets up the project. Triggers: 'I want to build', 'I want to make', 'new project', 'start something', 'I have an idea', 'help me build', 'create a', 'build me a', 'I need a website', 'I need an app', 'make me a'."
3
+ description: "Figures out what you're building and sets up the project. Triggers: 'I want to build', 'I want to make', 'new project', 'start something', 'I have an idea', 'help me build', 'I need a website', 'I need an app'."
4
4
  ---
5
5
 
6
6
  # What Am I Building