stitch-kit 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/AGENTS.md +139 -0
  2. package/CHANGELOG.md +86 -0
  3. package/README.md +167 -0
  4. package/agents/stitch-kit.md +93 -0
  5. package/bin/stitch-kit.mjs +430 -0
  6. package/docs/architecture.md +118 -0
  7. package/docs/color-prompt-guide.md +119 -0
  8. package/docs/mcp-naming-convention.md +64 -0
  9. package/docs/mcp-schemas/README.md +130 -0
  10. package/docs/mcp-schemas/apply_design_system.json +36 -0
  11. package/docs/mcp-schemas/create_design_system.json +78 -0
  12. package/docs/mcp-schemas/create_project.json +290 -0
  13. package/docs/mcp-schemas/delete_project.json +20 -0
  14. package/docs/mcp-schemas/edit_screens.json +46 -0
  15. package/docs/mcp-schemas/generate_screen_from_text.json +242 -0
  16. package/docs/mcp-schemas/generate_variants.json +77 -0
  17. package/docs/mcp-schemas/get_project.json +137 -0
  18. package/docs/mcp-schemas/get_screen.json +92 -0
  19. package/docs/mcp-schemas/list_design_systems.json +32 -0
  20. package/docs/mcp-schemas/list_projects.json +136 -0
  21. package/docs/mcp-schemas/list_screens.json +56 -0
  22. package/docs/mcp-schemas/update_design_system.json +32 -0
  23. package/docs/mcp-schemas/upload_screens_from_images.json +52 -0
  24. package/docs/prd-to-stitch-workflow.md +137 -0
  25. package/docs/skills-index.md +108 -0
  26. package/docs/tailwind-reference.md +207 -0
  27. package/package.json +41 -0
  28. package/skills/stitch-a11y/SKILL.md +428 -0
  29. package/skills/stitch-a11y/resources/audit-checklist.md +102 -0
  30. package/skills/stitch-animate/SKILL.md +371 -0
  31. package/skills/stitch-animate/resources/animation-patterns.md +248 -0
  32. package/skills/stitch-design-md/SKILL.md +215 -0
  33. package/skills/stitch-design-md/examples/DESIGN.md +54 -0
  34. package/skills/stitch-design-md/examples/usage.md +67 -0
  35. package/skills/stitch-design-md/scripts/fetch-stitch.sh +35 -0
  36. package/skills/stitch-design-system/SKILL.md +314 -0
  37. package/skills/stitch-design-system/resources/tokens-template.css +237 -0
  38. package/skills/stitch-html-components/SKILL.md +344 -0
  39. package/skills/stitch-html-components/resources/architecture-checklist.md +74 -0
  40. package/skills/stitch-html-components/scripts/fetch-stitch.sh +45 -0
  41. package/skills/stitch-loop/SKILL.md +183 -0
  42. package/skills/stitch-loop/examples/SITE.md +39 -0
  43. package/skills/stitch-loop/examples/next-prompt.md +24 -0
  44. package/skills/stitch-loop/examples/usage.md +77 -0
  45. package/skills/stitch-mcp-apply-design-system/SKILL.md +82 -0
  46. package/skills/stitch-mcp-create-design-system/SKILL.md +117 -0
  47. package/skills/stitch-mcp-create-project/SKILL.md +77 -0
  48. package/skills/stitch-mcp-delete-project/SKILL.md +62 -0
  49. package/skills/stitch-mcp-edit-screens/SKILL.md +121 -0
  50. package/skills/stitch-mcp-generate-screen-from-text/SKILL.md +102 -0
  51. package/skills/stitch-mcp-generate-screen-from-text/examples/desktop.md +53 -0
  52. package/skills/stitch-mcp-generate-screen-from-text/examples/mobile.md +71 -0
  53. package/skills/stitch-mcp-generate-variants/SKILL.md +124 -0
  54. package/skills/stitch-mcp-get-project/SKILL.md +67 -0
  55. package/skills/stitch-mcp-get-screen/SKILL.md +117 -0
  56. package/skills/stitch-mcp-get-screen/scripts/fetch-stitch.sh +35 -0
  57. package/skills/stitch-mcp-list-design-systems/SKILL.md +84 -0
  58. package/skills/stitch-mcp-list-projects/SKILL.md +77 -0
  59. package/skills/stitch-mcp-list-screens/SKILL.md +69 -0
  60. package/skills/stitch-mcp-update-design-system/SKILL.md +82 -0
  61. package/skills/stitch-mcp-upload-screens-from-images/SKILL.md +95 -0
  62. package/skills/stitch-mcp-upload-screens-from-images/scripts/encode-image.sh +43 -0
  63. package/skills/stitch-nextjs-components/SKILL.md +181 -0
  64. package/skills/stitch-nextjs-components/resources/architecture-checklist.md +65 -0
  65. package/skills/stitch-nextjs-components/resources/component-template.tsx +101 -0
  66. package/skills/stitch-nextjs-components/scripts/fetch-stitch.sh +45 -0
  67. package/skills/stitch-orchestrator/SKILL.md +337 -0
  68. package/skills/stitch-orchestrator/examples/workflow.md +173 -0
  69. package/skills/stitch-react-components/SKILL.md +236 -0
  70. package/skills/stitch-react-components/references/tailwind-to-react.md +117 -0
  71. package/skills/stitch-react-components/resources/architecture-checklist.md +34 -0
  72. package/skills/stitch-react-components/resources/component-template.tsx +35 -0
  73. package/skills/stitch-react-components/scripts/fetch-stitch.sh +35 -0
  74. package/skills/stitch-react-native-components/SKILL.md +333 -0
  75. package/skills/stitch-react-native-components/resources/architecture-checklist.md +74 -0
  76. package/skills/stitch-react-native-components/resources/component-template.tsx +104 -0
  77. package/skills/stitch-react-native-components/scripts/fetch-stitch.sh +45 -0
  78. package/skills/stitch-remotion/SKILL.md +280 -0
  79. package/skills/stitch-setup/SKILL.md +183 -0
  80. package/skills/stitch-shadcn-ui/SKILL.md +255 -0
  81. package/skills/stitch-skill-creator/SKILL.md +257 -0
  82. package/skills/stitch-skill-creator/references/output-patterns.md +71 -0
  83. package/skills/stitch-skill-creator/scripts/init_stitch_skill.py +229 -0
  84. package/skills/stitch-svelte-components/SKILL.md +282 -0
  85. package/skills/stitch-svelte-components/resources/architecture-checklist.md +62 -0
  86. package/skills/stitch-svelte-components/resources/component-template.svelte +193 -0
  87. package/skills/stitch-svelte-components/scripts/fetch-stitch.sh +36 -0
  88. package/skills/stitch-swiftui-components/SKILL.md +424 -0
  89. package/skills/stitch-swiftui-components/resources/architecture-checklist.md +83 -0
  90. package/skills/stitch-swiftui-components/resources/component-template.swift +131 -0
  91. package/skills/stitch-swiftui-components/resources/layout-mapping.md +155 -0
  92. package/skills/stitch-swiftui-components/scripts/fetch-stitch.sh +45 -0
  93. package/skills/stitch-ued-guide/SKILL.md +124 -0
  94. package/skills/stitch-ui-design-spec-generator/SKILL.md +115 -0
  95. package/skills/stitch-ui-design-spec-generator/examples/usage.md +79 -0
  96. package/skills/stitch-ui-design-variants/SKILL.md +127 -0
  97. package/skills/stitch-ui-prompt-architect/SKILL.md +196 -0
  98. package/skills/stitch-ui-prompt-architect/references/KEYWORDS.md +170 -0
