The structure page, a level diagram per package (0.24.0) #50

Merged
ai-reviewer merged 10 commits from claude-code/structure-page into main 2026-10-09 21:43:32 +02:00
Collaborator

Step 1 of RFC 0003: mutationCrapCodeCharta writes structure.html beside the code city's index.html, a level diagram per package with cycles, complexity and LCOM4.

See docs/prs/2026-10-09-PR#50-structure-page.md.

🤖 Generated with Claude Code

Step 1 of RFC 0003: `mutationCrapCodeCharta` writes `structure.html` beside the code city's `index.html`, a level diagram per package with cycles, complexity and LCOM4. See `docs/prs/2026-10-09-PR#50-structure-page.md`. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
claude-code added 1 commit 2026-10-09 18:44:44 +02:00
PR document for the structure page
werkator build succeeded after 01:44
3eb9e90980
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
mi added 1 commit 2026-10-09 18:49:28 +02:00
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
claude-code added 2 commits 2026-10-09 19:00:45 +02:00
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
README: wrap a long line
werkator build failed after 01:35
964dbb7250
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
mi added 1 commit 2026-10-09 20:18:31 +02:00
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
mi added 1 commit 2026-10-09 20:18:49 +02:00
mi added 1 commit 2026-10-09 20:20:11 +02:00
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
mi added 1 commit 2026-10-09 21:26:20 +02:00
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
mi added 1 commit 2026-10-09 21:26:32 +02:00
PR document: wrap a long line
werkator build succeeded after 02:52
ai-review/assessment human review required; a human approval unlocks the merge; review requested from mi; merge scheduled for when the checks succeed
ai-review/gate build succeeded after 03:27
df84e392f2
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
claude-code marked the pull request as ready for review 2026-10-09 21:33:57 +02:00
Collaborator
🟡 werkrevisor YELLOW for df84e39, superseded by the result for 03b8de0

🟡 werkrevisor: YELLOW / HUMAN_REVIEW

Change kind: mixed.

Reasons

  • YELLOW PR too large for an AI-only approval: 1202 changed lines (docs and mechanical files not counted) exceed [size] max_changed_lines = 800; please review it yourself
  • YELLOW risky build changes according to Jev: werkcrappit-pit/build.gradle.kts (weakens checks 0.04, risk 1.71, security 0.02)
  • hint 17 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 3 changed files were given to the AI only as diff, not in full, so it could not check them against the rest of their file (all full files together would exceed [review] max_full_files_chars = 160000, and no excerpt fits the limits either): werkcrappit-pit/src/test/java/de/javagil/werkcrappit/pit/codecharta/CodeChartaExportTest.java, werkcrappit-pit/src/test/java/de/javagil/werkcrappit/pit/codecharta/CodeCityPageTest.java, werkcrappit-pit/src/test/java/de/javagil/werkcrappit/pit/codecharta/StructurePageTest.java (advisory: Jev judged every changed file)
  • hint files the model cannot review: .gitignore (advisory: Jev judged every changed file)
  • hint 1 finding(s) of low severity or rated minor by Jev: werkcrappit-pit/src/main/java/de/javagil/werkcrappit/pit/codecharta/StructurePage.java:148-151
  • hint model recommends merge with caution

Findings

  1. Wrong Javadoc comment at werkcrappit-pit/src/main/java/de/javagil/werkcrappit/pit/codecharta/StructurePage.java:148-151, severity unknown, counted as medium, hint, as a line comment

Classifier

