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.
- package/AGENTS.md +139 -0
- package/CHANGELOG.md +86 -0
- package/README.md +167 -0
- package/agents/stitch-kit.md +93 -0
- package/bin/stitch-kit.mjs +430 -0
- package/docs/architecture.md +118 -0
- package/docs/color-prompt-guide.md +119 -0
- package/docs/mcp-naming-convention.md +64 -0
- package/docs/mcp-schemas/README.md +130 -0
- package/docs/mcp-schemas/apply_design_system.json +36 -0
- package/docs/mcp-schemas/create_design_system.json +78 -0
- package/docs/mcp-schemas/create_project.json +290 -0
- package/docs/mcp-schemas/delete_project.json +20 -0
- package/docs/mcp-schemas/edit_screens.json +46 -0
- package/docs/mcp-schemas/generate_screen_from_text.json +242 -0
- package/docs/mcp-schemas/generate_variants.json +77 -0
- package/docs/mcp-schemas/get_project.json +137 -0
- package/docs/mcp-schemas/get_screen.json +92 -0
- package/docs/mcp-schemas/list_design_systems.json +32 -0
- package/docs/mcp-schemas/list_projects.json +136 -0
- package/docs/mcp-schemas/list_screens.json +56 -0
- package/docs/mcp-schemas/update_design_system.json +32 -0
- package/docs/mcp-schemas/upload_screens_from_images.json +52 -0
- package/docs/prd-to-stitch-workflow.md +137 -0
- package/docs/skills-index.md +108 -0
- package/docs/tailwind-reference.md +207 -0
- package/package.json +41 -0
- package/skills/stitch-a11y/SKILL.md +428 -0
- package/skills/stitch-a11y/resources/audit-checklist.md +102 -0
- package/skills/stitch-animate/SKILL.md +371 -0
- package/skills/stitch-animate/resources/animation-patterns.md +248 -0
- package/skills/stitch-design-md/SKILL.md +215 -0
- package/skills/stitch-design-md/examples/DESIGN.md +54 -0
- package/skills/stitch-design-md/examples/usage.md +67 -0
- package/skills/stitch-design-md/scripts/fetch-stitch.sh +35 -0
- package/skills/stitch-design-system/SKILL.md +314 -0
- package/skills/stitch-design-system/resources/tokens-template.css +237 -0
- package/skills/stitch-html-components/SKILL.md +344 -0
- package/skills/stitch-html-components/resources/architecture-checklist.md +74 -0
- package/skills/stitch-html-components/scripts/fetch-stitch.sh +45 -0
- package/skills/stitch-loop/SKILL.md +183 -0
- package/skills/stitch-loop/examples/SITE.md +39 -0
- package/skills/stitch-loop/examples/next-prompt.md +24 -0
- package/skills/stitch-loop/examples/usage.md +77 -0
- package/skills/stitch-mcp-apply-design-system/SKILL.md +82 -0
- package/skills/stitch-mcp-create-design-system/SKILL.md +117 -0
- package/skills/stitch-mcp-create-project/SKILL.md +77 -0
- package/skills/stitch-mcp-delete-project/SKILL.md +62 -0
- package/skills/stitch-mcp-edit-screens/SKILL.md +121 -0
- package/skills/stitch-mcp-generate-screen-from-text/SKILL.md +102 -0
- package/skills/stitch-mcp-generate-screen-from-text/examples/desktop.md +53 -0
- package/skills/stitch-mcp-generate-screen-from-text/examples/mobile.md +71 -0
- package/skills/stitch-mcp-generate-variants/SKILL.md +124 -0
- package/skills/stitch-mcp-get-project/SKILL.md +67 -0
- package/skills/stitch-mcp-get-screen/SKILL.md +117 -0
- package/skills/stitch-mcp-get-screen/scripts/fetch-stitch.sh +35 -0
- package/skills/stitch-mcp-list-design-systems/SKILL.md +84 -0
- package/skills/stitch-mcp-list-projects/SKILL.md +77 -0
- package/skills/stitch-mcp-list-screens/SKILL.md +69 -0
- package/skills/stitch-mcp-update-design-system/SKILL.md +82 -0
- package/skills/stitch-mcp-upload-screens-from-images/SKILL.md +95 -0
- package/skills/stitch-mcp-upload-screens-from-images/scripts/encode-image.sh +43 -0
- package/skills/stitch-nextjs-components/SKILL.md +181 -0
- package/skills/stitch-nextjs-components/resources/architecture-checklist.md +65 -0
- package/skills/stitch-nextjs-components/resources/component-template.tsx +101 -0
- package/skills/stitch-nextjs-components/scripts/fetch-stitch.sh +45 -0
- package/skills/stitch-orchestrator/SKILL.md +337 -0
- package/skills/stitch-orchestrator/examples/workflow.md +173 -0
- package/skills/stitch-react-components/SKILL.md +236 -0
- package/skills/stitch-react-components/references/tailwind-to-react.md +117 -0
- package/skills/stitch-react-components/resources/architecture-checklist.md +34 -0
- package/skills/stitch-react-components/resources/component-template.tsx +35 -0
- package/skills/stitch-react-components/scripts/fetch-stitch.sh +35 -0
- package/skills/stitch-react-native-components/SKILL.md +333 -0
- package/skills/stitch-react-native-components/resources/architecture-checklist.md +74 -0
- package/skills/stitch-react-native-components/resources/component-template.tsx +104 -0
- package/skills/stitch-react-native-components/scripts/fetch-stitch.sh +45 -0
- package/skills/stitch-remotion/SKILL.md +280 -0
- package/skills/stitch-setup/SKILL.md +183 -0
- package/skills/stitch-shadcn-ui/SKILL.md +255 -0
- package/skills/stitch-skill-creator/SKILL.md +257 -0
- package/skills/stitch-skill-creator/references/output-patterns.md +71 -0
- package/skills/stitch-skill-creator/scripts/init_stitch_skill.py +229 -0
- package/skills/stitch-svelte-components/SKILL.md +282 -0
- package/skills/stitch-svelte-components/resources/architecture-checklist.md +62 -0
- package/skills/stitch-svelte-components/resources/component-template.svelte +193 -0
- package/skills/stitch-svelte-components/scripts/fetch-stitch.sh +36 -0
- package/skills/stitch-swiftui-components/SKILL.md +424 -0
- package/skills/stitch-swiftui-components/resources/architecture-checklist.md +83 -0
- package/skills/stitch-swiftui-components/resources/component-template.swift +131 -0
- package/skills/stitch-swiftui-components/resources/layout-mapping.md +155 -0
- package/skills/stitch-swiftui-components/scripts/fetch-stitch.sh +45 -0
- package/skills/stitch-ued-guide/SKILL.md +124 -0
- package/skills/stitch-ui-design-spec-generator/SKILL.md +115 -0
- package/skills/stitch-ui-design-spec-generator/examples/usage.md +79 -0
- package/skills/stitch-ui-design-variants/SKILL.md +127 -0
- package/skills/stitch-ui-prompt-architect/SKILL.md +196 -0
- 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
|