一键导入
block-task
标记任务为阻塞状态并记录原因。 当任务因外部阻塞无法推进、需要挂起并记录原因时使用。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
标记任务为阻塞状态并记录原因。 当任务因外部阻塞无法推进、需要挂起并记录原因时使用。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
取消不再需要的任务并转移。 当某个任务不再需要、应从 active 工作中撤下时使用。
关闭 Code Scanning 告警并记录理由。 当某条 Code Scanning 告警已处理或需按理由关闭时使用。
关闭 Dependabot 安全告警并记录理由。 当某条 Dependabot 安全告警已处理或需按理由关闭时使用。
标记任务完成并归档。 当任务工作已完成并验证、需要收尾归档时使用。
从平台 Issue 评论还原本地任务文件。 当本地任务文件缺失、需要从平台 Issue 评论还原时使用。
根据技术方案编码任务并输出报告。 当技术方案已批准需要落地实现,或代码审查发现问题需要修复时使用。
| name | block-task |
| description | 标记任务为阻塞状态并记录原因。 当任务因外部阻塞无法推进、需要挂起并记录原因时使用。 |
版本戳规则:创建或更新 task.md frontmatter 时,先读取 .agents/rules/version-stamp.md,并写入或刷新 agent_infra_version。
如果
{task-id}入参匹配^[#]?[0-9]+$(裸数字或带#前缀),先读取.agents/rules/task-short-id.md的「SKILL 入参解析」段执行解析;后续命令视{task-id}为解析后的全长TASK-YYYYMMDD-HHMMSS形式。
确认前置条件后,由步骤 3 的单次 lifecycle intent 原子写入 started/done 日志、基础元数据、目录转移和短号释放;本步骤不得提前手工写入其中任一项。
检查任务是否存在于 .agents/workspace/active/{task-id}/。
注意:{task-id} 格式为 TASK-{yyyyMMdd-HHmmss},例如 TASK-20260306-143022
如果未找到,检查其他目录并告知用户。
阻塞之前,彻底分析:
agent-infra-internal task-lifecycle {task-id} block --agent {agent} \
--reason "{一行原因}" --unblock-condition "{解除阻塞条件}"
解析 stdout 单 JSON。仅 status=applied|no-op 视为本地完成;status=failed 时展示 error 与 completedSteps/pendingSteps,不得宣称任务已阻塞。生命周期核心统一维护 status/blocked_at、阻塞信息、Activity Log、目录与短号。
确认结构化结果的 targetState=blocked、目标路径为 .agents/workspace/blocked/{task-id}、短号效果已提交,并检查:
ls .agents/workspace/blocked/{task-id}/task.md
记录 lifecycle 结果中的请求身份与规范 metadata,供失败后以同一 intent 安全重试;不得手工补写局部状态。
检查 task.md 中是否存在有效的 issue_number。如果没有,跳过。
Issue 同步的 status label 规则见
.agents/rules/issue-sync.md。执行同步前先读取该文件,完成 upstream 仓库检测和权限检测。
如果存在有效的 issue_number,按 issue-sync.md 设置 status: blocked。
运行完成校验,确认任务产物和同步状态符合规范:
node .agents/scripts/validate-artifact.js gate block-task .agents/workspace/blocked/{task-id} --format text
处理结果:
将校验输出保留在回复中作为当次验证输出。没有当次校验输出,不得声明完成。
仅在校验通过后执行本步骤。
重要:以下「下一步」中列出的所有 TUI 命令格式必须完整输出,不要只展示当前 AI 代理对应的格式。如果
.agents/.airc.json中配置了自定义 TUI(customTUIs),读取每个工具的name和invoke,按同样格式补充对应命令行(${skillName}替换为技能名,${projectName}替换为项目名)。 渲染最终输出前,先读取.agents/rules/next-step-output.md并落实其两类规则:(1) 「下一步」命令把{task-ref}渲染为短号#NN(未分配/已释放时回退完整 TASK-id);(2) 在面向用户输出的绝对最后一行追加Completed at收尾行(成功、错误、早退等任何面向用户输出都适用,不限于校验通过的成功态)。
可选沙箱清理提示(门控渲染):仅当同时满足 (1)
.agents/.airc.json存在sandbox字段、(2) task.md 的branch字段存在且不是main/master时,才渲染下方输出中「归档路径」之后、「解除阻塞时执行」之前的「可选:清理本任务的沙箱」块;任一不满足则整段省略。{branch}取已读入的 task.md 的branch值(任务此时已移动到 blocked/,从.agents/workspace/blocked/{task-id}/task.md读取)。该块独立于「下一步」语义。
输出格式:
任务 {task-id} 已标记为阻塞。
阻塞原因:{摘要}
解除阻塞所需:{需要什么}
归档路径:.agents/workspace/blocked/{task-id}/
可选:清理本任务的沙箱
(任务已阻塞并移到 blocked/,沙箱容器和 per-branch 配置目录不会自动回收。如果不再需要可执行:)
ai sandbox rm {branch}
解除阻塞时执行:
agent-infra-internal task-lifecycle {task-id} activate --agent {agent} --note "{恢复说明}"
下一步 - 检查任务状态(解除阻塞后):
- Claude Code / OpenCode:/check-task {task-ref}
- Gemini CLI:/agent-infra:check-task {task-ref}
- Codex CLI:$check-task {task-ref}
.agents/workspace/blocked/当阻塞问题解决后:
agent-infra-internal task-lifecycle {task-id} activate --agent {agent} --note "{恢复说明}"
成功后从保留的 current_step 继续。失败时按结构化 recovery 字段以同一 intent 重试,不手工移动目录或编辑基础元数据。