@@ -0,0 +1,136 @@
1
+ {
2
+ "name": "list_projects",
3
+ "description": "Lists all Stitch projects accessible to the user. By default, it lists projects owned by the user.\n\n**Input Requirements:**\n\n1. **`filter` (string - OPTIONAL):** Filter for projects to list. Defaults to \"view=owned\" if not provided. The enum values are:\n * `\"view=owned\"`: To list only projects owned by the user.\n * `\"view=shared\"`: To list only projects shared with the user.\n",
4
+ "arguments": {
5
+ "type": "object",
6
+ "properties": {
7
+ "filter": {
8
+ "description": "Optional. AIP-160 filter. Supported: `view=owned` (default) or `view=shared`.",
9
+ "type": "string"
10
+ }
11
+ },
12
+ "description": "Request message for ListProjects."
13
+ },
14
+ "outputSchema": {
15
+ "type": "object",
16
+ "properties": {
17
+ "projects": {
18
+ "description": "Projects sorted by update time (most recent first).",
19
+ "items": { "$ref": "#/$defs/Project" },
20
+ "type": "array"
21
+ }
22
+ },
23
+ "$defs": {
24
+ "DesignTheme": {
25
+ "description": "The theme of the design.",
26
+ "properties": {
27
+ "backgroundDark": { "type": "string" },
28
+ "backgroundLight": { "type": "string" },
29
+ "colorMode": {
30
+ "enum": ["COLOR_MODE_UNSPECIFIED", "LIGHT", "DARK"],
31
+ "type": "string"
32
+ },
33
+ "customColor": { "type": "string" },
34
+ "description": { "type": "string" },
35
+ "font": {
36
+ "enum": [
37
+ "FONT_UNSPECIFIED",
38
+ "BE_VIETNAM_PRO", "EPILOGUE", "INTER", "LEXEND", "MANROPE",
39
+ "NEWSREADER", "NOTO_SERIF", "PLUS_JAKARTA_SANS", "PUBLIC_SANS",
40
+ "SPACE_GROTESK", "SPLINE_SANS", "WORK_SANS", "DOMINE",
41
+ "LIBRE_CASLON_TEXT", "EB_GARAMOND", "LITERATA", "SOURCE_SERIF_FOUR",
42
+ "MONTSERRAT", "METROPOLIS", "SOURCE_SANS_THREE", "NUNITO_SANS",
43
+ "ARIMO", "HANKEN_GROTESK", "RUBIK", "GEIST", "DM_SANS",
44
+ "IBM_PLEX_SANS", "SORA"
45
+ ],
46
+ "type": "string"
47
+ },
48
+ "preset": { "type": "string" },
49
+ "roundness": {
50
+ "description": "ROUND_TWO is deprecated/unused.",
51
+ "enum": ["ROUNDNESS_UNSPECIFIED", "ROUND_TWO", "ROUND_FOUR", "ROUND_EIGHT", "ROUND_TWELVE", "ROUND_FULL"],
52
+ "type": "string"
53
+ },
54
+ "saturation": { "description": "1–4", "format": "int32", "type": "integer" }
55
+ },
56
+ "type": "object"
57
+ },
58
+ "File": {
59
+ "properties": {
60
+ "downloadUrl": { "type": "string" },
61
+ "name": { "type": "string" }
62
+ },
63
+ "type": "object"
64
+ },
65
+ "Project": {
66
+ "description": "A project is a single app.",
67
+ "properties": {
68
+ "backgroundTheme": { "type": "string" },
69
+ "createTime": { "format": "date-time", "readOnly": true, "type": "string" },
70
+ "designTheme": { "$ref": "#/$defs/DesignTheme", "readOnly": true },
71
+ "deviceType": {
72
+ "enum": ["DEVICE_TYPE_UNSPECIFIED", "MOBILE", "DESKTOP", "TABLET", "AGNOSTIC"],
73
+ "readOnly": true,
74
+ "type": "string"
75
+ },
76
+ "metadata": { "$ref": "#/$defs/ProjectMetadata" },
77
+ "name": {
78
+ "description": "Identifier. Format: projects/{project}",
79
+ "type": "string",
80
+ "x-google-identifier": true
81
+ },
82
+ "origin": {
83
+ "enum": ["ORIGIN_UNSPECIFIED", "STITCH", "IMPORTED_FROM_GALILEO"],
84
+ "readOnly": true,
85
+ "type": "string"
86
+ },
87
+ "projectType": {
88
+ "enum": [
89
+ "PROJECT_TYPE_UNSPECIFIED", "TEXT_TO_UI", "TEXT_TO_UI_PRO",
90
+ "TEXT_TO_UI_PRO_IMAGE_SPACE", "IMAGE_TO_UI", "IMAGE_TO_UI_PRO", "PROJECT_DESIGN"
91
+ ],
92
+ "type": "string"
93
+ },
94
+ "readTime": { "format": "date-time", "readOnly": true, "type": "string" },
95
+ "screenInstances": {
96
+ "items": { "$ref": "#/$defs/ScreenInstance" },
97
+ "readOnly": true,
98
+ "type": "array"
99
+ },
100
+ "thumbnailScreenshot": { "$ref": "#/$defs/File" },
101
+ "title": { "type": "string" },
102
+ "updateTime": { "format": "date-time", "readOnly": true, "type": "string" },
103
+ "visibility": {
104
+ "enum": ["VISIBILITY_UNSPECIFIED", "PUBLIC", "PRIVATE"],
105
+ "type": "string"
106
+ }
107
+ },
108
+ "type": "object"
109
+ },
110
+ "ProjectMetadata": {
111
+ "properties": {
112
+ "isRemixed": { "type": "boolean" },
113
+ "userRole": { "enum": ["ROLE_UNSPECIFIED", "OWNER", "READER"], "type": "string" }
114
+ },
115
+ "type": "object"
116
+ },
117
+ "ScreenInstance": {
118
+ "properties": {
119
+ "groupId": { "type": "string" },
120
+ "groupName": { "type": "string" },
121
+ "height": { "format": "int32", "type": "integer" },
122
+ "hidden": { "type": "boolean" },
123
+ "id": { "type": "string" },
124
+ "label": { "type": "string" },
125
+ "sourceScreen": { "description": "Format: projects/{project}/screens/{screen}", "type": "string" },
126
+ "variantScreenInstance": { "$ref": "#/$defs/ScreenInstance" },
127
+ "width": { "format": "int32", "type": "integer" },
128
+ "x": { "format": "int32", "type": "integer" },
129
+ "y": { "format": "int32", "type": "integer" }
130
+ },
131
+ "type": "object"
132
+ }
133
+ },
134
+ "description": "Response message for ListProjects."
135
+ }
136
+ }
@@ -0,0 +1,56 @@
1
+ {
2
+ "name": "list_screens",
3
+ "description": "Lists all screens within a given Stitch project.\n\n**Input Requirements (CRITICAL):**\n\n1. **`project_id` (string - MANDATORY):** The name of the project to retrieve. This must be in the format `projects/{project_id}`.\n",
4
+ "arguments": {
5
+ "type": "object",
6
+ "properties": {
7
+ "projectId": {
8
+ "description": "Required. The project ID to list screens for. Format: projects/{project_id}",
9
+ "type": "string",
10
+ "x-google-identifier": true
11
+ }
12
+ },
13
+ "required": ["projectId"],
14
+ "description": "Request message for ListScreens."
15
+ },
16
+ "outputSchema": {
17
+ "type": "object",
18
+ "properties": {
19
+ "screens": {
20
+ "description": "The screens for the given project.",
21
+ "items": { "$ref": "#/$defs/Screen" },
22
+ "type": "array"
23
+ }
24
+ },
25
+ "$defs": {
26
+ "File": {
27
+ "properties": {
28
+ "downloadUrl": { "description": "FIFE base URL for images.", "type": "string" },
29
+ "name": { "description": "Format: projects/{project}/files/{file}", "type": "string" }
30
+ },
31
+ "type": "object"
32
+ },
33
+ "Screen": {
34
+ "description": "A screen generated by the agent.",
35
+ "properties": {
36
+ "deviceType": {
37
+ "enum": ["DEVICE_TYPE_UNSPECIFIED", "MOBILE", "DESKTOP", "TABLET", "AGNOSTIC"],
38
+ "type": "string"
39
+ },
40
+ "height": { "type": "string" },
41
+ "htmlCode": { "$ref": "#/$defs/File" },
42
+ "name": {
43
+ "description": "Identifier. Format: projects/{project}/screens/{screen}",
44
+ "type": "string",
45
+ "x-google-identifier": true
46
+ },
47
+ "screenshot": { "$ref": "#/$defs/File" },
48
+ "title": { "readOnly": true, "type": "string" },
49
+ "width": { "type": "string" }
50
+ },
51
+ "type": "object"
52
+ }
53
+ },
54
+ "description": "Response message for ListScreens."
55
+ }
56
+ }
@@ -0,0 +1,32 @@
1
+ {
2
+ "name": "update_design_system",
3
+ "description": "Updates an existing Stitch Design System's theme, tokens, or guidelines.\n",
4
+ "arguments": {
5
+ "type": "object",
6
+ "properties": {
7
+ "designSystem": {
8
+ "description": "Required. Asset wrapper with name + updated fields. Full replacement, not merge.",
9
+ "type": "object",
10
+ "properties": {
11
+ "name": { "description": "Required. Asset name from create or list (e.g., assets/ds_abc123).", "type": "string" },
12
+ "displayName": { "type": "string" },
13
+ "theme": { "description": "Updated DesignTheme object.", "type": "object" },
14
+ "designTokens": { "type": "string" },
15
+ "styleGuidelines": { "type": "string" }
16
+ },
17
+ "required": ["name"]
18
+ }
19
+ },
20
+ "required": ["designSystem"],
21
+ "description": "Request message for UpdateDesignSystem."
22
+ },
23
+ "outputSchema": {
24
+ "type": "object",
25
+ "properties": {
26
+ "name": { "type": "string" },
27
+ "displayName": { "type": "string" },
28
+ "designSystem": { "type": "object" }
29
+ },
30
+ "description": "Updated Asset response."
31
+ }
32
+ }
@@ -0,0 +1,52 @@
1
+ {
2
+ "name": "upload_screens_from_images",
3
+ "description": "Uploads one or more images into a Stitch project as new screens. Supports PNG, JPEG, WebP, and GIF formats.\n\n**Input Requirements:**\n1. **`projectId` (string - MANDATORY):** Numeric ID only — no `projects/` prefix.\n2. **`images` (array - MANDATORY):** Array of image objects with base64 content and MIME type.\n",
4
+ "arguments": {
5
+ "type": "object",
6
+ "properties": {
7
+ "projectId": {
8
+ "description": "Required. Numeric project ID only — do NOT include 'projects/' prefix.",
9
+ "type": "string"
10
+ },
11
+ "images": {
12
+ "description": "Required. Array of images to upload.",
13
+ "type": "array",
14
+ "items": {
15
+ "$ref": "#/$defs/ImageUpload"
16
+ }
17
+ }
18
+ },
19
+ "required": ["projectId", "images"],
20
+ "description": "Request message for UploadScreensFromImages.",
21
+ "$defs": {
22
+ "ImageUpload": {
23
+ "description": "An image to upload as a screen.",
24
+ "properties": {
25
+ "fileContentBase64": {
26
+ "description": "Base64-encoded image data. No data: URI prefix.",
27
+ "type": "string"
28
+ },
29
+ "mimeType": {
30
+ "description": "MIME type of the image.",
31
+ "enum": ["image/png", "image/jpeg", "image/webp", "image/gif"],
32
+ "type": "string"
33
+ }
34
+ },
35
+ "required": ["fileContentBase64", "mimeType"],
36
+ "type": "object"
37
+ }
38
+ }
39
+ },
40
+ "outputSchema": {
41
+ "type": "object",
42
+ "properties": {
43
+ "outputComponents": {
44
+ "description": "Array of output components with session information.",
45
+ "type": "array"
46
+ },
47
+ "projectId": { "type": "string" },
48
+ "sessionId": { "type": "string" }
49
+ },
50
+ "description": "Response message for UploadScreensFromImages."
51
+ }
52
+ }
@@ -0,0 +1,137 @@
1
+ # PRD → Stitch Workflow
2
+
3
+ How to go from a Product Requirements Document (or a rough idea) to production-ready components using this plugin.
4
+
5
+ ---
6
+
7
+ ## Input formats
8
+
9
+ The plugin accepts three levels of input richness:
10
+
11
+ | Input | Best path |
12
+ |-------|-----------|
13
+ | Full PRD document (feature overview, page list, key interactions) | PRD-driven workflow (all steps) |
14
+ | Rough description ("a SaaS dashboard with analytics") | Spec-first workflow (Steps 1–2, then generate) |
15
+ | Existing Stitch design (you already have project/screen IDs) | Export-only (skip to Step 4) |
16
+
17
+ ---
18
+
19
+ ## PRD structure that works best with Stitch
20
+
21
+ You don't need a perfect PRD — but these sections improve output quality:
22
+
23
+ | PRD section | How it's used |
24
+ |-------------|---------------|
25
+ | **Feature overview / domain** | Informs theme, color, and style (e.g. "healthcare" → clean + trustworthy, "creative tool" → bold + colorful) |
26
+ | **Page / screen list** | Determines how many Stitch screens to generate and in what order |
27
+ | **Key interactions** | Drives navigation type (tab bar vs. stack), form complexity, state handling (loading, error) |
28
+ | **Visual / brand preferences** | Feeds directly into `stitch-ui-design-spec-generator` and `stitch-ui-prompt-architect` |
29
+
30
+ ---
31
+
32
+ ## Full PRD-driven workflow
33
+
34
+ ### Step 1 — Design Spec (`stitch-ui-design-spec-generator`)
35
+
36
+ **Input:** PRD or user request
37
+ **Output:** JSON design spec
38
+
39
+ ```json
40
+ {
41
+ "theme": "LIGHT",
42
+ "primaryColor": "#6366F1",
43
+ "font": "modern sans-serif",
44
+ "roundness": "medium",
45
+ "density": "comfortable",
46
+ "designMode": "HIGH_FIDELITY",
47
+ "deviceType": "DESKTOP",
48
+ "styleKeywords": ["clean", "professional", "data-rich"]
49
+ }
50
+ ```
51
+
52
+ ### Step 2 — Stitch Prompt (`stitch-ui-prompt-architect`)
53
+
54
+ **Input:** Design Spec JSON + specific page/screen request
55
+ **Output:** Structured `[Context] [Layout] [Components]` prompt
56
+
57
+ For a PRD with multiple screens, run this step once per screen.
58
+
59
+ ### Step 3 — Create Project (`stitch-mcp-create-project`)
60
+
61
+ Create a single Stitch project for all screens from this PRD. One project = one design system.
62
+
63
+ ### Step 4 — Generate Screens (`stitch-mcp-generate-screen-from-text`)
64
+
65
+ Generate each screen defined in the PRD's page list. Do them sequentially to avoid race conditions.
66
+
67
+ For design consistency across screens: after generating the first screen, run `stitch-design-system` to extract tokens, then include the token summary in every subsequent prompt.
68
+
69
+ ### Step 5 — Retrieve Assets (`stitch-mcp-get-screen`)
70
+
71
+ For each screen: get `htmlCode.downloadUrl` + `screenshot.downloadUrl`. Download via:
72
+
73
+ ```bash
74
+ bash scripts/fetch-stitch.sh "[htmlCode.downloadUrl]" "temp/screen-name.html"
75
+ ```
76
+
77
+ ### Step 6 — Extract Design Tokens (`stitch-design-system`)
78
+
79
+ Run once after the first screen is downloaded. Generates:
80
+ - `design-tokens.css` — CSS variables for light + dark mode
81
+ - `tailwind-theme.css` — Tailwind v4 `@theme` block
82
+ - `DESIGN.md` — extended design system documentation
83
+
84
+ Use the `DESIGN.md` Section 6 in all subsequent Stitch prompts to maintain consistency.
85
+
86
+ ### Step 7 — Convert to Code
87
+
88
+ Choose your output target:
89
+
90
+ **Web:**
91
+ - `stitch-nextjs-components` — Next.js 15 App Router
92
+ - `stitch-svelte-components` — Svelte 5 / SvelteKit
93
+ - `stitch-react-components` — Vite + React (simpler, no App Router)
94
+ - `stitch-html-components` — HTML5 + CSS (PWA, WebView, Capacitor)
95
+
96
+ **Mobile:**
97
+ - `stitch-react-native-components` — Expo, iOS + Android
98
+ - `stitch-swiftui-components` — SwiftUI, iOS only
99
+
100
+ **Enrich with:**
101
+ - `stitch-shadcn-ui` — add shadcn/ui components to React output
102
+ - `stitch-animate` — animations and transitions
103
+ - `stitch-a11y` — WCAG 2.1 AA audit and fixes
104
+
105
+ ### Step 8 (Multi-page) — Iterate with `stitch-loop`
106
+
107
+ For sites with 5+ screens, use the baton-passing loop instead of manual repetition:
108
+
109
+ ```
110
+ DESIGN.md → next-prompt.md → stitch-loop → integrate → update next-prompt.md → repeat
111
+ ```
112
+
113
+ ---
114
+
115
+ ## Quick reference: which skill for which task
116
+
117
+ | Task | Skill |
118
+ |------|-------|
119
+ | "Turn this PRD into a design" | `stitch-orchestrator` → handles all steps |
120
+ | "I need a color palette" | `docs/color-prompt-guide.md` → pick a palette |
121
+ | "Make 3 design directions" | `stitch-ui-design-variants` |
122
+ | "Keep all screens consistent" | `stitch-design-system` first, then include `DESIGN.md` in every prompt |
123
+ | "Build 10+ pages" | `stitch-loop` |
124
+ | "Add forms and dialogs" | `stitch-shadcn-ui` (React) |
125
+ | "Check accessibility" | `stitch-a11y` |
126
+ | "Make a walkthrough video" | `stitch-remotion` |
127
+
128
+ ---
129
+
130
+ ## Common mistakes
131
+
132
+ | Mistake | Fix |
133
+ |---------|-----|
134
+ | Generating all screens before extracting tokens | Run `stitch-design-system` after screen 1; use DESIGN.md in all subsequent prompts |
135
+ | Different visual styles across screens | Include DESIGN.md Section 6 in every Stitch prompt |
136
+ | Using `projects/ID` format with `generate_screen_from_text` | Use numeric ID only — see `mcp-naming-convention.md` |
137
+ | Converting a DESKTOP design to React Native | Always check `deviceType` from `get_screen` response; regenerate with MOBILE if needed |
@@ -0,0 +1,108 @@
1
+ # stitch-kit Skills Index
2
+
3
+ Quick reference — all 34 skills organized by layer and stage.
4
+
5
+ **Layers:**
6
+ - **Orchestrator** — entry point that coordinates other skills
7
+ - **Brain** — design logic, spec generation, prompt engineering
8
+ - **Execution** — Stitch MCP tool wrappers
9
+ - **Conversion** — Stitch HTML → framework components
10
+ - **Quality** — design tokens, animation, accessibility
11
+ - **Meta** — skills for extending the plugin
12
+
13
+ ---
14
+
15
+ ## Full skills table
16
+
17
+ | Skill | Description | Layer | Stage |
18
+ |-------|-------------|-------|-------|
19
+ | `stitch-orchestrator` | End-to-end workflow: request → spec → prompt → generate → iterate → retrieve → convert → quality | Orchestrator | All |
20
+ | `stitch-ui-design-spec-generator` | User request / PRD → structured Design Spec JSON (theme, color, font, device, density) | Brain | Design input |
21
+ | `stitch-ui-prompt-architect` | Two paths: Path A (vague → enhanced) or Path B (spec + request → `[Context][Layout][Components]`) | Brain | Design input |
22
+ | `stitch-ui-design-variants` | Generate 3 alternative prompt variants for A/B design exploration. Native API detection for `generate_variants` when available. | Brain | Variants |
23
+ | `stitch-ued-guide` | Visual vocabulary, layout patterns, aesthetic styles, device constraints, color structure | Brain | Reference |
24
+ | `stitch-mcp-create-project` | Create a new Stitch project → extract numeric project ID | Execution | Setup |
25
+ | `stitch-mcp-list-projects` | List Stitch projects (owned or shared) | Execution | Discovery |
26
+ | `stitch-mcp-get-project` | Get project metadata (uses `projects/ID` format) | Execution | Discovery |
27
+ | `stitch-mcp-delete-project` | Permanently delete a Stitch project (uses `projects/ID` format, requires confirmation) | Execution | Cleanup |
28
+ | `stitch-mcp-generate-screen-from-text` | Text → UI screen (core Stitch generation — numeric ID only) | Execution | Generate |
29
+ | `stitch-mcp-upload-screens-from-images` | Import screenshots/mockups as new screens (numeric ID, base64 images) | Execution | Generate |
30
+ | `stitch-mcp-edit-screens` | Edit existing screens with text prompts — the iteration tool (numeric IDs) | Execution | Iterate |
31
+ | `stitch-mcp-generate-variants` | Generate design variants with creativity/aspect controls (numeric IDs) | Execution | Iterate |
32
+ | `stitch-mcp-list-screens` | List all screens in a project (uses `projects/ID` format) | Execution | Retrieve |
33
+ | `stitch-mcp-get-screen` | Get screen HTML + screenshot + dimensions (numeric IDs for both) | Execution | Retrieve |
34
+ | `stitch-mcp-create-design-system` | Create a reusable Stitch Design System from theme tokens | Execution | Design Systems |
35
+ | `stitch-mcp-update-design-system` | Update an existing design system (requires asset `name`) | Execution | Design Systems |
36
+ | `stitch-mcp-list-design-systems` | List available design systems (optional project filter) | Execution | Design Systems |
37
+ | `stitch-mcp-apply-design-system` | Apply a design system to screens (numeric IDs + assetId) | Execution | Design Systems |
38
+ | `stitch-nextjs-components` | Stitch HTML → Next.js 15 App Router components (TypeScript, dark mode, ARIA) | Conversion | Web |
39
+ | `stitch-svelte-components` | Stitch HTML → Svelte 5 / SvelteKit (runes, scoped CSS, transitions) | Conversion | Web |
40
+ | `stitch-html-components` | Stitch HTML → platform-agnostic HTML5 + CSS (PWA, WebView, Capacitor) | Conversion | Web |
41
+ | `stitch-react-components` | Stitch HTML → Vite + React (TypeScript, no App Router, simpler than Next.js) | Conversion | Web |
42
+ | `stitch-shadcn-ui` | Add shadcn/ui components to React apps (discovery, install, customization) | Conversion | Web |
43
+ | `stitch-react-native-components` | Stitch HTML → React Native / Expo (cross-platform iOS + Android) | Conversion | Mobile |
44
+ | `stitch-swiftui-components` | Stitch HTML → SwiftUI (native iOS, Xcode 15+) | Conversion | Mobile |
45
+ | `stitch-remotion` | Stitch screenshots → walkthrough video (Remotion, transitions, overlays) | Conversion | Video |
46
+ | `stitch-loop` | Iterative multi-page building: baton (next-prompt.md) → generate → integrate → update baton | Conversion | Multi-page |
47
+ | `stitch-design-md` | Analyze Stitch project → natural-language `DESIGN.md` with color palette, typography, atmosphere, and Section 6 Stitch prompt snippets | Quality | Design docs |
48
+ | `stitch-design-system` | Extract design tokens → `design-tokens.css` (light + dark), `tailwind-theme.css`, `DESIGN.md` | Quality | Tokens |
49
+ | `stitch-animate` | Add purposeful animation (CSS keyframes, Framer Motion, Svelte transitions, reduced-motion) | Quality | Animation |
50
+ | `stitch-a11y` | WCAG 2.1 AA audit and fixes (semantic HTML, ARIA, keyboard, focus, contrast, images) | Quality | Accessibility |
51
+ | `stitch-setup` | Install Stitch MCP + stitch-kit plugin (Claude Code / Codex CLI setup guide) | Meta | Setup |
52
+ | `stitch-skill-creator` | Factory for creating new Stitch skills (SOP, naming, template generator) | Meta | Extension |
53
+
54
+ ---
55
+
56
+ ## By output target
57
+
58
+ ### Web apps
59
+ Next.js, Svelte, HTML, Vite+React, shadcn/ui
60
+
61
+ ### Mobile apps
62
+ React Native (iOS + Android), SwiftUI (iOS only)
63
+
64
+ ### Multi-page sites
65
+ `stitch-loop` — iterative baton-passing pattern
66
+
67
+ ### Video
68
+ `stitch-remotion` — walkthrough from screenshots
69
+
70
+ ---
71
+
72
+ ## ID format quick reference
73
+
74
+ This is the most common source of bugs when calling Stitch MCP tools directly:
75
+
76
+ | Tool | projectId format | screenId format | Other IDs |
77
+ |------|-----------------|----------------|-----------|
78
+ | `create_project` | Returns `projects/NUMERIC_ID` | — | — |
79
+ | `list_projects` | — | — | — |
80
+ | `get_project` | `projects/NUMERIC_ID` | — | — |
81
+ | `delete_project` | `projects/NUMERIC_ID` | — | — |
82
+ | `generate_screen_from_text` | **Numeric only** | — | — |
83
+ | `upload_screens_from_images` | **Numeric only** | — | — |
84
+ | `edit_screens` | **Numeric only** | **Numeric array** | — |
85
+ | `generate_variants` | **Numeric only** | **Numeric array** | — |
86
+ | `list_screens` | `projects/NUMERIC_ID` | — | — |
87
+ | `get_screen` | **Numeric only** | **Numeric only** | — |
88
+ | `create_design_system` | **Numeric only** (optional) | — | Returns Asset `name` |
89
+ | `update_design_system` | — | — | Asset `name` required |
90
+ | `list_design_systems` | **Numeric only** (optional) | — | Returns Asset names |
91
+ | `apply_design_system` | **Numeric only** | **Numeric array** | `assetId` required |
92
+
93
+ **Rules of thumb:**
94
+ - **Read operations** (`get_project`, `list_screens`, `delete_project`) → `projects/ID` full path
95
+ - **Generation/mutation** (`generate_screen_from_text`, `edit_screens`, `generate_variants`, `upload_screens_from_images`, `apply_design_system`) → numeric only
96
+ - **Design system operations** → numeric `projectId` (optional), asset `name` for identity
97
+
98
+ See `mcp-naming-convention.md` for full details.
99
+
100
+ ---
101
+
102
+ ## References
103
+
104
+ - `mcp-naming-convention.md` — ID format rules
105
+ - `mcp-schemas/` — Formal JSON Schema definitions for all 14 Stitch MCP tools (fonts, roundness, componentRegions, outputComponents, variantOptions, designSystems)
106
+ - `color-prompt-guide.md` — 8 ready-to-use color palettes for Stitch prompts
107
+ - `tailwind-reference.md` — Tailwind utility class reference for conversions
108
+ - `prd-to-stitch-workflow.md` — PRD-driven design workflow