Step 5 of 8: versioned JSON report, Markdown report, console summary #6

Merged
mi merged 1 commits from step-5-reports into main 2026-10-01 16:11:05 +02:00
Owner

Step 5 of 8 from section 8.3 of the specification.

  • mutation-crap.json, schema version 1 (JSON Schema 2020-12, shipped in the JAR): definition, provenance (incl. origin + SHA-256 per class file), configuration, scope, summary, methods; null for undefined values, exact fraction mutationCrapExact for the gate; deterministic, no timestamps.
  • mutation-crap.md and a short console summary, written from the same data.
  • runStart() replaces both reports with a RUNNING marker, so an aborted run never leaves an older finished report behind.
  • Options via PIT's pluginConfiguration with prefix werkcrappit. (analysisContext, excludeClasses, excludeMethods); unknown own keys stop the run. Reporting exclusions = MC-013.
  • ADR 0004, feature 05; MC-013, MC-018, MC-026 passing; MC-019 to MC-025 open for step 6.

Found on the way: the Kotlin DSL cannot assign the PIT plugin's pluginConfiguration with =; README shows putAll.

CI on werkator.javagil.de: green (44 s), 97 unit and 13 functional tests.

PR-doc: docs/prs/2026-10-01-PR#6-reports.md

🤖 Generated with Claude Code

Step 5 of 8 from section 8.3 of the specification. - `mutation-crap.json`, schema version 1 (JSON Schema 2020-12, shipped in the JAR): definition, provenance (incl. origin + SHA-256 per class file), configuration, scope, summary, methods; `null` for undefined values, exact fraction `mutationCrapExact` for the gate; deterministic, no timestamps. - `mutation-crap.md` and a short console summary, written from the same data. - `runStart()` replaces both reports with a RUNNING marker, so an aborted run never leaves an older finished report behind. - Options via PIT's `pluginConfiguration` with prefix `werkcrappit.` (`analysisContext`, `excludeClasses`, `excludeMethods`); unknown own keys stop the run. Reporting exclusions = MC-013. - ADR 0004, feature 05; MC-013, MC-018, MC-026 passing; MC-019 to MC-025 open for step 6. Found on the way: the Kotlin DSL cannot assign the PIT plugin's `pluginConfiguration` with `=`; README shows `putAll`. CI on werkator.javagil.de: green (44 s), 97 unit and 13 functional tests. PR-doc: `docs/prs/2026-10-01-PR#6-reports.md` 🤖 Generated with [Claude Code](https://claude.com/claude-code)
mi added 1 commit 2026-10-01 16:10:12 +02:00
mutation-crap.json follows schema version 1, which ships in the JAR: it
names metric, policy, tools, context, scope and the origin of every
class file, keeps undefined values null and every score as an exact
fraction for the gate. mutation-crap.md and a few console lines are
written from the same data. runStart replaces both reports with a
RUNNING marker, so an aborted run never leaves an older result behind.
werkcrappit options come from PIT's pluginConfiguration; reporting
exclusions (MC-013) mark methods EXCLUDED with the matching rule.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
mi merged commit d8e2246c3b into main 2026-10-01 16:11:05 +02:00
mi deleted branch step-5-reports 2026-10-01 16:11:05 +02:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: mi/werkcrappit#6