
Stitch Loop
Run an autonomous Stitch MCP build loop that reads a baton file, generates pages, integrates them, and queues the next iteration for multi-page sites.
Install
npx skills add https://github.com/google-labs-code/stitch-skills --skill stitch-loopWhat is this skill?
- Four-step baton loop: read `.stitch/next-prompt.md`, generate with Stitch MCP, integrate, write next task
- Requires `.stitch/DESIGN.md` and `.stitch/SITE.md`; pairs with `design-md` when design system is missing
- MCP tool families: stitch*:* and optional chrome*:* for visual verification
- Each baton front matter includes required DESIGN SYSTEM block copied from DESIGN.md Section 6
- Autonomous frontend builder role with explicit page structure sections in the baton template
Adoption & trust: 41.9k installs on skills.sh; 5.9k GitHub stars; 3/3 security scanners passed (skills.sh audits).
Recommended Skills
Frontend Designanthropics/skills
Vercel React Best Practicesvercel-labs/agent-skills
Remotion Best Practicesremotion-dev/skills
Vercel Composition Patternsvercel-labs/agent-skills
Develop Userscriptsxixu-me/skills
Next Best Practicesvercel-labs/next-skills
Journey fit
Common Questions / FAQ
Is Stitch Loop safe to install?
skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.
SKILL.md
READMESKILL.md - Stitch Loop
# Stitch Build Loop You are an **autonomous frontend builder** participating in an iterative site-building loop. Your goal is to generate a page using Stitch, integrate it into the site, and prepare instructions for the next iteration. ## Overview The Build Loop pattern enables continuous, autonomous website development through a "baton" system. Each iteration: 1. Reads the current task from a baton file (`.stitch/next-prompt.md`) 2. Generates a page using Stitch MCP tools 3. Integrates the page into the site structure 4. Writes the next task to the baton file for the next iteration ## Prerequisites **Required:** - Access to the Stitch MCP Server - A Stitch project (existing or will be created) - A `.stitch/DESIGN.md` file (generate one using the `design-md` skill if needed) - A `.stitch/SITE.md` file documenting the site vision and roadmap **Optional:** - Chrome DevTools MCP Server — enables visual verification of generated pages ## The Baton System The `.stitch/next-prompt.md` file acts as a relay baton between iterations: ```markdown --- page: about --- A page describing how jules.top tracking works. **DESIGN SYSTEM (REQUIRED):** [Copy from .stitch/DESIGN.md Section 6] **Page Structure:** 1. Header with navigation 2. Explanation of tracking methodology 3. Footer with links ``` **Critical rules:** - The `page` field in YAML frontmatter determines the output filename - The prompt content must include the design system block from `.stitch/DESIGN.md` - You MUST update this file before completing your work to continue the loop ## Execution Protocol ### Step 1: Read the Baton Parse `.stitch/next-prompt.md` to extract: - **Page name** from the `page` frontmatter field - **Prompt content** from the markdown body ### Step 2: Consult Context Files Before generating, read these files: | File | Purpose | |------|---------| | `.stitch/SITE.md` | Site vision, **Stitch Project ID**, existing pages (sitemap), roadmap | | `.stitch/DESIGN.md` | Required visual style for Stitch prompts | **Important checks:** - Section 4 (Sitemap) — Do NOT recreate pages that already exist - Section 5 (Roadmap) — Pick tasks from here if backlog exists - Section 6 (Creative Freedom) — Ideas for new pages if roadmap is empty ### Step 3: Generate with Stitch Use the Stitch MCP tools to generate the page: 1. **Discover namespace**: Run `list_tools` to find the Stitch MCP prefix 2. **Get or create project**: - If `.stitch/metadata.json` exists, use the `projectId` from it - Otherwise, call `[prefix]:create_project`, then call `[prefix]:get_project` to retrieve full project details, and save them to `.stitch/metadata.json` (see schema below) - After generating each screen, call `[prefix]:get_project` again and update the `screens` map in `.stitch/metadata.json` with each screen's full metadata (id, sourceScreen, dimensions, canvas position) 3. **Generate screen**: Call `[prefix]:generate_screen_from_text` with: - `projectId`: The project ID - `prompt`: The full prompt from the baton (including design system block) - `deviceType`: `DESKTOP` (or as specified) 4. **Retrieve assets**: Before downloading, check if `.stitch/designs/{page}.html` and `.stitch/designs/{page}.png` already exist: - **If files exist**: Ask the user whether to refresh the designs from the Stitch project or reuse the existing local files. Only re-download if the user confirms. - **If files do not exist**: Proceed with download: - `htmlCode.downloadUrl` — Download and save as `.stitch/designs/{page}.html` - `screenshot.downloadUrl` — Append `=w{width}` to the URL before downloading, where `{width}` is the `width` value from the screen metadata (Google CDN serves low-res thumbnails by default). Save as `.stitch/designs/