SuperAPI AI 工具集

session-analyzer

测试与质量

查看项目

更新于 10-16 10:00

技能介绍

Session Analyzer Skill 是用于事后分析的工具,目的是验证 Claude Code 会话行为是否符合 SKILL.md 规范。

用途

分析已完成的会话,验证以下内容:

  • 预期与实际行为:该技能是否遵循 SKILL.md 工作流
  • 组件调用:SubAgent、Hook 和工具是否被正确调用
  • 产物:预期文件是否被创建或删除
  • Bug 检测:是否存在意外错误或偏差

输入要求

  • sessionId(必需):要分析会话的 UUID
  • targetSkill(必需):用于对照验证的 SKILL.md 路径
  • additionalRequirements(可选):额外的验证标准

工作流程

第一阶段:定位会话文件 会话文件位于 ~/.claude/ 下,包括主会话日志 ~/.claude/projects/-{encoded-cwd}/{sessionId}.jsonl、调试日志 ~/.claude/debug/{sessionId}.txt、以及使用子代理时的代理转录 ~/.claude/projects/-{encoded-cwd}/agent-{agentId}.jsonl。可使用脚本定位文件:${baseDir}/scripts/find-session-files.sh {sessionId}。需先确认所有必需文件存在;若缺少调试日志,分析将受限。

第二阶段:解析目标 SKILL.md 从 YAML Frontmatter 中识别 hooks.PreToolUse、hooks.PostToolUse、hooks.Stop、hooks.SubagentStop 以及 allowed-tools;从 Markdown 正文中识别被提及的 SubAgents(Task(subagent_type="..."))、被调用的 Skills(Skill("..."))、创建的产物(如 .dev-flow/drafts/、.dev-flow/plans/ 等)以及工作流步骤与条件。据此构建预期行为清单,覆盖 SubAgents、Hooks、产物与工作流。

第三阶段:分析调试日志 从 ~/.claude/debug/{sessionId}.txt 中提取 SubAgent 调用、Hook 事件、工具调用与 Hook 结果。可使用脚本:${baseDir}/scripts/extract-subagent-calls.sh {debug-log-path} 与 ${baseDir}/scripts/extract-hook-events.sh {debug-log-path}。

第四阶段:核验产物 检查每个预期产物的文件创建(搜索 FileHistory: Tracked file modification for {path}、File {path} written atomically)与文件删除(搜索 Bash 调用中的 rm 命令并确认文件系统状态)。

第五阶段:对比预期与实际 构建对比表(组件、预期、实际、状态),并标记任何不匹配项,包括缺失组件调用、操作顺序错误、Hook 失败、缺失产物、意外错误。

第六阶段:生成报告 报告包含:会话信息、预期行为摘要、Skill/SubAgent/Hook 验证表、产物验证表、问题/Bug 列表(含严重级别、描述、位置)、总体结果(Verdict: PASS/FAIL)以及一到两句总结。

脚本参考

  • find-session-files.sh:定位某会话 ID 的所有文件
  • extract-subagent-calls.sh:从调试日志解析子代理调用
  • extract-hook-events.sh:从调试日志解析 Hook 事件

使用示例 用户输入:“Analyze session 3cc71c9f-d27a-4233-9dbc-c4f07ea6ec5b against .claude/skills/specify/SKILL.md”,随后依次执行查找会话文件、解析 SKILL.md 得到预期、分析调试日志得到实际调用、核验 .dev-flow/ 产物、构建验证表、生成带细节的 PASS/FAIL 报告。

附加资源 参考文件:references/analysis-patterns.md(日志分析的详细 grep 模式)、references/common-issues.md(已知问题与故障排查);脚本:scripts/find-session-files.sh、scripts/extract-subagent-calls.sh、scripts/extract-hook-events.sh。

限制

该分析依赖 ~/.claude/ 下的会话文件与调试日志,若缺少调试日志则分析受限。该项技能与费用、平台或其他实现细节暂未提供。