3.7 第一次真实任务会话 Walkthrough¶
阅读完本节后,你应该能在一个真实 repo 里完成一次可控的
Claude Code/Codex/OpenCode任务:读代码、定计划、改文件、跑验证、看 diff、收尾。
不要拿“写一个贪吃蛇”作为第一次练习。真正有价值的练习应该发生在一个已有项目里,哪怕任务很小。
推荐任务类型¶
第一次不要选大功能。选这几类:
- 修一个可复现的小 bug。
- 给已有函数补一个边界测试。
- 给 CLI 增加一个小参数。
- 给已有页面加一个简单字段。
- 把一段重复逻辑抽成已有风格的 helper。
任务必须满足:
- 你能判断结果对不对。
- 项目已有相似模式。
- 能跑测试或至少能跑局部验证。
- 不涉及生产数据、支付、权限大改。
第 0 步:准备工作区¶
你应该先确认工作目录和工作区状态:
git status
pwd
ls
这里不是教终端,而是提醒你:Agent 的工作目录必须正确,且你要知道当前是否已有未提交改动。
如果工作区是脏的,你要告诉 Agent:
当前工作区已有用户改动。不要回滚、覆盖或格式化无关文件。修改前先检查 git diff,并只触碰本任务相关文件。
第 1 步:让 Agent 只读分析¶
第一条消息不要让它实现。
先不要修改文件。
任务:给现有导出功能补一个 `--format json` 参数。
请先:
1. 阅读项目结构和相关代码。
2. 找出已有 CLI 参数处理方式。
3. 找出相关测试。
4. 总结要改的文件、风险和验证命令。
好的 Agent 回答应该包含:
- 找到了哪些文件。
- 现有模式是什么。
- 准备改哪些文件。
- 可能影响什么。
- 计划跑什么验证。
第 2 步:要求明确计划¶
如果它直接开始写代码,打断它。
先给计划,不要实施。
计划需要包含:
- 文件范围。
- 每个文件为什么要改。
- 是否需要新增测试。
- 验证命令。
- 不做什么。
你确认计划时重点看:
- 是否有无关文件。
- 是否引入不必要依赖。
- 是否遗漏测试。
- 是否理解了项目已有风格。
第 3 步:小步实施¶
确认后再让它动手。
按这个计划实施。保持最小改动,不要重构无关代码。每完成一组相关改动后运行对应验证。
如果任务稍大,可以要求分批:
先只完成参数解析和测试,不要改导出实现。完成后停下来给我看 diff 摘要。
这种分批方式比一次性全改更安全。
第 4 步:验证¶
不要接受“应该可以”。
请运行你计划里的验证命令。失败时不要换方案,先解释失败原因,然后做最小修复。
如果环境缺依赖或命令无法运行,合格回答应该说明失败命令、失败原因、是否和本次改动有关,以及用户应该如何复现验证。
第 5 步:看 diff¶
让 Agent 自查一次。
请基于当前 diff 做 review,重点检查:
- 是否有无关改动。
- 是否破坏兼容性。
- 是否缺测试。
- 是否有临时代码或调试输出。
- 是否需要更新文档。
你也要自己看:
git diff
Agent 写了代码,不代表你不需要 review。你的角色从“手写每一行”变成“定义目标、控制边界、验收质量”。
第 6 步:记录经验¶
任务结束时问:
这次任务里有没有可以沉淀到 AGENTS.md / CLAUDE.md / docs / skill 的规则?
只列真正会复用的,不要泛化废话。
应该沉淀的例子:
- 项目必须用
pnpm test:unit,不要用npm test。 - CLI 参数统一在
src/cli/options.ts注册。 - API 错误必须用
AppError,不要直接 throw string。
不应该沉淀的例子:
- “写高质量代码”。
- “注意边界情况”。
- “保持简洁”。
完整会话模板¶
你是本 repo 的本地 coding agent。请按以下流程工作。
任务:
[一句话目标]
约束:
- 先只读分析,不要修改文件。
- 优先复用项目已有模式。
- 保持最小改动。
- 不要引入新依赖,除非你先说明理由并等待确认。
- 不要回滚或覆盖无关用户改动。
第一步请输出:
1. 你阅读了哪些文件。
2. 现有实现模式是什么。
3. 计划修改哪些文件。
4. 风险是什么。
5. 验证命令是什么。
等我确认后再实施。
如果使用 OpenCode,可以额外补一句:
如果当前阶段不需要写文件,请使用只读 planning / explore 模式;只有在我确认计划后再切换到可写实现。
第一次练习的合格标准¶
- [ ] Agent 先读代码而不是直接写。
- [ ] 计划里文件范围合理。
- [ ] 改动小于你预期的最大范围。
- [ ] 至少运行了一个验证命令,或清楚说明为什么不能运行。
- [ ] 你看过 diff。
- [ ] 没有把“顺手优化”混进任务。
- [ ] 任务结束后有一条可复用经验被记录或明确不需要记录。