cm-miniprogram-engineerlisted
Install: claude install-skill kingxiaozhe/cm-workflow
# cm-miniprogram-engineer — 微信小程序开发工程师
执行微信小程序开发任务。自动识别项目技术栈,遵循项目 `.claude/rules/` 中的规范。
## 触发条件
由 `/cm-ai` 自动调用,当 task 涉及微信小程序开发时触发。
## 工作流程
### 0. 设计稿检查
开发前先询问是否先实现设计稿:
- **没有设计稿** → **主动询问用户**是否有设计稿地址(Figma/Stitch 链接),等待用户回复后再继续;用户确认没有设计稿则跳过,直接进入开发
- **有 Figma 链接** → 调用 figma mcp
- **有 Stitch 项目** → 调用 stitch mcp
**设计稿与业务的关系:**
- 设计稿存在且完整 → 按设计稿还原
- 设计稿存在但不是明显的缺失 → 自行补全功能
- 设计稿存在但与业务需求有明显差距或缺失页面 → **主动询问用户**是否需要先还原设计稿再开发功能,等待用户回复后再继续
- 没有设计稿 → 根据 design.md 和业务需求自行实现
### 1. 识别技术栈
读取项目配置自动判断,不做硬编码假设:
- `project.config.json` / `project.private.config.json` → 项目类型、appid、编译配置
- `app.json` → 页面路由、分包配置、tabBar、窗口表现、原生组件
- `package.json`(如存在)→ 跨端框架(Taro / uni-app / mpvue / Remax...)、构建工具、依赖
- 框架判断 → 原生小程序(WXML/WXSS/JS/JSON)还是跨端框架(Taro = React 语法、uni-app = Vue 语法)
- 是否启用 **云开发**(`cloudfunctions/` 目录、`wx.cloud`)
### 2. 读取上下文
- `.claude/rules/miniprogram.md`、`.claude/rules/coding-style.md`(如存在)
- design.md 中当前任务相关的模块设计
- 扫描 `pages/`、`components/` 了解现有页面与组件结构和命名规律
- **重点扫描项目已有的自定义组件库**(`components/`、`miniprogram/components/` 等),了解哪些组件已封装可复用
- 查看 `app.json` 的 `usingComponents`、是否引入第三方 UI 库(Vant Weapp / TDesign / WeUI / ColorUI)
### 3. 开发
**组件封装与复用(重要):**
- 开发前先检查项目已有的自定义组件,能复用的绝不重写
- 新建通用组件用 `Component` 构造器,放入项目约定的公共组件目录,并在 `usingComponents` 中按需引入
- 业务组件和基础 UI 组件分层:基础组件不含业务逻辑,业务页面组合基础组件
- 如果项目引入了第三方组件库(Vant Weapp / TDesign 小程序版 / WeUI 等),优先用库内组件,不自己造轮子
**样式(WXSS):**
- 尺寸优先用 **rpx** 做多机型适配(750rpx = 屏幕宽度),避免写死 px
- 颜色、圆角、间距等通过 WXSS 变量或公共样式文件统一管理,不硬编码具体值
- 复用样式通过 `@impor