Agent skill

Design Loop

by jezweb in jezweb/claude-skills

Autonomous multi-page site builder using a baton-passing loop.

MITAuto-check: notesFrontend & Design

Install Design Loop

skills CLI
$ npx skills add jezweb/claude-skills --skill design-loop -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install jezweb/claude-skills design-loop --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/jezweb/claude-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/frontend/skills/design-loop .claude/skills/design-loop && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
design-loop
GitHub stars
1.1k
Token cost
~5.2k tokens
SKILL.md length
1,633 words
Files
1
Skills in repo
52
Repo updated
First seen
Licence
MIT

At a glance

Autonomous multi-page site builder using a baton-passing loop.

  • Works in 7 steps: Read the Baton → Consult Context Files → Generate the Page → …
  • The user asks to build an entire site autonomously
  • SKILL.md covers Overview, Generation Backends, Getting Started and The Baton File, plus 8 more sections
  • Calls npm and npx; needs STITCH_API_KEY and STITCH_ACCESS_TOKEN

What it does

Design Loop is an agent skill from jezweb/claude-skills. Autonomous multi-page site builder using a baton-passing loop. Each iteration reads a task from .design/next-prompt.md, generates a page in HTML/Tailwind, integrates it into the site, verifies visually, then writes the next task to keep the loop alive. Use whenever the user asks to build an entire site autonomously, build all pages of a site, generate multiple pages in sequence, or run a 'design loop' / 'baton loop' / 'autonomous site build' — even if they say 'just keep going' or 'build the next page' or 'next…

Its SKILL.md is about 5.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts. Compatibility notes: claude-code-only

It sits in Frontend & Design, covering CSS and styling. It works with Tailwind CSS and Google Stitch. The repository describes itself as: Skills for Claude Code CLI such as full stack dev Cloudflare, React, Tailwind v4, and AI integrations. The licence is MIT.

When your agent uses it

  • The user asks to build an entire site autonomously
  • Build all pages of a site
  • Generate multiple pages in sequence
  • Run a design loop / baton loop / autonomous site build — even if they say just keep going

Example prompts

  • “design loop”
  • “baton loop”
  • “autonomous site build”
  • “/design-loop”

Requirements

  • Node.js
  • A credential in STITCH_API_KEY
  • A credential in STITCH_ACCESS_TOKEN
  • Compatibility (from SKILL.md): claude-code-only
  • Pre-approved tools (allowed-tools): Read, Write, Edit, Glob, Grep, Bash

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Read the Baton
  2. Consult Context Files
  3. Generate the Page
  4. Integrate into the Site
  5. Visual Verification (If Browser Available)
  6. Update Site Documentation
  7. Write the Next Baton (CRITICAL)

What it can do on your machine

Read from SKILL.md and the folder at commit 64965d9. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Write
    • Edit
    • Glob
    • Grep
    • Bash

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • npm
    • npx

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npm and npx, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • STITCH_API_KEY
    • STITCH_ACCESS_TOKEN

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    claude-code-only

    From compatibility in the SKILL.md frontmatter.

Context cost

Design Loop loads about 5.2k tokens when it runs. Until then it costs about 136 tokens; SKILL.md has 1,633 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~136
When it runs · the whole SKILL.md, loaded when a task matches
~5.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Read, Write, Edit, Glob, Grep, Bash

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from jezweb/claude-skills at commit 64965d9, republished under its MIT licence (© jezweb). 1,633 words, ~5,180 tokens.

