Docs
Workflow, in order

culprit report

Step 5. Read a run's receipts as a report, a PR comment or a CSV of costs. All free, rebuilt from the local ledger.

Terminal
culprit report 77f60c9fccf8

Everything Culprit does is recorded in the ledger, a SQLite file at .culprit/ledger.sqlite: each run's settings, every agent run with its result, cost and latency, every step's decision, model calls, and the culprit's intent and diff. The commands on this page only read it, so they're free and need no network.

Report#

Writes report-<run_id>.md and report-<run_id>.html to .culprit/reports/ (or --out DIR):

  • the verdict and its confidence,
  • both baselines and the regression gate,
  • the bisect timeline, with each commit's pass count, Wilson interval and threshold,
  • skipped commits and why,
  • the culprit's intent and diff,
  • the agent runs and cost of localising and fixing, when you've run them,
  • costs, and where any reused baseline results came from,
  • neatlogs trace IDs, when tracing was on.

The HTML page is self-contained, so you can attach it to an issue or open it in a browser. The responsible hunks and the verified patch are in the PR comment.

PR comment#

Terminal
culprit comment <run_id>                # print it
culprit comment <run_id> --out pr.md    # or write it to a file

The same comment culprit ci posts, for any finished run. See CI and pull requests. Exit code 2 if the run doesn't exist.

Costs#

Terminal
culprit export-costs --out costs.csv

One row per run in the ledger:

Columns Meaning
run_id, repo, good_ref, bad_ref, status Which run, and how it ended.
victim_provider, victim_model, k The settings it ran with.
victim_runs, reused_runs Agent runs executed, and results copied from earlier runs.
baseline_runs, bisect_runs, localise_runs, fix_runs, other_runs Where those agent runs went.
baseline_cost_usd, bisect_cost_usd, localise_cost_usd, fix_cost_usd, other_cost_usd Cost by stage.
victim_cost_usd, llm_cost_usd, cost_usd Your agent's cost, Culprit's own model calls, and the total.
cost_per_victim_run_usd, wall_time_s, started_at, finished_at Unit cost and timing.
culprit_sha The culprit, when one was found.

Leave out --out to print to standard output.

Keeping or sharing the ledger#

The ledger is a plain file. Copy it to keep a record, or back it up with your CI artifacts to make baseline reuse work across jobs. It contains your eval results and the culprit's diffs and intent, but no API keys.

Culprit 0.1.0 · Apache-2.0 · Team PiedPiper