block-tasklisted
Install: claude install-skill fitlab-ai/agent-infra
# 标记任务阻塞
## 行为边界 / 关键规则
- 本命令更新任务元数据并物理移动任务目录
- 仅在确实无法继续时才阻塞 —— 如果是可以克服的困难,先尝试解决
## 使用场景
- **技术问题**:无法解决的 Bug、缺少依赖、基础设施问题
- **需求问题**:需求不明确、规格冲突、待定决策
- **资源问题**:缺少访问权限、等待外部团队、被其他任务阻塞
- **需要决策**:待定的架构决策、需要利益相关者批准
版本戳规则:创建或更新 `task.md` frontmatter 时,先读取 `.agents/rules/version-stamp.md`,并写入或刷新 `agent_infra_version`。
## 执行步骤
### 1. 验证任务存在
检查任务是否存在于 `.agents/workspace/active/{task-id}/`。
注意:`{task-id}` 格式为 `TASK-{yyyyMMdd-HHmmss}`,例如 `TASK-20260306-143022`
如果未找到,检查其他目录并告知用户。
### 2. 分析阻塞原因
阻塞之前,彻底分析:
- [ ] 具体的问题是什么?
- [ ] 根本原因是什么?
- [ ] 已经尝试了哪些解决方案?
- [ ] 需要什么帮助或信息才能解除阻塞?
### 3. 更新任务元数据
获取当前时间:
```bash
date "+%Y-%m-%d %H:%M:%S%:z"
```
更新 `.agents/workspace/active/{task-id}/task.md`:
- `status`:blocked
- `blocked_at`:{当前时间戳}
- `updated_at`:{当前时间戳}
- `agent_infra_version`:按 `.agents/rules/version-stamp.md` 取值
- **追加**到 `## Activity Log`(不要覆盖之前的记录):
```
- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Blocked** by {agent} — {一行原因}
```
在 task.md 中添加阻塞信息部分。
### 4. 移动任务到 blocked 目录
```bash
mv .agents/workspace/active/{task-id} .agents/workspace/blocked/{task-id}
```
### 5. 验证移动
```bash
ls .agents/workspace/blocked/{task-id}/task.md
```
### 6. 同步到 Issue(可选)
检查 `task.md` 中是否存在有效的 `issue_number`。如果没有,跳过。
> Issue 同步的 status label 规则见 `.agents/rules/issue-sync.md`。执行同步前先读取该文件,完成 upstream 仓库检测和权限检测。
如果存在有效的 `issue_number`,按 issue-sync.md 设置 `status: blocked`。
### 7. 完成校验
运行完成校验,确认任务产物和同步状态符合规范:
```bash
node .agents/scripts/validate-artifact.js gate block-task .agents/workspac