cancel-tasklisted
Install: claude install-skill fitlab-ai/agent-infra
# 取消任务
> `--agent` 取值见 `.agents/rules/task-management.md`「合作者 token 规范」。
## 行为边界 / 关键规则
- 本命令用于终止一个不再需要继续执行的任务,并转移到 `completed/`
- 只有在确认该任务无需继续实现、审查或修复时才可取消
- 有效 `issue_number` 存在时,Issue 同步属于必做项
版本戳规则:创建或更新 `task.md` frontmatter 时,先读取 `.agents/rules/version-stamp.md`,并写入或刷新 `agent_infra_version`。
## 任务上下文解析
> 入口可省略 task ref;显式 task scope 仅接受 `--task <ref>` 或 `-t <ref>`,不再解释位置 task ref。保留其余业务操作数后调用 `agent-infra-internal task-context resolve {task-scope}`;`{task-scope}` 为空或 task flag 之一。只读取结构化结果的 `taskId`,后续把 `{task-id}` 绑定为完整 `TASK-YYYYMMDD-HHMMSS`。解析失败时透传非零退出码,不自行扫描任务。
> 解析任务引用,并确认任务位于本技能支持的状态或目录且存在 `task.md`;无法定位时按未找到任务处理并停止。
## 步骤开始:本地生命周期边界
确认前置条件后,由步骤 3 的单次 lifecycle intent 原子完成基础元数据、started/done 日志、目录转移和短号处理;不得提前手工写入局部状态。
## 执行步骤
### 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
agent-infra-internal task-lifecycle {task-id} cancel --agent {standard-agent-token} --reason "{一行取消原因}"
```
仅 `status=applied|no-op` 视为本地取消完成。`status=failed` 时展