
transilience-report-style
Generate a Transilience-branded PDF report (pentest, vuln assessment, compliance, threat intel) from a single findings JSON using the bundled ReportLab generator. Use whenever an engagement needs its final report/deliverable PDF in Transilience house style.
- Installs
- 119
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/transilienceai/communitytools --skill transilience-report-style- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads transilience-report-style automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Transilience Report Style
Turns a structured findings JSON into a branded A4 PDF (light theme by default — modern/minimal; --theme dark fallback; brand gradient rule, boxed code/samples, framed screenshots, colour-coded severity + CVSS-score, findings cards, severity metrics) — the standard Transilience deliverable. The generator is data-driven: you assemble one JSON, run one command. Design system: formats/transilience-report-style/SKILL.md §0 (theme/palette).
When to use
- A pentest / vuln-assessment / network-scan / compliance engagement is finished and validated and needs its PDF deliverable.
- You already have findings (ideally validated) with severity + CVSS + evidence + remediation.
How to use (3 steps)
-
Write
report_data.jsonmatchingreference/report-data-schema.json. Onlyengagementandfindingsare required; every other key (executive_summary, metrics, sections, cve_register, coverage_table, attack_pattern_coverage, ruled_out, tools_used, roadmap, disclaimer) is an optional section that is skipped if absent. Seereference/example-report-data.jsonfor a minimal working file.- Internal-only sections: a
sections[]entry with"internal": trueis retained inreport_data.json(kept as the internal record) but is never rendered into the client PDF. Use it for internal QA logs such as blind-validation / independent-reproduction verdict tables — these must not appear in any client-facing PDF.
- Internal-only sections: a
-
Run the generator:
python3 reference/generate_report.py <report_data.json> -o reports/My-Report.pdfFonts + logo are auto-discovered from
formats/transilience-report-style/. Override with--assets <dir>if running outside the repo. Requiresreportlab(pip install reportlab). -
Verify by rendering a page (
pdftoppm -png -r 100 -f 1 -l 1 out.pdf /tmp/p) and reading it before delivery.
Other editions of the same data
- Executive edition —
generate_report.py <data.json> --exec-onlyrenders cover + KPI boxes + narrative + roadmap and no finding detail or technical registers, for circulation beyond the security team. The KPI counts still describe the whole engagement. - Machine-readable exports —
python3 ../../tools/report_export.py <data.json> --format csv|xml -o findings.csvemits the findings register for a vulnerability-management import. Same rows as the PDF register and the xlsx: one projection, three renderings.
What it renders
Cover (logo, title lines, subtitle, metadata) → Executive Summary (auto KPI metric boxes from severity counts + narrative + key risks + positives) → free-form sections (Scope/Methodology) → finding cards grouped Critical→Info (severity bar, CVSS+vector, CWE/OWASP, status, affected, description, impact, optional PoC block — ordered steps each with prose + code-styled command + embedded screenshot, optional severity-calibration, optional per-finding CVE table, remediation) → optional CVE register, coverage table, Attack Pattern Coverage (deterministic surface-unit × attack-class matrix with colour-coded status), ruled-out appendix, Tools & Techniques Used, remediation roadmap, disclaimer. Section numbers are assigned automatically.
Finding object (the important fields)
id, title, severity (Critical|High|Medium|Low|Info), cvss_score, cvss_vector, cwe, owasp, affected[], description, impact, recommendation + optional poc[], calibration, needs_live_confirmation, cves[], attack[]. attack[] carries MITRE technique ids — ATT&CK (T1190, T1059.001) or, for AI/LLM findings that have no ATT&CK technique, ATLAS (AML.T0051); it renders beside CWE/OWASP and appears in every export. poc is an ordered list of steps {description, command, image_url} (it merges the former evidence / poc_request / screenshot fields): each renders as a numbered prose description, an optional code-styled command, and an optional embedded image. PAN/Aadhaar/card-like values are defensively masked at render time — but redact real secrets/PII in your source text anyway.
Conventions
- Severity is set by the CVSS band (≥9 Critical, ≥7 High, ≥4 Medium, >0 Low, 0 Info) unless deliberately env-adjusted — state the calibration in the
calibrationfield (seeformats/transilience-report-style/pentest-report.md§7). - No emoji; text severity labels only. Finding metadata as fields, not prose.
- One finding = one validated issue. Group systemic instances rather than repeating near-duplicates.
References
- Full visual design system (palette, typography, components):
formats/transilience-report-style/SKILL.md - Pentest report structure + finding-quality standard + severity calibration + compliance mapping:
formats/transilience-report-style/pentest-report.md - Compliance variant:
formats/transilience-report-style/compliance-report.md - Generator:
reference/generate_report.py· Schema:reference/report-data-schema.json· Example:reference/example-report-data.json - Preflight lint (hard-fail schema + RAW-field escaping/tag-allowlist gate before rendering):
../../tools/report_data_lint.py— run beforegenerate_report.py; it (and the generator's ownreport_data_shapeguard) block a string-narrative, an invalid severity, or an unsafe<img>/<a href>from reaching a client PDF. - In-place revision (append / supersede /
--rescore <disposition.csv>/--scope <allowlist>restrict+renumber / cross-feed; always re-derives KPIs + scrubs narrative finding-counts):../../tools/report_data_revise.py— the incremental-revision entry point, distinct from merge-reports' N→1 consolidation. - Ingest a finished/foreign report (PDF/xlsx/DOCX/markdown/native JSON) into the canonical finding schema:
../../tools/report_ingest.py— bootstraps merge / retest / CERT-In from an already-produced deliverable instead of hand re-keying.
FAQ
What does the transilience-report-style skill do?
Generate a Transilience-branded PDF report (pentest, vuln assessment, compliance, threat intel) from a single findings JSON using the bundled ReportLab generator. Use whenever an engagement needs its final report/deliverable PDF in Transilience house style.
How do I install transilience-report-style?
Run npx skills add https://github.com/transilienceai/communitytools --skill transilience-report-style in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/transilience-report-style/ (personal) or .claude/skills/transilience-report-style/ (project).
Which AI agents can use transilience-report-style?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is transilience-report-style safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains transilience-report-style?
It is published by transilienceai in transilienceai/communitytools. It has 119 recorded installs.
More from transilienceai/communitytools
attack-path-stitcher
transilienceai/communitytools
Stitches confirmed single-asset findings into multi-hop attack paths across the organization. Builds a graph where nodes are assets and edges are confirmed exploit hops citing the findings that enable them.
blockchain-security
transilienceai/communitytools
Smart contract security testing and blockchain CTF exploitation. Covers Solidity vulnerability analysis, EVM storage manipulation, delegatecall attacks, CREATE/CREATE2 address prediction, and common DeFi exploit patterns. Use when analyzing Solidity contracts, solving blockchain challenges, or testing smart contract security.
hackerone
transilienceai/communitytools
HackerOne bug bounty automation - parses scope CSVs, deploys parallel pentesting agents per asset, validates PoCs, and generates platform-ready submission reports.
osint
transilienceai/communitytools
Open-source intelligence gathering - company repository enumeration, secret scanning, git history analysis, employee footprint, and code exposure discovery.
reconnaissance
transilienceai/communitytools
Open the skill to read its SKILL.md instructions.
cve-poc-generator
transilienceai/communitytools
Open the skill to read its SKILL.md instructions.
Popular docs & writing skills
grill-with-docs
mattpocock/skills
A relentless interview to sharpen a plan or design, which also creates docs (ADR's and glossary) as we go.
lark-markdown
open.feishu.cn
飞书 Markdown:查看、创建、上传、编辑和比较飞书中的原生 Markdown 文件。当用户要操作飞书 Markdown 文件,或比较其远端版本及本地草稿时使用。纯本地 Markdown 文件操作不触发本 skill。不负责将 Markdown 导入为飞书在线文档,也不负责文件搜索、权限、评论、移动、删除等云空间管理操作。
writing-beats
mattpocock/skills
Writing, exploit; assemble raw material into a journey of beats, grounding each term before a beat leans on it.
writing-shape
mattpocock/skills
Writing, exploit: shape raw material into an article, paragraph by paragraph.
writing-fragments
mattpocock/skills
Writing, explore: mine raw fragments, no structure yet.
writing-for-agents
mattpocock/skills
Writing documents for agents. Use when creating or editing skills, or modifying AGENTS.md or CLAUDE.md.