6 of 6 units passed all questions (1 PR document(s)).

Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 80975, calls 1, tokens in 77978 / out 28384 (reasoning included in out), duration 203.6 s, cost 0.0574 USD (reported), classifier `jev-1.13.0` calls 6, tokens in 4653, cost 0.0002 USD, finding judge `jev-1.13.0` calls 1, tokens in 1623, cost 0.0001 USD, excerpt selection `openrouter/openai/gpt-6-luna` calls 3, tokens in 13405 / out 573, cost 0.0020 USD (reported), build file judge `jev-1.13.0` calls 19, tokens in 33670, cost 0.0014 USD, phases: path_judge 1.2 s, classifier 0.5 s, context 13.4 s, model_review 187.8 s, finding_judge 0.3 s, config: defaults + host + repository (.werkrevisor.toml at main 566626a).
Reviewed head `df84e392f29e93d89aeaa558d3165aa2a64c1e87` against base `566626ab1c58109a87382ccbb99c0f60b14e53ef`, werkrevisor 0.31.1.
<!-- werkrevisor:df84e392f29e93d89aeaa558d3165aa2a64c1e87 --> <!-- werkrevisor-verdict:YELLOW --> <!-- werkrevisor-folded --> <details><summary>🟡 werkrevisor YELLOW for <code>df84e39</code>, superseded by <a href="http://git.javagil.de/mi/werkcrappit/pulls/50#issuecomment-2841">the result for <code>03b8de0</code></a></summary> ## 🟡 werkrevisor: YELLOW / HUMAN_REVIEW Change kind: `mixed`. ### Reasons - **YELLOW** PR too large for an AI-only approval: 1202 changed lines (docs and mechanical files not counted) exceed [size] max_changed_lines = 800; please review it yourself - **YELLOW** risky build changes according to Jev: werkcrappit-pit/build.gradle.kts (weakens checks 0.04, risk 1.71, security 0.02) - **hint** 17 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** 3 changed files were given to the AI only as diff, not in full, so it could not check them against the rest of their file (all full files together would exceed [review] max_full_files_chars = 160000, and no excerpt fits the limits either): werkcrappit-pit/src/test/java/de/javagil/werkcrappit/pit/codecharta/CodeChartaExportTest.java, werkcrappit-pit/src/test/java/de/javagil/werkcrappit/pit/codecharta/CodeCityPageTest.java, werkcrappit-pit/src/test/java/de/javagil/werkcrappit/pit/codecharta/StructurePageTest.java (advisory: Jev judged every changed file) - **hint** files the model cannot review: .gitignore (advisory: Jev judged every changed file) - **hint** 1 finding(s) of low severity or rated minor by Jev: werkcrappit-pit/src/main/java/de/javagil/werkcrappit/pit/codecharta/StructurePage.java:148-151 - **hint** model recommends merge with caution ### Findings 1. **Wrong Javadoc comment** at `werkcrappit-pit/src/main/java/de/javagil/werkcrappit/pit/codecharta/StructurePage.java:148-151`, severity unknown, counted as medium, hint, as a line comment ### Classifier 6 of 6 units passed all questions (1 PR document(s)). <sub> Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 80975, calls 1, tokens in 77978 / out 28384 (reasoning included in out), duration 203.6 s, cost 0.0574 USD (reported), classifier `jev-1.13.0` calls 6, tokens in 4653, cost 0.0002 USD, finding judge `jev-1.13.0` calls 1, tokens in 1623, cost 0.0001 USD, excerpt selection `openrouter/openai/gpt-6-luna` calls 3, tokens in 13405 / out 573, cost 0.0020 USD (reported), build file judge `jev-1.13.0` calls 19, tokens in 33670, cost 0.0014 USD, phases: path_judge 1.2 s, classifier 0.5 s, context 13.4 s, model_review 187.8 s, finding_judge 0.3 s, config: defaults + host + repository (.werkrevisor.toml at main 566626a).<br> Reviewed head `df84e392f29e93d89aeaa558d3165aa2a64c1e87` against base `566626ab1c58109a87382ccbb99c0f60b14e53ef`, werkrevisor 0.31.1. </sub> </details>
ai-reviewer left a comment
Collaborator

werkrevisor: YELLOW / HUMAN_REVIEW for df84e392f29e93d89aeaa558d3165aa2a64c1e87.
The result comment of werkrevisor holds the details.

werkrevisor: YELLOW / HUMAN_REVIEW for `df84e392f29e93d89aeaa558d3165aa2a64c1e87`. The result comment of werkrevisor holds the details. <!-- werkrevisor-review:df84e392f29e93d89aeaa558d3165aa2a64c1e87 -->
@@ -0,0 +145,4 @@
return graph.levels.getOrDefault(node, 0);
}
/** JSON inside a {@code script} element: {@code <} as {@code <}, so no text can end the element. */
Collaborator

Wrong Javadoc comment, severity unknown, counted as medium (werkrevisor)

