design-loop

SKILL.md

Design Loop Skill

Purpose: Iteratively refine visual design by implementing changes, capturing screenshots, using vision to examine them yourself, and making informed refinements. The loop continues autonomously until the design achieves the intended vision. You do not wait for the user between iterations.

Two modes:

  • Fine-tuning (refinement): Incremental improvements within existing aesthetic direction
  • Nuclear: Radical departure, throw away existing design and start fresh

CRITICAL: This is a system of three skills used together:

  • web-design: Provides aesthetic vision, token system, layout patterns
  • screenshot: Provides capture procedure
  • design-loop (this skill): Orchestrates autonomous iteration using vision

You must load all three skills when doing design work.


The Loop

┌─────────────────────────────────────────────────────────┐
│                                                         │
│   VISION ──────► IMPLEMENT ──────► CAPTURE              │
│     ▲                                  │                │
│     │                                  ▼                │
│     │                                SEE                │
│     │                                  │                │
│     │                                  ▼                │
│   REFINE ◄──────────────────────── ASSESS               │
│                                                         │
│   NUCLEAR ◄──── Radical departure if derivative         │
│                                                         │
└─────────────────────────────────────────────────────────┘
Step Action
VISION Define or refine the aesthetic intention (see web-design skill)
IMPLEMENT Write code using semantic tokens
CAPTURE Screenshot the result (see screenshot skill)
SEE Actually look at the screenshot with vision capability
ASSESS What works? What doesn't? What's missing?
FINE-TUNE Adjust vision or implementation within existing direction, return to IMPLEMENT
NUCLEAR Throw it all away and start fresh if it's derivative

Exit when: The visual matches the intention, or the design achieves a quality that surprises even you.


Nuclear Option: Starting Fresh

Trigger the nuclear option when:

  • The design feels derivative or safe
  • Fine-tuning/incremental changes aren't creating distinctiveness
  • You're tweaking instead of reimagining
  • The user explicitly asks for "nuclear" or "from scratch"
  • The user explicitly asks for "nuclear", "from scratch", or "radical departure"

User synonyms recognized:

  • "Go nuclear" / "nuclear option"
  • "Start fresh" / "from scratch" / "clean slate"
  • "Radical departure" / "radical redesign"
  • "Fine-tune" / "refine" / "polish" / "tweak" (for incremental mode)
  • You see the design and think "this could be any blog"

Nuclear procedure:

  1. Acknowledge the reset - "This needs a radical departure, not fine-tuning."
  2. Choose a completely different aesthetic from web-design palette
  3. Ignore existing layout - Don't look at current code for "inspiration"
  4. Implement bold vision - Typography, layout, color all change
  5. Capture and assess - Did we break free of the derivative trap?

Example triggers:

  • User: "This feels too safe, go nuclear"
  • User: "Start fresh, ignore what we have"
  • You assess: "This is incrementally better but still generic"

Why This Matters

Code is not design. CSS properties are not aesthetics. The only way to know if a design works is to see it with your vision capability.

Without Vision With Vision (You Looking)
Guessing at spacing values You see the spacing is too tight
Hoping colors work together You notice the accent color gets lost
Imagining animations You feel the animation is too fast
Assuming typography reads well You read the text and sense rhythm

Vision transforms design from speculation to craft. You have vision. Use it to iterate autonomously.


Procedure

Setup

Ensure the dev server is running:

bun run dev --host 0.0.0.0 &
sleep 5
# Note the port from output (4321 or 4322)

The Loop (Autonomous)

IMPORTANT: Execute iterations continuously without waiting for user feedback. The loop is autonomous.

1. Implement

Make changes using semantic tokens. Reference web-design skill for:

  • Token quick reference
  • Layout patterns
  • Component templates

2. Capture

Take a screenshot using screenshot skill procedure:

cat << 'EOF' | bun run -
import puppeteer from 'puppeteer';

const browser = await puppeteer.launch({
  headless: true,
  args: ['--no-sandbox', '--disable-setuid-sandbox']
});

