agentsclimarketplace

Distil

Skill slamb2k/mad-skills/skills/distil

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.From its SKILL.md

Install
npx -y skills add slamb2k/mad-skills --skill distil

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 5 stars5 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

12.9 KB, as published. Nobody here has run it

Distil - Design Variation Generator

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, including the diagonal / glyph before the name.

{tagline}

       /$$ /$$$$$$$  /$$$$$$  /$$$$$$  /$$$$$$$$ /$$$$$$ /$$      
      /$$/| $$__  $$|_  $$_/ /$$__  $$|__  $$__/|_  $$_/| $$      
     /$$/ | $$  \ $$  | $$  | $$  \__/   | $$     | $$  | $$      
    /$$/  | $$  | $$  | $$  |  $$$$$$    | $$     | $$  | $$      
   /$$/   | $$  | $$  | $$   \____  $$   | $$     | $$  | $$      
  /$$/    | $$  | $$  | $$   /$$  \ $$   | $$     | $$  | $$      
 /$$/     | $$$$$$$/ /$$$$$$|  $$$$$$/   | $$    /$$$$$$| $$$$$$$$
|__/      |_______/ |______/ \______/    |__/   |______/|________/

Taglines:

  • πŸ”₯ Heating up the column...
  • πŸ§ͺ Fractioning the design space!
  • πŸ’Ž Condensing pure creativity!
  • πŸ”¬ Separating signal from noise!
  • βš—οΈ Extracting the essence!
  • πŸ”„ Refining through iteration!
  • ✨ Distilling N variations of brilliance!
  • 🎨 From crude concept to pure design!

Output Formatting

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.

Arguments

Parse the following from the skill invocation:

  • count (required): Number of designs to create (e.g., 5)
  • --spec (optional): Path to a file containing site specification
  • --url (optional): URL to existing site to review for context
  • --port (required): Port for the Vite dev server
  • --favorites (optional): Comma-separated list of design numbers for iteration mode

Examples

/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.


Pre-flight

Before starting, check all dependencies in this table:

DependencyTypeCheckRequiredResolutionDetail
npmclinpm --versionyesstophttps://bun.sh or use npm
bencium-innovative-ux-designerskill~/.claude/skills/bencium-innovative-ux-designer/SKILL.mdnoasknpx skills add bencium/bencium-claude-code-design-skill@bencium-innovative-ux-designer -g -y
web-animation-designskill~/.claude/skills/web-animation-design/SKILL.mdnoasknpx skills add connorads/dotfiles@web-animation-design -g -y
design-systemskill~/.claude/skills/design-system/SKILL.mdnoasknpx skills add lobbi-docs/claude@design-system -g -y

For each row, in order:

  1. Run the Check command (for cli/npm) or test file existence (for agent/skill)
  2. If found: continue silently
  3. If missing: apply Resolution strategy
    • stop: notify user with Detail, halt execution
    • url: notify user with Detail (install link), halt execution
    • install: notify user, run the command in Detail, continue if successful
    • ask: notify user, offer to run command in Detail, continue either way (or halt if required)
    • fallback: notify user with Detail, continue with degraded behavior
  4. After all checks: summarize what's available and what's degraded

Site Specification

The specification can be provided via:

  1. --spec flag: Read the file at the provided path
  2. Pasted text: Check conversation for a description of the site
  3. --url flag: Use WebFetch to analyze an existing site

If no specification is found, ask the user before proceeding.


Step 1: Load Site Specification

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).

Step 2: Reconnaissance (launch in parallel)

Launch two subagents in parallel to gather context without bloating the primary agent.

2a: Verify Design Skills

Design skill availability is checked in the Pre-flight section above. Use the results from pre-flight to populate SKILL_REPORT:

  • For each design skill: name, installed (yes/no)
  • If any skill was missing and the user declined to install, note it as unavailable

2b: Scan Existing Project

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."
)

Parse Recon Results

From SKILL_REPORT: Gate on missing skills before proceeding. From PROJECT_REPORT:

  • If project_exists: set START_INDEX = highest_number + 1, skip Step 3
  • If not: set START_INDEX = 1, proceed to Step 3

Step 3: Initialize Project

Skip this step if an existing project was detected in Step 2b.

Launch general-purpose subagent (bash) (haiku) to set up the project:

Task(
  subagent_type: "general-purpose",
  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).

Step 4: Create Designs via Subagent

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.

Step 5: Start Dev Server

Launch as a background Bash to avoid blocking the primary agent:

Task(
  subagent_type: "general-purpose",
  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.

Step 6: Present Designs

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
β”‚
└─────────────────────────────────────────────────

Context Protection Summary

StepAgentModelWhy
1: Load specPrimaryβ€”Small file, needed for subagent prompt
2a: Skill checkExplorehaikuAvoids reading 2000+ lines of skill content
2b: Project scanExplorehaikuAvoids reading existing design files
3: Init projectBashhaikuShell commands only
4: Create designsgeneral-purposedefaultHeavy lifting: reads skills, writes files
5: Dev serverBash (background)β€”Non-blocking, no output in primary
6: PresentPrimaryβ€”User-facing, uses compact DESIGN_REPORT

Troubleshooting

  • If package manager commands fail, try the next in the fallback chain
  • If port is in use, suggest killing the process or using a different port
  • If design imports fail, check file naming consistency
  • If no site spec is found, always ask the user before proceeding
  • If a design skill is missing, offer to install it before proceeding
  • If the subagent fails, check error details and retry with adjusted parameters

Keep looking

Skills are one crate of 627,801. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.