Download SKILL.mdSave it as .claude/skills/design-loop/SKILL.md (or your agent's skills folder).
name
design-loop
description
Autonomous multi-page site builder using a baton-passing loop. Each iteration reads a task from .design/next-prompt.md, generates a page in HTML/Tailwind, integrates it into the site, verifies visually, then writes the next task to keep the loop alive. Use whenever the user asks to build an entire site autonomously, build all pages of a site, generate multiple pages in sequence, or run a 'design loop' / 'baton loop' / 'autonomous site build' — even if they say 'just keep going' or 'build the next page' or 'next page' mid-flow.
allowed-tools
Read, Write, Edit, Glob, Grep, Bash
compatibility
claude-code-only

Design Loop — Autonomous Site Builder

Build complete multi-page websites through an autonomous loop. Each iteration reads a task, generates a page, integrates it, verifies it visually, then writes the next task to keep going.

Overview

The Design Loop uses a "baton" pattern — a file (.design/next-prompt.md) acts as a relay baton between iterations. Each cycle:

  1. Reads the current task from the baton
  2. Generates the page (via Claude or Google Stitch)
  3. Integrates into the site structure (navigation, links)
  4. Verifies visually via browser automation (if available)
  5. Updates site documentation
  6. Writes the NEXT task to the baton — keeping the loop alive

This is orchestration-agnostic. The loop can be driven by:

  • Human-in-loop: User reviews each page, then says "next" or "keep going"
  • Fully autonomous: Claude runs continuously until the site is complete
  • CI/CD: Triggered on .design/next-prompt.md changes

Generation Backends

BackendSetupQualitySpeedBest for
Claude (default)Zero dependenciesGreat — production-ready HTML/TailwindFastMost projects, full code control
Google Stitchnpm install @google/stitch-sdk + API keyHigher fidelity AI designs~10-20s/screenDesign-heavy projects, visual polish
Detecting Stitch

At the start of each loop, check if Stitch is available:

  1. Check if @google/stitch-sdk is installed: ls node_modules/@google/stitch-sdk 2>/dev/null
  2. Check if STITCH_API_KEY is set in .dev.vars or environment
  3. Check if .design/metadata.json exists (contains Stitch project ID)

If all three are present, use Stitch. Otherwise, fall back to Claude generation.

Stitch SDK Reference

Install: npm install @google/stitch-sdk. Set STITCH_API_KEY in environment or .dev.vars.

typescript
import { stitch } from "@google/stitch-sdk";

// Create a project
const result = await stitch.callTool("create_project", { title: "My Site" });

// Reference an existing project
const project = stitch.project("4044680601076201931");

// Generate a screen
const screen = await project.generate("A modern landing page with hero section", "DESKTOP");

// Get assets
const htmlUrl = await screen.getHtml();    // Download URL for HTML
const imageUrl = await screen.getImage();  // Download URL for screenshot

// Edit an existing screen (prefer this for refinements)
const edited = await screen.edit("Make the background dark and enlarge the CTA button");

// Generate variants
const variants = await screen.variants("Try different colour schemes", {
  variantCount: 3,
  creativeRange: "EXPLORE",     // "REFINE" | "EXPLORE" | "REIMAGINE"
  aspects: ["COLOR_SCHEME"],    // "LAYOUT" | "COLOR_SCHEME" | "IMAGES" | "TEXT_FONT" | "TEXT_CONTENT"
});

Device types: "MOBILE" | "DESKTOP" | "TABLET" | "AGNOSTIC". Model selection: pass "GEMINI_3_PRO" | "GEMINI_3_FLASH" as third arg to generate().

Other operations: stitch.projects() lists projects, project.screens() lists screens, project.getScreen("id") fetches one.

getHtml() and getImage() return download URLs. Append =w1280 to image URLs for full resolution. Auth: STITCH_API_KEY required (or STITCH_ACCESS_TOKEN + GOOGLE_CLOUD_PROJECT for OAuth). Errors throw StitchError with codes: AUTH_FAILED, NOT_FOUND, RATE_LIMITED.

Stitch Project Persistence

Save Stitch identifiers to .design/metadata.json so future iterations can reference them:

json
{
  "projectId": "4044680601076201931",
  "screens": {
    "index": { "screenId": "d7237c7d78f44befa4f60afb17c818c1" },
    "about": { "screenId": "bf6a3fe5c75348e58cf21fc7a9ddeafb" }
  }
}

Stitch integration tips:

  1. Persist project ID in .design/metadata.json — don't create a new project each iteration
  2. Use screen.edit() for refinements rather than full regeneration
  3. Post-process Stitch HTML — replace headers/footers with your shared elements
  4. Include DESIGN.md context in prompts — Stitch generates better results with explicit design system instructions

Getting Started

First Run: Bootstrap the Project

If .design/ doesn't exist yet, create the project scaffolding:

  1. Ask the user for:

    • Site name and purpose
    • Target audience
    • Desired aesthetic (minimal, bold, warm, etc.)
    • List of pages they want
    • Brand colours (or extract from existing site with /design-system)
  2. Create the project files:

project/
├── .design/
│   ├── SITE.md           # Vision, sitemap, roadmap — the project's long-term memory
│   ├── DESIGN.md         # Visual design system — the source of truth for consistency
│   └── next-prompt.md    # The baton — current task with page frontmatter
└── site/
    └── public/           # Production pages live here
  1. Write SITE.md from the template in the "SITE.md Template" section below
  2. Write DESIGN.md — either manually from user input, or use the design-system skill to extract from an existing site
  3. Write the first baton (.design/next-prompt.md) for the homepage
Subsequent Runs: Read the Baton

If .design/next-prompt.md already exists, parse it and continue the loop.

The Baton File

.design/next-prompt.md has YAML frontmatter + a prompt body:

markdown
---
page: about
layout: standard
---
An about page for Acme Plumbing describing the company's 20-year history in Newcastle.

**DESIGN SYSTEM:**
[Copied from .design/DESIGN.md Section 6]

**Page Structure:**
1. Header with navigation (consistent with index.html)
2. Hero with company photo and tagline
3. Story timeline showing company milestones
4. Team section with photo grid
5. CTA section: "Get a Free Quote"
6. Footer (consistent with index.html)
FieldRequiredPurpose
pageYesOutput filename (without .html)
layoutNostandard, wide, sidebar — defaults to standard

Execution Protocol

Step 1: Read the Baton
Read .design/next-prompt.md
Extract: page name, layout, prompt body
Step 2: Consult Context Files

Before generating, read:

FileWhat to check
.design/SITE.mdSection 4 (Sitemap) — don't recreate existing pages
.design/DESIGN.mdColour palette, typography, component styles
Existing pages in site/public/Header/footer/nav patterns to match

Critical: Read the most recent page's HTML to extract the exact header, navigation, and footer markup. New pages must use identical shared elements.

Step 3: Generate the Page
Option A: Claude Generation (Default)

Generate a complete HTML file using Tailwind CSS (via CDN). The page must:

  • Match the design system from .design/DESIGN.md exactly
  • Reuse the same header/nav/footer from existing pages (copy verbatim)
  • Be self-contained — single HTML file with Tailwind CDN, no build step
  • Be responsive — mobile-first, works at all breakpoints
  • Include dark mode if the design system specifies it
  • Use semantic HTML — proper heading hierarchy, landmarks, alt text
  • Wire real navigation — all nav links point to actual pages (existing or planned)

Write the generated file to site/public/{page}.html.

Option B: Stitch Generation (If Available)

If Stitch SDK is available:

  1. Build the prompt by combining the baton body with the DESIGN.md system block
  2. Call project.generate(prompt, deviceType) to generate the screen
  3. Download the HTML from screen.getHtml() to .design/designs/{page}.html
  4. Download the screenshot from screen.getImage() to .design/screenshots/{page}.png
  5. Post-process the Stitch HTML:
    • Replace the header/nav/footer with your project's shared elements
    • Ensure consistent Tailwind config
    • Wire internal navigation links
  6. Save the processed file to site/public/{page}.html
  7. Update .design/metadata.json with the new screen ID

For iterative edits on an existing Stitch screen, use screen.edit(prompt) instead of regenerating.

Step 4: Integrate into the Site

After generating the new page:

  1. Update navigation across ALL existing pages — add the new page to nav menus
  2. Fix placeholder links — replace any href="#" with real page URLs
  3. Verify cross-page consistency — header, footer, nav must be identical everywhere
  4. Check internal links — no broken links between pages
Step 5: Visual Verification (If Browser Available)

If Playwright CLI or Chrome MCP is available:

  1. Start a local server: npx serve site/public -p 3456
  2. Screenshot the new page at desktop (1280px) and mobile (375px) widths
  3. Save screenshots to .design/screenshots/{page}-desktop.png and {page}-mobile.png
  4. Compare visually against the design system
  5. Fix any issues (broken layout, wrong colours, inconsistent nav)
  6. Stop the server

If no browser automation is available, skip to Step 6.

Step 6: Update Site Documentation

Edit .design/SITE.md:

  • Mark the page as complete in Section 4 (Sitemap): [x] {page}.html — {description}
  • Remove any consumed item from Section 5 (Roadmap) or Section 6 (Ideas)
  • Add any new ideas discovered during generation
Show full SKILL.md (711 more words)Show less
Step 7: Write the Next Baton (CRITICAL)

You MUST update .design/next-prompt.md before completing. This keeps the loop alive.

  1. Choose the next page:

    • First: Check Section 5 (Roadmap) for pending high-priority items
    • Second: Check Section 5 for medium-priority items
    • Third: Pick from Section 6 (Ideas)
    • Last resort: Invent something that fits the site vision
  2. Write the baton with:

    • YAML frontmatter (page, optional layout)
    • Description of the page purpose and content
    • Design system block copied from .design/DESIGN.md Section 6
    • Detailed page structure (numbered sections)
  3. If the site is complete (all roadmap items done, no more ideas):

    • Write a baton with page: _complete and a summary of what was built
    • This signals the loop is finished

Loop Completion

The loop ends when:

  • All pages in the roadmap are built ([x] in SITE.md Section 4)
  • The user says to stop
  • The baton contains page: _complete

On completion, output a summary:

  • Pages built (with links)
  • Screenshots (if captured)
  • Any remaining ideas for future work

Cross-Page Consistency Rules

The #1 risk in multi-page generation is drift — pages looking slightly different. Prevent this:

ElementRule
Header/NavCopy exact HTML from the most recent page. Never regenerate.
FooterSame — copy verbatim, only change active page indicator
Tailwind configIf using <script> config block, it must be identical across pages
Colour valuesAlways use the exact hex codes from DESIGN.md, never approximate
Font importsSame Google Fonts <link> tag across all pages
Spacing scaleConsistent padding/margin values (document in DESIGN.md)

Design Mappings

Use these to transform vague user requests into precise design instructions when writing baton prompts.

UI/UX Keyword Refinement
Vague TermProfessional Terminology
"menu at the top""sticky navigation bar with logo and menu items"
"big photo""full-width hero section with focal-point imagery"
"list of things""responsive card grid with hover states and subtle elevation"
"button""primary call-to-action button with hover transition"
"form""form with labelled input fields, validation states, and submit button"
"picture area""hero section with background image or video"
"sidebar""collapsible side navigation with icon-label pairings"
"popup""modal dialog with overlay and smooth entry animation"
"footer stuff""footer with sitemap links, contact info, and legal notices"
"cards""content cards with consistent padding, rounded corners, and shadow"
"tabs""tabbed interface with active indicator and smooth content transition"
"search""search input with icon, placeholder text, and results dropdown"
"pricing""pricing comparison cards with highlighted recommended tier"
"testimonials""testimonial carousel or grid with avatar, quote, and attribution"
Atmosphere and Vibe Descriptors
Basic VibeEnhanced Description
"Modern""Clean, minimal, generous whitespace, high-contrast typography"
"Professional""Sophisticated, trustworthy, subtle shadows, restricted premium palette"
"Fun / Playful""Vibrant, rounded corners, bold accent colours, bouncy animations"
"Dark Mode""High-contrast accents on deep slate or near-black backgrounds"
"Luxury""Elegant, spacious, fine lines, serif headers, high-fidelity photography"
"Tech / Cyber""Futuristic, neon accents, glassmorphism, monospaced typography"
"Warm / Friendly""Soft colours, rounded shapes, handwritten accents, inviting imagery"
"Bold / Industrial""Strong typography, high contrast, geometric shapes, dark backgrounds"
"Organic / Natural""Earth tones, soft textures, organic shapes, nature photography"
"Editorial""Magazine-like layouts, strong typographic hierarchy, generous leading"
Geometry, Depth, and Spacing
DescriptionTailwindVisual Effect
Pill-shapedrounded-fullButtons, tags, badges
Softly roundedrounded-xlCards, containers, modals
Gently roundedrounded-lgInputs, smaller elements
Sharp / preciserounded-none or rounded-smTechnical, brutalist aesthetic
Glassmorphismbackdrop-blur-md bg-white/10 border border-white/20Overlays, nav bars
Frostedbackdrop-blur-sm bg-white/80Subtle glass effect
ElevationDescriptionTailwind
FlatNo shadows, colour blocking and bordersshadow-none
Whisper-softDiffused, barely visible liftshadow-sm
SubtleGentle shadow for card elevationshadow-md
FloatingHigh-offset, soft shadowshadow-lg or shadow-xl
DramaticStrong shadow for hero elements or modalsshadow-2xl
InsetInner shadow for pressed or nested elementsshadow-inner
Section DensityDescriptionTailwind
TightCompact, information-densepy-8 md:py-12
BalancedStandard section spacingpy-12 md:py-16
GenerousBreathing room, premium feelpy-16 md:py-24
DramaticStatement spacing, luxury/editorialpy-24 md:py-32

SITE.md Template

Use this when bootstrapping a new project. Write to .design/SITE.md:

markdown
# Project Vision

> **AGENT INSTRUCTION:** Read this file before every iteration. It is the project's long-term memory.

## 1. Core Identity

| Field | Value |
|-------|-------|
| **Project Name** | [Name] |
| **Mission** | [What the site achieves] |
| **Target Audience** | [Who uses this site] |
| **Voice & Tone** | [Personality descriptors — warm, professional, playful, etc.] |
| **Region** | [Australia / US / UK — affects spelling, phone format, imagery] |

## 2. Visual Language

Reference these when writing baton prompts.

- **Primary Vibe**: [Main aesthetic — e.g. "Clean and modern"]
- **Secondary Vibe**: [Supporting aesthetic — e.g. "Warm and approachable"]
- **Anti-Vibes**: [What to avoid — e.g. "Not corporate, not cluttered"]

## 3. Technical Setup

- **Output Directory**: `site/public/`
- **CSS**: Tailwind CSS via CDN (no build step)
- **Dark Mode**: [Yes/No] — if yes, via class toggle
- **Fonts**: [Google Fonts import URL]

## 4. Live Sitemap

Update this when a page is successfully generated.

- [x] `index.html` — Homepage with hero, features, CTA
- [ ] `about.html` — Company story and team
- [ ] `services.html` — Service offerings with pricing
- [ ] `contact.html` — Contact form and location map

## 5. Roadmap (Backlog)

Pick the next task from here. Remove items as they're completed.

### High Priority
- [ ] Build about page with team section
- [ ] Build services page with pricing cards

### Medium Priority
- [ ] Build contact page with form
- [ ] Build FAQ page

### Low Priority
- [ ] Blog index page
- [ ] Individual blog post template

## 6. Creative Freedom

When the roadmap is empty, follow these guidelines to add pages:

1. **Stay on-brand** — new pages must fit the established vibe
2. **Enhance the core** — support the site mission
3. **Naming convention** — lowercase, descriptive filenames (e.g. `team.html`)

### Ideas to Explore
- [ ] `testimonials.html` — Customer reviews and case studies
- [ ] `gallery.html` — Project portfolio with image grid
- [ ] `faq.html` — Frequently asked questions with accordion

## 7. Rules of Engagement

1. Do NOT recreate pages already marked `[x]` in Section 4
2. ALWAYS update `.design/next-prompt.md` before completing an iteration
3. Remove consumed ideas from Section 6
4. Copy header/nav/footer from existing pages — never regenerate
5. All internal links must point to real pages

DESIGN.md Template

Generate using the design-system skill, or create manually. Write to .design/DESIGN.md:

markdown
# Design System: [Project Name]

## 1. Visual Theme & Atmosphere

[Describe the mood, density, and aesthetic philosophy. Use evocative language.]

## 2. Colour Palette & Roles

| Role | Name | Value | Usage |
|------|------|-------|-------|
| Primary | [Name] | `#hexcode` | Buttons, links, active states |
| Primary Foreground | [Name] | `#hexcode` | Text on primary backgrounds |
| Secondary | [Name] | `#hexcode` | Supporting elements, badges |
| Background | [Name] | `#hexcode` | Page background |
| Surface | [Name] | `#hexcode` | Cards, containers |
| Text Primary | [Name] | `#hexcode` | Headings, body text |
| Text Secondary | [Name] | `#hexcode` | Captions, metadata |
| Border | [Name] | `#hexcode` | Dividers, input borders |
| Accent | [Name] | `#hexcode` | Highlights, notifications |

## 3. Typography

| Element | Font | Weight | Size | Line Height |
|---------|------|--------|------|-------------|
| H1 | [Font] | 700 | 3rem | 1.1 |
| H2 | [Font] | 600 | 2rem | 1.2 |
| H3 | [Font] | 600 | 1.5rem | 1.3 |
| Body | [Font] | 400 | 1rem | 1.6 |
| Small | [Font] | 400 | 0.875rem | 1.5 |

## 4. Component Styles

Document each component: Buttons (primary, secondary, hover), Cards (bg, border, radius, shadow, padding), Navigation (sticky/static, active indicator, mobile pattern), Forms (input style, labels, validation colours).

## 5. Layout Principles

Max content width, section padding, grid system, whitespace philosophy.

## 6. Design System Notes for Generation

**Copy this entire block into every baton prompt:**

**DESIGN SYSTEM (REQUIRED):**
- Platform: Web, Desktop-first, responsive
- Theme: [Light/Dark], [descriptors]
- Background: [Description] (#hex)
- Surface: [Description] (#hex)
- Primary: [Description] (#hex) for [role]
- Text: [Description] (#hex)
- Font: [Font name] via Google Fonts
- Corners: [Description]
- Shadows: [Description]
- Spacing: [Description]

File Structure

project/
├── .design/
│   ├── SITE.md              # Project vision, sitemap, roadmap
│   ├── DESIGN.md            # Visual design system (source of truth)
│   ├── next-prompt.md       # The baton — current/next task
│   ├── metadata.json        # Stitch project/screen IDs (if using Stitch)
│   └── screenshots/         # Visual verification captures
├── site/
│   └── public/              # Production pages
└── .gitignore               # Add .design/screenshots/

Common Pitfalls

  • Forgetting to update .design/next-prompt.md (breaks the loop)
  • Recreating a page already marked [x] in SITE.md sitemap
  • Regenerating the header/nav instead of copying from existing pages
  • Missing the design system block in the baton prompt
  • href="#" placeholders left in nav instead of real URLs
  • Inconsistent Tailwind config across pages
  • Generating multiple pages per iteration (one page per loop, always)

© jezweb, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in plugins/frontend/skills/design-loop of jezweb/claude-skills.

Open the folder on GitHubat commit 64965d9

Compare with similar skills

Design Loop next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Design Loop compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Design Loop this skilljezweb/claude-skills1.1k—~5.2kAutomated safety check: NotesMIT
Design Context Extractyonatangross/orchestkit288—~3.5kAutomated safety check: NotesMIT
Tailwindcss Developmentanonaddy/anonaddy4.9k10 repos~865Automated safety check: PassMIT
UI StylingOhh-889/skyroc79513 repos~2.5kAutomated safety check: PassMIT
MCP Developmentcoollabsio/coolify63k1 repos~949Automated safety check: PassMIT
Kill AI Slopyetone/kill-ai-slop1.3k—~1.4kAutomated safety check: PassApache-2.0

Similar skills

  • Design Context Extract

    yonatangross/orchestkit

    Extract design DNA from app screenshots, live URLs, or screen recordings using Google Stitch — color palettes, typography, spacing tokens, component patterns, and motion specs as design-tokens.json…

    288 GitHub stars~3.5k tokensUpdated yesterday
    Frontend & DesignAuto-check: notes
  • Tailwindcss Development

    anonaddy/anonaddy

    Always invoke when the user's message includes 'tailwind' in any form.

    4.9k GitHub starsUsed in 10 repos~865 tokens
    Frontend & DesignAuto-check passed
  • UI Styling

    Ohh-889/skyroc

    Create beautiful, accessible user interfaces with shadcn/ui components (built on Radix UI + Tailwind), Tailwind CSS utility-first styling, and canvas-based visual designs.

    795 GitHub starsUsed in 13 repos~2.5k tokens
    Frontend & DesignAuto-check passed
  • MCP Development

    coollabsio/coolify

    A skill your agent uses for Laravel MCP development. An agent skill from coollabsio/coolify.

    63k GitHub starsUsed in 1 repo~949 tokens
    Frontend & DesignAuto-check passed
  • Kill AI Slop

    yetone/kill-ai-slop

    Find and remove AI slop — the generic, machine-default visual and copy tics of vibe-coded products — from a web project.

    1.3k GitHub stars~1.4k tokensUpdated 22 days ago
    Frontend & DesignAuto-check passed
  • Coss

    crafter-station/petdex

    Helps implement coss UI components correctly. An agent skill from crafter-station/petdex.

    4.2k GitHub stars~1.4k tokensUpdated 9 days ago
    Frontend & DesignAuto-check passed

More from jezweb/claude-skills

All 52 skills in this repo
  • Elevenlabs Agents

    jezweb/claude-skills

    Build conversational AI voice agents on the ElevenLabs platform.

    1.1k GitHub starsUsed in 1 repo~3.3k tokens
    Auto-check passed
  • Favicon Gen

    jezweb/claude-skills

    Generate custom favicons from logos, text, or brand colours.

    1.1k GitHub starsUsed in 1 repo~1k tokens
    Auto-check passed
  • Tailwind Theme Builder

    jezweb/claude-skills

    Set up Tailwind v4 + shadcn/ui themed UI with dark mode. An agent skill from jezweb/claude-skills.

    1.1k GitHub starsUsed in 1 repo~3.2k tokens
    Auto-check passed
  • Responsiveness Check

    jezweb/claude-skills

    Test website responsiveness across viewport widths using browser automation.

    1.1k GitHub starsUsed in 1 repo~1.7k tokens
    Auto-check passed
  • MCP Builder

    jezweb/claude-skills

    Build MCP servers in Python with FastMCP. An agent skill from jezweb/claude-skills.

    1.1k GitHub stars~3.1k tokensUpdated 2 days ago
    Auto-check: notes
  • UX Compare

    jezweb/claude-skills

    Compare UX patterns across multiple reference apps using pattern libraries produced by ux-extract.

    1.1k GitHub starsUsed in 1 repo~2.2k tokens
    Auto-check passed

Questions about Design Loop

What does Design Loop do?

Autonomous multi-page site builder using a baton-passing loop. Design Loop is an agent skill from jezweb/claude-skills. Autonomous multi-page site builder using a baton-passing loop.

When should I use Design Loop?

Design Loop fits situations like: the user asks to build an entire site autonomously; build all pages of a site; generate multiple pages in sequence; run a design loop / baton loop / autonomous site build — even if they say just keep going.

How do I install Design Loop in Claude Code?

Run `npx skills add jezweb/claude-skills --skill design-loop -a claude-code`. Or copy the skill folder (plugins/frontend/skills/design-loop in jezweb/claude-skills) into .claude/skills/design-loop in your project. Claude Code loads it when a task matches its description.

How do I install Design Loop in Codex?

Run `npx skills add jezweb/claude-skills --skill design-loop -a codex`. Or copy the skill folder (plugins/frontend/skills/design-loop in jezweb/claude-skills) into .agents/skills/design-loop in your project. Codex loads it when a task matches its description.

Can I use Design Loop in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jezweb/claude-skills --skill design-loop -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/design-loop, .gemini/skills/design-loop, .github/skills/design-loop and .opencode/skills/design-loop in your project.

What does Design Loop need to run?

Going by SKILL.md and its folder, Design Loop needs the command-line tools its instructions call (npm and npx) and credentials named STITCH_API_KEY and STITCH_ACCESS_TOKEN. Our summary lists: Node.js; A credential in STITCH_API_KEY; A credential in STITCH_ACCESS_TOKEN. Its frontmatter pre-approves these tools: Read, Write, Edit, Glob, Grep, Bash. Compatibility (from SKILL.md): claude-code-only.

Does Design Loop access the network?

SKILL.md contains no URLs. Its commands use npm and npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Design Loop safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Design Loop use?

Design Loop is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Design Loop use?

About 5.2k tokens (SKILL.md is roughly 21k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Design Loop?

Skills that share tags, products or a category with Design Loop: Design Context Extract (yonatangross/orchestkit, 288 stars), Tailwindcss Development (anonaddy/anonaddy, 4.9k stars), UI Styling (Ohh-889/skyroc, 795 stars) and MCP Development (coollabsio/coolify, 63k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Design Loop?

jezweb (a GitHub user) maintains it in jezweb/claude-skills, which has 1,050 GitHub stars. The repository holds 52 skills in this directory. The repository was last updated on October 5, 2026.

Source: jezweb/claude-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.