const page = await browser.newPage();
await page.setViewport({ width: 1280, height: 800 });
await page.goto('http://localhost:4322/', { waitUntil: 'networkidle0' });

const path = `/tmp/aiandi-iteration-N.png`;
await page.screenshot({ path, fullPage: true });

await browser.close();
console.log(path);
EOF

3. See (You, Using Vision)

Read the screenshot yourself with the Read tool. The image will be provided to you.

Actually look at it with your vision capability. Not a glance - a studied examination. The user does not need to see it; you are the designer examining your work.

4. Assess (You, Analyzing What You See)

You examine the screenshot and assess:

Composition

  • Does the eye flow naturally?
  • Is there clear hierarchy?
  • Does negative space breathe or suffocate?
  • Are elements aligned with intention?

Typography

  • Is the text readable at this size?
  • Does the line length feel comfortable?
  • Is there rhythm in the spacing?
  • Do the fonts have character or feel generic?

Color

  • Do the colors create the intended mood?
  • Is there enough contrast?
  • Does the accent color earn its attention?
  • Is the palette cohesive?

Details

  • Are borders and shadows serving a purpose?
  • Do interactive elements look interactive?
  • Is there consistency in radii, spacing, weights?
  • What feels unfinished?

Gut Check

  • Is this distinctive or generic?
  • Would someone remember this?
  • Does it have a point of view?
  • Am I proud of this?

5. Refine (You Decide Next Steps)

Based on what you saw:

Decision When
Continue fine-tuning You see improvements to make within current direction - return to step 1
Adjust vision Seeing it revealed something new about the intent
Zoom in Focus on fine-tuning a specific element
Zoom out Reassess overall composition
Stop iterating Visual matches intention or diminishing returns
Go nuclear Design feels derivative, needs radical departure

If continuing: Return to step 1 immediately. Do not wait for user. If stopping: Document final state and clean up screenshots.

Completion (You Decide)

