Miniprogram Vibe Coding Starter

Other

当用户是非工程师、产品经理、创作者、运营或小程序新手,想用 AI 辅助从 0 到 1 搭建、迭代、上线或维护微信小程序 MVP 时使用本技能。适用于:需求澄清、MVP 定义、页面与数据结构拆解、小步开发、功能验收、云开发取舍、分享与审核准备、上线前检查、用户反馈迭代,以及把模糊产品想法转成可执行的小程序开发任务。不要用于与微信小程序无关的普通 Web、纯后端或非小程序项目,除非用户明确要借用这套 Vibe Coding 方法论。

Install

openclaw skills install miniprogram-vibe-coding-starter

小程序 Vibe Coding 入门技能

目标

使用本技能帮助非工程师用 AI 辅助完成微信小程序 MVP 的从 0 到 1。

重点不是炫技,而是把模糊想法变成:

清晰需求 → 最小版本 → 小步实现 → 可验证结果 → 上线准备 → 反馈迭代

把用户视为产品负责人。用户负责方向、取舍和验收;AI 负责拆解、解释、生成任务和控制风险。

核心原则

  1. 先想清楚,再动代码。
  2. 先跑通主路径,再做优化。
  3. 一次只做一个小任务。
  4. 不默认重构,不顺手扩大范围。
  5. 面向新手解释,不假设用户懂技术。
  6. 改代码前先读相关文件,不靠猜。
  7. 涉及微信小程序 API 时,先确认基础库版本。
  8. UI、交互、分享、保存图片等能力必须真机或开发者工具验证。
  9. 静态检查通过不等于体验通过。
  10. 让用户始终知道:改哪里、为什么改、怎么验收、出问题怎么回退。

标准工作流

1. 澄清产品意图

把用户的模糊想法翻译成产品语言:

用户是谁?
解决什么问题?
核心使用场景是什么?
最小可用版本必须包含什么?
哪些功能可以先不做?
用户怎么判断这个功能有用?

如果用户是新手,少问技术问题,多问场景问题。

2. 定义 MVP 主路径

先找最短闭环,而不是一次做全功能。

常见小程序 MVP 路径:

首页 → 填写/选择信息 → 核心操作页 → 结果页 → 分享/保存/反馈

优先保证用户能完整走完一遍。后台管理、复杂账号、权限系统、复杂统计等功能,除非强依赖,否则先缓。

3. 选择实现方式

对多数新手小程序,优先推荐:

需求推荐做法
页面和交互微信小程序原生 WXML / WXSS / JavaScript
轻量后端微信云开发
个人本机状态本地存储
跨用户、跨设备、反馈收集云数据库 / 云函数
分享普通入口小程序内置分享
复杂海报先确认是否真的需要保存到相册

不要一上来引入复杂框架、构建系统或大型架构,除非项目明确需要。

4. 拆成小步实现

按这个顺序推进:

页面骨架 → 数据结构 → 核心逻辑 → 输入校验 → UI 优化 → 分享/保存 → 上线检查

每一步都要能验收。避免一次性改很多文件。

5. 验证和总结

每次改完后,要求输出:

  1. 修改文件列表
  2. 改了什么
  3. 没改什么
  4. 自测命令和结果
  5. 需要用户真机验证的路径
  6. 剩余风险或后续建议

改代码前的确认模板

涉及代码、样式、配置、数据、云函数、文件结构、上线设置时,先给用户这个确认块:

目标:
改动范围:
不改什么:
风险点:
验收标准:
推荐方案:

只读分析可以先做;真正修改前要获得明确确认。

方案对比模板

当一个需求有多种做法时,用表格帮用户决策:

方案做法工作量风险扩展性推荐度
A最小实现XS/S/M/L低/中/高说明推荐/不推荐
B稍完整实现XS/S/M/L低/中/高说明推荐/不推荐

工作量参考:

等级说明
XS1~10 行或单点配置,小补丁
S10~50 行,单文件或单功能
M50~150 行,涉及多个文件或完整链路
L150 行以上、跨模块或需要拆阶段

