实战场景:对话脚本示范
前面的教程讲"怎么用",这里讲"完整跑一遍"。三个常见场景的端到端对话脚本,可以直接拿去改。
脚本里用
pnpm作为示例,把它换成你自己的包管理器(npm/yarn/bun)即可。
场景一:用 Claude Code 重构一个复杂模块
目标:把耦合严重的支付模块拆成可维护的结构。直接让 AI 一把梭经常跑偏,分三步走。
第一步:先摸清现状
读 src/services/payment/ 下所有文件,做三件事:
1. 画出调用关系(谁调用谁)
2. 列出当前问题(重复代码、循环依赖、缺少测试等)
3. 不要改任何代码,输出到 docs/payment-analysis.md
先做,做完等我确认。
第二步:要方案,不要代码
基于上面的分析,给出 2 个重构方案。
每个方案说清楚:
- 核心思路(一句话)
- 改动范围(哪些文件会动,估算代码行数)
- 优缺点各 2-3 条
- 风险点
不要开始写代码,等我选方案。
第三步:按方案分步执行
按方案 1 重构,分四个阶段做,每个阶段完成后暂停:
① 抽取公共的 PaymentGateway 接口
② 把 WechatPay / AlipayPay 改成实现类
③ 给每个实现类加单元测试(覆盖率 > 80%)
④ 加端到端集成测试
要求:
- 每个阶段做完跑 pnpm test 验证不破坏现有功能
- 每个阶段 commit 一次,commit message 说清楚改了什么
- 有疑问先问我再改
关键点:第一步"不要改代码"、第二步"不要写代码"、第三步"每阶段暂停",是阻止 AI 失控的三道闸。
场景二:Claude Code + Cursor 协作开发新功能
目标:开发一个订单导出功能。Claude Code 做设计和骨架,Cursor 填实现细节。
第一步:Claude Code 做架构设计
需求:后台管理系统加订单导出功能,支持 CSV/Excel,
按时间范围 + 订单状态筛选,大数据量流式导出(避免 OOM)。
分析需求,输出到 docs/design/order-export.md:
1. 数据库查询方案(分页 or 游标)
2. API 设计(路由、参数、响应格式)
3. 前端交互(按钮位置、进度反馈)
4. 核心技术选型(CSV 用什么库、Excel 用什么库)
只写文档,不写代码。
第二步:Claude Code 生成骨架
按 docs/design/order-export.md 生成代码骨架:
- src/app/api/orders/export/route.ts
- src/services/order-export.service.ts
- src/components/order-export-dialog.tsx
每个文件只写接口签名和 TODO 注释,不要实现具体逻辑。
类型定义要完整,方便后面 IDE 补全。
第三步:切 Cursor 填实现
在 Cursor 里打开骨架文件,用 Composer 逐个填充。以 order-export.service.ts 为例,Composer 里输入:
@order-export.service.ts 按 TODO 实现每个方法。
@docs/design/order-export.md 参考设计文档。
用游标分页,每批 1000 条,避免内存爆炸。
第四步:回 Claude Code 跑测试和审查
刚才 Cursor 填完了实现,现在你来审查:
1. 跑 pnpm typecheck 和 pnpm test,把报错贴出来修掉
2. 按 common/code-review.md 的五个维度审查(安全 > 正确性 > 性能 > 可维护性 > 测试)
3. 检查是否和 docs/design/order-export.md 对齐
4. 最后生成 PR 描述,写清楚改动和测试范围
分工原则:架构决策给 Claude Code(全局能力强),实现细节给 Cursor(IDE 内交互快),最后回 Claude Code 做系统性验证。
场景三:给老项目补测试
目标:一个没测试的老项目,用 AI 快速把覆盖率拉起来。
一次性给出完整指令
给 src/services/ 下的代码补测试,按这个流程做:
优先级(按这个顺序做):
1. 核心业务:payment/、order/、auth/
2. 外部依赖:database/、api-client/
3. 工具函数:utils/、helpers/
每个文件的流程:
1. 先读代码,列出关键路径和边界条件(输出一个 checklist)
2. 让我看 checklist,我确认后再写测试
3. 用 Vitest,测试文件放在 __tests__/ 或 *.test.ts
4. 每个文件测完跑 pnpm test 确认通过
5. commit 一次,message 写清楚加了哪个文件的测试
质量要求:
- 覆盖率目标 80%,但不追求 100%(getter/setter 不测)
- 测行为,不测实现(不要 mock 所有内部方法)
- 边界条件要测:空值、超长、并发、异常输入
现在从 src/services/payment/ 开始。
卡住的时候
AI 常见的问题和对应的打断话术:
| 症状 | 打断话术 |
|---|---|
| 测试全是 mock,没验证真实逻辑 | "这些测试 mock 太多了,改成集成测试,用内存数据库" |
| 测试过多、每个函数都测 | "只测公开 API 和关键路径,私有方法不要单独测" |
| 测试跑挂了但 AI 不管 | "跑 pnpm test 把失败贴出来,我们先修挂的再继续" |
| 一次改太多文件 | "停,先把当前文件的测试跑通再开下一个" |
通用打断话术
这些话随时用得上,建议收藏:
停,先别写代码。把你的理解和计划说一遍,我确认再继续。
扔掉这个方案,用你刚才了解到的信息重新设计。
只改这一个文件,不要动其他文件,不要加新依赖。
跑一下 pnpm test,把失败输出贴出来分析,不要猜。
给我 3 个可能的原因和排查方法,我确认后再动手。