A CARL report has a lot in it. This guide walks through the three views, how to read each, and how to turn the remediation list into a plan the team can actually execute.
What every report carries (shared across views)
At the top of every report, three facts are present regardless of which view you're in:
- The subject — repository identifier and commit hash assessed.
- The level achieved — a badge like L3Reviewed with a one-sentence interpretation ("Codebase is at Level 2: Tested. Close to Level 3 Reviewed with 3 remaining criteria.").
- The assessor — name, type, and version. For AI-assisted reports, the model identifier is included.
Below the header are four action buttons: Share link, Download PDF, Download JSON, and Re-run assessment.
The pillar radar
Eight axes, one per CARL pillar, each scored in [0, 1]. Full radius =
everything passes at the level you're claiming; a short spoke = the pillar is
pulling the overall score down.
Read the radar for shape, not precise numbers:
- Balanced large shape. Healthy. Proceed with the remediation list to push everything a bit higher.
- Large shape with one or two short spokes. You have deep pillars and shallow ones. Remediation effort is better spent filling the shallow ones than polishing the deep ones — small changes move the level meter more.
- Generally small shape. You're targeting the wrong level. Drop
--min-levelby one in CI until the shape grows into it.
The Developer view
Default. Organized by pillar, each pillar collapsible.
For each pillar:
- The pillar score and the count of passes / fails / NA.
- Failing criteria at the top. Each failing criterion has:
- The criterion ID (e.g.,
DOC-030) linking back to its catalog entry. - A plain-language description of what the criterion checks.
- A sanitized evidence summary — "No
AGENTS.mdfound at repo root." - A copy-to-clipboard remediation action: the exact code, command, or config snippet to apply.
- The criterion ID (e.g.,
The Developer view is what you use during active remediation. Open the failing criteria, apply the remediation, commit, re-run CARL, repeat. A typical L0 → L1 push takes a focused afternoon if the remediations are followed in order.
Remediation
Remediations are ranked within a pillar by severity (critical > high
medium>low>info) and secondarily by effort (S < M < L < XL). You can target the top of the list with confidence — those are the highest ROI actions for the level you're in.
The Engineering Lead view
Aggregated. Intended for EMs and platform leads tracking the readiness of multiple repositories at once.
- Pillar scores with trend. If a prior assessment exists, each score carries
a delta (
+0.08,−0.03) and a small sparkline of historical values. - Top five prioritized remediations. Ranked by impact to level progression — specifically, which criterion being added to the pass pile would cross the 80% gate for the next level.
- Estimated effort to next level. Computed as the sum of effort estimates
for the criteria that need to flip. Expressed as a range (e.g.,
M-L, ~6-10 hours). - Compare-with. Select another repository you own and see a side-by-side radar.
The Engineering Lead view is the one to screenshot into your quarterly plan.
The Executive view
Top-line. Intended for stakeholders who want to know what CARL level means for their business without needing to understand the detail.
- The CARL level as a large, clear badge.
- A percentile comparison — "40th percentile among open-source Next.js projects at similar age."
- A one-paragraph summary: what the level means, what the primary gaps are, and the estimated investment to reach the next level.
- A short "why CARL" paragraph explaining the framework.
The PDF export foregrounds this view. Two to four pages, designed to stand on its own.
How to turn the report into a plan
The practical sequence:
- Download the JSON.
- Filter by
result: failand the next level you want to hit (e.g., L2 Tested). - Sort by severity first, then effort.
- Take the top five. Estimate total effort (the report gives ranges).
- Open one issue per criterion you intend to fix, with the remediation text copied in. Link them under a "Getting to LN" tracking issue.
- Work the list. Re-run CARL after every merge. The level progress bar moves in real time.
Sanitization in the evidence you see
The evidence you see in the report is deliberately structural — counts, paths, presence / absence. You will not see raw code. This is enforced by the output schema, not just by convention. If you need the underlying source to understand why a criterion failed, the criterion ID links to the catalog entry, which explains what the check looks for and what a passing state looks like.
See private-repo assessment for the full sanitization guarantee.
Sharing reports
- Share link. Copies a stable
carl.wentzel.ai/report/[id]URL. Public reports are world-readable; private-repo reports require your team to authenticate (or an unlisted token). - Download JSON. Stable schema — safe to archive, diff, or feed into another tool.
- Download PDF. Executive view, suitable for sharing with stakeholders.
- Badge. Once M8 ships, a SVG badge will be available at
carl.wentzel.ai/badge/owner/repo.svgfor the latest report.
Related
- Criteria catalog — where failing criterion IDs link back to.
- Report format — the underlying structured output.
- CI integration — how to turn the report into a CI gate.