Cm miniprogram engineer
Skill kingxiaozhe/cm-workflow/skills/cm-miniprogram-engineer
微信小程序开发工程师 Skill,执行小程序开发任务,自动适配项目技术栈(原生小程序/Taro/uni-app 等),支持 Figma/Stitch 设计稿还原与云开发From its SKILL.md
npx -y skills add kingxiaozhe/cm-workflow --skill cm-miniprogram-engineerAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
7.3 KB, ~2.3k tokens by cl100k_base, as published. Nobody here has run it
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 变量或公共样式文件统一管理,不硬编码具体值
- 复用样式通过
@import公共样式或组件封装,而非到处复制 - 注意小程序 WXSS 不支持 部分 CSS 选择器(如
*、属性选择器有限),用 class 选择器为主
页面与组件开发:
- 页面用
Page({}),组件用Component({}),遵循项目已有模式 - 生命周期:页面
onLoad/onShow/onReady/onHide/onUnload,组件lifetimes.attached/ready/detached data更新统一走setData,只更新变化的字段,避免一次性 setData 大对象- properties / observers / 事件命名跟随项目约定,文件命名(page/component 四件套
.wxml/.wxss/.js/.json)跟随项目已有规律
状态管理:
- 识别项目使用的方案(
globalData/ mobx-miniprogram / Taro 用 Redux·Zustand / uni-app 用 Vuex·Pinia) - 简单局部状态用页面/组件原生
data - 跨页面共享参考 design.md 中的状态流转设计
数据请求:
- 原生:
wx.request(封装统一的 request 工具,处理 baseURL、token、loading、错误) - 云开发:云函数
wx.cloud.callFunction、云数据库db.collection() - 基于 design.md 中的接口契约;后端未就绪 → 先写 mock,标注
// TODO: replace mock when API ready - 统一处理错误提示(
wx.showToast)和 loading 状态(wx.showLoading)
路由与导航:
- 页面注册在
app.json的pages,tabBar 页面用wx.switchTab,普通页面wx.navigateTo/wx.redirectTo/wx.navigateBack - 页面栈最多 10 层,注意深层跳转改用 redirect
- 参数通过 query 传递(
navigateTo({url:'/pages/x?id=1'})),大对象用全局或本地缓存
登录与授权:
- 登录走
wx.login拿 code → 后端换 openid/session;用户信息用wx.getUserProfile(需用户点击触发) - 手机号、位置等敏感权限走对应的
open-type按钮或wx.authorize,处理拒绝授权的兜底
4. 验证
# 跨端框架(如项目使用)按实际命令执行
npm run lint
npm run build:weapp # Taro 示例;uni-app 为 npm run dev:mp-weixin
- 原生小程序:在微信开发者工具中编译,确认无报错、页面渲染正常
- 检查 真机预览(部分 API 与样式在真机和模拟器表现不同)
- 关注 包体积:主包 ≤ 2MB,超限需配置分包
常见坑
| 问题 | 处理 |
|---|---|
| setData 频繁/数据量大导致卡顿 | 只 setData 变化字段,避免在循环/滚动中高频调用,长列表用虚拟列表 |
| px 写死导致机型适配错乱 | 改用 rpx,必要时结合 wx.getSystemInfo 动态计算 |
getUserProfile 不触发/拿不到信息 | 必须由用户点击事件直接调用,不能在 onLoad 等生命周期里自动调 |
| 主包超 2MB 编译失败 | 配置 subpackages 分包,图片走 CDN,移除未用资源 |
| WXSS 选择器不生效 | 小程序不支持部分 CSS 选择器,改用 class;组件样式隔离用 styleIsolation |
| 自定义组件样式被隔离 / 穿透失败 | 用 externalClasses 或 :host,跨组件样式用全局类并设置隔离选项 |
wx.request 域名报错 | 在小程序后台配置合法域名(request/socket/uploadFile/downloadFile) |
| 组件重复造轮子 | 开发前先搜索项目已有组件与第三方 UI 库,grep 关键词 |
| 设计稿颜色/间距与项目 token 不一致 | 扩展公共样式变量而非硬编码 hex 值 |
| 跨端框架语法误用(Taro≈React/uni≈Vue) | 先确认框架,按对应语法写,不混用 |
输出
- 创建/修改的文件列表(含
.wxml/.wxss/.js/.json四件套及app.json路由变更) - 验证结果(开发者工具编译 / lint + build)
- 设计稿还原情况(如有设计稿)
- 需要其他工种配合的事项(如后端接口、合法域名配置、云函数部署)
What ships with it: 2 files
6.8 KB alongside SKILL.md
references/
- platform-readiness.md3.3 KB
- release-checklist.md3.5 KB