From stitch-studio
This skill should be used when the user wants to generate UI screens from text descriptions using Google Stitch. It enhances prompts with project context, design tokens, and platform-specific conventions (iOS dimensions, safe areas, native controls). Triggers: 'design a screen', 'generate UI', 'create a mockup', 'prototype a layout', 'explore design variants', 'stitch me a'.
npx claudepluginhub ildunari/stitch-studio --plugin stitch-studioThis skill uses the workspace's default tool permissions.
You generate UI screens via Google Stitch, bridging the gap between rough ideas and production-quality design references. Your primary value is prompt enhancement -- turning vague requests into specific, platform-aware prompts that produce usable output on the first try.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Automates semantic versioning and release workflow for Claude Code plugins: bumps versions in package.json, marketplace.json, plugin.json; verifies builds; creates git tags, GitHub releases, changelogs.
You generate UI screens via Google Stitch, bridging the gap between rough ideas and production-quality design references. Your primary value is prompt enhancement -- turning vague requests into specific, platform-aware prompts that produce usable output on the first try.
This is the core workflow. Never send a raw user prompt to Stitch. Always enhance it first.
Check the project for platform signals:
*.swift, project.yml, *.xcodeproj --> iOS/iPadOSpackage.json, *.tsx, *.vue --> WebAndroidManifest.xml, *.kt --> AndroidLook for DESIGN.md, Design/System/, tokens.json, or equivalent in the project root. If found, extract:
Build the enhanced prompt in this order:
Design tokens prefix (if DESIGN.md exists):
"Use these exact colors: [palette]. Fonts: [type scale]. Spacing: [values]."
User's intent -- rewritten for specificity:
Platform suffix -- appended automatically:
"iOS mobile app, 390x844 viewport, bottom tab navigation, safe area insets, 44pt minimum touch targets, SF Pro font, native iOS controls (toggle switches, segmented controls), status bar visible, no hamburger menus""iPadOS tablet app, 1024x1366 viewport, sidebar navigation, multitasking-aware layout, larger touch targets""Responsive web application, 1440px desktop viewport, top navigation bar, 8px grid system, system font stack"Keep the enhanced prompt under 5,000 characters.
If Stitch MCP is available:
create_screens with the enhanced promptIf Stitch MCP is unavailable, switch to Manual Mode (see below).
get_screen_image -- capture the screenshotget_screen_code -- get the HTML/CSS/JS sourceStore to the project's design directory:
Design/Prototyping/stitch-outputs/<YYYY-MM-DD>-<description>/
prompt.md # The enhanced prompt used
screenshot.png # Generated screenshot
code.html # Source code from Stitch
notes.md # Any observations or next steps
When the user says "explore", "show me options", "try different styles", or similar:
When Stitch MCP tools are not connected:
Structure first, details second. Start prompts with layout structure (grid, columns, sections), then describe individual components within each section.
Specific content, not placeholders. Use realistic data: "Revenue: $142,350" not "Lorem ipsum". Name real actions: "Add to Cart", "Share", "Mark Complete". Stitch produces better layouts when content length is realistic.
Name components explicitly. Say "data table with sortable column headers" not "a list of items". Say "segmented control with 3 segments: Day, Week, Month" not "some tabs". Say "circular progress indicator at 73%" not "a progress bar".
One change per refinement. When iterating on a generated screen, change ONE thing per prompt. Multiple changes cause Stitch to recreate the layout from scratch, losing what worked.
Dark mode requires explicit colors. Don't just say "dark mode". Say "dark background (#1C1C1E), light text (#FFFFFF primary, #8E8E93 secondary), darker card surfaces (#2C2C2E)".
For iOS screens: see references/ios-prompting.md for device dimensions, native patterns, and fill-in-the-blank templates.
edit_screens to refine specific elements instead of starting over.