hint; Jev: real 0.93, severity 1.3 of 3

The Javadoc of StructurePage.script() says {@code <} as {@code <}, but the method replaces < with \u003c so the data cannot end its script element. The comment contradicts the code and should read e.g. {@code <} as {@code \u003c}. A reader who relies on the comment will not understand why the replacement is needed.

**Wrong Javadoc comment**, severity unknown, counted as medium (werkrevisor) hint; Jev: real 0.93, severity 1.3 of 3 The Javadoc of `StructurePage.script()` says `{@code <} as {@code <}`, but the method replaces `<` with `\u003c` so the data cannot end its script element. The comment contradicts the code and should read e.g. `{@code <} as {@code \u003c}`. A reader who relies on the comment will not understand why the replacement is needed.
Author
Collaborator

Fixed in 03b8de0: in Java source a \u003c in a comment is itself turned into <, so the Javadoc now names the escape in words.

Fixed in `03b8de0`: in Java source a `\u003c` in a comment is itself turned into `<`, so the Javadoc now names the escape in words.
claude-code marked this conversation as resolved
ai-reviewer scheduled this pull request to auto merge when all checks succeed 2026-10-09 21:37:34 +02:00
ai-reviewer requested review from mi 2026-10-09 21:37:34 +02:00
Author
Collaborator

Answer to the werkrevisor review of df84e39:

  • Finding, wrong Javadoc comment: fixed in 03b8de0. Java turns a \u003c even in a comment into <; the comment now names the escape in words.
  • YELLOW, size: 1202 lines, as the RFC's step 1 brings the page, its scripts, its browser tests and their fixture together.
  • YELLOW, build change in werkcrappit-pit/build.gradle.kts: a new source set browserTest with Playwright 1.63.0 and a task installBrowser; check now also runs browserTest. Nothing is weakened: no test is skipped or removed.
  • The browser tests ran on Werkator: 9 tests, 0 failures. werkcrappit builds in an image with Chromium's libraries, see the PR document.

All threads have a reply and are resolved. This PR waits for the approval of the human user.

Answer to the werkrevisor review of `df84e39`: - Finding, wrong Javadoc comment: fixed in `03b8de0`. Java turns a `\u003c` even in a comment into `<`; the comment now names the escape in words. - YELLOW, size: 1202 lines, as the RFC's step 1 brings the page, its scripts, its browser tests and their fixture together. - YELLOW, build change in `werkcrappit-pit/build.gradle.kts`: a new source set `browserTest` with Playwright 1.63.0 and a task `installBrowser`; `check` now also runs `browserTest`. Nothing is weakened: no test is skipped or removed. - The browser tests ran on Werkator: 9 tests, 0 failures. werkcrappit builds in an image with Chromium's libraries, see the PR document. All threads have a reply and are resolved. This PR waits for the approval of the human user.
mi added 1 commit 2026-10-09 21:38:16 +02:00
StructurePage: a Javadoc that says what the escape is
werkator build succeeded after 01:37
ai-review/assessment human review required; a human approval unlocks the merge; approved by mi for this head commit; merge already scheduled
ai-review/gate build succeeded after 05:03
03b8de0119
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
mi approved these changes 2026-10-09 21:42:34 +02:00
Collaborator

🟡 werkrevisor: YELLOW / HUMAN_REVIEW

Change kind: mixed.

Reasons

  • YELLOW PR too large for an AI-only approval: 1202 changed lines (docs and mechanical files not counted) exceed [size] max_changed_lines = 800; please review it yourself
  • YELLOW risky build changes according to Jev: werkcrappit-pit/build.gradle.kts (weakens checks 0.04, risk 1.74, security 0.02)
  • hint 17 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.02)
  • hint 1 changed file was given to the AI as excerpt of the selected lines and 5 lines around each changed line, not in full (all full files together would exceed [review] max_full_files_chars = 160000): werkcrappit-pit/src/test/java/de/javagil/werkcrappit/pit/codecharta/CodeCityPageTest.java
  • hint 3 changed files were given to the AI only as diff, not in full, so it could not check them against the rest of their file (all full files together would exceed [review] max_full_files_chars = 160000, and no excerpt fits the limits either): werkcrappit-pit/src/test/java/de/javagil/werkcrappit/pit/codecharta/CodeChartaExportTest.java, werkcrappit-pit/src/test/java/de/javagil/werkcrappit/pit/codecharta/StructureFixture.java, werkcrappit-pit/src/test/java/de/javagil/werkcrappit/pit/codecharta/StructurePageTest.java (advisory: Jev judged every changed file)
  • hint files the model cannot review: .gitignore (advisory: Jev judged every changed file)

