# Share a Stryker Mutation Report — reports/mutation/mutation.html, Hosted

Canonical: https://commareports.com/share-stryker-report
Published: 2026-08-30

> Stryker's mutation.html is a single self-contained file that never leaves the runner. Publish it to Comma for a URL where surviving mutants get triaged instead of ignored.

# Share a Stryker mutation report

Stryker's HTML report is the best-designed artifact in JavaScript testing:
a file tree, a mutation score per directory, and source with every killed and
surviving mutant marked inline. It is also a file at
`reports/mutation/mutation.html` on a CI runner, and its usual fate is a
number in a Slack message.

_"Mutation score 61%."_ Nobody has ever fixed a test from that sentence.

## Publish the file

```bash
npx stryker run
```

Drag `reports/mutation/mutation.html` into
[the app](https://commareports.com/), or from CI:

```bash
npx stryker run || true

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 reports/mutation/mutation.html \
        --arg title "Mutation — $GITHUB_SHA" '{title: $title, html: $html}')"
```

Stryker exits non-zero below `thresholds.break`, so either tolerate the exit
code on the run step or publish with `if: always()`.

The report is self-contained — no assets folder to carry — so this is one of
the easier artifacts to wire up.

## Triage the survivors

A surviving mutant is a question: _would we care if this behaviour changed?_
Half the time the honest answer is no, and that answer is worth writing down
where the next person will see it.

- **Anchored threads** on the mutant — "equivalent mutant, the branch is
  unreachable" — see [commenting on HTML](/comment-on-html).
- **Revisions** — one report id per package, one revision per run. A score
  that fell after a refactor is a diff you can point at in review.
- **Access per report** — private, team, domain-gated, or named reviewers.
  See the [sharing model](/docs/sharing).

## Limits

- **Entry HTML: 5 MB.** Stryker inlines the full results JSON, so a very large
  monorepo run can approach it — run per package and publish one report each.
- **60 requests/minute per token.**

## Try it

Comma is free — unlimited reports, unlimited commenters, unlimited revision
history.

**[Publish a mutation report →](https://commareports.com/)**

### Related

- [Share a PIT mutation report](/share-pitest-report) · [Share a Jest report](/share-jest-report)
- [Share a Vitest report](/share-vitest-report) · [Share an LCOV report](/share-lcov-report)
- [Share a coverage report](/share-coverage-report) · [Publish from CI](/docs/ci)
