Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Reporting

The /report command normalizes findings, deduplicates, reconciles severity, and renders a full set of consulting-grade deliverables — all from a single normalized findings.json, never hand-written.

Deliverables

Every run writes these into engagements/<session>/reports/:

The interactive HTML report

The HTML report is a self-contained, offline, print-first consulting deliverable:

It is rendered straight from findings.json by tools/report/generate-report.mjs (see tools/report/README.md).

📊 View the live sample report

A full fictional engagement, rendered by the report generator — interactive attack-path graph, expandable findings, and print-to-PDF. (Source: tools/report/sample/report.sample.html.)

Findings model

All findings are structured JSON and validated against JSON Schemas in schemas/:

SchemaDescribes
schemas/finding.schema.jsonA single normalized finding
schemas/attack-path.schema.jsonA multi-step attack chain
schemas/check.schema.jsonAn atomic check definition
schemas/inventory.schema.jsonThe enumerated resource inventory
schemas/engagement.schema.jsonEngagement scope and configuration

Because reports are generated from this model, the executive summary, technical report, HTML report, and slide deck always stay consistent with one another.

Report templates

Human-readable templates that the reporting agent fills from findings.json live in reports/templates/: