分析任务
SkillDocs & knowledgeLets your agent analyze a task and produce a requirements analysis document before design work begins.
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; ahel provides instructions and does not run this skill.
Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
Then ask your AI: use the 分析任务 skill
About this skill
Analyze a task and produce a requirements analysis document. Use when you need to clarify a task's requirements, scope of impact, and risks before starting design. Only invoke this skill automatically when the conversation contains a parseable task reference.
What this skill tells your AI
The instructions your AI receives, as published by fitlab-ai/agent-infra in .agents/skills/analyze-task/SKILL.md and read by ahel’s review.
--agent取值见.agents/rules/task-management.md「合作者 token 规范」。
若入口业务操作数包含 --orchestrated,绑定 {execution-flag} = --orchestrated 并原样转发给 completed 事件;否则绑定为空。不得从 orchestration.json、环境变量或历史产物推断该标记。生命周期事件还必须携带显式触发信息:编排调用使用 {trigger-initiator}=orchestrator,否则使用 model;{request-id} 是本任务与本轮产物的稳定单行标识,{reason-code} 使用 user-request、new-requirement 或 upstream-fact-doubt;started 与 completed 使用同一组值。
行为边界 / 关键规则
流程裁定
分析产物必须在 ## 流程裁定 中记录 本任务路径、判定依据、未满足的更高路径条件 和 升级触发条件 四个字段,每个字段恰好一次且非空。路径仅可为精简、标准或完整;文件数、模块数和推测性风险不能单独升级路径。analysis 的 finalize-local 会复用生命周期路径解析器校验该决定;缺失、重复或无效值必须直接修复正式产物后重跑。
持久化报告证据
生成分析报告时,先读取 .agents/rules/evidence-reporting.md。状态核对和成功检查记录命令、目标范围、状态/结构化结果、实际结果和未覆盖部分;失败、阻塞或争议才附决定性原文摘录。
- 涉及候选资格或
HD-N判断时,先读取.agents/rules/decision-qualification.md,基于 task.md 规范化约束/候选完成资格审计,并在分析产物记录三张资格审计决策表和资格快照;不得把来源不明或未确认约束自动升级为排除条件 - 本技能仅产出需求分析文档(
analysis.md或analysis-r{N}.md)—— 不修改任何业务代码 - 严格基于
task.md中已有的任务输入、需求、上下文和来源信息展开分析 - 生成会同步到 Issue 的任务或生命周期 Markdown 前,先读取
.agents/rules/sync-content-generation.md并遵循其中的生成端约束;同步端不解析或改写正文 - 涉及旧行为、旧数据、旧 schema 或旧调用方时,先读取
.agents/rules/compatibility-policy.md;没有兼容准入证据时明确采用 current-only,不把推测写成需求 - 执行本技能后,你必须立即更新 task.md 中的任务状态
版本戳规则:创建或更新 task.md frontmatter 时,先读取 .agents/rules/version-stamp.md,并写入或刷新 agent_infra_version。
第 0 步:状态核对(执行前硬约束)
在加载 workflow / skill / rules 指令之后、做任何任务状态判断或用户可见结论之前,必须先执行状态核对。指令类文件读取不算对外动作或结论。
运行以下命令,并在本轮产物的 ## 状态核对 段记录任务/产物范围、关键结果和未覆盖部分;正常成功不粘贴完整目录清单或 task.md 尾部。失败、阻塞、身份不一致或争议时,附决定性原文行:
agent-infra-internal task-snapshot {task-id} --format text
状态核对完成前,禁止任何关于外部状态的断言(例如“代码没变”“测试已通过”“没有其他引用”),包括思考阶段。本门禁只提供结构下限;逐条证据配对和真实性仍需按报告模板与审查要求核对。
任务上下文解析
入口可省略 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;无法定位时按未找到任务处理并停止。
步骤开始:声明 started 事件
确认前置条件和轮次后、本轮第一个产出动作之前执行:
agent-infra-internal task-event {task-id} analyze.started --agent {standard-agent-token} --initiator {trigger-initiator} --request-id {request-id} --reason-code {reason-code}
执行步骤
1. 验证前置条件
检查必要文件:
.agents/workspace/active/{task-id}/task.md- 任务文件
注意:{task-id} 格式为 TASK-{yyyyMMdd-HHmmss},例如 TASK-20260306-143022
如果缺少 task.md,提示用户先创建或导入任务。
2. 解析分析上下文
运行 agent-infra-internal task-artifact {task-id} inspect --family analysis。仅当结果为 ready 时继续。若 selection.disposition 为 reuse,复用 selection.artifact,不得执行 started、init 或写入新产物,并直接进入完成校验与下一步提示。其他状态从 next.round / next.name 记录 {analysis-round} / {analysis-artifact},从 inputs 读取修订上下文;不得自行扫描轮次或拼装文件名。随后执行 started 事件,并以事件返回的 artifactContext 复核同一身份。
3. 阅读任务上下文
仔细阅读 task.md 以理解:
## 任务输入中已捕获的来源、事实与证据、约束、决策状态、验收标准和未决事项(栏目不存在时兼容回退)- 任务标题、描述和需求列表
- 上下文信息(Issue、PR、分支、告警编号等)
- 当前已知的受影响文件和约束
如 task.md 包含以下来源字段,补充读取对应来源信息:
platform_issue_identity- Issue 的 canonical identitycodescan_alert_number- Code Scanning 告警security_alert_number- Dependabot 告警
Round ≥ 2:响应上一轮审查(仅当存在审查产物时):若任务目录存在 review-analysis.md / review-analysis-r{N}.md,读取最高轮次的审查报告;在本轮分析产物中新增 ## 对上一轮审查的响应 段,对每条发现先 Read/Grep 核实,再按 .agents/rules/review-handshake.md 的四态(accepted / adjusted / refuted / cannot-judge)处置——每态都要附相称证据,不默认顺从;随后逐条调用 agent-infra-internal task-ledger {task-id} finding-respond --id {ledger-id} --round {analysis-round} --status {四态} --evidence {相称证据}。未决分歧写入 ## 未决问题。Round 1 无审查,跳过本段。
4. 入口需求充分性闸门
本步骤的发问受
.agents/rules/no-mid-flow-questions.md「例外 3:入口式需求充分性澄清」授权:仅在 analyze-task 入口、仅用于判断并补齐需求充分性,一次只问一个问题,绝不借此征求实现 / 技术选型偏好。
排在第 0 步状态核对与步骤 3 之后执行(提问属对外动作,须在状态核对硬闸门之后;判定与状态读写需先读到 task.md)。
4.1 读取跨轮状态:读取 task.md 的 ## Brainstorming 段(不存在则视为首次,question_count=0)。段格式:
## Brainstorming
- status: asking | done
- question_count: <int>
- pending_question: <文本,可空>
- answered:
- Q: … / A: …
4.2 接收上一问的答案:若存在 pending_question:
- 用户当轮消息可解析出答案 → 把答案回写
## 描述/## 需求,把该Q/A追加进answered,清空pending_question(question_count不变)。 - 未携带答案 → 复述
pending_question,按下文场景 B 提问早退(不增加question_count)。
4.3 充分性判定(客观清单,命中任一缺口即判为不足):
- 先聚合
## 任务输入、描述、上下文、需求及远端来源;分析阶段尚未填写## 需求本身不构成不足; - 已在任务输入中记录的目标、范围、约束或验收标准视为已提供,不得重复询问;
- 描述/需求为空,或仅一句话且无可验证的验收标准;
- 缺少目标或受影响范围(不知道要改什么 / 影响谁);
- 需求条目自相矛盾,或关键名词未定义而无法分析。
4.4 分流:
- 场景 A(充分 / 已收敛)——满足任一退出条件:充分性清单全部通过 / 用户显式「直接分析 / skip」/
question_count达上限(≤5)。置## Brainstorming的status: done,继续步骤 5 起的正常流程;未补齐的缺口写入分析产物## 假设/## 未决问题。 - 场景 B(不足,提问早退)——在本步骤内闭环并提前 STOP:
- 确定本轮要问的问题(与 4.2 保持一致):
- 若已存在
pending_question(上一问尚未得到答案)→ 复述该pending_question,不修改它、不增加question_count; - 否则(无待答问题)→ 选最高价值的一个问题(验收标准 > 范围 > 歧义),写入
## Brainstorming:status: asking、pending_question: <问题>、question_count += 1。
- 若已存在
- 若
start_date为空,写入当日日期(date +%F);随后执行agent-infra-internal task-event {task-id} analyze.awaiting-input --agent {standard-agent-token} --question {question_count},由核心统一更新基础 frontmatter 和 Activity Log。 - Issue 同步(存在有效
platform_issue_identity时,任一失败跳过):调用agent-infra-internal platform-comment sync {task-id} --kind task --agent {standard-agent-token}更新 task 评论;statuslabel 维持pending-design-work;不发布分析产物评论。 - 校验(替代步骤 8 的 artifact gate):
agent-infra-internal task-verify {task-id} analyze.awaiting-input --format text(早退已置current_step: requirement-analysis且已写入start_date,预期通过);并保留rg -n 'Analyze Task \(Brainstorming\)' .agents/workspace/active/{task-id}/task.md与 task 评论同步证据。不跑 artifact gate,也不跑check activity-log/check platform-sync(二者绑定分析产物路径)。 - 用户输出:只展示当前单个问题 + 如何回答/继续(再次触发
analyze-task {task-ref}并附答案),并按.agents/rules/next-step-output.md在末行追加Completed at。 - STOP,等待回答。下一次触发回到本步骤。
- 确定本轮要问的问题(与 4.2 保持一致):
5. 执行需求分析
开始分析前:若 frontmatter 的 start_date 为空,立即写入当日日期(命令 date +%F,格式 YYYY-MM-DD);已有值则保留。写入前先读取 .agents/rules/version-stamp.md,并同步刷新 updated_at / agent_infra_version。
遵循 .agents/workflows/feature-development.yaml 中的 analysis 步骤:
必要任务(仅分析,不编写业务代码):
- 理解任务需求和目标
- 搜索相关代码文件(只读)
- 分析代码结构和影响范围
- 识别潜在技术风险和依赖
- 评估工作量和复杂度
6. 输出分析文档
在首次写入本轮 {analysis-artifact} 前,先创建受控报告骨架:
agent-infra-internal task-artifact {task-id} init --family analysis --artifact {analysis-artifact}
骨架只包含身份元数据、稳定 section marker 和必需标题;必须填入真实分析内容后才能通过完成门禁。finalizer 返回结构错误时,直接修正正式产物后重跑 task-artifact {task-id} finalize-local --family analysis --artifact {analysis-artifact};当前结构、资格和摘要事实是唯一门禁。
步骤 6–9 属**场景 A(正常产出)**路径。**场景 B(提问早退)**已在步骤 4 内完成状态更新、task 评论同步与校验并 STOP,不进入这些步骤。
创建 .agents/workspace/active/{task-id}/{analysis-artifact}。
输出模板
# 需求分析报告
- **分析轮次**:Round {analysis-round}
- **产物文件**:`{analysis-artifact}`
## 状态核对
> 记录第 0 步状态核对命令、任务/产物范围、关键结果和未覆盖部分。正常成功不粘贴完整目录清单或 `task.md` 尾部,失败、阻塞、身份不一致或争议时附决定性原文行。
## 需求来源
**来源类型**:{用户描述 / Issue / Code Scanning / Dependabot / 其他}
**来源摘要**:
> {任务来源或关键上下文}
## 需求理解
{用自己的话重述需求以确认理解}
## 相关文件
- `{file-path}:{line-number}` - {描述}
## 影响评估
**直接影响**:
- {受影响的模块和文件}
**间接影响**:
- {可能受影响的其他部分}
## 技术风险
- {风险描述和缓解思路}
## 依赖关系
- {需要的依赖和与其他模块的协调}
<!-- lifecycle-path-decision-template:start -->
## 流程裁定
- **本任务路径**:{lifecycle-path}
- **判定依据**:{选择当前路径的事实依据}
- **未满足的更高路径条件**:{当前未满足的更高路径条件;完整路径写不存在更高路径的事实}
- **升级触发条件**:{未来需要重新评估路径的事实触发条件}
<!-- lifecycle-path-decision-template:end -->
## 资格审计
> 仅当本阶段实际判断候选资格、约束依赖或人工裁决资格时填写本节,并按 `.agents/rules/decision-qualification.md` 完整记录三张决策表和资格快照;否则删除整个审计段。
## 假设
> 如本次分析依赖某些假设,列在此处;没有则可省略本段。
- {本轮分析所依赖的假设}
## 未决问题
> 如有需要人工裁定的未决问题,列在此处;没有则可省略本段。
> 普通未决问题列在本段;属关键设计决策的(按 `.agents/rules/no-mid-flow-questions.md` 判据),详情块改写入下方 `## 人工裁决待办` 的 `### HD-N`,本段仅保留一行指针。
- {未决问题}
## 人工裁决待办
> 仅当本轮升级了 `[needs-human-decision]` 关键设计决策时写本段;没有则省略。
> 每项先调用 `agent-infra-internal task-ledger {task-id} decision-next-id` 取得 `HD-N`,按 `.agents/rules/human-decision-context.md` 写自足 `### HD-N` 块,再调用 `decision-upsert --id {HD-N} --stage analysis --artifact {analysis-artifact}`;不得扫描编号或手写账本行。
## 工作量和复杂度评估
- 复杂度:{高/中/低}
- 风险等级:{高/中/低}
7. 更新任务状态
更新 .agents/workspace/active/{task-id}/task.md:
- 仅更新优先级、Brainstorming、审查响应等本技能拥有的业务内容;产物链接、阶段与完成日志由 completed 事件统一登记
- 在追加工作流 Activity Log 条目之前,基于分析结果(业务影响、风险、依赖、阻塞条件)重估
priority。若重估值与task.md当前值不一致:- 用新值覆盖 frontmatter 的
priority字段 - 在本轮分析产物
{analysis-artifact}中追加## 优先级重估段,记录一条:priority {old} → {new} (rationale: {基于本轮分析的简短依据})若重估值与当前值一致,跳过:不写入## 优先级重估段。后续 Flow A 同步会读取可能更新过的 frontmatter,并自动把新值同步到 Issue。
- 用新值覆盖 frontmatter 的
- 完成本地产物后,先执行本地完成前门禁:
agent-infra-internal task-artifact {task-id} finalize-local --family analysis --artifact {analysis-artifact}status=passed:保存本次返回的artifactSha256和semanticDigest;finalizer 已记录对应的一次性本地 provenance intent。status=failed:直接修正正式产物并完整重跑 finalizer;若仍失败且诊断未解决,继续下一轮。- 当前正式产物发生外部变化、无法安全修复、诊断或指纹重复、无进展,或达到共享规则的编辑上限时停止,不发布 completed 事件。
- 使用同一次
status=passed返回的摘要执行agent-infra-internal task-event {task-id} analyze.completed --agent {standard-agent-token} --initiator {trigger-initiator} --request-id {request-id} --reason-code {reason-code} --artifact {analysis-artifact} --artifact-sha256 {artifact-sha256} --semantic-digest {semantic-digest} {execution-flag},由核心登记链接、阶段、代理、时间、版本和 Activity Log。
如果 task.md 中存在有效的 platform_issue_identity,执行以下同步操作(任一失败则跳过并继续):
- 调用
agent-infra-internal platform-issue sync {task-id} --agent {standard-agent-token} --status pending-design-work --fields - 调用
agent-infra-internal platform-comment sync {task-id} --kind task --agent {standard-agent-token} - 调用
agent-infra-internal platform-comment sync {task-id} --kind artifact --artifact {analysis-artifact} --agent {standard-agent-token}
8. 完成校验
本步骤的 artifact gate 仅用于场景 A;场景 B 的校验见步骤 4(
check task-meta+ 显式证据),不在此跑 artifact gate。
运行完成校验,确认任务产物和同步状态符合规范:
agent-infra-internal task-verify {task-id} analyze.completed --artifact {analysis-artifact} --format text
处理结果:
- 退出码 0(全部通过)-> 继续到「告知用户」步骤
- 退出码 1(校验失败)-> 根据输出修复问题后重新运行校验
- 退出码 2(网络中断)-> 停止执行并告知用户需要人工介入
按 .agents/rules/validation-output.md 展示当次校验摘要;没有当次校验输出,不得声明完成。
9. 告知用户
本步骤为场景 A 正常完成输出;场景 B 的单问输出见步骤 4。
仅在校验通过后执行本步骤。
渲染下一步前先读取
.agents/rules/next-step-output.md,仅为已选场景调用统一 helper,并将 stdout 填入{next-step-commands}。
输出格式:
按分析中的规范路径选择一条命令生成 {next-step-commands}:
- 精简路径:
agent-infra-internal agent-client next-steps --skill code-task --task-ref {task-ref} - 标准路径:
agent-infra-internal agent-client next-steps --skill plan-task --task-ref {task-ref} - 完整路径:
agent-infra-internal agent-client next-steps --skill review-analysis --task-ref {task-ref}
任务 {task-id} 分析完成。
摘要:
- 分析轮次:Round {analysis-round}
- 相关文件:{数量}
- 风险等级:{评估}
产出文件:
- 分析报告:.agents/workspace/active/{task-id}/{analysis-artifact}
下一步 - 按所选路径继续:
{next-step-commands}
完成检查清单
- 阅读并理解了任务文件和来源信息
- 创建了分析文档
.agents/workspace/active/{task-id}/{analysis-artifact} - 更新了 task.md 中的
current_step为 requirement-analysis - 更新了 task.md 中的
updated_at为当前时间 - 更新了 task.md 中的
assigned_to - 追加了 Activity Log 条目到 task.md
- 在工作流进度中标记了 requirement-analysis 为已完成
- 已通过统一 helper 渲染已选场景的下一步命令
- 没有修改任何业务代码
停止
完成检查清单后,立即停止。等待用户调用上述所选路径的下一阶段。
注意事项
- 前置条件:必须已存在任务文件
task.md - 多轮分析:需求变化或已有分析需要修订时,使用
analysis-r{N}.md - 职责单一:本技能只负责分析,不设计方案、不实现代码
错误处理
- 任务未找到:提示 "Task {task-id} not found, please check the task ID"
Signals
- GitHub stars
- 86
- Forks
- 5
- Last commit
- Oct 2026
Advanced
- Item type
- skill
- Key
analyze-task- Source
- github.com/fitlab-ai/agent-infra
github.com/fitlab-ai/agent-infra
Related picks
Skill · larksuite
The pick for Markdownmarkdown-mermaid-writing
Skill · k-dense-ai
The pick for Markdownhandoff
Skill · mattpocock
More in Docs & knowledgecanvas-design
Skill · anthropics
More in Docs & knowledgedoc-coauthoring
Skill · anthropics
More in Docs & knowledgewriting-for-agents
Skill · mattpocock
More in Docs & knowledge