微信小程序开发实战手册 v1.1
面向「AI 生成代码 + 人工核验」协作模式的小程序工程手册。定位从 v1.0 的「跑得对」升级为「主体配得上、跑得对、验得过、审得过、上线后不炸」。
三句话概括本手册的立场:
1. 很多小程序不是死在代码上,是死在主体和类目上 —— 所以第一步不是写代码,是确认你的主体能不能做这件事。
2. 静态断言全绿不等于能用 —— 必须有一层真机端到端证据,否则「全绿」只是证明正则没写错。
3. 上线不是终点 —— 模型下线、额度到期、平台门槛变动都是有日期的,写进日历,不靠记性。
一、十二条铁律(先立规矩,再写代码)
全部来自真实翻车复盘(两个上线项目 + 一次完整的换主体重建),不是通用建议。违反任意一条,返工成本指数级上升。
- 「改了没效果」,先证明改动跑到了,再调逻辑。 四类元凶:① 编译失败但跑的是上一次成功的旧产物;② 改的代码是死代码(实况参数永远进不去那个分支);③ 提示词/配置被静默截断;④ 云函数改了没重传、前端改了没重编译。没排除这四条之前,不许改业务逻辑。
- 断言可能在保护 bug。 断言里钉着裸数字(
length <= 2000)或旧口径措辞,先问它从哪来。口径一变,旧断言从「守护」变成「绊脚石」——改口径必须连带改断言,并且跑一次「预期红」:断言不红,说明它根本没盯着那个值。 - 断言全绿 ≠ 断言有用。 三条硬要求:新增断言必须配变异测试(注入错误必须被抓到);变异体里的
from字符串要随口径同步(不同步 = 静默 MISS = 假绿);变异 SKIP 一律当红灯。 - 静态证据封顶在 L0。 正则读源码只能证明「代码里写着」,证明不了「跑起来对」。改生成链路/云函数/支付链路,必须真机走一遍核心路径再宣布完成——有过「22 个套件 985 项全绿、线上出不了图」的实例。
- 同一不变量只写一处 = 只有一半保护。 打包脚本守的是交付前的包,日常回归不跑它;所以关键一致性要同时落在「每次改代码都跑的 check」和「交付前跑的 pack」两处,两者触发时机不同。
- 凡「上线前必须改」的开关,必须有阶段概念。 纯软提醒(
print一句 ⚠️)守不住任何东西。做法:加APP_LAUNCHED这类布尔,未上线期软提醒、上线后硬 FAIL。已出过事故:小程序已发布,海报码环境还停在体验版,普通用户扫开是「页面不存在」。 - 禁用脚本批量写源码。 Windows 上
open(p,'w')会把 LF 写成 CRLF,导致所有.*$型剥注释正则失效、一批断言假红(症状与改动毫无关系)。优先 Edit 工具;非用脚本不可时二进制读写,改完数一遍\r\n,并在打包脚本加行尾硬校验(.json除外,开发者工具会写回 CRLF)。 - 任何反向断言(「代码里不得出现 X」)必须先剥注释再查,且先问「我判断的对象里,它有可能出现吗」。 踩过三类假阳性:X 出现在注释的反面示例里;X 本来就在白名单里;判断对象写成整条匹配语句(永远不含 X)⇒ 断言恒真。判据要锚定具体函数体/具体赋值表达式,不要「全文扫某个字符串」。
- 带默认值的函数被复用时,先问「这个默认值当初为谁定的」。 「参数没传」= 静默退回默认值,而默认值往往是给另一条链路留的(如「逐像素等于旧版」的回滚保证)。用户只会报他看得见的那一个参数,其余可选参数要自己逐个过一遍。
- 写操作的回包必须带结果状态 + 真实值,前端一律以回包覆盖本地。 乐观更新只要本地判断与服务端不同源,就会静默做反操作,且永不自我纠正(点赞「越点越少」)。回滚用操作前快照,请求期间防重入。
- 资质/平台规则只信官方一手文档,且以「页面能不能点」为最终判据。 认证费用、备案要求、类目开放范围、支付政策、算法备案材料——第三方文章一律不作依据;两份官方文档口径打架时,以实际提交页的提示/按钮状态为准,并留档截图。
- 交付前必须实际重跑一遍。 禁止凭 diff 推断「应该没问题」。说「更新」= 全量同步:常量、计算式里的每个数字、注释、断言、打包脚本、协议文案、下游明细,改完全项目扫旧值零残留。
二、触发场景与适用任务
| 场景 | 典型任务 | 主导航 |
|---|---|---|
| 立项定界 | 选主体类型、定服务类目、判断能不能做 | §三 + references/subject-and-category.md |
| 新工程搭建 | 从零搭小程序:结构、隐私、云开发、自检脚本 | §四 + references/project-structure.md |
| AI 辅助开发 | 需求描述 → 代码生成 → 静态守门 → 逻辑仿真 → 真机迭代 | §五 + references/ai-codegen-rules.md |
| 生图/AI 能力接入 | 提示词工程、版本号通道、内容安全、AI 生成标识、模型下线 | §五 + references/ai-codegen-rules.md |
| 变现接入 | 虚拟支付、额度/会员、激励视频广告、流量主 | §九 + references/launch-checklist.md |
| 换主体/换账号 | 个人→企业、注销重注册、新开号并行、云环境重建 | §十 + references/subject-and-category.md |
| 调试排错 | 改动不生效、白屏、真机与工具不一致、数字越点越少 | §八 + references/debugging-playbook.md |
| 提审上线 | 认证/备案/隐私声明/类目/提审材料/真机全链路 | §九 + references/launch-checklist.md |
不适用:纯 Web/H5 开发;uni-app/Taro 跨端框架的编译层问题(本手册按原生小程序口径写,跨端项目只取通用部分);小程序插件开发。
三、主体与类目:动手前先过这一关 ★v1.1 新增
核心事实:主体资质决定功能边界,代码写得再好也补不上。 先做这一步,能省掉整轮返工。
3.1 第一问:你的功能,个人主体能不能做?
| 功能 | 个人主体 | 说明 |
|---|---|---|
| 通用工具(图片处理、计算器、记录类) | ✅ 可以 | 常见类目「工具 › 图片处理」等 |
| 深度合成(AI 问答 / AI 绘画 / AI 换脸) | ❌ 不开放 | 官方明文列为个人主体未开放类目;提审约十几分钟即驳,理由只有一句 |
| UGC 公开内容(作品展、社区、公开访问) | ⚠️ 需社交类目 | 「工具›图片处理」的适用范围明确写了「不适用于传播分享、公开访问」 |
| 虚拟支付 | ✅ 可以(月限额 10 万) | 但类目需含「工具」等前置条件 |
⇒ 做 AI 生成类产品,第一步就是企业主体。个人的替代路径只有两条:换主体,或用公司重新注册(详见 §十)。
3.2 类目三原则
- 类目要「够用且不越界」:基础类目(工具›图片处理)+ 专项类目(深度合成›AI绘画)通常要同时具备;缺专项被驳、缺基础被判「类目与功能不符」。
- 读类目的「适用范围」小字,不是读类目名:那几行决定了你的功能有没有越界(公开访问 ⇒ 社交范畴)。
- 不主动加会引入额外义务的类目(如社交›笔记会带来 UGC 专项要求),被指出再补;但要提前备好答辩证据链(文本审核 + 图片审核 + 审核状态机 + 举报道具 + 异步回调)。
3.3 AI 生成类目要交的两份材料(最容易传错)
| 上传框 | 要证明什么 | 传哪部分 | 盖章 |
|---|---|---|---|
| ① 技术主体《算法备案》 | 技术方有这个算法备案 | 备案查询结果(备案编号/算法名称/类型/主体/状态「正常」/发布日期) | 提交方公章 |
| ② 合作协议 | 双方有合作关系 | 协议整页(含算法名称/应用场景/备案编号) | 我方公章 + 技术方章(「双方鲜章」只针对这份) |
- 弹窗底部「复印件务必加盖公司公章」是整个弹窗的通用规范,含义是「提交方为这份复印件的真实性背书」,不是替技术方背书。
- 两个框不要传同一张图(② 会因缺「协议正文 + 鲜章」被判材料不足)。点旁边的「查看示例」最准。
- 格式:
jpg/jpeg/bmp/gif/png、≤10MB、不收 PDF(先转图);章盖在页面下方空白处,别压住算法名称与备案编号。 - 有效期填法两份不同:算法备案填长期有效;合作协议填协议上的服务有效期。
- 材料入口在技术方控制台的 AI 模块(如云开发「人工智能 → 小程序专区 → 深度合成备案」),能直接生成协议要素页 + 备案查询结果。别问通用客服,它会答「需双方自行拟定」。
> 完整判据、表单字段、时间线与检查单:references/subject-and-category.md。
四、工程结构规范(摘要)
完整规范见 references/project-structure.md。硬性要点:
├── app.js / app.json / app.wxss # 全局;隐私字段只放 app.json
├── pages/<name>/ # 页面四件套:js/json/wxml/wxss 一个不能少
├── components/ # 自定义组件(显式闭合,禁止自闭合)
├── utils/ # 纯函数优先——可抽离、可单测
├── services/ # 网络/支付/AI 唯一出口层
├── cloudfunctions/<fn>/ # index.js + package.json + config.json(按需)
├── tools/ # 自检脚本(check_wxml / check_pack_size / 逻辑仿真)
└── project.config.json # packOptions.ignore 决定什么进包
- 版本号双通道:前端
APP_BUILD/BUILD_TAG(验「手机跑的是新代码吗」)+ 云端PROMPT_VERSION/ENGINE_BUILD(验「云函数部署对吗」)。改哪侧升哪个,只增不减。两个通道回答不同问题,不许互相验证。 - 前后端同构清单:样式表/决策链/配额规则等两边各存一份的常量,改一处必须同步另一处,并加断言守同构;三份以上副本要求逐字节一致。
- 单一真源:「界面显示 N 次」与「云端放行 N 次」抽成
quota-core.js纯函数,前端不本地重算。 - 主包 ≤ 2MB(总分包 ≤ 20MB):
packOptions.ignore支持folder/file/suffix/prefix/regexp/glob六种;.bak-*不被suffix:".bak"匹配,用{"type":"regexp","value":"\\.bak"};训练产物/数据集必须进 ignore(有过主包 76.94MB 的实例)。改 ignore 后必须重开项目才生效。 - 云函数目录里的任何文件都算包内容:改
cloudfunctions/<fn>/下的README.md也会逼你重传该函数 ⇒ 文档改动只写项目级.md。
五、分阶段开发流程
Phase 0 立项定界 → Phase 1 脚手架 → Phase 2 AI 生成 → Phase 3 静态自检 → Phase 4 逻辑仿真 → Phase 5 真机验收 → Phase 6 提审上线 → Phase 7 上线后运维
| 阶段 | 动作 | 出口条件 |
|---|---|---|
| 0 立项定界 | 确认主体类型能否覆盖目标功能与类目;列隐私接口清单(grep 全项目 wx. 调用);定版本号双通道 |
主体×类目结论成稿 + 接口清单↔后台勾选映射表 |
| 1 脚手架 | 建目录;app.json 写隐私字段(requiredPrivateInfos 只放地理位置类 8 个接口);配 ignore;落 tools/ 自检 |
check_wxml + check_pack_size 可运行 |
| 2 AI 生成 | 按 references/ai-codegen-rules.md 写提示词/生成代码;每完成一块跑一次静态守门 |
0 错误;同构清单已同步 |
| 3 静态自检 | node tools/check_wxml.js;node --check 全 js;python tools/check_pack_size.py;行尾 LF 守门 |
三项全绿 + CRLF=0 |
| 4 逻辑仿真 | 易错纯逻辑(状态机/坐标换算/分页游标/决策链)抽成顶层函数,按真实路径跑;断言配变异 | 仿真全绿 + 变异全部被抓 |
| 5 真机验收 | 按 launch-checklist.md 真机节走全链路;清缓存→冷编译→真机预览 |
验收表全勾 + 核心链路真机出结果 |
| 6 提审上线 | 认证/备案/隐私声明/类目/提审备注;发布后改环境类常量并重传云函数 | 清单全勾 |
| 7 上线后运维 | 登记时间炸弹(模型下线/额度到期);开数据备份;观察一版真实数据 | 日历有提醒 + 备份已开 |
> 全程节奏(哪天干什么、每步要什么资料)见 references/project-journey.md——两个真实项目从开工到上线的路线图。
AI 协作纪律:每个阶段结束给「结果 + 证据等级」,不给「我觉得」。构建通过 ≠ 功能通过;截图 ≠ 交互通过;测试全绿 ≠ 测试有效(见 §七)。
六、AI 提示词与代码生成规范(摘要)
完整规范见 references/ai-codegen-rules.md。最高频的六条:
- 提示词三件套:
PROMPT_VERSION版本号通道(改口径必 +1)+ 长度预算与超限告警(禁止静默slice)+ 按实况参数自测(用生产真实会传的参数组合)。 - 同一维度只允许一个口径。提示词里三处说「线条粗细听谁的」= 模型自选。落笔前全局搜同义表述,冲突的合并成一句;权重声明必须与意图一致。
- 举例会变成指令:禁令中的名词一律中性化(「形状奇怪的局部」而不是「形状奇怪的尾巴」)。
- 禁令配对正向要求:写完禁令清单,逐条补「应该怎么做」,并给可数判据(「原稿几笔,成图也大致几笔」)。
- 代码生成 = 迁移时忠实搬移:源码有的逻辑一项不丢(鉴权 header/query 一个不能少),源码没有的一项不加(不顺手加 try/catch、不「优化」)。拿不准是不是必要 → 是必要的,后端校验对你是黑盒。
- 验收先行:先写「能区分正确与失败的检查」,再实现。Bug 先复现再修;修完留回归,且新断言要做反向自测(旧代码下必须变红),否则可能是假绿。
七、证据分级与断言有效性 ★v1.1 新增(本手册最该先看的一节)
7.1 三级证据,不许跨级下结论
| 等级 | 是什么 | 能证明 | 不能证明 |
|---|---|---|---|
| L0 静态 | 正则读源码、算版式尺寸、node --check、包体积 |
代码里写着什么、包多大 | 跑起来对不对、模型/云端通不通 |
| L1 仿真 | 把纯逻辑抽成函数,用真实输入跑 + 断言 + 变异 | 逻辑分支对、边界对、状态机对 | 真机渲染、SDK 行为、云函数实际返回 |
| L2 端到端 | 真机/真环境走核心链路(出图、支付、发布、回调) | 这一条链路现在能用 | 其他设备/其他分支 |
- 说「完成」必须报等级:「已修改,L0 通过」「L2 已验证出图」——不许用 L0 冒充 L2。
- 项目里 20+ 套件、上千条断言,没有一条会去调模型。所以「全部校验通过」在生成链路上一文不值。
7.2 断言六种失效形态(都真踩过)
| 形态 | 症状 | 修法 |
|---|---|---|
| 弱断言 | 版式明明重叠,断言一直绿(判据写成「错开 22px」而实际需要 83px) | 按几何算边界(A 的底 ≤ B 的顶),不写「大于某个比例」 |
| 恒真断言 | 判断对象选错,条件永远成立 | 反向自测:旧代码下必须变红 |
| 抄数字 | 断言里写死常量值,改口径要记得改第 N 处 | 断言自己去找真源(正则解析常量再拼期望值) |
| 变异体失同步 | 改了口径没改 from ⇒ MISS ⇒ 假绿 |
改任何被变异引用的字符串时同步 from;跑完看「抓 N 漏 M」 |
| 保护旧口径 | 改口径后断言变红,被当成 bug 去改回来 | 预期红是证据;先同步断言再看绿 |
| 只写一处 | 关键一致性只写在打包脚本 ⇒ 日常回归放它过去 | check 套件 + 打包脚本双岗 |
7.3 逻辑仿真怎么做才算数
- 被测逻辑抽成顶层纯函数(不依赖
this/wx),仿真脚本require后按真实参数调用; - 每个缺陷都要有能演出 bug 的对照组(缺陷能被复现),否则「修好了」无法证明;
- 分页/游标类要构造边界重合数据(同毫秒、同分数)——边界不落在切口上时,
<和<=跑出来一模一样,反向用例假通过; - 改行为的改动必须跑反向/复演脚本(
rev-check-*.js),不能只跑正向断言。
八、调试排错入口
完整排错手册见 references/debugging-playbook.md。第一决策树:
现象:我改的东西没生效
├─ 开发者工具 Console 有红色编译错误? → 是:修编译错误(当前跑的是旧产物!)
├─ 改的是云函数? → 重传了吗?(右键上传并部署:云端安装依赖)
├─ 改的是前端 utils/app? → 重新编译了吗?清缓存了吗?
├─ 改的是提示词/配置? → 版本号变了吗?日志里搜得到新版本号吗?
└─ 以上都排除 → 才轮到查死代码 / 静默截断 / 缓存
v1.1 新增高频症状速查(详细根因见排错手册):
| 症状 | 第一嫌疑(别查错方向) |
|---|---|
| 点赞越点越少 | 前端乐观更新未用服务端 active/count 覆盖;本地判重与服务端不同源 |
| 选了竖版却出横版、装饰全丢 | 复用带默认值的函数时没传全部可选参数(默认值是给别的链路留的) |
| 点了「存对照图」没反应 | 共享面板的出口状态泄漏(上一入口留下的 action 未重置)→ 走了别的分支被裸 return |
| 海报上的码扫开「页面不存在」 | 小程序码 env_version 还是 trial;发布后必须改 release 并重传云函数 |
| 列表只显示 20 条、越用越像正常 | 接口只有 limit 没有分页;第 21 条起结构性不可达 |
| 分页漏条 / 重复 | 游标用 < 改 <=(宁可重复不可漏,前端按 id 去重);hasMore 按原始取回条数判 |
| 不该出现的内容进了列表 | wx-server-sdk 的 where() 第二次调用是覆盖不是叠加,多条件必须合并同一个对象 |
| 放后台过夜,第二天还显示昨天那句 | 只在 onLoad 取数据;需 onShow 刷新(值没变不 setData) |
| 断言突然一片红,报错与改动无关 | 脚本写入把 LF 改成 CRLF ⇒ 剥注释失效;或注释里写了 /* */ 字面符号 |
| 发版后用户要开关两次才看到新功能 | 没接 getUpdateManager;默认是「下次冷启动」生效 |
九、上线前检查清单(摘要)
完整清单见 references/launch-checklist.md(唯一权威版)。提审前必过的八组:
- 开发开关复位:
QUOTA_UNLIMITED等自测开关改回false(多处同值,按常量名搜);POSTER_CODE_ENV_VERSION发布后改'release'并重传对应云函数;密钥不进交付包(打包扫描非空即拒)。 - 隐私合规:后台勾选 ↔ 代码 grep 一致(用了没声明 = errno 112;声明了没用 = 被打回);
requiredPrivateInfos只放地理位置类;隐私弹窗只弹一次;拒绝后功能可降级。 - AI 合规:生成内容带显式标识(生成图/结果页/分享海报三处,建议单一来源常量);文本
msgSecCheck、图片mediaCheckAsync,并配wxa_media_check消息推送回调(不配 = 永远 pending)。 - 主体与资质:企业认证已通过(认证期间类目不可编辑);备案已完成(2023-09-01 起新小程序必须备案才能提审);备案与类目是两条独立线,缺一条都发不出去;专项类目已过审。
- 支付:虚拟商品必须走官方虚拟支付;iOS 需微信 ≥ 8.0.68;付费入口未接通时整块不渲染(不留假按钮,撞 3.3.1)。
- 真机全链路:核心路径真机走一遍并留三张证据图(生成图、详情页、海报),类目/提审都可能要。
- 提审材料:版本描述只写「审核员点得到的」功能(入口未渲染的功能写上去 = 描述与实际不符,典型驳回);首次提交不写「A→B」「修复 XX」(审核员没有参照物);备注写清额度规则与演示路径。
- 发布动作:审核通过 ≠ 已上线,必须回「版本管理」点发布 + 管理员扫码;发布后确认备案号展示、环境类常量、更新提示生效。
十、换主体 / 换账号(v1.1 新增,独立成篇)
完整执行单见 references/subject-and-category.md「迁移」章。 记住五个结论即可:
- 三条路,选错要多花 2~3 周:① 主体变更(保 AppID、保数据,需公证时成本高);② 注销重注册(新 AppID、新环境,15 天公示且同步释放云数据库与存储桶);③ 改名 + 新开号并行(旧号延后处置——改名之后「先注销抢原名」的前提就消失了,可省 15 天)。
- 顺序要随需求重算:任何一次需求变更(尤其改名),都要回头重算方案的前提条件。原计划里的「必须先做 A」可能已经变成可选项。
- 几个会卡死人的隐藏规则:备案负责人「不同主体不能是同一人」且必须 = 小程序管理员;备案不能过户,主体变了只能注销重办;一个身份证/一个手机号各只能注册 5 个;类目提交有月度配额(实测 5 次/月),材料没齐就点取消,零损失。
- 主体验证方式影响并行度:对公打款当场生效(开发可与认证/备案并行),微信认证 1~5 工作日且期间部分能力受限 —— 选型别只看「少几步」。
- 换环境成本要分开算:空环境换成本≈0(改一处 envId + 重传云函数);有数据的账号才叫麻烦(导出集合 + 下载云存储,最容易漏云存储,只导库会得到一堆 404 的 fileID)。
十一、上线后运维与时间炸弹 ★v1.1 新增
上线不是结束。上线那一刻,至少有两颗时间炸弹开始倒计时,而且都没有公告提醒你。
| 炸弹 | 特征 | 动作 |
|---|---|---|
| 模型下线 | 官方公告写明日期 + 「接替模型调用方式不同」 | 把日期变成断言(check-model-deprecation):迁移日前提示、迁移日~下线日 FAIL、下线后 FAIL;带新模型提审,不要「先上线再迁移」 |
| 免费额度/环境到期 | 成长计划类资源包通常 6 个月,到期环境停服、额度归零 | 上线当天在日历钉「到期前 1 个月续费或迁移」;到期日写进项目常量注释 |
| 平台门槛变动 | 流量主 UV 门槛一年内从 1000 → 500 → 100(后台实测) | 以后台页面显示为准,别背数字;入口条件是「累计 UV」不是 DAU |
| 数据无备份 | 云开发默认可能未开自动备份,误删/误改不可逆 | 开自动备份 + 定期导出;回档是覆盖式的,回档前先导出当前数据 |
其它上线后必做:接入 getUpdateManager(否则用户要冷启动两次才看到新版);观察一版真实数据再定优化方向(性能瓶颈往往在云函数查询字段,不在渲染)。
十二、参考资料索引(按需加载,不要预加载)
| 文件 | 用途 | 加载时机 |
|---|---|---|
references/subject-and-category.md |
主体选择、类目申请、算法备案材料、备案、换主体/换账号迁移执行单 | 立项第一件事;要换主体/换号;类目被驳 |
references/project-structure.md |
工程结构、app.json/project.config.json 字段、隐私配置与 app.js 接线、分包策略、同构与单一真源 | 立项/改结构/配隐私时 |
references/project-journey.md |
开发→上线全流程路线图:每步做什么/要什么资料/注意事项(真实项目实证) | 立项规划、排期、走到某一步不知道要什么时 |
references/ai-codegen-rules.md |
提示词工程七条 + 代码生成六条 + 断言与变异工程 + 提示词模板 | 写提示词/AI 生成代码前;写断言时 |
references/debugging-playbook.md |
症状→根因→修法全表(改动不生效/白屏/云函数/真机差异/隐私/包体/数据一致性/互动) | 遇到任何异常时 |
references/launch-checklist.md |
上线前唯一权威检查清单 + 提审材料 + 上线后动作 | 准备提审时 |
references/pitfalls-registry.md |
60+ 条实战避坑登记册(A~L 十二类,含证据与出处) | 动手前扫一遍 / 复盘时 |
references/faq.md |
常见问题速查(一问一答,含主体/类目/时间炸弹) | 快速定位时 |
references/sources.md |
本手册信息来源与取舍说明(含脱敏声明) | 维护/引用追溯时 |
scripts/check_wxml.js |
WXML 守门:wx:else+wx:for 同标签、自定义组件自闭合、注释未闭合 | 每次改 WXML 后 |
scripts/check_pack_size.py |
主包体积自检(ignore 六类型全解析) | 每次上传前 |
assets/privacy-dialog.* |
隐私弹窗组件模板(三道闸门版),4 个同名文件:.js / .json / .wxml.txt / .wxss.txt。⚠️ 平台上传白名单不含 .wxml/.wxss,故这两个以 .txt 分发,落到项目后需重命名回 .wxml / .wxss |
新建需要隐私接口的项目时 |
十三、与其它技能的分工
- wechat-cloudbase-pitfalls(已安装):云函数/云数据库/云存储的深度避坑(超时、右键失灵、定位漂移、水印、虚拟支付细节)。本手册指向它,不重复。
- tdesign-miniprogram / wechat-miniprogram(专家内置):组件库与框架 API 速查。本手册管流程、规范与避坑,不管 API 细节。
- zip-pack-verify / skillhub-publish-sop:本手册的交付物若要打包分发,走这两个技能的校验流程(文件头、隐私扫描、
__pycache__剔除)。 - 平台规则以官方文档为准;本手册只沉淀「官方没写、但真机才会教你的」部分。
十四、使用方式
- 触发:对话中出现小程序开发/调试/提审/换主体任务时自动加载;也可显式说「用微信小程序开发实战手册」。
- 顺序:先看 §三(主体与类目)判断可行性,再按 §五 走阶段;不要跳过 Phase 0 直接写代码。
- 按索引表只读当前任务需要的文件,不要一次全读。
- 落地自检:把
scripts/两个脚本复制到项目tools/;把assets/下 4 个privacy-dialog.*复制到components/privacy-dialog/并改回privacy-dialog.js/.json/.wxml/.wxss(.wxml.txt/.wxss.txt去掉.txt);再按project-structure.mdprivacy 节完成app.js接线。 - 守门脚本要能被注入验证:故意改坏 → 必须报警。跑不红的守门脚本等于没有。
- 本手册的所有案例均已脱敏:不含 AppID、envId、公司名称、备案号、邮箱、真实路径。复用到自己项目时,按占位符替换。