save-report 是一个把对话中生成的代码审查、调查、缺陷分析等结果整理并保存为 HTML 文档的技能。
用途
当用户提出“保存报告”“整理结果”“输出成 HTML”“留成文档”“先存起来”“把调查结果做成文件”等请求时,使用该技能。它会把 Agent 在对话中输出的审查、调查、缺陷分析等内容,汇总为便于阅读的 HTML 文档并保存。
工作流程
整体流程为:1. 类型判定 → 2. 读取配置 → 3. 决定编号 → 4. 生成 HTML → 5. 保存并报告。
类型判定
根据对话内容和用户发言,将报告归为以下类型之一:
- review:文件名前缀 PR,蓝色主题(#1d4ed8),用于代码审查、PR 审查。
- bug:文件名前缀 bug,红色主题(#dc2626),用于缺陷调查、问题分析。
- investigation:文件名前缀 investigation,紫色主题(#7c3aed),用于代码调查、行为调查。
- research:文件名前缀 research,青色主题(#0891b2),用于技术调研、研究。
- security:文件名前缀 security,橙色主题(#ea580c),用于安全审计。
无法判定时默认使用 investigation。
读取配置
读取 ~/.claude/skills/save-report/output-config.toml。其中 output.base_dir 为保存根目录,output.subdirs.<类型键> 为子目录名,output.prefixes.<类型键> 为文件名前缀。保存路径为 base_dir / subdirs[类型] / 文件名。
决定编号
编号按以下优先级获取:优先从对话中提取,例如用户提到“PR #123”“bug #42”时使用该编号;否则自动编号,若保存目录已有文件则取最大编号加一,没有则从 001 开始。编号为三位零填充,例如 001、042、123。最终文件名为 {prefix}{编号}.html,例如 PR123.html、bug001.html。
生成 HTML
以 templates/base.html 为基础,应用对应类型的设置来组装 HTML。
颜色主题通过变量应用:ACCENT_COLOR 与 ACCENT_LIGHT 按类型取值,review 为 #1d4ed8 / #dbeafe,bug 为 #dc2626 / #fee2e2,investigation 为 #7c3aed / #ede9fe,research 为 #0891b2 / #cffafe,security 为 #ea580c / #ffedd5。
替换 base.html 中的占位符:{{TITLE}} 为文档标题(例如 PR123 代码审查结果),{{ACCENT_COLOR}} 为类型颜色,{{ACCENT_LIGHT}} 为浅色强调色,{{BADGE_LABEL}} 为徽章文本(例如 CODE REVIEW),{{SUBTITLE}} 为对象说明(分支名、调查对象等),{{DATE}} 为当天日期(YYYY-MM-DD),{{DOC_ID}} 为文件名(例如 PR123),{{SUMMARY_CARDS}} 为摘要卡片 HTML,{{MAIN_CONTENT}} 为正文章节 HTML。
各类型的章节结构
review(代码审查):📋 审查概要;🔴 重大问题(表格:位置 / 问题 / 建议处理);🟡 改进建议(表格:位置 / 内容 / 优先级);✅ 优点;📝 总结与后续行动。摘要卡片:目标 PR/分支 / 问题数量(重大与轻微明细) / 综合评价。
bug(缺陷调查):🐛 缺陷概要、复现方法;📊 调查结果、日志;🧩 根本原因;🔧 修复方针(表格:处理内容 / 优先级 / 备注);📝 总结。摘要卡片:缺陷 ID / 状态 / 影响范围。
investigation(代码调查):按 templates/investigation.html 的章节结构,包括 🔍 调查背景与目的 / 📊 调查结果 / 🧩 原因分析 / 💡 建议处理 / 📝 总结。摘要卡片:调查对象 / 状态 / 影响范围。
research(调研):🎯 调查目的 / 📚 调查结果 / ⚖️ 比较与评价 / 💡 结论与建议 / 📝 参考信息。摘要卡片:调查主题 / 调查对象数量 / 建议。
security(安全):🛡️ 审计概要 / 🔴 漏洞(表格:CVE/类型 / 严重度 / 处理) / 🟡 风险 / ✅ 无问题项 / 📝 总结。摘要卡片:审计对象 / 漏洞数量 / 最高严重度。
HTML 质量要求
使用日语字体 'Segoe UI', 'Meiryo', sans-serif;代码用 pre 或 code 标签包裹;表格行数较多时最多显示 15 行,超出部分折叠(details);文件为完整自包含 HTML,不使用外部 CDN。
保存与报告
保存目录不存在时创建;写入 HTML 文件;向用户报告,例如:✅ 已保存,文件:~/reports/reviews/PR123.html,类型:代码审查。
重要注意事项
忠实再现对话内容,不摘要、不省略,把 Agent 输出的内容原样写入 HTML;保留代码块,源代码和差异必须用 pre 标签保留;把文件路径(例如 src/auth.rs:42)用 code 标签装饰;无法从对话中读取的信息(如 PR 编号)写为“不明”或“-”,不要推测。