Doc · 03 / Report

The report

The terminal output is the product. It must fit in one screenshot and communicate what was checked, whether the pipeline is behaving, and where to look if not.

Anatomy

Read the terminal report

$ kelvin check
┌─ Kelvin Report ──────────────────────────────────────────┐│                                                          ││   Invariance    0.82                                     ││   Does your pipeline stay calm when nothing              ││   important changes?                                     │      mostly  good                             │                                                          ││   Sensitivity   0.31                                     ││   Does your pipeline react when something                ││   important changes?                                     │      barely  concerning                       │                                                          ││   ⚠  Gate rules are being ignored.                       ││      Swapping the governing gate_rule for a              ││      different valid one didn't change the               ││      recommendation in 4 of 5 cases.                     ││                                                          ││   Diagnostic signals — not truth metrics.                ││   → kelvin/report.html for per-case drill-down           ││                                                          │└──────────────────────────────────────────────────────────┘

callout · 01

The two signals

Cross-case averages on the 0.00–1.00 scale. Cool fill = invariance, warm fill = sensitivity. The bar is what you remember.

callout · 02

The verdict line

Plain-English read: mostly — good · barely — concerning. The single line you'd quote in a stand-up.

callout · 03

Where to look

A targeted warning naming the failing perturbation kind and frequency. Not a stack trace — a hypothesis.

callout · 04

Honest framing

Diagnostic signals — not truth metrics. The footer always reminds you, then points to the HTML drill-down.

kelvin/report.html

A single self-contained file

The HTML report is one static file. Per-case drill-down, input/output diffs, and a stability heatmap by unit type. Open in any browser. Commit to a PR.

On disk · ./kelvin/

Everything inspectable with cat, diff, grep, git

After a run, ./kelvin/ contains the unperturbed baseline, every perturbation that was generated, the output your pipeline produced for each, and the rolled-up reports. Nothing magic.

kelvin/
<case-name>/
baseline/
input.md# the unperturbed case
output.json# baseline pipeline output
perturbations/
reorder-01/# input.md output.json
reorder-02/
reorder-03/
pad-01/
swap-gate_rule-01/
report.md# per-case human-readable diagnosis
report.json# per-case machine-readable scores
report.html# cross-case summary, self-contained
report.json# cross-case machine-readable scores

The init wizard offers to add kelvin/ to .gitignore.