Appearance
避坑实录
晨悦·生活小程序前端跟做时,AI 生成代码的高频坑与补救——每条都配「你怎么说」。
AI CODING · 场景二 · 验收与纠错
生成不是终点。看 diff 范围 → 跑预览 → 贴原文纠错。假完成比写错更危险。
节奏 每卡一验优先 范围 > 细节
本节要点
- 每次生成后的四步验收节奏
- 高频坑 + 原话纠错表
- 「今天吃什么」五步手工剧本 + 回滚话术
验收四步(每次生成后)
- 看 diff:是否超出 Prompt 允许文件
- 跑预览:主路径是否点通
- 看控制台:红字原样贴回
- 再发下一句 — 不要攒三个问题一次甩
同一处磨超过三轮:先回滚,再把任务拆小。不要继续「再优化一下」。
坑位表
| 坑 | 症状 | 你怎么纠 |
|---|---|---|
| 一次生成整站 | 目录爆炸、引用缠在一起 | 「只改 Prompt 列出的文件,其它全部还原。」 |
| 组件里写路由 | 卡片无法复用 | 「卡片只 emit id,跳转留给页面。」 |
| Mock 字段漂移 | 列表有数据、详情空白 | 「列表与详情共用同一 mock 字段名,先贴两端 JSON。」 |
| 引入重 UI 库 | 安装很久、体积暴涨 | 「不要新增 UI 库;用现有标签 + 少量 CSS。」 |
| 静默改类型 | MealSceneId 变 string | 「用餐场景 id 必须是约定枚举,不要放宽。」 |
| 筛选写进组件 | 换页要复制逻辑 | 「筛选回 domain 纯函数,组件只展示。」 |
| 假完成 | 「做好了」但点不通 | 「按主路径点三步;把控制台原文贴回来。」 |
| 改依赖「顺便升级」 | lockfile 巨 diff | 「还原 package.json/lockfile,业务 diff 单独保留。」 |
| 做成阶段推荐 | 出现孕期 / 宝宝月龄按钮 | 「本切片是今天吃什么;用餐场景枚举,不要阶段。」 |
主路径手工验收脚本
在开发预览里按顺序做,打勾再收工:
- 打开首页,默认用餐场景有列表(或引导先选场景)
- 切到「一人食」,列表条数变化且菜名合理
- 点第一张卡(如番茄炒蛋),详情标题与列表一致,有小贴士
- 地址栏或路由改成不存在的 id,看到空态而不是白屏
- 返回列表,场景选择仍在(若本切片已做持久化;未做则可忽略)
Diff 审查口诀
text
范围? → 契约? → 真源? → 导航? → 依赖?- 范围:是否超允许文件
- 契约:props/事件是否被放宽
- 真源:是否出现第二套 mealScenes
- 导航:跳转是否漏在卡片里
- 依赖:是否偷改 package.json
五问都过,再谈样式与文案。
给 AI 的纠错 Prompt
给 AI · 纠错 · 贴现象不重述需求
text
【现象】
- 我点了:…
- 期望:…
- 实际:…
- 控制台/报错原文:
【约束】
- 只改与该现象相关的最少文件
- 不重构、不换栈、不新增依赖
【请你】
1. 根因一句话
2. 最小 diff
3. 我应再点哪一步确认修复一场翻车对话(对照)
坏:「列表不对,你再优化一下。」→ AI 大改首页 + 换筛选 + 动 Mock → 多轮空转。
好:
text
【现象】选 solo 后仍看到只标了 family 的菜
【期望】只显示 sceneIds 含 solo 的项
【实际】混入家庭专属项
【约束】只改 domain 筛选或首页调用处;不改组件
【请你】根因一句话 + 最小 diff + 我再切用餐场景如何确认回滚话术
diff 已经脏到看不下去时:
text
请停止继续修改。
把本次 Prompt 允许范围之外的文件全部恢复到任务开始前。
只保留 ScenePicker / DishCard / 首页 的必要改动。
恢复后用 git status 列表给我核对。场景二收工检查
- [ ] architecture 与真实目录一致
- [ ] 两组件契约未被放宽
- [ ] 主路径手工五步通过
- [ ] 无无关 lockfile 变更
- [ ] 工作记录里存着用过的Prompt 原文
- [ ] 页面文案是用餐场景,不是「宝宝阶段」