Reading Reports

A Cerberus report is designed to be useful to three audiences at once: executives who need a score, engineers who need line numbers, and security leads who need remediation guidance. This page explains each section and how to turn it into action.

Executive summary

The top of the report shows the target, scan timestamp, native Cerberus score, and native letter grade. Feeder and ALIGNMENT evidence never silently changes this score.

What the score means

The native score sums nine per-agent weights (out of 100) based on the 59-check catalog in checks.json. A higher score means fewer and less severe native failures. ALIGNMENT has its own score and feeders are unscored external evidence. See Severity & Scoring for the exact math.

Check states

Every one of the 59 native checks in a report is in exactly one of four states — a report is not credible unless all four are visible, not just failures:

The four counts always sum to 59. If they do not, something in the native scan is broken.

Orchestration sections

The combined policy is visible report data. It does not implicitly replace the native --fail-under exit gate.

Agent summary

The next section breaks the score down by agent. Each row shows:

Use this table to assign work. If SHIELD has two high findings, assign the frontend team to it. If WATCHTOWER is clean, your infrastructure/CI configuration is in good shape.

Detailed findings

Each failed check expands into one or more findings. A finding contains:

Normalized ALIGNMENT and feeder findings add a source tool, raw rule ID, confidence when available, alignment category where applicable, stable fingerprint, and remediation. Secret values and potentially secret-bearing source snippets are omitted or redacted.

How to prioritize

Work in severity order:

  1. CRITICAL — fix today. These are usually exploitable and high-impact.
  2. HIGH — fix this week. They are serious but may require chaining with other issues.
  3. MEDIUM — schedule in the next sprint. These reduce resilience or leak information.
  4. LOW — add to the backlog. These are hygiene and best-practice improvements.

Remediation workflow

We recommend the following workflow for every report:

  1. Confirm the finding. Open the file and line number and verify the snippet is real. Static analysis can occasionally flag test fixtures or intentionally unsafe demo code.
  2. Apply the recommendation. Each card includes a specific fix, such as switching to parameterized queries or replacing a Dockerfile USER directive.
  3. Write a regression test. Where possible, add a test that prevents the issue from returning. For example, a test that asserts no secrets are present in source.
  4. Re-run Cerberus. Verify the score improved and the finding disappeared from the report.
  5. Document exceptions. If a finding is a false positive or an accepted risk, document the rationale for auditors and future reviewers.

Coverage metadata

Every report includes a coverage block so you can judge how complete the scan actually was:

The report also carries repo metadata (description, stars, license, archived status, last-pushed date) and the exact commit sha that was scanned, so findings are reproducible and their permalinks stay valid.

Sample report

Open the generated cerberus-report.html in this repository to see a real report layout with sample findings and recommendations.

Sharing and archiving

A report can be exported as normalized JSON (--json), standalone HTML (--html), SARIF (--sarif), or a separate feeder bundle (--feeder-json). Browser exports continue to cover the native web scan.

Web-app scans are cached in the browser's localStorage keyed by owner/repo@sha for 24 hours. CLI reports are written wherever you point the output flags. Treat every report as sensitive: paths, dependency names, and vulnerability descriptions may disclose useful security information even after credential redaction.