讲清任务描述四要素(做什么/在哪做/不能动什么/怎么算做完)、什么规模必须先出计划、如何逐文件审查 diff,以及跑偏时的中止与回滚顺序。
不是「问一句话」,而是「交付一段可审查的改动」。
本篇专讲 cursor Agent任务。它和「问一句答一句」的区别在于:任务会读取多个文件、按计划修改、产出一组 diff,你需要逐段审查后决定接受哪些。
所以评价一次任务好坏,不看回答写得多流畅,看三件事:改动是否落在指定范围、有没有越界修改、以及本地验证能不能跑通。
缺一项,跑偏概率就上去一截。
| 要素 | 写什么 | 反例 |
|---|---|---|
| 做什么 | 目标行为与验收标准 | 「优化一下」 |
| 在哪做 | 用 @ 引用文件 / 目录 | 不指定范围,让 Agent 自己猜 |
| 不能动什么 | 依赖、配置、其他模块 | 完全不设边界 |
| 怎么算做完 | 测试通过、行为可复现 | 只看「已完成」提示 |
在 @src/cart.ts 的结算函数里,数量为 0 时跳过折扣计算。
不要改税率逻辑,不要新增依赖。
补一个单测覆盖数量为 0 的情况,并说明怎么跑。
在 cursor Agent任务 里,「不要改什么」常常比「要改什么」更关键,因为它直接决定了审查时的工作量。
计划不是形式主义,是最便宜的纠错点。
| 任务规模 | 要不要先出计划 | 理由 |
|---|---|---|
| 单文件、几行改动 | 不必 | 直接做,审查成本本来就低 |
| 2–3 个文件 | 建议 | 确认它理解的文件范围对不对 |
| 跨模块 / 超过 3 个文件 | 必须 | 方向错了,改完再返工代价很大 |
| 涉及依赖或构建配置 | 必须 | 影响面超出代码本身 |
| 陌生仓库的排查 | 先要解释,不改动 | 先确认理解一致 |
「列出你打算改哪些文件、每处改什么、可能影响什么,先不要修改任何文件。」确认清单后再说「按这个计划执行」。
接受改动之前,逐文件过一遍。
先确认改动文件都在预期范围内,出现意外文件先停下来。
空值、异常、并发、越界,这些最容易被漏掉。
新增分支有没有吞掉错误、有没有改坏原有提示。
格式化、排序、注释调整混进来时,手动回退这部分。
跑测试并手动复现关键路径,再提交。
不要因为 diff 看起来「差不多」就整体接受。一次超大 diff 里藏一处越界改动,排查成本远高于分批做。
先止损,再重来。
| 情况 | 立即做什么 | 之后 |
|---|---|---|
| 开始改了不该改的文件 | 中止当前任务 | 补写「不能动什么」再重下 |
| 计划方向就错了 | 不执行,直接重写任务 | 把验收标准写具体 |
| 已经落下一堆改动 | 用版本控制丢弃未提交改动 | 拆成 2–3 个小任务重做 |
| 测试挂了但说不清哪处导致 | 回退到上一次提交 | 每步单独提交,缩小范围 |
| 索引明显不对 | 重建索引并重启 | 等完成后再下任务 |
知道什么时候不用它,同样重要。
小结 cursor Agent任务:写清四要素、达到规模先出计划、逐文件审查 diff、每步单独提交。
把这四件事做成习惯,工具带来的收益才稳定。