stitch-design-md
npx machina-cli add skill partme-ai/stitch-skills/stitch-design-md --openclawStitch DESIGN.md
Constraint: Only use this skill when the user explicitly mentions "Stitch" or when preparing design system docs for Stitch generation.
You are an expert Design Systems Lead. Your goal is to analyze Stitch project assets and synthesize a Semantic Design System into a file named DESIGN.md.
Overview
DESIGN.md is the source of truth for prompting Stitch to generate new screens that match existing design language. Stitch interprets design through visual descriptions and specific color values. This skill uses Stitch MCP to fetch project and screen data; you can call stitch-mcp-list-projects, stitch-mcp-list-screens, stitch-mcp-get-screen, stitch-mcp-get-project (or the underlying MCP tools with your client’s prefix) to retrieve metadata and download HTML/screenshots.
Prerequisites
- Stitch MCP Server configured (see https://stitch.withgoogle.com/docs/mcp/guide/)
- A Stitch project with at least one designed screen
- Stitch Effective Prompting Guide: https://stitch.withgoogle.com/docs/learn/prompting/
Retrieval and Networking
Use Stitch MCP (or skills stitch-mcp-list-projects, stitch-mcp-get-project, stitch-mcp-list-screens, stitch-mcp-get-screen) in this order.
When the user provides a Stitch design URL
If the user pastes a Stitch design page link (e.g. https://stitch.withgoogle.com/projects/3492931393329678076?node-id=375b1aadc9cb45209bee8ad4f69af450):
- Parse the URL:
- projectId = segment after
/projects/and before?(e.g.3492931393329678076) - screenId = query parameter
node-id(e.g.375b1aadc9cb45209bee8ad4f69af450)
- projectId = segment after
- Fetch the screen: Call
[prefix]:get_screenwith the parsedprojectIdandscreenId(no need to call list_projects or list_screens). - Continue with step 5 below (asset download) and then Analysis & Synthesis.
When project/screen IDs are unknown
-
Namespace discovery: Run
list_toolsto find the Stitch MCP prefix (e.g.mcp_stitch__stitch:). Use that prefix for all calls. -
Project lookup (if Project ID unknown):
- Call
[prefix]:list_projectswithfilter: "view=owned" - Identify the target project by title; extract Project ID from
name(e.g.projects/13534454087919359824)
- Call
-
Screen lookup (if Screen ID unknown):
- Call
[prefix]:list_screenswithprojectId(numeric ID only) - Identify target screen by title; extract Screen ID from
name
- Call
-
Metadata fetch:
- Call
[prefix]:get_screenwithprojectIdandscreenId(numeric IDs) - Use returned
screenshot.downloadUrl,htmlCode.downloadUrl,width,height,deviceType, and projectdesignTheme
- Call
-
Asset download (also after URL-based get_screen):
- Use
web_fetchor equivalent to download HTML fromhtmlCode.downloadUrland optionally screenshot fromscreenshot.downloadUrl - Parse HTML for Tailwind classes, custom CSS, and component patterns
- Use
-
Project metadata:
- Call
[prefix]:get_projectwith projectname(full pathprojects/{id}) to getdesignTheme, fonts, roundness, custom colors, layout principles
- Call
Analysis & Synthesis
1. Extract Project Identity
- Project title and Project ID (from JSON
name)
2. Define the Atmosphere
From screenshot and HTML: mood, density, aesthetic (e.g. "Airy," "Minimalist," "Utilitarian").
3. Map the Color Palette
For each key color:
- Descriptive name (e.g. "Deep Muted Teal-Navy")
- Hex in parentheses (e.g. "#294056")
- Functional role (e.g. "Used for primary actions")
4. Translate Geometry & Shape
rounded-full→ "Pill-shaped"rounded-lg→ "Subtly rounded corners"rounded-none→ "Sharp, squared-off edges"
5. Describe Depth & Elevation
Shadows and layers: "Flat," "Whisper-soft diffused shadows," "Heavy drop shadows," etc.
Output Guidelines
- Language: Descriptive design terminology and natural language only
- Format: Markdown following the structure below
- Precision: Exact hex codes plus descriptive names
- Context: Explain the "why" behind design decisions
Output Format (DESIGN.md Structure)
# Design System: [Project Title]
**Project ID:** [Insert Project ID Here]
## 1. Visual Theme & Atmosphere
(Description of mood, density, and aesthetic philosophy.)
## 2. Color Palette & Roles
(Descriptive Name + Hex + Functional Role for each color.)
## 3. Typography Rules
(Font family, weights for headers vs body, letter-spacing.)
## 4. Component Stylings
* **Buttons:** Shape, color, behavior.
* **Cards/Containers:** Corner roundness, background, shadow.
* **Inputs/Forms:** Stroke style, background.
## 5. Layout Principles
(Whitespace, margins, grid alignment.)
## 6. Design System Notes for Stitch Generation
(Language and color references to copy into Stitch prompts; see examples/DESIGN.md.)
Integration with This Repo
- First time: Generate
DESIGN.mdwith this skill from an existing Stitch screen. - Multi-page: Use
stitch-ui-prompt-architectto inject DESIGN.md Section 6 into prompts; usestitch-loopfor baton-based multi-page builds. - Framework alignment: For framework-specific constraints (Layui, Element Plus, uView, etc.), combine DESIGN.md with the corresponding
stitch-ui-design-spec-*contract in the prompt.
Best Practices
- Be descriptive: e.g. "Ocean-deep Cerulean (#0077B6)" not "blue"
- Be functional: Explain what each element is used for
- Be consistent: Same terminology throughout
- Be precise: Exact values in parentheses after natural language
Common Pitfalls
- ❌ Technical jargon without translation ("rounded-xl" → "generously rounded corners")
- ❌ Omitting color codes or only descriptive names
- ❌ Skipping functional roles of design elements
- ❌ Vague atmosphere descriptions
- ❌ Ignoring shadows or spacing patterns
Keywords
English: DESIGN.md, design system, Stitch, color palette, typography, layout.
中文关键词: DESIGN.md、设计系统、Stitch、色彩、排版、布局。
References
- Examples
- Example DESIGN.md — Full sample output
- Stitch Prompting Guide
Source
git clone https://github.com/partme-ai/stitch-skills/blob/main/skills/stitch-design-md/SKILL.mdView on GitHub Overview
Analyzes Stitch projects using MCP tools to fetch project and screen data, then synthesizes a semantic design system into DESIGN.md. The output delivers natural-language design tokens for colors, typography, spacing, and layout to drive consistent Stitch screen generation.
How This Skill Works
Uses MCP calls (list_projects, list_screens, get_screen, get_project) to gather metadata and assets (HTML, screenshots). Parses HTML/CSS for design tokens, color roles, typography, radii, and spacing, then outputs DESIGN.md containing human-friendly tokens and prompts. This enables Stitch to generate new screens that stay aligned across multi-page flows when used with stitch-ui-prompt-architect and stitch-loop.
When to Use It
- Starting a new Stitch UI that must align with an existing project’s language
- Updating multiple screens to maintain a cohesive design system across pages
- Documenting a project's design language for onboarding designers
- Preparing prompts for generating new screens that match the current tokens
- Auditing an existing Stitch design for color, typography, and spacing consistency
Quick Start
- Step 1: Use MCP tools to identify the target Stitch project and load its screens
- Step 2: Call get_project and get_screen to retrieve designTheme, fonts, colors, and layout primitives, then analyze HTML/CSS as input
- Step 3: Generate DESIGN.md with semantic tokens and verify prompts with stitch-ui-prompt-architect and stitch-loop
Best Practices
- Always fetch project and screen metadata before token extraction
- Favor tokens derived from actual HTML/CSS and designTheme over guesses
- Keep tokens human-readable and descriptive to simplify prompts
- Document typography scales, color roles, radii, and spacing units clearly
- Validate the DESIGN.md against a few generated screens to ensure prompts stay aligned
Example Use Cases
- Finance dashboard aligning charts, cards, and nav with a single color system
- E-commerce product grid and detail views sharing tokens like radii and typography
- Mobile onboarding flow consistent with typography and spacing tokens
- Admin analytics panel with standardized color roles and spacing grid
- SaaS collaboration app pages conforming to a unified design language