关于 complete-task
complete-task 是通过 taskmd CLI 完成任务的 Skill,适用于需要在更新状态前核对任务内容与验收条件的工作流。它会检查子任务、可选工作日志及工作流模式,并提醒在当前工作目录执行写入。
主要功能
- 01读取任务内容与验收条件
- 02核对并勾选已完成子任务
- 03按配置追加完成工作日志
- 04遵循工作流模式更新状态
- 05写入时避免切换工作目录
适用场景
- 01完成 taskmd 任务并核实范围
- 02发现未完成条件时暂缓结项
- 03在 PR 审查模式下转为待审状态
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ driangle/ taskmd --skill complete-task安装后在 Claude Code 中输入/complete-task确认已加载。
详细介绍
完成任务
使用 taskmd CLI 将任务标记为已完成。
说明
用户的查询位于 $ARGUMENTS 中(任务 ID,例如 077)。如果 $ARGUMENTS 为空或不包含任务 ID,请根据对话上下文推断任务(例如,当前正在处理的任务)。如果无法确定任务,请询问用户要完成哪个任务。
⚠️ 工作树安全 — 执行
taskmd写入前,绝不要运行cd。 每条taskmd set …命令(包括--verify和in-review分支) 都必须在当前工作目录中运行。不要在命令前加上cd /path/to/repo,也不要先cd到“主工作目录”:在 git 工作树中,那是另一个分支上的不同检出目录。与Edit/Write工具(由运行环境的工作树隔离机制保护)不同,shell 中的taskmd写入不会被隔离——执行此类cd后,状态会被悄悄更改到错误的检出目录中。taskmd 会根据当前目录解析任务目录,因此原地运行才能确保写入发生在此工作树中。(在 git 仓库之外,原地运行本来就是正确做法。)CLI 也对此作了保护:在多工作树仓库中,如果任务仅存在于某个兄弟工作树中,
taskmd set会拒绝写入(task <id> exists only in worktree <path> …; run taskmd there)。遇到此错误时,说明你当前所在的检出目录不正确——不要通过cd绕过;应在拥有该任务的工作树中运行命令。
-
读取任务文件,了解完整任务范围:
- 运行
taskmd get <ID>获取任务内容 - 找出任务正文中的所有子任务清单项(
- [ ]/- [x]) - 找出任何验收标准部分
- 运行
-
验证子任务和验收标准是否满足:
- 检查每个子任务清单项,确认工作已完成
- 检查每项验收标准,确认均已满足
- 编辑任务文件,将所有已完成但尚未勾选的项目标记为完成(
- [x]) - 如果有任何项目确实尚未完成,请告知用户并询问如何继续——不要将任务标记为已完成
-
添加最终工作日志条目(如果启用了工作日志):
- 检查
.taskmd.yaml中是否设置了worklogs: true——工作日志为可选功能,只有此键明确设置为true时才执行此步骤 - 否则,在
tasks/<group>/.worklogs/<ID>.md(或tasks/.worklogs/<ID>.md)中查找工作日志文件 - 如果工作日志存在,追加带时间戳的完成摘要
- 检查
-
检查工作流模式,查看
.taskmd.yaml(运行这些taskmd set命令时须位于当前工作目录——请勿先cd到其他目录,参见上方 ⚠️ 说明):- 如果设置了
workflow: pr-review,则使用taskmd set $ARGUMENTS --status in-review,而不是completed(注意:在 pr-review 模式下,需通过合并 PR 来完成任务,而不是直接设置状态) - 否则(默认的
solo模式),运行taskmd set $ARGUMENTS --status completed --verify --verify标志会运行任务中定义的任何验证检查,然后再应用状态变更- 如果验证失败,请向用户报告失败项
- 如果设置了
-
向用户确认状态已更改