Share a DeepEval report
DeepEval's best design decision is that an LLM eval is a test. It runs under pytest, it fails a build, and it produces the same artifact every other pytest suite produces.
Which means the sharing problem is the same one too: the HTML report is a file on the runner, and the runner is gone in an hour.
Produce one self-contained file
pytest --html=deepeval.html --self-contained-html test_llm.py
--self-contained-html matters. Without it the report references a CSS and JS
directory next to the file, and a report you send as one file renders as
unstyled text on the other end — the usual cause of
broken CSS in a shared report.
Then publish it from the same job:
curl -fsS -X PATCH "https://commareports.com/api/v1/reports/$REPORT_ID" \
-H "Authorization: Bearer $COMMA_API_TOKEN" \
-H "Content-Type: application/json" \
-d "$(jq -n --rawfile html deepeval.html \
--arg title "LLM suite — $GIT_SHA" '{title: $title, html: $html}')"
Guard the step with if: always() on GitHub Actions, when: always on
GitLab. See publishing from CI for the per-provider form.
What the review layer adds
A DeepEval failure says AnswerRelevancyMetric score 0.58 < 0.7. Whether that
is a model regression or a bad threshold is a judgment call, and judgment calls
need a thread:
- Anchored threads — "this threshold is too strict for this intent" sits on the failing case. See commenting on HTML.
- Revisions — one report id per suite, one revision per run.
- Access per report — private, team-only, or domain-gated, since test cases usually encode real prompts. See the sharing model.
Close the loop with the agent
The agent that edits the prompt can read the comments back through the MCP server and re-run the suite — let an agent respond to comments covers the loop, and a routine keeps it running without a human kicking it off.
Limits
- Entry HTML: 5 MB. Self-contained pytest reports inline their assets; a suite with long model outputs per case can approach the cap. Split by metric or truncate the captured output.
- Assets: 25 MB per file, 250 MB and 500 files per report.
- 60 requests/minute per token.
Try it
Comma is free — unlimited reports, unlimited commenters, unlimited revision history.