← ClaudeAtlas

cancel-tasklisted

取消不再需要的任务并转移
fitlab-ai/agent-infra · ★ 59 · AI & Automation · score 79
Install: claude install-skill fitlab-ai/agent-infra
# 取消任务 ## 行为边界 / 关键规则 - 本命令用于终止一个不再需要继续执行的任务,并转移到 `completed/` - 只有在确认该任务无需继续实现、审查或修复时才可取消 - 有效 `issue_number` 存在时,Issue 同步属于必做项 版本戳规则:创建或更新 `task.md` frontmatter 时,先读取 `.agents/rules/version-stamp.md`,并写入或刷新 `agent_infra_version`。 ## 执行步骤 ### 1. 验证任务存在 依次检查以下目录: - `.agents/workspace/active/{task-id}/` - `.agents/workspace/blocked/{task-id}/` - `.agents/workspace/completed/{task-id}/` 处理规则: - 如果在 `active/` 或 `blocked/` 中找到:继续 - 如果只在 `completed/` 中找到:告知用户任务已转移,停止 - 如果都不存在:提示 `Task {task-id} not found` ### 2. 判断取消标签 根据取消原因推断 Issue 关闭标签: - `status: superseded`:原因包含“重复”、“替代”、“合并到”、“已由 #123 / PR 替代”等语义 - `status: invalid`:原因包含“误报”、“不存在”、“无法复现”、“排查后无问题”等语义 - `status: declined`:原因包含“不做”、“暂不实现”、“优先级调整”、“方案否决”等语义 - 以上都不匹配:回退到 `status: declined` 后续同步到 Issue 时,使用最终推断结果替换现有 `status:` labels。 ### 3. 更新任务元数据 获取当前时间: ```bash date "+%Y-%m-%d %H:%M:%S%:z" ``` 更新任务目录中的 `task.md`: - `status`:completed - `cancelled_at`:{当前时间戳} - `cancel_reason`:{取消原因} - `updated_at`:{当前时间戳} - `agent_infra_version`:按 `.agents/rules/version-stamp.md` 取值 - **追加**到 `## Activity Log`(不要覆盖之前记录): ``` - {YYYY-MM-DD HH:mm:ss±HH:MM} — **Cancelled** by {agent} — {一行取消原因} ``` ### 4. 转移任务 将任务目录移动到 `.agents/workspace/completed/{task-id}`。 如果源目录在 `blocked/`,从 `blocked/` 移动;如果源目录在 `active/`,从 `active/` 移动。 ### 5. 验证转移 ```bash ls .agents/workspace/completed/{task-id}/task.md ``` 确认任务目录已成功移动。 ### 6. 同步到 Issue 检查 `task.md` 中是否存在有效的 `issue_number`。如果没有,跳过此步骤。 > Issue 同步规则见 `.agents/rules/issue-sync.md`。