--- name: stitch-main-workflow description: 本项目 Stitch 主技能/总编排:先完成 spec.md,再完成并确认 Stitch 设计,最后才允许生成 index.tsx;若 Stitch MCP 不可用则立即停止。 allowed-tools: - "stitch*:*" - "Read" - "Write" - "Bash" - "web_fetch" - "chrome*:*" --- # Stitch 主流程(总编排) 本技能用于把 `design-md` / `stitch-loop` / `react-components` 组织为统一流程,强制执行: 1. 先完成 `spec.md` 2. 再完成并确认 Stitch 设计 3. 最后才允许创建或修改 `index.tsx` ## 目标与硬门槛(必须满足) - **硬门槛 1**:未完成 Stitch 设计确认前,不允许创建或修改 `src/prototypes//index.tsx` 或 `src/components//index.tsx`。 - **硬门槛 2**:如果 Stitch MCP 不可用或调用失败,必须直接反馈并停止,不进入代码生成阶段。 ## 环境自检(阻塞,失败即停) 开始主流程前,必须先做一次 Stitch MCP 探针调用,再决定是否继续: - 可用探针示例:`list_projects` 或 `create_project` - 探针成功:继续执行主流程 - 探针失败:输出以下固定反馈并停止 ```text ⚠️ 当前环境未启用 Stitch MCP(无法调用 Stitch 工具),因此无法在 index.tsx 前完成 Stitch 设计。请启用 Stitch MCP 后重试。 ``` ## 主流程(顺序固定) ### 1) 准备目标路径 - 目标目录只能是: - `src/prototypes//` - `src/components//` - `` 只能使用小写字母、数字、连字符(kebab-case) ### 2) 先完成 `spec.md`(作为 Stitch prompt 合同) - 按 `src/docs/templates/spec-template.md` 产出 `spec.md`(本技能不重复展开模板细节) - `spec.md` 至少包含: - 目标 - 模块 IA(树形结构) - 关键文案语气 - 数据字段 - 响应式要点 ### 3) 使用 Stitch 完成“设计”并确认 > **根目录 `DESIGN.md` 自动同步**:当用户在管理后台“设为默认主题”时,该主题的 `DESIGN.md` 会被自动同步到项目根目录(`/DESIGN.md`)。如果根目录存在此文件且用户没有特殊指定,应默认将其内容提交给 Stitch 作为设计规范进行生成。 1. (可选)如需风格统一,先用 `design-md` 从既有 Stitch screen 生成 `DESIGN.md`;或直接使用根目录已同步的 `DESIGN.md` 2. 使用 `generate_screen_from_text`,prompt 以 `spec.md` 为基础;若有 `DESIGN.md`(优先检查根目录),把设计系统相关内容并入 prompt 3. 使用 `get_screen` 获取最终候选 screen 的 `screenshot` 与 `htmlCode` 4. 如果结果不符合 `spec.md`,使用 `edit_screens` 迭代,直到满足 5. 设计确认最小产物: - `screenshot` - `html` 本地保存建议放在 `temp/` 或 `.drafts/`(两者都被 `.gitignore` 忽略)。 ### 3.5) 交互与响应式提醒(按用户需求为准,不以 Stitch 产物为准) Stitch 产物偏静态(HTML/CSS),经常会出现“截图对齐了,但交互/响应式并不等同于需求”的情况。这里不把检查做成硬门槛,但你必须遵守一个原则: - **交互与响应式的验收基准永远来自用户需求 / `spec.md`**,不要把 Stitch 输出当成“需求本身”或“默认标准”。 按需做快速核对(仅在 `spec.md` 明确要求时): - **响应式**:如果 `spec.md` 要求断点/多端适配,就检查对应设备下是否塌陷、溢出、信息层级是否仍成立。 - **交互状态**:如果 `spec.md` 要求交互/可访问性,就核对 hover/focus/disabled 等状态与键盘可达性是否满足。 - **动态交互**:如果需求包含弹窗、抽屉、复杂表单校验、异步加载等 Stitch 难以表达的动态行为,应在 `spec.md` 明确标注为“代码阶段补齐”,避免误判“设计已完成”。 > 可选:若当前环境提供 Chrome MCP,可用它辅助做“缩放/断点切换 + 截图”验证,作为发现问题的手段即可。 ### 4) 回写 `spec.md`(与 Stitch 最终设计对齐) 在 `spec.md` 中补齐以下字段: - Stitch `projectId` - Stitch `screenId` - 截图本地保存路径 - HTML 本地保存路径 - 最终模块结构确认点 ### 5) 最后生成 `index.tsx`(从 Stitch 设计落地) 本主流程只负责编排与 gate,具体转换实现参考: - `skills/third-party/stitch-skills/react-components/SKILL.md` 本项目最小必须约束(仅保留以下): - `index.tsx` 顶部必须包含 `@name` 中文注释块(参考 `rules/development-guide.md`) - 组件或页面必须 `export default`(参考 `vite-plugins/axhubComponentEnforcer.ts`) - 使用 Tailwind 时,`style.css` 顶部必须包含 `@import "tailwindcss";` ### 6) 验收(必须跑完) 按目标类型执行验收脚本,结果必须为 `READY`: ```bash node scripts/check-app-ready.mjs /prototypes/ node scripts/check-app-ready.mjs /components/ ``` ## 技能路由指南(触发条件 -> 使用技能 -> 产出) | 触发条件 | 使用技能 | 产出 | |---|---|---| | 已有 Stitch 设计,或多页需要统一风格 | `design-md` | `DESIGN.md`,供后续 prompt 复用 | | 需要多页迭代、baton 编排建站 | `stitch-loop` | 循环生成多页 screen 与任务接力 | | 需要把 Stitch HTML/设计落地成 React 代码 | `react-components` | 组件/页面代码,并对齐 `@name`、默认导出、Tailwind 引入约束 | ## 说明与非目标 - 本技能不重复展开“必读规范”的详细说明,只做最小引用(默认已完成基础规范阅读)。 - 本技能不要求额外平台接口适配约束;只要求本项目最小代码约束与验收通过。