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…
Autonomous multi-page site builder using a baton-passing loop.
$ npx skills add jezweb/claude-skills --skill design-loop -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install jezweb/claude-skills design-loop --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "design-loop" agent skill from https://github.com/jezweb/claude-skills/tree/main/plugins/frontend/skills/design-loop into .claude/skills/design-loop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "design-loop", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/jezweb/claude-skills/tree/main/plugins/frontend/skills/design-loopType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add jezweb/claude-skills --skill design-loop -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install jezweb/claude-skills design-loop --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jezweb/claude-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/frontend/skills/design-loop .agents/skills/design-loop && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "design-loop" agent skill from https://github.com/jezweb/claude-skills/tree/main/plugins/frontend/skills/design-loop into .agents/skills/design-loop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "design-loop", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jezweb/claude-skills --skill design-loop -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install jezweb/claude-skills design-loop --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jezweb/claude-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/frontend/skills/design-loop .cursor/skills/design-loop && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "design-loop" agent skill from https://github.com/jezweb/claude-skills/tree/main/plugins/frontend/skills/design-loop into .cursor/skills/design-loop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "design-loop", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/jezweb/claude-skills.git --path plugins/frontend/skills/design-loop--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add jezweb/claude-skills --skill design-loop -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install jezweb/claude-skills design-loop --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jezweb/claude-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/frontend/skills/design-loop .gemini/skills/design-loop && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "design-loop" agent skill from https://github.com/jezweb/claude-skills/tree/main/plugins/frontend/skills/design-loop into .gemini/skills/design-loop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "design-loop", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install jezweb/claude-skills design-loopInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add jezweb/claude-skills --skill design-loop -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/jezweb/claude-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/frontend/skills/design-loop .github/skills/design-loop && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "design-loop" agent skill from https://github.com/jezweb/claude-skills/tree/main/plugins/frontend/skills/design-loop into .github/skills/design-loop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "design-loop", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jezweb/claude-skills --skill design-loop -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install jezweb/claude-skills design-loop --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jezweb/claude-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/frontend/skills/design-loop .opencode/skills/design-loop && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "design-loop" agent skill from https://github.com/jezweb/claude-skills/tree/main/plugins/frontend/skills/design-loop into .opencode/skills/design-loop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "design-loop", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
design-loopAutonomous 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. 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.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 64965d9. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadWriteEditGlobGrepBashFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npmnpxFrom the folder's file list and the shell code blocks in SKILL.md.
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.
Names these keys or tokens, usually read from environment variables:
STITCH_API_KEYSTITCH_ACCESS_TOKENFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
claude-code-only
From compatibility in the SKILL.md frontmatter.
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.
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.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Read, Write, Edit, Glob, Grep, BashAutomated 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.
The full file from jezweb/claude-skills at commit 64965d9, republished under its MIT licence (© jezweb). 1,633 words, ~5,180 tokens.
.claude/skills/design-loop/SKILL.md (or your agent's skills folder).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.
The Design Loop uses a "baton" pattern — a file (.design/next-prompt.md) acts as a relay baton between iterations. Each cycle:
This is orchestration-agnostic. The loop can be driven by:
.design/next-prompt.md changes| Backend | Setup | Quality | Speed | Best for |
|---|---|---|---|---|
| Claude (default) | Zero dependencies | Great — production-ready HTML/Tailwind | Fast | Most projects, full code control |
| Google Stitch | npm install @google/stitch-sdk + API key | Higher fidelity AI designs | ~10-20s/screen | Design-heavy projects, visual polish |
At the start of each loop, check if Stitch is available:
@google/stitch-sdk is installed: ls node_modules/@google/stitch-sdk 2>/dev/nullSTITCH_API_KEY is set in .dev.vars or environment.design/metadata.json exists (contains Stitch project ID)If all three are present, use Stitch. Otherwise, fall back to Claude generation.
Install: npm install @google/stitch-sdk. Set STITCH_API_KEY in environment or .dev.vars.
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.
Save Stitch identifiers to .design/metadata.json so future iterations can reference them:
{
"projectId": "4044680601076201931",
"screens": {
"index": { "screenId": "d7237c7d78f44befa4f60afb17c818c1" },
"about": { "screenId": "bf6a3fe5c75348e58cf21fc7a9ddeafb" }
}
}Stitch integration tips:
.design/metadata.json — don't create a new project each iterationscreen.edit() for refinements rather than full regenerationIf .design/ doesn't exist yet, create the project scaffolding:
Ask the user for:
/design-system)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 heredesign-system skill to extract from an existing site.design/next-prompt.md) for the homepageIf .design/next-prompt.md already exists, parse it and continue the loop.
.design/next-prompt.md has YAML frontmatter + a prompt body:
---
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)| Field | Required | Purpose |
|---|---|---|
page | Yes | Output filename (without .html) |
layout | No | standard, wide, sidebar — defaults to standard |
Read .design/next-prompt.md
Extract: page name, layout, prompt bodyBefore generating, read:
| File | What to check |
|---|---|
.design/SITE.md | Section 4 (Sitemap) — don't recreate existing pages |
.design/DESIGN.md | Colour 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.
Generate a complete HTML file using Tailwind CSS (via CDN). The page must:
.design/DESIGN.md exactlyWrite the generated file to site/public/{page}.html.
If Stitch SDK is available:
project.generate(prompt, deviceType) to generate the screenscreen.getHtml() to .design/designs/{page}.htmlscreen.getImage() to .design/screenshots/{page}.pngsite/public/{page}.html.design/metadata.json with the new screen IDFor iterative edits on an existing Stitch screen, use screen.edit(prompt) instead of regenerating.
After generating the new page:
href="#" with real page URLsIf Playwright CLI or Chrome MCP is available:
npx serve site/public -p 3456.design/screenshots/{page}-desktop.png and {page}-mobile.pngIf no browser automation is available, skip to Step 6.
Edit .design/SITE.md:
[x] {page}.html — {description}You MUST update .design/next-prompt.md before completing. This keeps the loop alive.
Choose the next page:
Write the baton with:
page, optional layout).design/DESIGN.md Section 6If the site is complete (all roadmap items done, no more ideas):
page: _complete and a summary of what was builtThe loop ends when:
[x] in SITE.md Section 4)page: _completeOn completion, output a summary:
The #1 risk in multi-page generation is drift — pages looking slightly different. Prevent this:
| Element | Rule |
|---|---|
| Header/Nav | Copy exact HTML from the most recent page. Never regenerate. |
| Footer | Same — copy verbatim, only change active page indicator |
| Tailwind config | If using <script> config block, it must be identical across pages |
| Colour values | Always use the exact hex codes from DESIGN.md, never approximate |
| Font imports | Same Google Fonts <link> tag across all pages |
| Spacing scale | Consistent padding/margin values (document in DESIGN.md) |
Use these to transform vague user requests into precise design instructions when writing baton prompts.
| Vague Term | Professional 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" |
| Basic Vibe | Enhanced 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" |
| Description | Tailwind | Visual Effect |
|---|---|---|
| Pill-shaped | rounded-full | Buttons, tags, badges |
| Softly rounded | rounded-xl | Cards, containers, modals |
| Gently rounded | rounded-lg | Inputs, smaller elements |
| Sharp / precise | rounded-none or rounded-sm | Technical, brutalist aesthetic |
| Glassmorphism | backdrop-blur-md bg-white/10 border border-white/20 | Overlays, nav bars |
| Frosted | backdrop-blur-sm bg-white/80 | Subtle glass effect |
| Elevation | Description | Tailwind |
|---|---|---|
| Flat | No shadows, colour blocking and borders | shadow-none |
| Whisper-soft | Diffused, barely visible lift | shadow-sm |
| Subtle | Gentle shadow for card elevation | shadow-md |
| Floating | High-offset, soft shadow | shadow-lg or shadow-xl |
| Dramatic | Strong shadow for hero elements or modals | shadow-2xl |
| Inset | Inner shadow for pressed or nested elements | shadow-inner |
| Section Density | Description | Tailwind |
|---|---|---|
| Tight | Compact, information-dense | py-8 md:py-12 |
| Balanced | Standard section spacing | py-12 md:py-16 |
| Generous | Breathing room, premium feel | py-16 md:py-24 |
| Dramatic | Statement spacing, luxury/editorial | py-24 md:py-32 |
Use this when bootstrapping a new project. Write to .design/SITE.md:
# 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 pagesGenerate using the design-system skill, or create manually. Write to .design/DESIGN.md:
# 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]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/.design/next-prompt.md (breaks the loop)[x] in SITE.md sitemaphref="#" placeholders left in nav instead of real URLs© jezweb, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in plugins/frontend/skills/design-loop of jezweb/claude-skills.
Open the folder on GitHubat commit 64965d9
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Design Loop this skilljezweb/claude-skills | 1.1k | — | ~5.2k | Automated safety check: Notes | MIT | |
| Design Context Extractyonatangross/orchestkit | 288 | — | ~3.5k | Automated safety check: Notes | MIT | |
| Tailwindcss Developmentanonaddy/anonaddy | 4.9k | 10 repos | ~865 | Automated safety check: Pass | MIT | |
| UI StylingOhh-889/skyroc | 795 | 13 repos | ~2.5k | Automated safety check: Pass | MIT | |
| MCP Developmentcoollabsio/coolify | 63k | 1 repos | ~949 | Automated safety check: Pass | MIT | |
| Kill AI Slopyetone/kill-ai-slop | 1.3k | — | ~1.4k | Automated safety check: Pass | Apache-2.0 |
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…
anonaddy/anonaddy
Always invoke when the user's message includes 'tailwind' in any form.
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.
coollabsio/coolify
A skill your agent uses for Laravel MCP development. An agent skill from coollabsio/coolify.
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.
crafter-station/petdex
Helps implement coss UI components correctly. An agent skill from crafter-station/petdex.
jezweb/claude-skills
Build conversational AI voice agents on the ElevenLabs platform.
jezweb/claude-skills
Generate custom favicons from logos, text, or brand colours.
jezweb/claude-skills
Set up Tailwind v4 + shadcn/ui themed UI with dark mode. An agent skill from jezweb/claude-skills.
jezweb/claude-skills
Test website responsiveness across viewport widths using browser automation.
jezweb/claude-skills
Build MCP servers in Python with FastMCP. An agent skill from jezweb/claude-skills.
jezweb/claude-skills
Compare UX patterns across multiple reference apps using pattern libraries produced by ux-extract.
Works with
Categories
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.