- 文档
- 提示工程
- 人工智能
【免费下载链接】claude-code-system-prompts
All parts of Claude Code's system prompt, 27 builtin tool descriptions, sub agent prompts (Plan/Explore/Task), utility prompts (CLAUDE.md, compact, statusline, magic docs, WebFetch, Bash cmd, security review, agent creation). Updated for each Claude Code version.
导读
TaskUpdate是 Claude Code 任务列表体系中的核心更新工具,用于修改任务的状态、标题、描述、负责人、元数据以及任务间依赖关系。本文以仓库中的 TaskUpdate 工具描述文档 为骨架,结合同仓库的 TaskCreate、TaskGet、TaskList 等配套工具描述与系统提醒,系统讲解任务的完整生命周期管理、可更新字段语义、状态流转规则、依赖编排方法与实战调用示例,帮助你在复杂多步任务、Plan 模式与多人协作场景下正确维护任务列表。
一、TaskUpdate 在任务工具链中的定位
Claude Code 的任务列表体系由一组相互配合的内置工具组成,TaskUpdate 是其中的"写入端",负责对已创建任务进行一切后续变更:
| 工具 | 职责 | 仓库文档 |
|---|---|---|
TaskCreate | 创建结构化任务列表,跟踪进度 | tool-description-taskcreate.md |
TaskGet | 按 ID 读取任务完整详情与依赖信息 | tool-description-task-get.md |
TaskList | 汇总列出全部任务的状态摘要 | tool-description-tasklist.md |
TaskUpdate | 更新任务状态、字段与依赖关系 | tool-description-taskupdate.md |
从源码结构看,这些工具描述文件均位于 system-prompts 目录,每个文件头部以 YAML frontmatter 声明name、description与ccVersion字段。例如 TaskUpdate 描述文档 的元数据为:
name: "Tool Description: TaskUpdate" description: "Description for the TaskUpdate tool, which updates Claude's task list" ccVersion: "2.1.173"ccVersion字段表明该描述随 Claude Code 各版本持续演进,仓库中的 tools/updatePrompts.js 即负责按版本化流程生成与更新这些系统提示文件。
二、何时使用 TaskUpdate
根据原文档,"使用此工具更新任务列表中的某个任务"。具体触发场景分为三类:
1. 标记任务为已完成(resolved)
- 当你完成了任务描述中的工作时
- 当任务不再需要、或已被新任务取代时
- 重要:完成分配给你的任务后,务必将其标记为 resolved
- 解析完成后,调用 TaskList 查找你的下一个任务
这与 tool-description-tasklist.md 中的指引完全衔接:"完成任务后,检查新解除阻塞的工作或认领下一个可用任务"。
2. 删除任务
- 当任务不再相关、或属于误创建时,将状态置为
deleted可永久移除该任务
3. 更新任务细节
- 当需求变更或变得更加清晰时
- 当需要建立任务之间的依赖关系时
三、可更新字段详解
TaskUpdate 支持对任务的七个维度进行更新,字段语义如下:
| 字段 | 作用 | 备注 |
|---|---|---|
status | 任务状态 | 遵循下文"状态工作流" |
subject | 修改任务标题 | 使用祈使句形式,例如"Run tests" |
description | 修改任务描述 | — |
activeForm | 进行中时 Spinner 中展示的现在进行时形式 | 例如"Running tests" |
owner | 修改任务负责人(Agent 名称) | 用于认领任务 |
metadata | 将元数据键合并进任务 | 将某个键设为null即可删除该键 |
addBlocks | 标记"必须等本任务完成后才能开始"的任务 | 本任务阻塞哪些任务 |
addBlockedBy | 标记"必须先完成才能开始本任务"的任务 | 本任务被哪些任务阻塞 |
其中subject与activeForm的两种形态要求与 tool-description-todowrite.md 中"任务描述必须有两种形式"的约定一致:
subject(content):祈使句,描述要做什么,例如"Run tests"activeForm:现在进行时,在执行期间展示,例如"Running tests"
四、状态工作流(Status Workflow)
任务状态按以下顺序单向推进:
pending → in_progress → completed- pending:任务已创建但尚未开始
- in_progress:正在执行中(同一时间只应有一个任务处于该状态)
- completed:任务已成功完成
- deleted:用于永久移除任务,不属于常规推进路径
从 tool-description-todowrite.md 的任务管理规则可以印证状态纪律:
- 任意时刻恰好只有一个任务处于
in_progress(不能多也不能少) - 完成当前任务后再开始新任务
- 实时更新任务状态,完成一个标记一个,不要批量补记
- 不再相关的任务应从列表中移除
五、完成判定的硬性红线
原文档强调:只有当你完整完成了任务时,才可将任务标记为 completed。遇到以下情况严禁标记完成:
- 测试仍在失败
- 实现是部分完成的
- 遇到了未解决的错误
- 未能找到所需的文件或依赖
正确处理方式为:遇到错误、阻塞或无法完成时,保持任务为in_progress;受阻时新建一个任务描述需要解决的问题。这条规则在 tool-description-todowrite.md 中同样存在,属于跨工具共享的核心纪律。
六、Staleness 防过期原则
更新任务前,务必先用
TaskGet读取该任务的最新状态。
这条规则用于防止"过期覆盖":任务可能在多轮会话或多名协作者之间被修改,直接更新而不先读取,可能覆盖他人刚刚写入的状态、owner 或依赖信息。推荐的更新前序为:
TaskGet读取任务完整详情(subject、description、status、blocks、blockedBy)- 结合 tool-description-task-get.md 的提示,确认
blockedBy列表为空后再开始工作 - 确认无异议后再用 TaskUpdate 写入变更
七、实战调用示例
原文档给出了五类典型调用。以下 JSON 为TaskUpdate工具的输入参数示例:
1. 开始工作时标记为进行中
{"taskId": "1", "status": "in_progress"}2. 完成工作后标记为已完成
{"taskId": "1", "status": "completed"}3. 删除任务
{"taskId": "1", "status": "deleted"}4. 认领任务(设置负责人)
{"taskId": "1", "owner": "my-name"}5. 建立任务依赖
{"taskId": "2", "addBlockedBy": ["1"]}八、依赖编排与 Teammate 协作工作流
addBlocks与addBlockedBy两个字段使任务列表具备了 DAG 式的依赖编排能力,这在多 Agent(teammate)协作场景中尤为重要。
TaskList 的 Teammate 工作流扩展 给出了完整的协作循环:
- 完成当前任务后,调用 TaskList 寻找可认领的工作
- 寻找状态为
pending、无 owner、且blockedBy为空的任务 - 存在多个可认领任务时,优先按 ID 顺序(最小 ID 优先)选择,因为较早的任务通常为后续任务铺垫上下文
- 使用 TaskUpdate 认领任务(将
owner设为你的名字),或等待 leader 分配 - 若被阻塞,聚焦于解除阻塞的任务或通知团队负责人
从 tool-description-tasklist.md 可知,带blockedBy的任务在依赖未解决前不可被认领,因此正确的依赖编排顺序是先创建任务、再用 TaskUpdate 建立依赖:
- 创建任务使用
TaskCreate,参考 tool-description-taskcreate.md 的提示——创建后使用 TaskUpdate 设置依赖(blocks/blockedBy),并先检查 TaskList 避免创建重复任务 - 依赖建立后,TaskGet 返回的
blocks与blockedBy字段即可用于确认任务就绪状态
九、系统级提醒与任务列表卫生
仓库中的 system-reminder-task-tools-reminder.md 是任务工具的系统级提醒:当任务工具长时间未被使用时,Claude 会被提示——考虑用TaskCreate添加新任务、用TaskUpdate更新任务状态(开始时置in_progress,完成时置completed),同时考虑清理已过期的任务列表。这说明 TaskUpdate 不仅是状态写入器,还承担着任务列表卫生维护(清理 stale 任务、删除误创建任务)的职责。
结合 tool-description-taskcreate.md 的适用场景判断,TaskUpdate 的高频使用时机包括:
- 复杂多步任务(3 个及以上独立步骤)
- Plan 模式下的工作跟踪
- 收到新指令后立即将需求固化为任务,并在开工前标记
in_progress - 完成任务后标记
completed并补充实现过程中发现的新后续任务
十、小结:TaskUpdate 的正确使用姿势
| 场景 | 正确动作 | 禁止动作 |
|---|---|---|
| 开始工作 | status: "in_progress"(配合 activeForm) | 跳过状态直接做 |
| 完整完成 | status: "completed",随后 TaskList 找下一个任务 | 部分实现也标 completed |
| 遇到阻塞/错误 | 保持in_progress,新建任务描述待解决问题 | 标 completed 掩盖问题 |
| 任务作废 | status: "deleted" | 长期保留无用任务 |
| 更新前 | 先 TaskGet 读取最新状态 | 直接覆盖旧数据 |
| 多人协作 | 设置owner认领;用addBlockedBy/addBlocks编排依赖 | 认领已阻塞或已有 owner 的任务 |
TaskUpdate 虽小,却是任务列表生命周期的"总开关":状态推进、细节修正、负责人变更、依赖建立与列表清理全部经由它完成。正确遵循"先读后写""完成才标完""遇阻留 in_progress""依赖先行"四条纪律,即可在单 Agent 与多 Agent 协作场景中维持一份准确、有序、可追踪的任务列表,让用户对请求的整体进展一目了然。
- 文档
- 提示工程
- 人工智能
【免费下载链接】claude-code-system-prompts
All parts of Claude Code's system prompt, 27 builtin tool descriptions, sub agent prompts (Plan/Explore/Task), utility prompts (CLAUDE.md, compact, statusline, magic docs, WebFetch, Bash cmd, security review, agent creation). Updated for each Claude Code version.
相关推荐
Serverless Framework Compose 完全指南:多服务编排、依赖管理与共享状态
Serverless Framework Compose 完全指南:多服务编排、依赖管理与共享状态 Serverless Framework Compose 是
开发工具CLI云原生后端UFO² ConstellationEditor MCP Action Server 完整指南:多设备任务编排与依赖管理
UFO² ConstellationEditor MCP Action Server 完整指南:多设备任务编排与依赖管理 ConstellationEditor
人工智能AI Agent自主智能体GUI 自动化Agent 编排多智能体RAGOneUptime Terraform Provider 完整实战指南:认证、依赖编排、数据源与状态管理
OneUptime Terraform Provider 完整实战指南:认证、依赖编排、数据源与状态管理 本指南面向已经完成首次 terraform apply
可观测性后端运维前端云原生微服务AI Agent
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考