mcpField
C
complete-task

complete-task

github.com/driangle生产力7636 次安装4 周前更新
代码仓库

关于 complete-task

complete-task 是通过 taskmd CLI 完成任务的 Skill,适用于需要在更新状态前核对任务内容与验收条件的工作流。它会检查子任务、可选工作日志及工作流模式,并提醒在当前工作目录执行写入。

主要功能

  1. 01读取任务内容与验收条件
  2. 02核对并勾选已完成子任务
  3. 03按配置追加完成工作日志
  4. 04遵循工作流模式更新状态
  5. 05写入时避免切换工作目录

适用场景

  1. 01完成 taskmd 任务并核实范围
  2. 02发现未完成条件时暂缓结项
  3. 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 绕过;应在拥有该任务的工作树中运行命令。

  1. 读取任务文件,了解完整任务范围:

    • 运行 taskmd get <ID> 获取任务内容
    • 找出任务正文中的所有子任务清单项(- [ ] / - [x])
    • 找出任何验收标准部分
  2. 验证子任务和验收标准是否满足:

    • 检查每个子任务清单项,确认工作已完成
    • 检查每项验收标准,确认均已满足
    • 编辑任务文件,将所有已完成但尚未勾选的项目标记为完成(- [x])
    • 如果有任何项目确实尚未完成,请告知用户并询问如何继续——不要将任务标记为已完成
  3. 添加最终工作日志条目(如果启用了工作日志):

    • 检查 .taskmd.yaml 中是否设置了 worklogs: true——工作日志为可选功能,只有此键明确设置为 true 时才执行此步骤
    • 否则,在 tasks/<group>/.worklogs/<ID>.md(或 tasks/.worklogs/<ID>.md)中查找工作日志文件
    • 如果工作日志存在,追加带时间戳的完成摘要
  4. 检查工作流模式,查看 .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 标志会运行任务中定义的任何验证检查,然后再应用状态变更
    • 如果验证失败,请向用户报告失败项
  5. 向用户确认状态已更改

评论

支持 Markdown