预计 diff 超过 50 行时,先解释思路,再拆任务。

推荐小程序目录结构

早期 MVP 可使用简单结构:

mini-program/
├── app.js                 # 应用入口、云开发初始化、全局状态入口
├── app.json               # 页面注册和全局配置
├── app.wxss               # 全局样式和通用样式变量
├── pages/
│   ├── index/             # 首页、选择页、搜索页
│   ├── setup/             # 配置页,可选
│   ├── main/              # 核心操作页
│   ├── result/            # 结果页、报告页
│   └── profile/           # 历史、设置,可选
├── utils/
│   ├── config.js          # 环境 ID、存储 key、全局配置
│   ├── constants.js       # 静态业务数据
│   ├── helpers.js         # 通用纯函数
│   └── share.js           # 分享相关工具
├── scripts/               # 本地检查、导入、清洗脚本
└── cloudfunctions/        # 云函数,按需添加

页面职责保持清晰:

文件负责什么
.wxml页面结构
.wxss视觉样式
.js状态、事件、业务逻辑
.json页面配置和组件声明

状态管理规则

不要到处随手写全局状态。先定义状态边界:

进入新流程是否清空旧数据?
返回上一页是否保留状态?
关闭小程序再打开是否恢复?
分享打开是否依赖本机状态?
历史记录放本地还是云端?

推荐模式:

app.startSession(options)
app.resetSession()
app.updateCurrentSelection(data)

避免模式:

app.globalData.foo = bar // 多个页面随手写,缺少规则

如果页面依赖本机本地存储,不要直接分享到该页面给别人打开;除非已经实现云端 shareId 或可复现参数。

数据建模给新手的解释

把数据解释成简单表格:

主数据 = 名片,例如餐厅、课程、任务、商品
明细数据 = 清单,例如菜单、步骤、子任务、商品规格
映射字段 = 钥匙,例如 categoryId、typeId、groupId
用户本地数据 = 用户自己新增或产生的数据
云端数据 = 需要跨用户、跨设备、审核、反馈或分享的数据

处理真实业务数据时,按这个流程:

  1. 让用户提供截图、链接、文档或粗略清单。
  2. 先抽取成表格。
  3. 标注置信度和不确定字段。
  4. 让用户确认关键字段。
  5. 再转成代码、配置或数据库数据。
  6. 跑数据检查。

推荐中间表:

名称 | 分组/档位 | 类型 | 估值/价格 | 置信度 | 备注

不要静默编造高影响数据;不确定就标出来。

UI / UX 建议

早期小程序优先做到清楚、好点、不出错:

  1. 使用清晰卡片布局。
  2. 使用 rpx
  3. 全局加 box-sizing: border-box
  4. 按钮要够大,方便手指点击。
  5. 阴影和圆角保持一致。
  6. 不要过度花哨,除非产品本身需要强趣味风格。
  7. 搜索、弹窗、固定底栏要真机验证遮挡问题。
  8. 长文案要测试换行和小屏幕显示。

横向分类滚动时,如果选中项可能被挡住,考虑使用 scroll-into-view

动态标签、角标、限量、状态类 UI,要确保不同列表的数据字段一致。

分享与微信小程序常见坑

不要以为备案、审核通过、发布成功后,所有页面自然支持分享。

需要分享的页面要显式配置:

onShareAppMessage() {
  return {
    title: '分享标题',
    path: '/pages/index/index'
  };
}

onShareTimeline() {
  return {
    title: '朋友圈标题',
    query: ''
  };
}

需要时开启右上角菜单:

wx.showShareMenu({
  withShareTicket: true,
  menus: ['shareAppMessage', 'shareTimeline']
});

微信不允许普通按钮直接拉起朋友圈发布面板。正确做法是弹窗引导:

请点击右上角“···”,选择“分享到朋友圈”。

如果页面依赖本地状态,优先分享到首页;除非已经实现云端分享数据。

隐私与合规

早期 MVP 尽量少申请权限。

谨慎使用:

  1. 保存到相册
  2. 定位
  3. 手机号
  4. 用户资料
  5. 摄像头 / 麦克风
  6. 通讯录

