关于 transilience-report-style
将结构化发现数据转换为 Transilience 品牌 A4 PDF 的报告生成技能,适用于已完成验证的渗透测试、漏洞评估、网络扫描或合规项目。支持执行摘要版及 CSV、XML 导出,并可保留不呈现在客户 PDF 中的内部章节。
主要功能
- 01从 JSON 数据生成 A4 PDF
- 02呈现分级发现、CVSS、证据和整改
- 03支持亮色与暗色主题
- 04生成仅含执行摘要的版本
- 05导出 CSV 或 XML 发现清单
- 06支持报告修订与外部报告导入
适用场景
- 01为已验证的渗透测试发现制作交付报告
- 02生成便于广泛传阅的执行摘要版
- 03将发现清单导入漏洞管理系统
- 04修订或整合已有安全报告
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ transilienceai/ communitytools --skill transilience-report-style安装后在 Claude Code 中输入/transilience-report-style确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
reference/example-report-data.jsongenerate_report.pyreport-data-schema.jsontest_generate_report.py详细介绍
Transilience 报告样式
将结构化的发现项 JSON 转换为品牌化的 A4 PDF(默认使用浅色主题——现代、简约;--theme dark 可切换为深色主题;品牌渐变线、带框的代码/示例、带边框的截图、按颜色区分严重性和 CVSS 评分、发现项卡片、严重性指标)——这是 Transilience 的标准交付物。生成器由数据驱动:准备一个 JSON,运行一条命令。设计系统:formats/transilience-report-style/SKILL.md §0(主题/调色板)。
适用场景
- 渗透测试/漏洞评估/网络扫描/合规项目已完成并验证,需要生成 PDF 交付物。
- 已有发现项(最好已验证),包含严重性、CVSS、证据和修复建议。
使用方法(3 步)
-
编写
report_data.json,使其符合reference/report-data-schema.json。只有engagement和findings是必填项;其他所有键(executive_summary、metrics、sections、cve_register、coverage_table、attack_pattern_coverage、ruled_out、tools_used、roadmap、disclaimer)均为可选章节,缺失时会跳过。请参阅reference/example-report-data.json中的最简可用文件。- 仅供内部使用的章节:
sections[]中带有"internal": true的条目会保留在report_data.json中(作为内部记录),但绝不会渲染到面向客户端的 PDF 中。可用于记录内部 QA 日志,例如盲验证/独立复现的判定表——这些内容不得出现在任何面向客户端的 PDF 中。
- 仅供内部使用的章节:
-
运行生成器:
python3 reference/generate_report.py <report_data.json> -o reports/My-Report.pdf字体和徽标会从
formats/transilience-report-style/自动发现。如果在仓库外运行,可使用--assets <dir>指定资源目录。需要reportlab(pip install reportlab)。 -
**验证:**渲染一页(
pdftoppm -png -r 100 -f 1 -l 1 out.pdf /tmp/p),并在交付前阅读检查。
同一数据的其他版本
- 高管版——
generate_report.py <data.json> --exec-only会渲染封面、KPI 方框、叙述内容和路线图,不包含发现项详情或技术登记表,适合在安全团队之外传阅。KPI 计数仍反映整个项目。 - 机器可读导出——
python3 ../../tools/report_export.py <data.json> --format csv|xml -o findings.csv会导出发现项登记表,供漏洞管理系统导入。与 PDF 登记表和 xlsx 中的行相同:同一数据的三种呈现形式。
渲染内容
封面(徽标、标题行、副标题、元数据)→ 执行摘要(根据严重性计数自动生成的 KPI 指标框+叙述内容+关键风险+正面发现)→ 自由格式的 sections(范围/方法论)→ 按严重性从严重到信息分组的发现项卡片(严重性横条、CVSS+向量、CWE/OWASP、状态、受影响对象、描述、影响、可选的概念验证区块——按顺序排列的步骤,每个步骤都包含说明文字、代码样式的命令和嵌入式截图、可选的严重性校准、可选的单项发现 CVE 表、修复建议)→ 可选的 CVE 登记表、覆盖范围表、攻击模式覆盖情况(按确定性规则生成的攻击面单元 × 攻击类别矩阵,状态按颜色区分)、排除项附录、所用工具与技术、修复路线图、免责声明。章节编号会自动分配。
Finding 对象(重要字段)
id, title, severity (Critical|High|Medium|Low|Info), cvss_score, cvss_vector, cwe, owasp, affected[], description, impact, recommendation + 可选的 poc[], calibration, needs_live_confirmation, cves[], attack[]。attack[] 携带 MITRE 技术 ID — ATT&CK(T1190, T1059.001),或者对于没有对应 ATT&CK 技术的 AI/LLM 漏洞发现,使用 ATLAS(AML.T0051);它会显示在 CWE/OWASP 旁边,并出现在每种导出格式中。poc 是按顺序排列的步骤列表 {description, command, image_url}(合并了原先的 evidence / poc_request / screenshot 字段):每个步骤会显示为带编号的文字描述、可选的代码样式命令,以及可选的嵌入式图片。PAN/Aadhaar/银行卡号等类似值会在渲染时进行防御性屏蔽 — 但仍应在源文本中删除真实机密/个人身份信息。
约定
- 除非有意根据环境调整,否则严重性按 CVSS 分值区间设置(≥9 为 Critical,≥7 为 High,≥4 为 Medium,>0 为 Low,0 为 Info)— 在
calibration字段中说明校准情况(参见formats/transilience-report-style/pentest-report.md§7)。 - 不使用表情符号;仅使用文字严重性标签。发现项的元数据使用字段表示,而非叙述文字。
- 一个发现项对应一个已验证的问题。对系统性问题实例进行分组,而不是重复列出相似问题。
参考资料
- 完整的视觉设计系统(配色、排版、组件):
formats/transilience-report-style/SKILL.md - 渗透测试报告结构 + 发现项质量标准 + 严重性校准 + 合规映射:
formats/transilience-report-style/pentest-report.md - 合规版本:
formats/transilience-report-style/compliance-report.md - 生成器:
reference/generate_report.py· 架构:reference/report-data-schema.json· 示例:reference/example-report-data.json - 预检 lint(在渲染前执行硬性架构检查 + RAW 字段转义/标签允许列表检查):
../../tools/report_data_lint.py— 在generate_report.py之前运行;它(以及生成器自身的report_data_shape检查)会阻止字符串形式的叙述内容、无效严重性,或不安全的<img>/<a href>出现在交付给客户端的 PDF 中。 - 就地修订(追加 / 替代 /
--rescore <disposition.csv>/--scope <allowlist>限制范围并重新编号 / 跨数据源合并;始终重新计算 KPI 并清理叙述中的发现项数量):../../tools/report_data_revise.py— 增量修订入口,不同于 merge-reports 的 N→1 合并。 - 将已完成/外部报告(PDF/xlsx/DOCX/markdown/native JSON)导入规范发现项架构:
../../tools/report_ingest.py— 从已生成的交付成果快速启动合并 / 复测 / CERT-In 流程,而无需手动重新录入。