You stop iterating when:

  • The visual matches the intention (based on what you see)
  • The design achieves unexpected quality (surprises even you)
  • Further fine-tuning yields diminishing returns (changes aren't improving it)

Do not wait for the user to tell you to continue. The loop is autonomous.

Clean up when done:

rm /tmp/aiandi-*.png

Common Issues Revealed by Vision

Symptom Likely Cause Fix
Feels cramped Spacing too tight Increase padding, margins
Feels empty Too much negative space Tighten spacing or add content
No hierarchy Similar sizes/weights Increase contrast between levels
Eye wanders No focal point Strengthen the primary element
Feels generic Safe choices Commit to bolder direction
Colors clash Wrong relationships Adjust hues or reduce saturation
Text hard to read Contrast or size Increase contrast, adjust size
Unbalanced Visual weight off Redistribute elements
Unfinished Missing details Add borders, shadows, states

Quick Tests

The Squint Test

Squint at the screenshot (blur it mentally):

  • Clear shapes and hierarchy = good structure
  • Muddy blob = needs more contrast
  • One dominant element = clear focal point
  • Everything equal = no hierarchy

The 5-Second Test

Look for 5 seconds, look away. What do you remember?

  • Specific elements = those are working
  • Nothing specific = lacks distinctiveness
  • Wrong things = hierarchy is off

Example Sessions

Example 1: Fine-Tuning Mode (Incremental Refinement)

LOOP 1:
- Implement: Create hero section with large heading
- Capture: Screenshot home page
- See: Heading feels lost, not commanding enough
- Assess: Font weight too light, spacing below too tight
- Fine-tune: Increase font weight, add more bottom margin

LOOP 2:
- Implement: Bold heading, generous spacing
- Capture: Screenshot
- See: Better hierarchy, but accent color doesn't pop
- Assess: Amber on dark gray needs more saturation
- Fine-tune: Adjust accent color in theme

LOOP 3:
- Implement: Brighter accent color
- Capture: Screenshot
- See: Accent pops now, but feels disconnected
- Assess: Need to echo accent elsewhere for cohesion
- Fine-tune: Add accent border to cards section

LOOP 4:
- Implement: Accent border on cards
- Capture: Screenshot
- See: Cohesive! Accent creates visual thread. Cards inviting.
- Assess: Ready. Clear hierarchy, distinctive color, rhythm.
- Complete: Clean up, commit changes.

Example 2: Nuclear Option (Radical Departure)

LOOP 1:
- Implement: Standard centered hero, card grid below
- Capture: Screenshot
- See: This is... fine. Professional. Forgettable.
- Assess: Every tech blog looks like this. NUCLEAR OPTION.

NUCLEAR RESET:
- Vision: Punk zine meets scientific journal
- Implement: 
  * Asymmetric layout - hero pushed hard left
  * Massive monospace headline (terminal aesthetic)
  * Remove all color except single accent on links
  * Add diagonal borders, angles instead of cards
  * Make typography uncomfortably large

LOOP 2:
- Capture: Screenshot
- See: Whoa. Aggressive. Memorable. Polarizing?
- Assess: TOO aggressive. Need some warmth back.
- Fine-tune: Add subtle warmth to background, soften one edge

LOOP 3:
- Capture: Screenshot
- See: Yes! Distinctive without being hostile.
- Assess: Would remember this. Has a point of view.
- Complete: This breaks the mold while staying accessible.

Example 3: Recognizing Derivative Work

LOOP 1:
- Implement: Clean dark mode, amber accents, generous spacing
- Capture: Screenshot
- See: Nice! Professional! Like... every other dark mode blog?
- Assess: STOP. This is derivative. What's the actual vision here?

RETHINK:
- Not "dark mode blog" - that's a template
- Not "warm accents" - that's safe
- What's ACTUALLY distinctive about this content?
  * Ancient patterns in new tools
  * Recursive collaboration
  * Workbench, not portfolio

NEW VISION: Museum placard meets lab notebook
- White/cream dominant (invert the dark mode expectation)
- Monochrome except red for "danger/important"
- Grid system visible as subtle lines
- Typography: mix of clinical sans + handwritten annotations
- Cards become "specimens" with catalog numbers

LOOP 2:
- Implement: Complete visual inversion
- Capture: Screenshot
- See: COMPLETELY different. Unexpected. Museum-like precision.
- Assess: This matches the "workbench" vision better than dark mode ever did.

The Mindset

You are not debugging. You are designing.

Each loop is fine-tuning toward aesthetic vision, not bug fixing. The screenshot is a canvas for your evaluation, not a test result.

Trust your vision. You can see what code cannot express:

  • Rhythm
  • Balance
  • Tension
  • Harmony
  • Character

You have vision. Use it. Iterate autonomously until you're satisfied with what you see.

The code is the instrument. The screenshot is the music. Your vision is the ear.


When to Use

  • Creating new pages or components
  • Fine-tuning existing designs
  • Implementing theme changes
  • Responsive design verification
  • Before committing visual changes
  • When something "feels off" but you can't articulate why
  • Nuclear option when design feels derivative

The Three-Skill System

Always use these skills together for design work:

Skill Provides When to Load
web-design Aesthetic vision, token system, layout patterns, anti-patterns Always (foundation)
screenshot Capture procedure, viewport options, troubleshooting Always (seeing tool)
design-loop Autonomous iteration orchestration Always (the process)

Load all three at the start of design sessions.


The Standard

You decide a design is complete when:

  • It has a clear point of view (you see it)
  • Every element serves the whole (you verify it)
  • The details reward close inspection (you examine it)
  • You would be proud to show it (you judge it)

If you haven't looked at it with your vision, you haven't designed it.

Don't ask the user if you should continue. Look, assess, and decide yourself.


See what you build. Build what you see.

Weekly Installs
2
First Seen
Jan 26, 2026
Installed on
mcpjam2
claude-code2
windsurf2
zencoder2
crush2
cline2