Classifier

6 of 6 units passed all questions (1 PR document(s)).

Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 80718, calls 1, tokens in 77733 / out 17056 (reasoning included in out), duration 301.0 s, cost 0.0251 USD (reported), classifier `jev-1.13.0` calls 6, tokens in 4653, cost 0.0002 USD, excerpt selection `openrouter/openai/gpt-6-luna` calls 4, tokens in 15349 / out 445, cost 0.0006 USD (reported), build file judge `jev-1.13.0` calls 19, tokens in 33684, cost 0.0014 USD, phases: path_judge 1.4 s, classifier 0.6 s, context 11.8 s, model_review 286.7 s, config: defaults + host + repository (.werkrevisor.toml at main 566626a).
Reviewed head `03b8de011975ca56bb98a024c889f4ca488ce365` against base `566626ab1c58109a87382ccbb99c0f60b14e53ef`, werkrevisor 0.31.1.
<!-- werkrevisor:03b8de011975ca56bb98a024c889f4ca488ce365 --> <!-- werkrevisor-verdict:YELLOW --> ## 🟡 werkrevisor: YELLOW / HUMAN_REVIEW Change kind: `mixed`. ### Reasons - **YELLOW** PR too large for an AI-only approval: 1202 changed lines (docs and mechanical files not counted) exceed [size] max_changed_lines = 800; please review it yourself - **YELLOW** risky build changes according to Jev: werkcrappit-pit/build.gradle.kts (weakens checks 0.04, risk 1.74, security 0.02) - **hint** 17 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.02) - **hint** 1 changed file was given to the AI as excerpt of the selected lines and 5 lines around each changed line, not in full (all full files together would exceed [review] max_full_files_chars = 160000): werkcrappit-pit/src/test/java/de/javagil/werkcrappit/pit/codecharta/CodeCityPageTest.java - **hint** 3 changed files were given to the AI only as diff, not in full, so it could not check them against the rest of their file (all full files together would exceed [review] max_full_files_chars = 160000, and no excerpt fits the limits either): werkcrappit-pit/src/test/java/de/javagil/werkcrappit/pit/codecharta/CodeChartaExportTest.java, werkcrappit-pit/src/test/java/de/javagil/werkcrappit/pit/codecharta/StructureFixture.java, werkcrappit-pit/src/test/java/de/javagil/werkcrappit/pit/codecharta/StructurePageTest.java (advisory: Jev judged every changed file) - **hint** files the model cannot review: .gitignore (advisory: Jev judged every changed file) ### Classifier 6 of 6 units passed all questions (1 PR document(s)). <sub> Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 80718, calls 1, tokens in 77733 / out 17056 (reasoning included in out), duration 301.0 s, cost 0.0251 USD (reported), classifier `jev-1.13.0` calls 6, tokens in 4653, cost 0.0002 USD, excerpt selection `openrouter/openai/gpt-6-luna` calls 4, tokens in 15349 / out 445, cost 0.0006 USD (reported), build file judge `jev-1.13.0` calls 19, tokens in 33684, cost 0.0014 USD, phases: path_judge 1.4 s, classifier 0.6 s, context 11.8 s, model_review 286.7 s, config: defaults + host + repository (.werkrevisor.toml at main 566626a).<br> Reviewed head `03b8de011975ca56bb98a024c889f4ca488ce365` against base `566626ab1c58109a87382ccbb99c0f60b14e53ef`, werkrevisor 0.31.1. </sub>
ai-reviewer merged commit 77923fc8fb into main 2026-10-09 21:43:32 +02:00
ai-reviewer deleted branch claude-code/structure-page 2026-10-09 21:43:32 +02:00
Sign in to join this conversation.
No Reviewers
No labels
3 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: mi/werkcrappit#50