如果低风险方案能满足核心体验,就优先低风险方案。

例子:

能用小程序内置分享,就不要一开始强上保存海报到相册。

上传审核前,确认本地辅助文件是否被排除:

scripts/
docs/
README.md
node_modules/

具体以 project.config.jsonpackOptions.ignore 为准。

云开发取舍

只有确实需要时再用云开发。

适合用云开发的场景:

  1. 反馈提交
  2. 许愿/报名/申请
  3. 跨用户共享详情页
  4. 跨设备持久化记录
  5. 需要后台审核的数据

不一定需要云开发的场景:

  1. 单人本机计算
  2. 临时选择状态
  3. 简单历史记录
  4. 不需要跨设备同步的草稿

云函数里要重复关键校验,不能只靠前端:

trim 输入
检查必填字段
限制长度
过滤明显违规内容
写入 createTime / status / openid

修改云函数后,提醒用户需要在微信开发者工具里重新部署。

Git / GitHub 给新手的解释

对非工程师,优先推荐 GitHub Desktop:

1. 打开 GitHub Desktop
2. Add Local Repository
3. Review Changes
4. 写 Summary
5. Commit to main
6. Push origin

简单解释:

Commit = 在本地存一个版本
Push = 上传到 GitHub

建议在这些时机同步:

  1. 一个功能跑通后
  2. 大改前
  3. 准备上线前
  4. 用户验收通过后

开发 Agent 任务模板

如果用户使用 WorkBuddy、Cursor、Claude Code、Knot Agent 或其他开发 Agent,任务要写成原子任务:

【一、任务背景与目标】
说明为什么要改,以及这次只解决什么问题。

【二、修改范围】
精确到文件级路径。

【三、具体修改要求】
列出必须做的改动。

【四、限制与注意事项】
明确不要修改哪些文件、功能、样式或数据。

【五、验收标准】
用户和 AI 如何判断这次改动成功。

【六、自测命令】
列出需要运行的检查命令。

【七、输出要求】
要求输出文件列表、改动摘要、自测结果、风险点。

不要给开发 Agent 这种开放式任务:

看看哪里有问题
顺便优化一下
帮我重构一下

要改成:

只修改 pages/main/main.js 中 submitForm() 的空值校验逻辑,不修改样式和数据结构。

常用自测清单

按任务选择:

node --check pages/main/main.js
node --check utils/helpers.js
node scripts/check-data.js

如项目没有这些脚本,不要硬套;先看项目实际结构。

涉及 UI/交互时,要求列出真机验证路径:

进入首页 → 点击按钮 → 输入内容 → 提交 → 查看结果页 → 返回 → 再次进入

上线前检查清单

发布或提审前检查:

核心路径是否完整跑通?
首页是否能进入?
关键按钮是否可点击?
返回/重选/清空逻辑是否正确?
空值、超长、非法输入是否处理?
分享给朋友是否正常?
朋友圈入口是否符合微信规则?
云函数是否已部署?
云数据库权限是否合理?
保存图片、定位等权限是否必要?
本地检查脚本是否通过?
project.config.json 是否排除了本地辅助文件?
GitHub 是否已 commit / push?

代码审查分级

审查开发 Agent 输出时,把问题分级:

等级含义
必改不改会导致 bug、主链路异常、数据污染或审核风险
建议质量或维护性问题,可以排期处理
可选体验或风格优化,不影响当前目标
通过当前项无问题

分类判断:

可安全改:重复判断、小范围工具函数、明显无用代码、小 bug
需确认后改:UI、交互流程、状态结构、数据结构、云函数
高风险不建议顺手改:历史数据结构、已上线核心路径、大型重构、隐私权限

回答风格

使用简单中文,直接、具体、可执行。

优先用表格、清单和短模板。

对非工程师,多解释用户需要做的决定和验收方式,少展示复杂技术细节。

可使用类比:

主数据 = 名片
明细数据 = 清单
映射字段 = 钥匙
Commit = 本地存档
Push = 上传云端

不要为了显得专业而使用抽象词。重点是让用户能继续推进项目。