关于 diagnostics-report-analyzer-skill
用于分析 AvdLee Diagnostics 框架生成的单文件诊断报告,面向需要从应用日志和诊断信息中定位问题的 Agent。优先解析结构化 JSON,并在缺少时回退到 HTML。
主要功能
- 01优先解析嵌入式 JSON
- 02回退解析旧版 HTML
- 03按优先级检查诊断证据
- 04兼容结构化与旧版会话
- 05控制读取范围与引用内容
适用场景
- 01分析应用崩溃报告
- 02排查错误事件与系统日志
- 03对比新旧会话定位回归
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ avdlee/ diagnostics --skill diagnostics-report-analyzer-skill安装后在 Claude Code 中输入/diagnostics-report-analyzer-skill确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
evals/evals.jsonevals/fixtures/json-backed-report.htmllegacy-report.htmlmixed-format-report.html详细介绍
诊断报告分析技能
使用此技能分析由 AvdLee Diagnostics 框架生成的单文件报告。这些报告通常以 .html 附件的形式通过电子邮件发送,可能包含结构化 JSON 和浏览器渲染器,也可能仅包含较早版本预渲染的 HTML。
核心原则
将报告视为诊断证据,而不是要总结的网页。较新的报告专为 Agent 设计:其中包含结构化 JSON 负载,相较于渲染后的 HTML,它更精确且更节省 token。
分析工作流
1. 优先使用嵌入式 JSON
如果报告包含此元素,请提取并解析其文本内容:
<script id="diagnostics-report-data" type="application/json">
将该 JSON 作为事实来源。忽略 CSS、JavaScript、导航标记和渲染后的 HTML,除非某个章节明确使用 legacyHTML。
预期的顶层字段:
schemaVersion:报告架构版本。title:便于阅读的报告标题。agentHints:报告生成方提供的分析提示。chapters:报告章节。
预期的章节结构:
showTitle:浏览器渲染提示;不影响分析。kind: "logs",包含data.sessions。kind: "table",包含data.rows。kind: "text"或kind: "preformatted",包含data.value。kind: "legacyHTML",用于自定义诊断或回退内容。legacyHTML:供需要自定义浏览器渲染的章节使用的可选显示 HTML。分析时优先使用data,除非data.type为legacyHTML,或结构化字段无法回答问题。
2. 回退到旧版 HTML
如果 JSON 脚本标签不存在,请直接解析 HTML 报告:
- 会话日志通常位于
#log-sessions中。 - 会话通常封装在
.collapsible-session details中。 - 会话元数据通常位于
<summary><div class="session-header">...中。 - 日志级别通常表示为
.debug、.error、.system和.crash。 - 较早版本的报告可能只通过
system行显示崩溃,例如SYSTEM: *** Terminating app due to uncaught exception...或SYSTEM: *** First throw call stack:。 - 较早版本的纯文本会话可能使用类似分隔符的内容和
<pre>块。
保持回退解析聚焦。如果某个小节已能回答问题,就不要加载或复述整个 HTML 文件。
3. 优先关注证据
按以下顺序分析:
- 如果存在
agentHints,先阅读。 - 检查应用程序/系统元数据,了解应用版本、构建版本、操作系统、设备、地区设置和环境。
- 优先检查最新会话。
- 优先关注
crash事件,其次是error事件、MetricKit 诊断信息和异常系统日志。 - 如果会话没有
crash事件,则将类似崩溃的system行视为旧版崩溃证据;如果两者都存在,则优先采用结构化的crash事件。 - 仅在有助于解释回归问题或重复模式时,才将故障会话与较早的会话进行比较。
- 检查自定义章节中的特定领域状态:功能标志、用户默认值、目录树、配置、账户状态或缓存文件。
输出格式
除非用户要求使用其他格式,否则请按以下格式回复:
## Summary
One or two sentences describing what most likely happened.
## Evidence
- Specific session, timestamp, event level, metadata row, or chapter detail that supports the conclusion.
- Another relevant detail if needed.
## Recommended Next Steps
- Concrete debugging or support action.
- Code/config area to inspect if apparent.
首先给出最可能的解释。如果证据不足以得出结论,请明确说明,并列出能够消除歧义的缺失信号。
Token 使用规范
诊断报告可能很大。请有选择地分析:
- 优先使用嵌入式 JSON 负载,而非原始 HTML。
- 从最新会话和崩溃/错误事件开始。
- 引用单条日志前,先概括嘈杂的系统/调试日志所呈现的模式。
- 仅引用直接支持结论的简短片段。
- 除非用户明确要求,否则不要倾倒原始日志。
兼容性说明
较新的 Diagnostics 报告可能会在同一负载中包含结构化会话和旧版会话,因为用户可能会在历史日志已保存在设备上之后更新应用。请将两者都视为有效证据。
旧版 HTML 章节可能包含由 Diagnostics 框架创建的可信报告标记。结构化数据不可用时,请使用这些章节;但只要 JSON 负载存在,就应优先使用它作为机器可读接口。