如何把任务讲清楚:背景、目标、约束、验收标准

所属教程:Claude Code 从入门到大师级完整教程 预计阅读:18 分钟

编程代理的输出质量,很大程度上取决于你下达任务的质量。"帮我优化一下这个项目"这类模糊指令,几乎必然带来范围漂移和返工。本节给出一套可直接照抄的任务描述结构:背景、目标、范围与约束、具体动作、验收标准,并说明如何用计划模式和澄清提问把需求在动手前对齐。

一、模糊指令为什么会跑偏

代理没有读心能力,它只能依据提示词、已读取的文件和对话历史推断意图。下面三种常见写法会显著提高返工率:

核心原则

把任务当成写给一位聪明但不了解你项目背景的工程师:它能力很强,但需要你交代清楚上下文、边界和完成标准。指令越具体、可验证,代理循环越稳定,审查也越轻松。

二、清晰任务的五个要素

要素要回答的问题作用
背景 Context这是什么项目、当前遇到什么现象或问题让代理先建立上下文,避免误判技术栈与约定
目标 Goal最终要达成什么可描述的结果锁定方向,避免中途发散到无关改动
范围与约束 Scope改哪些文件/模块、明确不要改什么、有无风格与兼容性要求控制改动边界,防止越界和连锁修改
具体动作 Action希望代理先做什么(先调研、先出方案、还是直接改)指定工作节奏,尤其"先出方案不要改代码"
验收标准 Acceptance如何验证完成:测试、构建、具体行为、边界条件让"完成"可检验,而非主观判断

三、可直接套用的任务描述结构

不需要华丽措辞,按下面顺序把要素说清楚即可(这是自然语言提示结构,不是终端命令):

背景:这是一个 <技术栈/项目类型> 项目,当前 <现象或现状>。
目标:希望实现 <可描述的结果>。
范围:只处理 <具体文件/模块>;不要改动 <明确排除项>;保持 <兼容性/风格> 要求。
动作:先阅读相关文件并给出修改方案,暂不直接改代码;方案确认后再动手。
验收:<测试命令/构建结果/应满足的行为/边界条件> 全部通过才算完成。

一个贴近真实的示例:

背景:这是一个 Node.js + TypeScript 的工具库,某工具函数在空数组输入时返回 undefined 而不是约定的空结果。
目标:让该函数在空输入时返回空数组,并补充对应测试。
范围:只修改 src/ 下该函数及其测试文件;不要改动导出签名和其他模块;保持现有导出名称不变。
动作:先定位实现与现有测试,列出修改计划,确认后再编辑。
验收:npm test 全绿,空输入返回 [],原有非空用例不回归。

四、先计划、后动手:用计划模式对齐方案

对中等以上复杂度的任务,建议先让代理出方案而不是直接改源码。可在会话中进入计划模式:

/plan 为空输入返回空数组并补测试

计划模式下代理以读取和探索为主,在你批准方案前不会修改源码;它会列出准备改动的文件、思路和风险点。你据此确认、补充或否决,再让它进入实现。若代理对需求有疑问,会通过选择题形式发起澄清(AskUserQuestion),此时应直接回答关键分叉(技术选型、兼容性、优先级),不要让它替你拍板重要决策。

五、首轮不必完美:用多轮迭代补充约束

六、新手常见误区对照

误区写法后果更稳妥的做法
"随便帮我重构一下"范围不可控、改动巨大、难审查指定具体函数/模块,并给出不改的边界
一次塞入"修 Bug + 加功能 + 写文档"目标互相干扰、回归风险高拆成连续的单一任务,逐个验证
让代理自行决定关键技术选型方案可能不符合团队约束在约束中写明技术栈/依赖/兼容性要求
只说"让它更好用"无验收标准,无法判断完成度给出可运行的验收命令或明确行为标准
本节小结与下一节预告

本节你掌握了清晰任务的五要素、可套用的提示结构,以及"先计划后实现、多轮补约束"的节奏。下一节讲审查侧:代理给出改动后,如何用 /diff、终端版本控制命令和测试验证三步法复核改动质量,判断接受还是回退。

← 上一节:权限模型与内置工具概览  下一节:审查代理改动:看 diff、读说明、跑测试 →

本教程目录

返回教程列表 · AI最前沿首页 · AI百科