skills/distil/SKILL.md
Generate multiple unique web design variations for any website or web application. Accepts site specifications from a file (--spec path) or pasted text block. Creates a Vite + React + TypeScript + Tailwind project with Bun and produces N different creative designs accessible at /1, /2, /3, etc. Use when prototyping or exploring design directions for any web interface.
npx skillsauth add slamb2k/mad-skills distilInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
When this skill is invoked, IMMEDIATELY output the banner below before doing anything else. Pick ONE tagline at random — vary your choice each time. CRITICAL: Reproduce the banner EXACTLY character-for-character. The first line of the art has 4 leading spaces — you MUST preserve them.
{tagline}
⠀ ██╗██████╗ ██╗███████╗████████╗██╗██╗
██╔╝██╔══██╗██║██╔════╝╚══██╔══╝██║██║
██╔╝ ██║ ██║██║███████╗ ██║ ██║██║
██╔╝ ██║ ██║██║╚════██║ ██║ ██║██║
██╔╝ ██████╔╝██║███████║ ██║ ██║███████╗
╚═╝ ╚═════╝ ╚═╝╚══════╝ ╚═╝ ╚═╝╚══════╝
Taglines:
After the banner, display parsed input:
┌─ Input ────────────────────────────────────────
│ {Field}: {value}
│ Flags: {parsed flags or "none"}
└────────────────────────────────────────────────
Pre-flight results:
── Pre-flight ───────────────────────────────────
✅ {dep} {version or "found"}
⚠️ {dep} not found → {fallback detail}
❌ {dep} missing → stopping
──────────────────────────────────────────────────
Stage/phase headers: ━━ {N} · {Name} ━━━━━━━━━━━━━━━━━━━━━━━━━
Status icons: ✅ done · ❌ failed · ⚠️ degraded · ⏳ working · ⏭️ skipped
Generate multiple unique, creative web interface designs for any website or web application. The primary agent acts as a thin orchestrator — all heavy reading and file creation is delegated to subagents to protect the primary context window.
Parse the following from the skill invocation:
/distil 5 --spec ./site-spec.md --port 5173
/distil 3 --favorites 2,4 --port 5173
If --favorites is provided, follow references/iteration-mode.md instead
of the steps below.
Before starting, check all dependencies in this table:
| Dependency | Type | Check | Required | Resolution | Detail |
|-----------|------|-------|----------|------------|--------|
| npm | cli | npm --version | yes | stop | https://bun.sh or use npm |
| bencium-innovative-ux-designer | skill | ~/.claude/skills/bencium-innovative-ux-designer/SKILL.md | no | ask | npx skills add bencium/bencium-claude-code-design-skill@bencium-innovative-ux-designer -g -y |
| web-animation-design | skill | ~/.claude/skills/web-animation-design/SKILL.md | no | ask | npx skills add connorads/dotfiles@web-animation-design -g -y |
| design-system | skill | ~/.claude/skills/design-system/SKILL.md | no | ask | npx skills add lobbi-docs/claude@design-system -g -y |
For each row, in order:
The specification can be provided via:
If no specification is found, ask the user before proceeding.
Parse and store the site context for use when generating each design. This is the only file the primary agent reads directly (specs are typically small).
Launch two subagents in parallel to gather context without bloating the primary agent.
Design skill availability is checked in the Pre-flight section above. Use the results from pre-flight to populate SKILL_REPORT:
Task(
subagent_type: "Explore",
model: "haiku",
description: "Scan existing design project",
prompt: "Check if src/designs/ directory exists. If it does:
1. List all DesignN.tsx files (glob for src/designs/Design*.tsx)
2. For each file, read ONLY the first 10 lines to extract the
metadata comment (style name, key traits)
3. Determine the highest design number
Return PROJECT_REPORT (max 20 lines):
- project_exists: true/false
- package_manager: detected from lockfile (bun.lockb/pnpm-lock/yarn.lock/package-lock)
- design_count: N
- highest_number: N
- designs: list of (number, style_name) pairs
If no src/designs/ directory, return project_exists: false."
)
From SKILL_REPORT: Gate on missing skills before proceeding. From PROJECT_REPORT:
project_exists: set START_INDEX = highest_number + 1, skip Step 3START_INDEX = 1, proceed to Step 3Skip this step if an existing project was detected in Step 2b.
Launch Bash subagent (haiku) to set up the project:
Task(
subagent_type: "Bash",
model: "haiku",
description: "Initialize distil project",
prompt: "Follow the project setup instructions:
1. Detect package manager (bun -> pnpm -> yarn -> npm)
2. Create Vite React-TS project
3. Install dependencies: tailwindcss, postcss, autoprefixer,
react-router-dom, lucide-react
4. Configure Tailwind (content paths, index.css directives)
5. Copy {skill_dir}/assets/DesignNav.tsx to src/components/DesignNav.tsx
Return SETUP_REPORT (max 10 lines): status, package_manager, errors."
)
Parse SETUP_REPORT. If setup fails, fall back through the package manager chain (bun -> pnpm -> yarn -> npm).
Launch a general-purpose subagent to create all new designs.
CRITICAL: The subagent reads skill files and design guides directly. Do NOT read them in the primary agent — pass file paths only.
Task(
subagent_type: "general-purpose",
description: "Create design variations",
prompt: "
You are creating {COUNT} new web design variations for a distil project.
## Site Specification
{SITE_SPEC from Step 1}
## Design Knowledge — Read These Files
Load design principles and the 50+ style catalog from these skill files:
- ~/.claude/skills/bencium-innovative-ux-designer/SKILL.md
- ~/.claude/skills/bencium-innovative-ux-designer/MOTION-SPEC.md
- ~/.claude/skills/web-animation-design/SKILL.md
- ~/.claude/skills/design-system/SKILL.md
- ~/.claude/skills/design-system/references/style-guide.md
Also read the project design guide:
- {skill_dir}/references/design-guide.md
## Existing Designs (avoid these styles)
{Compact list from PROJECT_REPORT: number + style_name pairs,
or 'None — fresh project'}
## Task
Create designs numbered {START_INDEX} through {START_INDEX + COUNT - 1}.
For each design, create `src/designs/Design{N}.tsx`:
- Pick a DISTINCT style from the 50+ style catalog in the design-system skill
- Do NOT reuse styles already used by existing designs
- Apply the site specification to all content and sections
- Follow anti-AI-slop rules strictly (no Inter, no default blue, no cookie-cutter layouts)
- Include purposeful animations with proper easing
- Each design must be self-contained in a single file
- Import and render DesignNav from '../components/DesignNav'
After creating all designs, update:
1. `src/App.tsx` — Add import and route for EVERY design (existing + new)
2. Each design file's DesignNav `designs` array — Include ALL designs (existing + new)
## Design File Requirements
Each design file must have:
- A metadata comment at the top: style name, key visual traits, color palette
- Import DesignNav from '../components/DesignNav'
- A `designs` array listing ALL designs (existing + new) with id and name
- ALL sections from the site specification with realistic content
- Custom color palette (not default Tailwind)
- Animations with proper easing (ease-out for entrances, ease-in-out for movement)
- Responsive layout (mobile-first)
- Lucide React icons for iconography
## App.tsx Requirements
The App.tsx must:
- Import ALL design components (existing + new)
- Have a route for each: <Route path='/{N}' element={<DesignN />} />
- Default route redirects to /1
Return DESIGN_REPORT (max 30 lines):
- List each design created: number, style name, key visual traits
- Total design count (existing + new)
- Files created and modified
- Any issues encountered
"
)
Parse DESIGN_REPORT. If any design failed, report the error and offer retry.
Launch as a background Bash to avoid blocking the primary agent:
Task(
subagent_type: "Bash",
run_in_background: true,
description: "Start Vite dev server",
prompt: "{package_manager} run dev --port {PORT}"
)
If the dev server is already running, HMR should pick up the new files automatically — skip this step.
Present the final summary:
┌─ Distil · Report ──────────────────────────────
│
│ ✅ Distil complete — {N} designs generated
│
│ 🌐 Server: http://localhost:{PORT}
│
│ 🎨 Designs
│ /1 {style name} — {key visual traits}
│ /2 {style name} — {key visual traits}
│ /3 {style name} — {key visual traits}
│ {mark new vs existing}
│
│ 📊 Total: {total designs} ({new} new + {existing} existing)
│
│ ⚡ Next steps
│ 1. Browse designs at http://localhost:{PORT}/1
│ 2. Use --favorites 1,3 to iterate on selected designs
│
└─────────────────────────────────────────────────
| Step | Agent | Model | Why | |---|---|---|---| | 1: Load spec | Primary | — | Small file, needed for subagent prompt | | 2a: Skill check | Explore | haiku | Avoids reading 2000+ lines of skill content | | 2b: Project scan | Explore | haiku | Avoids reading existing design files | | 3: Init project | Bash | haiku | Shell commands only | | 4: Create designs | general-purpose | default | Heavy lifting: reads skills, writes files | | 5: Dev server | Bash (background) | — | Non-blocking, no output in primary | | 6: Present | Primary | — | User-facing, uses compact DESIGN_REPORT |
testing
Run the full OMC idea-to-merged-PR pipeline — cancel + deep-interview + ralplan + autopilot + mad-skills:ship — in a single invocation. Explicit-only; this skill never auto-activates. Only run when the user literally types /launch. Do not invoke on phrases like "launch this", "ship it", "full pipeline", or similar — none of those should trigger this skill.
testing
Ship changes through the full PR lifecycle. Use after completing feature work to commit, push, create PR, wait for checks, and merge. Handles the entire workflow: syncs with main, creates feature branch if needed, groups commits logically with semantic messages, creates detailed PR, monitors CI, fixes issues, squash merges, and cleans up. Invoke when work is ready to ship.
development
Generate container-based release pipelines that build once and promote immutable artifacts through environments (dev → staging → prod). Detects your stack, interviews for infrastructure choices, then outputs deterministic CI/CD files (Dockerfile, workflows, deployment manifests) that run without an LLM. Use when setting up deployment pipelines, containerizing an app, creating release workflows, or connecting CI to container-friendly infrastructure (Azure Container Apps, AWS Fargate, Google Cloud Run, Kubernetes, Dokku, Coolify, CapRover, etc.).
development
Initialize any project directory with a standard scaffold for AI-assisted development. Creates specs/ and context/ directories, a project CLAUDE.md with development workflow and guardrails, .gitignore, and branch protection. Recommends claude-mem for persistent memory. Idempotent — safe to run on existing projects. Triggers: "init project", "setup brace", "brace", "initialize", "bootstrap", "scaffold".