The lines of a wrapped level in structure.html get 40 pixels between them, and every second line is shifted by half a box, so the edges into the lower lines stay visible (RFC 0003, TODO.wrap). Needs PR#66 merged first, as both raise the version.
The lines of a wrapped level in `structure.html` get 40 pixels between them, and every second line is shifted by half a box, so the edges into the lower lines stay visible (RFC 0003, `TODO.wrap`). Needs PR#66 merged first, as both raise the version.
See `docs/prs/2026-10-11-PR#67-wrapped-levels.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 2 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.02, risk 0.00, security 0.01)
hint 1 finding(s) of low severity or rated minor by Jev: werkcrappit-pit/src/main/resources/de/javagil/werkcrappit/pit/codecharta/views/structure.js:153-159
Findings
Shift amount labelled as half a box at werkcrappit-pit/src/main/resources/de/javagil/werkcrappit/pit/codecharta/views/structure.js:153-159, severity unknown, counted as medium, hint, as a line comment
Classifier
5 of 5 units passed all questions (1 PR document(s)).
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 21722, calls 1, tokens in 21003 / out 26146 (reasoning included in out), duration 150.6 s, cost 0.0376 USD (reported), classifier `jev-1.13.0` calls 5, tokens in 3386, cost 0.0001 USD, finding judge `jev-1.13.0` calls 1, tokens in 2445, cost 0.0001 USD, build file judge `jev-1.13.0` calls 3, tokens in 4195, cost 0.0002 USD, phases: path_judge 0.2 s, classifier 0.4 s, context 1.2 s, model_review 148.1 s, finding_judge 0.2 s, config: defaults + host + repository (.werkrevisor.toml at main 19159c1).
Reviewed head `a070b65a060d7358fffab17b9314569b6f29ccd6` against base `19159c16db4e46abf1010e085213eb8d193f5232`, werkrevisor 0.32.12.
<!-- werkrevisor:a070b65a060d7358fffab17b9314569b6f29ccd6 -->
<!-- werkrevisor-verdict:GREEN -->
<!-- werkrevisor-blocks:6713c12bc62f94e8be97c5d46c512b3c,645d3be29c0b22931c756d0024daf3cd,62a4f191063a34d61f00e1a7e36d8b63,1c979c9ca55733842ccea2cb1be0e910,730dc94a47aafe00167c65550afe4913,fc13f606c85184d6902b92aba34fa4cb,13c516e2d2e20770beb5fd40894808d9,55d2d3109794f6cbbe22aa407a3b88e7,080c1dff4c630c029a30a6e707030a4a,346c74e9a33a72d405cb1a0a69b11e88,435a18b7e81bd0b15781cd422146e073,a2d47f1ec862ba91461257504ff3cc5c,b5ac7a752163091b3fec01c3c3596dd7,f888b9eb8f22ca914a74338a18a52d77,51d45f0f56eb573cf952fd56a623eb2f,922dfbb56e75b392427262cbce22410c,e724752a53259b70a938da4da91ca04d,1d9eb31981c6ad652df1e00a81626be4 -->
<!-- werkrevisor-folded -->
<details><summary>🟢 werkrevisor GREEN for <code>a070b65</code>, superseded by <a href="http://git.javagil.de/mi/werkcrappit/pulls/67#issuecomment-4115">the result for <code>a794ec4</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** 2 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.02, risk 0.00, security 0.01)
- **hint** 1 finding(s) of low severity or rated minor by Jev: werkcrappit-pit/src/main/resources/de/javagil/werkcrappit/pit/codecharta/views/structure.js:153-159
### Findings
1. **Shift amount labelled as half a box** at `werkcrappit-pit/src/main/resources/de/javagil/werkcrappit/pit/codecharta/views/structure.js:153-159`, severity unknown, counted as medium, hint, as a line comment
### Classifier
5 of 5 units passed all questions (1 PR document(s)).
<sub>
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 21722, calls 1, tokens in 21003 / out 26146 (reasoning included in out), duration 150.6 s, cost 0.0376 USD (reported), classifier `jev-1.13.0` calls 5, tokens in 3386, cost 0.0001 USD, finding judge `jev-1.13.0` calls 1, tokens in 2445, cost 0.0001 USD, build file judge `jev-1.13.0` calls 3, tokens in 4195, cost 0.0002 USD, phases: path_judge 0.2 s, classifier 0.4 s, context 1.2 s, model_review 148.1 s, finding_judge 0.2 s, config: defaults + host + repository (.werkrevisor.toml at main 19159c1).<br>
Reviewed head `a070b65a060d7358fffab17b9314569b6f29ccd6` against base `19159c16db4e46abf1010e085213eb8d193f5232`, werkrevisor 0.32.12.
</sub>
</details>
werkrevisor: GREEN / PASS for a070b65a060d7358fffab17b9314569b6f29ccd6.
The result comment of werkrevisor holds the details.
werkrevisor: GREEN / PASS for `a070b65a060d7358fffab17b9314569b6f29ccd6`.
The result comment of werkrevisor holds the details.
<!-- werkrevisor-review:a070b65a060d7358fffab17b9314569b6f29ccd6 -->
Shift amount labelled as half a box, severity unknown, counted as medium (werkrevisor)
hint; Jev: real 0.62, severity 1.0 of 3
The comment, PR document and Gherkin scenario all describe the shift as "half a box", but shiftOf actually computes (last[0] + last[2] - first[0] + GAP_X) / keys.length / 2, which is the average box width divided by 2 plus half of GAP_X (i.e. roughly half a cell). The visual effect of putting the boxes in the gaps above is correct, but the wording in the code comment, the PR document and the German scenario is slightly inaccurate; readers may wonder why their derived half-a-box value does not match the layout. Worth tightening the wording in all three places.
**Shift amount labelled as half a box**, severity unknown, counted as medium (werkrevisor)
hint; Jev: real 0.62, severity 1.0 of 3
The comment, PR document and Gherkin scenario all describe the shift as "half a box", but `shiftOf` actually computes `(last[0] + last[2] - first[0] + GAP_X) / keys.length / 2`, which is the average box width divided by 2 plus half of `GAP_X` (i.e. roughly half a cell). The visual effect of putting the boxes in the gaps above is correct, but the wording in the code comment, the PR document and the German scenario is slightly inaccurate; readers may wonder why their derived half-a-box value does not match the layout. Worth tightening the wording in all three places.
Fixed in a794ec4: "half the step from box to box", the mean width of a box and a gap, in the code comment, the scenario, RFC 0003, the PR document and the CHANGELOG.
Fixed in a794ec4: "half the step from box to box", the mean width of a box and a gap, in the code comment, the scenario, RFC 0003, the PR document and the CHANGELOG.
werkrevisor: GREEN / PASS for a794ec415f68177a83638d7fdcf4d885086427a3.
The result comment of werkrevisor holds the details.
werkrevisor: GREEN / PASS for `a794ec415f68177a83638d7fdcf4d885086427a3`.
The result comment of werkrevisor holds the details.
<!-- werkrevisor-review:a794ec415f68177a83638d7fdcf4d885086427a3 -->
ai-reviewer
scheduled this pull request to auto merge when all checks succeed 2026-10-11 19:25:18 +02:00
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.
The lines of a wrapped level in
structure.htmlget 40 pixels between them, and every second line is shifted by half a box, so the edges into the lower lines stay visible (RFC 0003,TODO.wrap). Needs PR#66 merged first, as both raise the version.See
docs/prs/2026-10-11-PR#67-wrapped-levels.md.🤖 Generated with Claude Code
🟢 werkrevisor GREEN for
a070b65, superseded by the result fora794ec4🟢 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
werkcrappit-pit/src/main/resources/de/javagil/werkcrappit/pit/codecharta/views/structure.js:153-159, severity unknown, counted as medium, hint, as a line commentClassifier
5 of 5 units passed all questions (1 PR document(s)).
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 21722, calls 1, tokens in 21003 / out 26146 (reasoning included in out), duration 150.6 s, cost 0.0376 USD (reported), classifier `jev-1.13.0` calls 5, tokens in 3386, cost 0.0001 USD, finding judge `jev-1.13.0` calls 1, tokens in 2445, cost 0.0001 USD, build file judge `jev-1.13.0` calls 3, tokens in 4195, cost 0.0002 USD, phases: path_judge 0.2 s, classifier 0.4 s, context 1.2 s, model_review 148.1 s, finding_judge 0.2 s, config: defaults + host + repository (.werkrevisor.toml at main19159c1).Reviewed head `a070b65a060d7358fffab17b9314569b6f29ccd6` against base `19159c16db4e46abf1010e085213eb8d193f5232`, werkrevisor 0.32.12.
werkrevisor: GREEN / PASS for
a070b65a060d7358fffab17b9314569b6f29ccd6.The result comment of werkrevisor holds the details.
@@ -147,14 +150,24 @@ function diagram(folder) {return ['out:' + p, Math.max(textWidth('▸ ' + shortName(p)), ...classes.map(c => textWidth(N[c].n, 10) + 8)), 20 + classes.length * 13];}), y, 'depends on');}// half a box of the line, for the second, fourth, … line of a level; the width leaves room for the shiftShift amount labelled as half a box, severity unknown, counted as medium (werkrevisor)
hint; Jev: real 0.62, severity 1.0 of 3
The comment, PR document and Gherkin scenario all describe the shift as "half a box", but
shiftOfactually computes(last[0] + last[2] - first[0] + GAP_X) / keys.length / 2, which is the average box width divided by 2 plus half ofGAP_X(i.e. roughly half a cell). The visual effect of putting the boxes in the gaps above is correct, but the wording in the code comment, the PR document and the German scenario is slightly inaccurate; readers may wonder why their derived half-a-box value does not match the layout. Worth tightening the wording in all three places.Fixed in
a794ec4: "half the step from box to box", the mean width of a box and a gap, in the code comment, the scenario, RFC 0003, the PR document and the CHANGELOG.Round 1, fixed in
a794ec4: "Shift amount labelled as half a box", the wording says half a step everywhere.New commits pushed, approval review dismissed automatically according to repository settings
🟢 werkrevisor: GREEN / PASS
Change kind:
mixed.Reasons
a070b65not carried over: 7 approved block(s) are missingClassifier
5 of 5 units passed all questions (1 PR document(s)).
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 21776, calls 1, tokens in 21055 / out 32571 (reasoning included in out), duration 192.0 s, cost 0.0454 USD (reported), classifier `jev-1.13.0` calls 5, tokens in 3400, cost 0.0001 USD, build file judge `jev-1.13.0` calls 3, tokens in 4210, cost 0.0002 USD, phases: path_judge 0.3 s, classifier 0.4 s, context 0.2 s, model_review 190.1 s, config: defaults + host + repository (.werkrevisor.toml at main19159c1).Reviewed head `a794ec415f68177a83638d7fdcf4d885086427a3` against base `19159c16db4e46abf1010e085213eb8d193f5232`, werkrevisor 0.32.12.
werkrevisor: GREEN / PASS for
a794ec415f68177a83638d7fdcf4d885086427a3.The result comment of werkrevisor holds the details.