Example reports with every state of a method in `docs/examples`, as section 8.4 asks; a test keeps them equal to what the writers write.
See `docs/prs/2026-10-11-PR#65-example-reports.md`.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
ai-review/assessment AI review passed; approved by werkrevisor; merge waits for 1 open hint(s): reply to each line comment and resolve it, then restart the review or push a commit
Gate: approved by werkrevisor; merge waits for 1 open hint(s): reply to each line comment and resolve it, then restart the review or push a commit.
Change kind: mixed.
Reasons
hint writing rules violated in the changed docs: docs/examples/mutation-crap.md:3: line longer than 128 characters (195)
hint 1 changed file(s) that neither weaken the checks, touch security nor show a risk category of jvm-spring-backend according to Jev
hint 1 build change(s) of low risk according to Jev: build.gradle.kts (weakens checks 0.03, risk 0.00, security 0.01)
hint 1 finding(s) of low severity or rated minor by Jev: docs/examples/README.md:18-19
Findings
Documentation inconsistency at docs/examples/README.md:18-19, severity unknown, counted as medium
hint; Jev: real 0.81, severity 1.5 of 3
The README states that the class demo.Classifier "has two groups of methods, LCOM4 2, and a change risk", but the JSON example and the Markdown example both show changeRisk: null for that class (the Change Risk table in mutation-crap.md is empty, with reason method-not-scored:retry(I)I). A reader looking for the change risk value won't find one. Either rephrase to reflect that the change risk is null because of an inconclusive method, or drop the "and a change risk" claim.
Classifier
4 of 4 units passed all questions (1 PR document(s)).
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 17360, calls 1, tokens in 16759 / out 11094 (reasoning included in out), duration 115.3 s, cost 0.0183 USD (reported), classifier `jev-1.13.0` calls 4, tokens in 2682, cost 0.0001 USD, finding judge `jev-1.13.0` calls 1, tokens in 1406, cost 0.0001 USD, build file judge `jev-1.13.0` calls 2, tokens in 2727, cost 0.0001 USD, phases: path_judge 0.3 s, classifier 0.3 s, context 1.1 s, model_review 112.9 s, finding_judge 0.2 s, config: defaults + host + repository (.werkrevisor.toml at main 1577d2f).
Reviewed head `9737a8d83af060570e7c45a05b0dde161ad9d298` against base `1577d2f442136b889e9b20d3da1b43b4929c1974`, werkrevisor 0.32.7.
<!-- werkrevisor:9737a8d83af060570e7c45a05b0dde161ad9d298 -->
<!-- werkrevisor-verdict:GREEN -->
<!-- werkrevisor-blocks:98f3dc48bb19b3bb3a6c0d02ae1239a8,b527b487cd218d71fc86a97f32abbdb0,0f34910652ec6f2e6c4bcd407f11b026,3beee9389abcfd204ad014030b796101,5666ae99fe62653484b9906b1e30f846,588756007decc4e5ae98b3979a98de3c,4fae6446f9ce91b1f3cee056cffb96d4,96860aef71af85549fb754ec6b5399af,ae5bb7f50294f3183f97d01ce0dab493,ce86934bfbe2afd7d847bea0e2f9f8c9,1ba189a67f6fbbbf84c95b638985befe,9f9b2f59ac67466060fab25dc6e09be5,ea6dae401456766121fb9a7c9fa6dd6f,cb1ee939853dc0ac035265f8cf1e0664,75ca7e8dbe35f19436728edcfa132cd5,e52350202562952bcc7aa50fbcf1f1d6,2128b0b921451f8de6011bd3735c5dc1 -->
<!-- werkrevisor-folded -->
<details><summary>🟢 werkrevisor GREEN for <code>9737a8d</code>, superseded by <a href="http://git.javagil.de/mi/werkcrappit/pulls/65#issuecomment-4050">the result for <code>d518977</code></a></summary>
## 🟢 werkrevisor: GREEN / PASS
Gate: approved by werkrevisor; merge waits for 1 open hint(s): reply to each line comment and resolve it, then restart the review or push a commit.
Change kind: `mixed`.
### Reasons
- **hint** writing rules violated in the changed docs: docs/examples/mutation-crap.md:3: line longer than 128 characters (195)
- **hint** 1 changed file(s) that neither weaken the checks, touch security nor show a risk category of jvm-spring-backend according to Jev
- **hint** 1 build change(s) of low risk according to Jev: build.gradle.kts (weakens checks 0.03, risk 0.00, security 0.01)
- **hint** 1 finding(s) of low severity or rated minor by Jev: docs/examples/README.md:18-19
### Findings
1. **Documentation inconsistency** at `docs/examples/README.md:18-19`, severity unknown, counted as medium
hint; Jev: real 0.81, severity 1.5 of 3
The README states that the class `demo.Classifier` "has two groups of methods, LCOM4 2, and a change risk", but the JSON example and the Markdown example both show `changeRisk: null` for that class (the `Change Risk` table in `mutation-crap.md` is empty, with reason `method-not-scored:retry(I)I`). A reader looking for the change risk value won't find one. Either rephrase to reflect that the change risk is null because of an inconclusive method, or drop the "and a change risk" claim.
### Classifier
4 of 4 units passed all questions (1 PR document(s)).
<sub>
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 17360, calls 1, tokens in 16759 / out 11094 (reasoning included in out), duration 115.3 s, cost 0.0183 USD (reported), classifier `jev-1.13.0` calls 4, tokens in 2682, cost 0.0001 USD, finding judge `jev-1.13.0` calls 1, tokens in 1406, cost 0.0001 USD, build file judge `jev-1.13.0` calls 2, tokens in 2727, cost 0.0001 USD, phases: path_judge 0.3 s, classifier 0.3 s, context 1.1 s, model_review 112.9 s, finding_judge 0.2 s, config: defaults + host + repository (.werkrevisor.toml at main 1577d2f).<br>
Reviewed head `9737a8d83af060570e7c45a05b0dde161ad9d298` against base `1577d2f442136b889e9b20d3da1b43b4929c1974`, werkrevisor 0.32.7.
</sub>
</details>
werkrevisor: GREEN / PASS for 9737a8d83af060570e7c45a05b0dde161ad9d298.
The result comment of werkrevisor holds the details.
werkrevisor: GREEN / PASS for `9737a8d83af060570e7c45a05b0dde161ad9d298`.
The result comment of werkrevisor holds the details.
<!-- werkrevisor-review:9737a8d83af060570e7c45a05b0dde161ad9d298 -->
Experimental metric `mutation-crap` version 1, status policy `timeouts-killed-v1`: `C² × (1 − MS)³ + C` with C the JaCoCo complexity and MS the share of killed mutants, as the policy counts them.
No change: docs/examples/mutation-crap.md is the output of MarkdownReport, and ExampleReportsTest fails when the file differs from it; the long line is the report's first paragraph as every user gets it. Shortening it means changing the report itself, which is out of scope here.
No change: `docs/examples/mutation-crap.md` is the output of `MarkdownReport`, and `ExampleReportsTest` fails when the file differs from it; the long line is the report's first paragraph as every user gets it. Shortening it means changing the report itself, which is out of scope here.
"Documentation inconsistency", fixed in d518977: the README says that demo.Classifier has no change risk, and why.
Writing rule in docs/examples/mutation-crap.md: no change, answered in its thread; the file is the generated report, which the test pins.
Round 1:
- "Documentation inconsistency", fixed in d518977: the README says that `demo.Classifier` has no change risk, and why.
- Writing rule in `docs/examples/mutation-crap.md`: no change, answered in its thread; the file is the generated report, which the test pins.
Gate: approved by werkrevisor; merge waits for 1 open hint(s): reply to each line comment and resolve it, then restart the review or push a commit.
Change kind: mixed.
Reasons
hint approval of werkrevisor for 9737a8d not carried over: 1 approved block(s) are missing
hint writing rules violated in the changed docs: docs/examples/mutation-crap.md:3: line longer than 128 characters (195)
hint 1 changed file(s) that neither weaken the checks, touch security nor show a risk category of jvm-spring-backend according to Jev
hint 1 build change(s) of low risk according to Jev: build.gradle.kts (weakens checks 0.03, risk 0.00, security 0.01)
Classifier
4 of 4 units passed all questions (1 PR document(s)).
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 17382, calls 1, tokens in 16778 / out 9794 (reasoning included in out), duration 74.4 s, cost 0.0168 USD (reported), classifier `jev-1.13.0` calls 4, tokens in 2682, cost 0.0001 USD, build file judge `jev-1.13.0` calls 2, tokens in 2727, cost 0.0001 USD, phases: path_judge 0.2 s, classifier 0.2 s, context 0.2 s, model_review 73.3 s, config: defaults + host + repository (.werkrevisor.toml at main 1577d2f).
Reviewed head `d51897787933f3594bc2f3d095f8619704b858a0` against base `1577d2f442136b889e9b20d3da1b43b4929c1974`, werkrevisor 0.32.7.
<!-- werkrevisor:d51897787933f3594bc2f3d095f8619704b858a0 -->
<!-- werkrevisor-verdict:GREEN -->
<!-- werkrevisor-blocks:98f3dc48bb19b3bb3a6c0d02ae1239a8,b527b487cd218d71fc86a97f32abbdb0,0f34910652ec6f2e6c4bcd407f11b026,3beee9389abcfd204ad014030b796101,828c62d758524d9334e513ce060a7d69,588756007decc4e5ae98b3979a98de3c,4fae6446f9ce91b1f3cee056cffb96d4,96860aef71af85549fb754ec6b5399af,ae5bb7f50294f3183f97d01ce0dab493,ce86934bfbe2afd7d847bea0e2f9f8c9,1ba189a67f6fbbbf84c95b638985befe,9f9b2f59ac67466060fab25dc6e09be5,ea6dae401456766121fb9a7c9fa6dd6f,cb1ee939853dc0ac035265f8cf1e0664,75ca7e8dbe35f19436728edcfa132cd5,e52350202562952bcc7aa50fbcf1f1d6,2128b0b921451f8de6011bd3735c5dc1 -->
## 🟢 werkrevisor: GREEN / PASS
Gate: approved by werkrevisor; merge waits for 1 open hint(s): reply to each line comment and resolve it, then restart the review or push a commit.
Change kind: `mixed`.
### Reasons
- **hint** approval of werkrevisor for `9737a8d` not carried over: 1 approved block(s) are missing
- **hint** writing rules violated in the changed docs: docs/examples/mutation-crap.md:3: line longer than 128 characters (195)
- **hint** 1 changed file(s) that neither weaken the checks, touch security nor show a risk category of jvm-spring-backend according to Jev
- **hint** 1 build change(s) of low risk according to Jev: build.gradle.kts (weakens checks 0.03, risk 0.00, security 0.01)
### Classifier
4 of 4 units passed all questions (1 PR document(s)).
<sub>
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 17382, calls 1, tokens in 16778 / out 9794 (reasoning included in out), duration 74.4 s, cost 0.0168 USD (reported), classifier `jev-1.13.0` calls 4, tokens in 2682, cost 0.0001 USD, build file judge `jev-1.13.0` calls 2, tokens in 2727, cost 0.0001 USD, phases: path_judge 0.2 s, classifier 0.2 s, context 0.2 s, model_review 73.3 s, config: defaults + host + repository (.werkrevisor.toml at main 1577d2f).<br>
Reviewed head `d51897787933f3594bc2f3d095f8619704b858a0` against base `1577d2f442136b889e9b20d3da1b43b4929c1974`, werkrevisor 0.32.7.
</sub>
werkrevisor: GREEN / PASS for d51897787933f3594bc2f3d095f8619704b858a0.
The result comment of werkrevisor holds the details.
werkrevisor: GREEN / PASS for `d51897787933f3594bc2f3d095f8619704b858a0`.
The result comment of werkrevisor holds the details.
<!-- werkrevisor-review:d51897787933f3594bc2f3d095f8619704b858a0 -->
Experimental metric `mutation-crap` version 1, status policy `timeouts-killed-v1`: `C² × (1 − MS)³ + C` with C the JaCoCo complexity and MS the share of killed mutants, as the policy counts them.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Example reports with every state of a method in
docs/examples, as section 8.4 asks; a test keeps them equal to what the writers write.See
docs/prs/2026-10-11-PR#65-example-reports.md.🤖 Generated with Claude Code
🟢 werkrevisor GREEN for
9737a8d, superseded by the result ford518977🟢 werkrevisor: GREEN / PASS
Gate: approved by werkrevisor; merge waits for 1 open hint(s): reply to each line comment and resolve it, then restart the review or push a commit.
Change kind:
mixed.Reasons
Findings
Documentation inconsistency at
docs/examples/README.md:18-19, severity unknown, counted as mediumhint; Jev: real 0.81, severity 1.5 of 3
The README states that the class
demo.Classifier"has two groups of methods, LCOM4 2, and a change risk", but the JSON example and the Markdown example both showchangeRisk: nullfor that class (theChange Risktable inmutation-crap.mdis empty, with reasonmethod-not-scored:retry(I)I). A reader looking for the change risk value won't find one. Either rephrase to reflect that the change risk is null because of an inconclusive method, or drop the "and a change risk" claim.Classifier
4 of 4 units passed all questions (1 PR document(s)).
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 17360, calls 1, tokens in 16759 / out 11094 (reasoning included in out), duration 115.3 s, cost 0.0183 USD (reported), classifier `jev-1.13.0` calls 4, tokens in 2682, cost 0.0001 USD, finding judge `jev-1.13.0` calls 1, tokens in 1406, cost 0.0001 USD, build file judge `jev-1.13.0` calls 2, tokens in 2727, cost 0.0001 USD, phases: path_judge 0.3 s, classifier 0.3 s, context 1.1 s, model_review 112.9 s, finding_judge 0.2 s, config: defaults + host + repository (.werkrevisor.toml at main1577d2f).Reviewed head `9737a8d83af060570e7c45a05b0dde161ad9d298` against base `1577d2f442136b889e9b20d3da1b43b4929c1974`, werkrevisor 0.32.7.
werkrevisor: GREEN / PASS for
9737a8d83af060570e7c45a05b0dde161ad9d298.The result comment of werkrevisor holds the details.
@@ -0,0 +1,69 @@# Mutation-CRAPExperimental metric `mutation-crap` version 1, status policy `timeouts-killed-v1`: `C² × (1 − MS)³ + C` with C the JaCoCo complexity and MS the share of killed mutants, as the policy counts them.Writing rule: line longer than 128 characters (195) (werkrevisor writing rule)
Fix the line, or reply why it stays, and resolve this comment.
No change:
docs/examples/mutation-crap.mdis the output ofMarkdownReport, andExampleReportsTestfails when the file differs from it; the long line is the report's first paragraph as every user gets it. Shortening it means changing the report itself, which is out of scope here.Round 1:
d518977: the README says thatdemo.Classifierhas no change risk, and why.docs/examples/mutation-crap.md: no change, answered in its thread; the file is the generated report, which the test pins.New commits pushed, approval review dismissed automatically according to repository settings
🟢 werkrevisor: GREEN / PASS
Gate: approved by werkrevisor; merge waits for 1 open hint(s): reply to each line comment and resolve it, then restart the review or push a commit.
Change kind:
mixed.Reasons
9737a8dnot carried over: 1 approved block(s) are missingClassifier
4 of 4 units passed all questions (1 PR document(s)).
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 17382, calls 1, tokens in 16778 / out 9794 (reasoning included in out), duration 74.4 s, cost 0.0168 USD (reported), classifier `jev-1.13.0` calls 4, tokens in 2682, cost 0.0001 USD, build file judge `jev-1.13.0` calls 2, tokens in 2727, cost 0.0001 USD, phases: path_judge 0.2 s, classifier 0.2 s, context 0.2 s, model_review 73.3 s, config: defaults + host + repository (.werkrevisor.toml at main1577d2f).Reviewed head `d51897787933f3594bc2f3d095f8619704b858a0` against base `1577d2f442136b889e9b20d3da1b43b4929c1974`, werkrevisor 0.32.7.
werkrevisor: GREEN / PASS for
d51897787933f3594bc2f3d095f8619704b858a0.The result comment of werkrevisor holds the details.
@@ -0,0 +1,69 @@# Mutation-CRAPExperimental metric `mutation-crap` version 1, status policy `timeouts-killed-v1`: `C² × (1 − MS)³ + C` with C the JaCoCo complexity and MS the share of killed mutants, as the policy counts them.Writing rule: line longer than 128 characters (195) (werkrevisor writing rule)
Fix the line, or reply why it stays, and resolve this comment.
No change, as in round 1: the file is the generated report, pinned by
ExampleReportsTest; the long line is the report's first paragraph.werkrevisor, review restarted for
d51897787933f3594bc2f3d095f8619704b858a0: approved by werkrevisor; merge scheduled for when the checks succeed.