werkrevisor 0.36.0: from the second round on, a hint on unchanged text holds no merge #91

Merged
ai-reviewer merged 5 commits from claude-code/hints-on-changed-lines into main 2026-10-12 08:01:59 +02:00
Collaborator

Fewer review rounds: a new GREEN hint on documents or a writing rule holds the merge only on lines changed since the last reviewed head.

🤖 Generated with Claude Code

Fewer review rounds: a new GREEN hint on documents or a writing rule holds the merge only on lines changed since the last reviewed head. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
claude-code added 1 commit 2026-10-12 07:24:40 +02:00
PR document: from the second round on, a hint on unchanged text holds no merge
werkator build succeeded after 00:58
werkator/werkrevisor-statistics build succeeded after 00:36
da1301263e
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
claude-code added 1 commit 2026-10-12 07:29:28 +02:00
werkrevisor 0.36.0: from the second round on, a hint on unchanged text holds no merge
werkator build succeeded after 00:16
werkator/werkrevisor-statistics build succeeded after 00:40
ai-review/assessment AI findings; a developer approval after checking them unlocks the merge; review requested from mi; merge scheduled for when the checks succeed
ai-review/gate build succeeded after 06:16
0e127b76c4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
claude-code marked the pull request as ready for review 2026-10-12 07:30:49 +02:00
Collaborator
🟠 werkrevisor ORANGE for 0e127b7, superseded by the result for 5554351

🟠 werkrevisor: ORANGE / FINDINGS

Change kind: mixed.

Reasons

  • ORANGE 1 finding(s) that Jev rates as probably real and severe: werkrevisor/cli.py:787-789
  • YELLOW spec: docs/prs/2026-10-12-PR#91-hints-on-changed-lines.md Scenario#91.01 given_when_then_misused (0.69 > yellow_above = 0.6)
  • hint writing rules violated in the changed docs: README.md:136: paragraph with 8 sentences, more than 5
  • hint 4 changed file(s) that neither weaken the checks nor touch security according to Jev
  • hint 1 build change(s) of low risk according to Jev: statistics/build.gradle.kts (weakens checks 0.02, risk 0.00, security 0.01)
  • hint 6 section(s) of the PR document agree with the change summary of openrouter/minimax/minimax-m3 according to Jev
  • 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 (each larger than [review] max_full_file_chars = 80000): werkrevisor/cli.py
  • hint files the model cannot review: docs/werkrevisor-pr-workflow-dark.svg, docs/werkrevisor-pr-workflow.svg (advisory: Jev judged every changed file)
  • hint model recommends merge with caution

Findings

  1. doc_hint_line_comments Override at werkrevisor/cli.py:787-789, severity unknown, counted as medium, ORANGE, as a line comment

Classifier

Unit Question Problem Confidence Verdict
docs/prs/2026-10-12-PR#91-hints-on-changed-lines.md Scenario#91.01 given_when_then_misused 0.69 – YELLOW

5 of 6 units passed all questions (1 PR document(s)).
1 answer ignored because of a confidence below [classifier] min_confidence.

Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 22731, calls 1, tokens in 21993 / out 42936 (reasoning included in out), duration 374.6 s, cost 0.0579 USD (reported), classifier `jev-1.13.0` calls 6, tokens in 4761, cost 0.0002 USD, finding judge `jev-1.13.0` calls 1, tokens in 1633, cost 0.0001 USD, excerpt selection `openrouter/openai/gpt-6-luna` calls 1, tokens in 22618 / out 488, cost 0.0031 USD (reported), change summary `openrouter/minimax/minimax-m3` via Minimax calls 1, tokens in 3941 / out 1418, cost 0.0029 USD (reported), PR document check `jev-1.13.0` calls 6, tokens in 9405, cost 0.0004 USD, build file judge `jev-1.13.0` calls 5, tokens in 4776, cost 0.0002 USD, phases: path_judge 0.6 s, classifier 0.5 s, change_summary 17.0 s, doc_check 0.4 s, context 6.5 s, model_review 348.9 s, finding_judge 0.2 s, config: defaults + host + repository (.werkrevisor.toml at main 7ea928f).
Reviewed head `0e127b76c4147e83406ef513806bb9530a59540f` against base `7ea928f1cfb4b80b694e56feca447fb5746f3140`, werkrevisor 0.35.0.
<!-- werkrevisor:0e127b76c4147e83406ef513806bb9530a59540f --> <!-- werkrevisor-verdict:ORANGE --> <!-- werkrevisor-blocks:1867c9f33f7c97a5bc8216d1a3eec209,b7e0f807f2cf9b04943ee2ba3bbe72c9,e1653ea316e82da567a3f623c2202057,5ca747434848bab0c6f366909b5d2e13,53e9c0eed30aa970a121cf6bbe8e008c,e53e31106374ab79ac7b1d56485d09fb,c6542e63935e08397a8b75c11be3e655,a0dbd6501527ca2e8b40ab591f1919e5,98ac7162b79d422af36d44eb429e90b1,5afc59be341d770d4cb652d957bd15ae,b4bee4c384e49888bdfb3fba264e7ede,a34f47329d000ca858deab198d2ca484,f3ab92c4b7740f63eb2ef98de22337f6,6e6ceed5332e1f1eb0b5e8e014342ba7,74a8b34877e718e42b2800c7a09908e9,ef5f32b9e0581532cd0ebb801649e9e3,3d1f092cb6157c5337f20c56a82ed01c,870b80c9e1b502381361c93c76143473 --> <!-- werkrevisor-folded --> <details><summary>🟠 werkrevisor ORANGE for <code>0e127b7</code>, superseded by <a href="http://git.javagil.de/mi/werkrevisor/pulls/91#issuecomment-4318">the result for <code>5554351</code></a></summary> ## 🟠 werkrevisor: ORANGE / FINDINGS Change kind: `mixed`. ### Reasons - **ORANGE** 1 finding(s) that Jev rates as probably real and severe: werkrevisor/cli.py:787-789 - **YELLOW** spec: docs/prs/2026-10-12-PR#91-hints-on-changed-lines.md Scenario#91.01 given_when_then_misused (0.69 > yellow_above = 0.6) - **hint** writing rules violated in the changed docs: README.md:136: paragraph with 8 sentences, more than 5 - **hint** 4 changed file(s) that neither weaken the checks nor touch security according to Jev - **hint** 1 build change(s) of low risk according to Jev: statistics/build.gradle.kts (weakens checks 0.02, risk 0.00, security 0.01) - **hint** 6 section(s) of the PR document agree with the change summary of openrouter/minimax/minimax-m3 according to Jev - **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 (each larger than [review] max_full_file_chars = 80000): werkrevisor/cli.py - **hint** files the model cannot review: docs/werkrevisor-pr-workflow-dark.svg, docs/werkrevisor-pr-workflow.svg (advisory: Jev judged every changed file) - **hint** model recommends merge with caution ### Findings 1. **doc_hint_line_comments Override** at `werkrevisor/cli.py:787-789`, severity unknown, counted as medium, ORANGE, as a line comment ### Classifier | Unit | Question | Problem | Confidence | Verdict | |---|---|---|---|---| | docs/prs/2026-10-12-PR#91-hints-on-changed-lines.md Scenario#91.01 | given_when_then_misused | 0.69 | – | YELLOW | 5 of 6 units passed all questions (1 PR document(s)). 1 answer ignored because of a confidence below [classifier] min_confidence. <sub> Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 22731, calls 1, tokens in 21993 / out 42936 (reasoning included in out), duration 374.6 s, cost 0.0579 USD (reported), classifier `jev-1.13.0` calls 6, tokens in 4761, cost 0.0002 USD, finding judge `jev-1.13.0` calls 1, tokens in 1633, cost 0.0001 USD, excerpt selection `openrouter/openai/gpt-6-luna` calls 1, tokens in 22618 / out 488, cost 0.0031 USD (reported), change summary `openrouter/minimax/minimax-m3` via Minimax calls 1, tokens in 3941 / out 1418, cost 0.0029 USD (reported), PR document check `jev-1.13.0` calls 6, tokens in 9405, cost 0.0004 USD, build file judge `jev-1.13.0` calls 5, tokens in 4776, cost 0.0002 USD, phases: path_judge 0.6 s, classifier 0.5 s, change_summary 17.0 s, doc_check 0.4 s, context 6.5 s, model_review 348.9 s, finding_judge 0.2 s, config: defaults + host + repository (.werkrevisor.toml at main 7ea928f).<br> Reviewed head `0e127b76c4147e83406ef513806bb9530a59540f` against base `7ea928f1cfb4b80b694e56feca447fb5746f3140`, werkrevisor 0.35.0. </sub> </details>
ai-reviewer left a comment
Collaborator

werkrevisor: ORANGE / FINDINGS for 0e127b76c4147e83406ef513806bb9530a59540f.
The result comment of werkrevisor holds the details.

werkrevisor: ORANGE / FINDINGS for `0e127b76c4147e83406ef513806bb9530a59540f`. The result comment of werkrevisor holds the details. <!-- werkrevisor-review:0e127b76c4147e83406ef513806bb9530a59540f -->
@@ -132,5 +132,5 @@
it stands only in the result comment and holds nothing, unless `[review] doc_hint_line_comments = true`.
A frontier model rated 25 such hints of werkrevisor's own PRs: 19 were noise, but each one had cost a review round.
YELLOW and ORANGE are not affected: the approving human reads the hints.
When a GREEN review schedules the merge, it withdraws the review request of an earlier YELLOW or ORANGE round
from the configured human reviewers, since `block_on_official_review_requests` would block the merge.
Collaborator

Writing rule: paragraph with 8 sentences, more than 5 (werkrevisor writing rule)

Fix the line, or reply why it stays, and resolve this comment.

**Writing rule: paragraph with 8 sentences, more than 5** (werkrevisor writing rule) Fix the line, or reply why it stays, and resolve this comment.
Author
Collaborator

Fixed in 5554351: the paragraph is split in two.

Fixed in `5554351`: the paragraph is split in two.
claude-code marked this conversation as resolved
@@ -755,12 +784,17 @@ def _plan_line_comments(config, gitea, pr, result, bot_login, redactor):
if not _update_line_comment(gitea, pr, earlier, report.line_comment(f, v), redactor, updated):
result.reused_not_updated.add(i)
continue
if v is Verdict.GREEN and _on_unchanged_text(config, gitea, pr, result, f.file, first, last, unchanged):
Collaborator

doc_hint_line_comments Override, severity unknown, counted as medium (werkrevisor)

ORANGE; Jev: real 0.76, severity 2.9 of 3

The new GREEN-hint branch in _plan_line_comments adds a finding to doc_hints whenever _on_unchanged_text is true, without checking config.review.doc_hint_line_comments. With doc_hint_line_comments = true (the override the README advertises to force line comments for GREEN hints on docs), hints on unchanged text in docs still end up in doc_hints and never get a line comment, so the override is silently partial. Either the new branch should also require not config.review.doc_hint_line_comments, or the docs (README and PR doc) must say that the override only applies to changed text. None of the new tests exercise doc_hint_line_comments = true, so this interaction is uncovered.

**doc_hint_line_comments Override**, severity unknown, counted as medium (werkrevisor) ORANGE; Jev: real 0.76, severity 2.9 of 3 The new GREEN-hint branch in `_plan_line_comments` adds a finding to `doc_hints` whenever `_on_unchanged_text` is true, without checking `config.review.doc_hint_line_comments`. With `doc_hint_line_comments = true` (the override the README advertises to force line comments for GREEN hints on docs), hints on unchanged text in docs still end up in `doc_hints` and never get a line comment, so the override is silently partial. Either the new branch should also require `not config.review.doc_hint_line_comments`, or the docs (README and PR doc) must say that the override only applies to changed text. None of the new tests exercise `doc_hint_line_comments = true`, so this interaction is uncovered.
Author
Collaborator

Fixed in 5554351: with doc_hint_line_comments = true every hint of the model stays a line comment, also on unchanged text; test_doc_hint_line_comments_keeps_the_hint fails without the fix.

Fixed in `5554351`: with `doc_hint_line_comments = true` every hint of the model stays a line comment, also on unchanged text; `test_doc_hint_line_comments_keeps_the_hint` fails without the fix.
claude-code marked this conversation as resolved
ai-reviewer scheduled this pull request to auto merge when all checks succeed 2026-10-12 07:37:15 +02:00
ai-reviewer requested review from mi 2026-10-12 07:37:15 +02:00
claude-code added 1 commit 2026-10-12 07:39:33 +02:00
doc_hint_line_comments keeps hints on unchanged text too; shorter README paragraph; clearer scenario 91.01
werkator build succeeded after 00:09
werkator/werkrevisor-statistics build succeeded after 00:31
ai-review/assessment AI review passed; approved by werkrevisor; merge waits for 2 open hint(s): reply to each line comment and resolve it, then restart the review or push a commit
ai-review/gate build succeeded after 05:43
555435134a
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ai-reviewer left a comment
Collaborator

Codex review of 0e127b76c4147e83406ef513806bb9530a59540f

Codex review of `0e127b76c4147e83406ef513806bb9530a59540f` <!-- werkrevisor-codex -->
@@ -755,12 +784,18 @@ def _plan_line_comments(config, gitea, pr, result, bot_login, redactor):
if not _update_line_comment(gitea, pr, earlier, report.line_comment(f, v), redactor, updated):
result.reused_not_updated.add(i)
continue
if (v is Verdict.GREEN and not config.review.doc_hint_line_comments
Collaborator

[high] Changed document sections lose their blocking hints (Codex review)

doccheck.make_findings() sets both finding endpoints to the section or scenario heading. When its body changes but its heading stays unchanged, this condition suppresses even a new contradiction finding about the changed text. Reproduced with an edited Solution section: no line comment is planned and the finding contributes zero blocking hints. Compare the affected section content before exempting these findings.

Fix it, or reply why it does not hold, and resolve this comment.

**[high] Changed document sections lose their blocking hints** (Codex review) doccheck.make_findings() sets both finding endpoints to the section or scenario heading. When its body changes but its heading stays unchanged, this condition suppresses even a new contradiction finding about the changed text. Reproduced with an edited Solution section: no line comment is planned and the finding contributes zero blocking hints. Compare the affected section content before exempting these findings. Fix it, or reply why it does not hold, and resolve this comment. <!-- werkrevisor-codex -->
Author
Collaborator

Fixed in 4dc8396: a finding on a Markdown heading covers the whole section below it; test_a_finding_on_a_heading_covers_its_section fails without the fix.

Fixed in `4dc8396`: a finding on a Markdown heading covers the whole section below it; `test_a_finding_on_a_heading_covers_its_section` fails without the fix.
claude-code marked this conversation as resolved
@@ -760,4 +793,4 @@
result.attached.add(i)
for i, v in enumerate(result.writing_violations):
if (v.path, v.line) in open_writing:
result.writing_reused.add(i)
Collaborator

[low] New paragraph-length violations are treated as unchanged (Codex review)

writing.check_text() anchors paragraph-length violations to the paragraph's first line. Adding a sixth sentence to an existing five-sentence paragraph leaves that anchor unchanged, so this branch suppresses the newly introduced violation. Reproduced: the violation is detected, no line comment is posted, and automerge is scheduled. The unchanged check must cover the paragraph rather than only its first line.

Fix it, or reply why it does not hold, and resolve this comment.

**[low] New paragraph-length violations are treated as unchanged** (Codex review) writing.check_text() anchors paragraph-length violations to the paragraph's first line. Adding a sixth sentence to an existing five-sentence paragraph leaves that anchor unchanged, so this branch suppresses the newly introduced violation. Reproduced: the violation is detected, no line comment is posted, and automerge is scheduled. The unchanged check must cover the paragraph rather than only its first line. Fix it, or reply why it does not hold, and resolve this comment. <!-- werkrevisor-codex -->
Author
Collaborator

Fixed in 4dc8396: a paragraph rule covers its whole paragraph (Violation.last); test_a_paragraph_rule_covers_its_paragraph fails without the fix.

Fixed in `4dc8396`: a paragraph rule covers its whole paragraph (`Violation.last`); `test_a_paragraph_rule_covers_its_paragraph` fails without the fix.
claude-code marked this conversation as resolved
Collaborator
⚠️ werkrevisor ERROR for ?, superseded by the result for 5554351

Codex review: critical

This change weakens the automerge gate by exempting some review hints from blocking merge. Changes to CI gates require human review under the stated criteria.

Findings

  1. [high] Changed document sections lose their blocking hints at werkrevisor/cli.py:787, as a line comment
  2. [low] New paragraph-length violations are treated as unchanged at werkrevisor/cli.py:796, as a line comment

This review only advises; it holds no merge.

Model `gpt-6-astra`, effort high, tokens in 497793 (cached 434688) / out 3478, 122.8 s, 19 commands; reviewed head `0e127b76c4147e83406ef513806bb9530a59540f`.
<!-- werkrevisor-codex:0e127b76c4147e83406ef513806bb9530a59540f --> <!-- werkrevisor-codex-critical:true --> <!-- werkrevisor-codex-unattached:0 --> <!-- werkrevisor-codex --> <!-- werkrevisor-folded --> <details><summary>⚠️ werkrevisor ERROR for <code>?</code>, superseded by <a href="http://git.javagil.de/mi/werkrevisor/pulls/91#issuecomment-4318">the result for <code>5554351</code></a></summary> ## Codex review: critical This change weakens the automerge gate by exempting some review hints from blocking merge. Changes to CI gates require human review under the stated criteria. ### Findings 1. **[high] Changed document sections lose their blocking hints** at `werkrevisor/cli.py:787`, as a line comment 2. **[low] New paragraph-length violations are treated as unchanged** at `werkrevisor/cli.py:796`, as a line comment This review only advises; it holds no merge. <sub> Model `gpt-6-astra`, effort high, tokens in 497793 (cached 434688) / out 3478, 122.8 s, 19 commands; reviewed head `0e127b76c4147e83406ef513806bb9530a59540f`. </sub> </details>
Collaborator
🟢 werkrevisor GREEN for 5554351, superseded by the result for 7b3e2a0

🟢 werkrevisor: GREEN / PASS

Gate: approved by werkrevisor; merge waits for 2 open hint(s): reply to each line comment and resolve it, then restart the review or push a commit.

Change kind: mixed.

Reasons

  • hint 4 changed file(s) that neither weaken the checks nor touch security according to Jev
  • hint 1 build change(s) of low risk according to Jev: statistics/build.gradle.kts (weakens checks 0.02, risk 0.00, security 0.01)
  • hint 6 section(s) of the PR document agree with the change summary of openrouter/minimax/minimax-m3 according to Jev
  • 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 (each larger than [review] max_full_file_chars = 80000): werkrevisor/cli.py
  • hint files the model cannot review: docs/werkrevisor-pr-workflow-dark.svg, docs/werkrevisor-pr-workflow.svg (advisory: Jev judged every changed file)
  • hint 3 finding(s) of low severity or rated minor by Jev: README.md:137-147, werkrevisor/cli.py:772-777, docs/prs/2026-10-12-PR#91-hints-on-changed-lines.md:13
  • hint model recommends merge with caution

Findings

  1. README contradicts PR document behavior at README.md:137-147, severity unknown, counted as medium

    hint; Jev: real 0.78, severity 2.0 of 3

    The README keeps "A hint on a PR document ([pr_doc] globs) is a line comment anyway, since it is the record of the PR" and adds "From the second round on, a new hint on documentation, or a violation of the writing rules, becomes a line comment only on lines that changed since the head of the last round; on older text it stands only in the result comment and holds nothing." For a GREEN hint on a PR document on unchanged text from round 2 on the two statements conflict; the new code (and test_new_hint_on_old_text, which uses docs/prs/1.md) silence such hints, so the "anyway" sentence is misleading.

  2. Outdated rationale comment at werkrevisor/cli.py:772-777, severity unknown, counted as medium, hint, as a line comment

  3. Unverifiable statistic at docs/prs/2026-10-12-PR#91-hints-on-changed-lines.md:13, severity unknown, counted as medium, hint, as a line comment

Classifier

6 of 6 units passed all questions (1 PR document(s)).
2 answers ignored because of a confidence below [classifier] min_confidence.

Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 22759, calls 1, tokens in 22024 / out 33298 (reasoning included in out), duration 341.1 s, cost 0.0465 USD (reported), classifier `jev-1.13.0` calls 6, tokens in 4793, cost 0.0002 USD, finding judge `jev-1.13.0` calls 3, tokens in 4882, cost 0.0002 USD, excerpt selection `openrouter/openai/gpt-6-luna` calls 1, tokens in 22644 / out 480, cost 0.0031 USD (reported), change summary `openrouter/minimax/minimax-m3` via Minimax calls 1, tokens in 4065 / out 991, cost 0.0024 USD (reported), PR document check `jev-1.13.0` calls 6, tokens in 9377, cost 0.0004 USD, build file judge `jev-1.13.0` calls 5, tokens in 4878, cost 0.0002 USD, phases: path_judge 0.4 s, classifier 0.4 s, change_summary 8.8 s, doc_check 0.5 s, context 6.0 s, model_review 324.2 s, finding_judge 0.3 s, config: defaults + host + repository (.werkrevisor.toml at main 7ea928f).
Reviewed head `555435134ae767044badb74331ecf45d0f6cbbb3` against base `7ea928f1cfb4b80b694e56feca447fb5746f3140`, werkrevisor 0.35.0.
<!-- werkrevisor:555435134ae767044badb74331ecf45d0f6cbbb3 --> <!-- werkrevisor-verdict:GREEN --> <!-- werkrevisor-blocks:d906f7b506a435859de7cc6af7fe4f68,8331a2de757d9682f937059749cfd620,e1653ea316e82da567a3f623c2202057,5ca747434848bab0c6f366909b5d2e13,53e9c0eed30aa970a121cf6bbe8e008c,e53e31106374ab79ac7b1d56485d09fb,c6542e63935e08397a8b75c11be3e655,011fc0180d27cde484ff146032d546e7,98ac7162b79d422af36d44eb429e90b1,5afc59be341d770d4cb652d957bd15ae,b4bee4c384e49888bdfb3fba264e7ede,a34f47329d000ca858deab198d2ca484,fd028f4aa61c8d8c21d61dbe0ca9dac8,6e6ceed5332e1f1eb0b5e8e014342ba7,74a8b34877e718e42b2800c7a09908e9,ef5f32b9e0581532cd0ebb801649e9e3,3d1f092cb6157c5337f20c56a82ed01c,870b80c9e1b502381361c93c76143473 --> <!-- werkrevisor-folded --> <details><summary>🟢 werkrevisor GREEN for <code>5554351</code>, superseded by <a href="http://git.javagil.de/mi/werkrevisor/pulls/91#issuecomment-4330">the result for <code>7b3e2a0</code></a></summary> ## 🟢 werkrevisor: GREEN / PASS Gate: approved by werkrevisor; merge waits for 2 open hint(s): reply to each line comment and resolve it, then restart the review or push a commit. Change kind: `mixed`. ### Reasons - **hint** 4 changed file(s) that neither weaken the checks nor touch security according to Jev - **hint** 1 build change(s) of low risk according to Jev: statistics/build.gradle.kts (weakens checks 0.02, risk 0.00, security 0.01) - **hint** 6 section(s) of the PR document agree with the change summary of openrouter/minimax/minimax-m3 according to Jev - **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 (each larger than [review] max_full_file_chars = 80000): werkrevisor/cli.py - **hint** files the model cannot review: docs/werkrevisor-pr-workflow-dark.svg, docs/werkrevisor-pr-workflow.svg (advisory: Jev judged every changed file) - **hint** 3 finding(s) of low severity or rated minor by Jev: README.md:137-147, werkrevisor/cli.py:772-777, docs/prs/2026-10-12-PR#91-hints-on-changed-lines.md:13 - **hint** model recommends merge with caution ### Findings 1. **README contradicts PR document behavior** at `README.md:137-147`, severity unknown, counted as medium hint; Jev: real 0.78, severity 2.0 of 3 The README keeps "A hint on a PR document (`[pr_doc] globs`) is a line comment anyway, since it is the record of the PR" and adds "From the second round on, a new hint on documentation, or a violation of the writing rules, becomes a line comment only on lines that changed since the head of the last round; on older text it stands only in the result comment and holds nothing." For a GREEN hint on a PR document on unchanged text from round 2 on the two statements conflict; the new code (and `test_new_hint_on_old_text`, which uses `docs/prs/1.md`) silence such hints, so the "anyway" sentence is misleading. 2. **Outdated rationale comment** at `werkrevisor/cli.py:772-777`, severity unknown, counted as medium, hint, as a line comment 3. **Unverifiable statistic** at `docs/prs/2026-10-12-PR#91-hints-on-changed-lines.md:13`, severity unknown, counted as medium, hint, as a line comment ### Classifier 6 of 6 units passed all questions (1 PR document(s)). 2 answers ignored because of a confidence below [classifier] min_confidence. <sub> Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 22759, calls 1, tokens in 22024 / out 33298 (reasoning included in out), duration 341.1 s, cost 0.0465 USD (reported), classifier `jev-1.13.0` calls 6, tokens in 4793, cost 0.0002 USD, finding judge `jev-1.13.0` calls 3, tokens in 4882, cost 0.0002 USD, excerpt selection `openrouter/openai/gpt-6-luna` calls 1, tokens in 22644 / out 480, cost 0.0031 USD (reported), change summary `openrouter/minimax/minimax-m3` via Minimax calls 1, tokens in 4065 / out 991, cost 0.0024 USD (reported), PR document check `jev-1.13.0` calls 6, tokens in 9377, cost 0.0004 USD, build file judge `jev-1.13.0` calls 5, tokens in 4878, cost 0.0002 USD, phases: path_judge 0.4 s, classifier 0.4 s, change_summary 8.8 s, doc_check 0.5 s, context 6.0 s, model_review 324.2 s, finding_judge 0.3 s, config: defaults + host + repository (.werkrevisor.toml at main 7ea928f).<br> Reviewed head `555435134ae767044badb74331ecf45d0f6cbbb3` against base `7ea928f1cfb4b80b694e56feca447fb5746f3140`, werkrevisor 0.35.0. </sub> </details>
ai-reviewer approved these changes 2026-10-12 07:45:26 +02:00
Dismissed
ai-reviewer left a comment
Collaborator

werkrevisor: GREEN / PASS for 555435134ae767044badb74331ecf45d0f6cbbb3.
The result comment of werkrevisor holds the details.

werkrevisor: GREEN / PASS for `555435134ae767044badb74331ecf45d0f6cbbb3`. The result comment of werkrevisor holds the details. <!-- werkrevisor-review:555435134ae767044badb74331ecf45d0f6cbbb3 -->
@@ -0,0 +10,4 @@
47 needed one review round, 23 two, 10 three or four, 9 five or more; the mean is 2.0.
The 42 PRs with more than one round got 111 line comments of `ai-reviewer`:
51 on documents, 43 on code, 13 for writing rules and 4 by Codex.
In 24 of the 35 such PRs with line comments, the documents and writing rules outnumber the code.
Collaborator

Unverifiable statistic, severity unknown, counted as medium (werkrevisor)

hint; Jev: real 0.87, severity 1.1 of 3

The PR doc states "In 24 of the 35 such PRs with line comments, the documents and writing rules outnumber the code." The "35" is not defined anywhere and does not match the 42 PRs with more than one round given in the previous sentence, so a reader cannot verify the figure.

**Unverifiable statistic**, severity unknown, counted as medium (werkrevisor) hint; Jev: real 0.87, severity 1.1 of 3 The PR doc states "In 24 of the 35 such PRs with line comments, the documents and writing rules outnumber the code." The "35" is not defined anywhere and does not match the 42 PRs with more than one round given in the previous sentence, so a reader cannot verify the figure.
Author
Collaborator

Fixed in 7b3e2a0: the Problem names the command of tools/review-rounds and that the line comments come from the reviews in Gitea.

Fixed in `7b3e2a0`: the Problem names the command of `tools/review-rounds` and that the line comments come from the reviews in Gitea.
claude-code marked this conversation as resolved
@@ -768,5 +768,5 @@
def _open_hints(gitea, pr, result, bot_login):
"""Findings of this review that are no line comment, e.g. refused by Gitea, can only be read in the result comment;
a restart reuses the verdict without findings, so it releases them."""
in_comment_only = [i for i in range(len(result.findings))
if i not in result.attached and i not in result.reused and i not in result.doc_hints]
Collaborator

Outdated rationale comment, severity unknown, counted as medium (werkrevisor)

hint; Jev: real 0.70, severity 1.7 of 3

The comment "A PR document is the record of the PR; a wrong statement there stays when nobody answers it." justifies excluding PR documents from doc_hints. The new _on_unchanged_text path, however, accepts PR documents and routes them into doc_hints on unchanged text from round 2 on, so the rationale no longer matches the code.

**Outdated rationale comment**, severity unknown, counted as medium (werkrevisor) hint; Jev: real 0.70, severity 1.7 of 3 The comment "A PR document is the record of the PR; a wrong statement there stays when nobody answers it." justifies excluding PR documents from `doc_hints`. The new `_on_unchanged_text` path, however, accepts PR documents and routes them into `doc_hints` on unchanged text from round 2 on, so the rationale no longer matches the code.
Author
Collaborator

Fixed in 7b3e2a0: the comment names the rule of the second round.

Fixed in `7b3e2a0`: the comment names the rule of the second round.
claude-code marked this conversation as resolved
ai-reviewer canceled auto merging this pull request when all checks succeed 2026-10-12 07:45:27 +02:00
claude-code added 1 commit 2026-10-12 07:46:23 +02:00
The comment on PR documents names the second round; the source of the counts; README on PR documents
werkator build succeeded after 00:09
werkator/werkrevisor-statistics build succeeded after 00:30
ai-review/assessment human review required; a human approval unlocks the merge; a human review request is pending; merge scheduled for when the checks succeed
ai-review/gate build succeeded after 04:41
7b3e2a0408
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
claude-code dismissed ai-reviewer's review 2026-10-12 07:46:23 +02:00
Reason:

New commits pushed, approval review dismissed automatically according to repository settings

ai-reviewer left a comment
Collaborator

Codex review of 555435134ae767044badb74331ecf45d0f6cbbb3

Codex review of `555435134ae767044badb74331ecf45d0f6cbbb3` <!-- werkrevisor-codex -->
@@ -760,4 +794,4 @@
result.attached.add(i)
for i, v in enumerate(result.writing_violations):
if (v.path, v.line) in open_writing:
result.writing_reused.add(i)
Collaborator

[medium] New paragraph violations are suppressed when their first line is unchanged (Codex review)

Paragraph-length violations are anchored to the paragraph’s first line, but this check examines only that line. Adding a sixth sentence to a previously valid five-sentence paragraph therefore marks the new violation as writing_unchanged when its first line stayed unchanged. I reproduced this: no line comment was created and the merge was scheduled despite the newly introduced violation.

Fix it, or reply why it does not hold, and resolve this comment.

**[medium] New paragraph violations are suppressed when their first line is unchanged** (Codex review) Paragraph-length violations are anchored to the paragraph’s first line, but this check examines only that line. Adding a sixth sentence to a previously valid five-sentence paragraph therefore marks the new violation as writing_unchanged when its first line stayed unchanged. I reproduced this: no line comment was created and the merge was scheduled despite the newly introduced violation. Fix it, or reply why it does not hold, and resolve this comment. <!-- werkrevisor-codex -->
Author
Collaborator

Fixed in 4dc8396, the same point as the comment above: the paragraph rule covers its whole paragraph.

Fixed in `4dc8396`, the same point as the comment above: the paragraph rule covers its whole paragraph.
claude-code marked this conversation as resolved
Collaborator
⚠️ werkrevisor ERROR for ?, superseded by the result for 7b3e2a0

Codex review: critical

This change weakens the automated merge gate by allowing previously blocking hints and writing violations to stop blocking merges. Changes to CI gates require human review under your criteria.

Findings

  1. [medium] New paragraph violations are suppressed when their first line is unchanged at werkrevisor/cli.py:797, as a line comment

This review only advises; it holds no merge.

Model `gpt-6-astra`, effort high, tokens in 314275 (cached 257664) / out 2481, 108.1 s, 13 commands; reviewed head `555435134ae767044badb74331ecf45d0f6cbbb3`.
<!-- werkrevisor-codex:555435134ae767044badb74331ecf45d0f6cbbb3 --> <!-- werkrevisor-codex-critical:true --> <!-- werkrevisor-codex-unattached:0 --> <!-- werkrevisor-codex --> <!-- werkrevisor-folded --> <details><summary>⚠️ werkrevisor ERROR for <code>?</code>, superseded by <a href="http://git.javagil.de/mi/werkrevisor/pulls/91#issuecomment-4330">the result for <code>7b3e2a0</code></a></summary> ## Codex review: critical This change weakens the automated merge gate by allowing previously blocking hints and writing violations to stop blocking merges. Changes to CI gates require human review under your criteria. ### Findings 1. **[medium] New paragraph violations are suppressed when their first line is unchanged** at `werkrevisor/cli.py:797`, as a line comment This review only advises; it holds no merge. <sub> Model `gpt-6-astra`, effort high, tokens in 314275 (cached 257664) / out 2481, 108.1 s, 13 commands; reviewed head `555435134ae767044badb74331ecf45d0f6cbbb3`. </sub> </details>
Collaborator
🟡 werkrevisor YELLOW for 7b3e2a0, superseded by the result for 4dc8396

🟡 werkrevisor: YELLOW / HUMAN_REVIEW

Change kind: mixed.

Reasons

  • YELLOW spec: docs/prs/2026-10-12-PR#91-hints-on-changed-lines.md Scenario#91.01 given_when_then_misused (0.67 > yellow_above = 0.6)
  • hint approval of werkrevisor for 5554351 not carried over: 2 approved block(s) are missing
  • hint 4 changed file(s) that neither weaken the checks nor touch security according to Jev
  • hint 1 build change(s) of low risk according to Jev: statistics/build.gradle.kts (weakens checks 0.02, risk 0.00, security 0.01)
  • hint 6 section(s) of the PR document agree with the change summary of openrouter/minimax/minimax-m3 according to Jev
  • 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 (each larger than [review] max_full_file_chars = 80000): werkrevisor/cli.py
  • hint files the model cannot review: docs/werkrevisor-pr-workflow-dark.svg, docs/werkrevisor-pr-workflow.svg (advisory: Jev judged every changed file)
  • hint 2 finding(s) of low severity or rated minor by Jev: README.md:142-144, docs/prs/2026-10-12-PR#91-hints-on-changed-lines.md:32-34

Findings

  1. Unclear scope of writing-rule skip at README.md:142-144, severity unknown, counted as medium

    hint; Jev: real 0.78, severity 1.5 of 3

    The sentence "a new hint on documentation, or a violation of the writing rules, becomes a line comment only on lines that changed since the head of the last round" reads as if writing rules on any file get the unchanged-text skip. The implementation in _on_unchanged_text (werkrevisor/cli.py) only returns True for paths matching config.categories.docs or config.pr_doc.globs; writing-rule violations on code paths stay line comments. Consider rephrasing, e.g. "...or a writing-rule violation on documentation,..." so the scope matches the code.

  2. Then clause drops the writing rule at docs/prs/2026-10-12-PR#91-hints-on-changed-lines.md:32-34, severity unknown, counted as medium, hint, as a line comment

Classifier

Unit Question Problem Confidence Verdict
docs/prs/2026-10-12-PR#91-hints-on-changed-lines.md Scenario#91.01 given_when_then_misused 0.67 – YELLOW

5 of 6 units passed all questions (1 PR document(s)).
2 answers ignored because of a confidence below [classifier] min_confidence.

Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 24609, calls 1, tokens in 23812 / out 23999 (reasoning included in out), duration 279.4 s, cost 0.0357 USD (reported), classifier `jev-1.13.0` calls 6, tokens in 4821, cost 0.0002 USD, finding judge `jev-1.13.0` calls 2, tokens in 3360, cost 0.0001 USD, excerpt selection `openrouter/openai/gpt-6-luna` calls 1, tokens in 22787 / out 456, cost 0.0031 USD (reported), change summary `openrouter/minimax/minimax-m3` via Minimax calls 1, tokens in 4250 / out 2049, cost 0.0037 USD (reported), PR document check `jev-1.13.0` calls 6, tokens in 8703, cost 0.0004 USD, build file judge `jev-1.13.0` calls 5, tokens in 4993, cost 0.0002 USD, phases: path_judge 0.4 s, classifier 0.4 s, change_summary 37.4 s, doc_check 0.5 s, context 5.8 s, model_review 234.0 s, finding_judge 0.3 s, config: defaults + host + repository (.werkrevisor.toml at main 7ea928f).
Reviewed head `7b3e2a040879a895640280b9525aa8615b74a59c` against base `7ea928f1cfb4b80b694e56feca447fb5746f3140`, werkrevisor 0.35.0.
<!-- werkrevisor:7b3e2a040879a895640280b9525aa8615b74a59c --> <!-- werkrevisor-verdict:YELLOW --> <!-- werkrevisor-blocks:37fd0098e9bd0a8745384f11de183662,0ac7e3910cf32fb987b4e4a78b57cb97,e1653ea316e82da567a3f623c2202057,5ca747434848bab0c6f366909b5d2e13,53e9c0eed30aa970a121cf6bbe8e008c,e53e31106374ab79ac7b1d56485d09fb,c6542e63935e08397a8b75c11be3e655,011fc0180d27cde484ff146032d546e7,98ac7162b79d422af36d44eb429e90b1,5afc59be341d770d4cb652d957bd15ae,b4bee4c384e49888bdfb3fba264e7ede,a34f47329d000ca858deab198d2ca484,54a17f0286343cc588259ed70466c74d,fd028f4aa61c8d8c21d61dbe0ca9dac8,6e6ceed5332e1f1eb0b5e8e014342ba7,74a8b34877e718e42b2800c7a09908e9,ef5f32b9e0581532cd0ebb801649e9e3,3d1f092cb6157c5337f20c56a82ed01c,870b80c9e1b502381361c93c76143473 --> <!-- werkrevisor-folded --> <details><summary>🟡 werkrevisor YELLOW for <code>7b3e2a0</code>, superseded by <a href="http://git.javagil.de/mi/werkrevisor/pulls/91#issuecomment-4347">the result for <code>4dc8396</code></a></summary> ## 🟡 werkrevisor: YELLOW / HUMAN_REVIEW Change kind: `mixed`. ### Reasons - **YELLOW** spec: docs/prs/2026-10-12-PR#91-hints-on-changed-lines.md Scenario#91.01 given_when_then_misused (0.67 > yellow_above = 0.6) - **hint** approval of werkrevisor for `5554351` not carried over: 2 approved block(s) are missing - **hint** 4 changed file(s) that neither weaken the checks nor touch security according to Jev - **hint** 1 build change(s) of low risk according to Jev: statistics/build.gradle.kts (weakens checks 0.02, risk 0.00, security 0.01) - **hint** 6 section(s) of the PR document agree with the change summary of openrouter/minimax/minimax-m3 according to Jev - **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 (each larger than [review] max_full_file_chars = 80000): werkrevisor/cli.py - **hint** files the model cannot review: docs/werkrevisor-pr-workflow-dark.svg, docs/werkrevisor-pr-workflow.svg (advisory: Jev judged every changed file) - **hint** 2 finding(s) of low severity or rated minor by Jev: README.md:142-144, docs/prs/2026-10-12-PR#91-hints-on-changed-lines.md:32-34 ### Findings 1. **Unclear scope of writing-rule skip** at `README.md:142-144`, severity unknown, counted as medium hint; Jev: real 0.78, severity 1.5 of 3 The sentence "a new hint on documentation, or a violation of the writing rules, becomes a line comment only on lines that changed since the head of the last round" reads as if writing rules on any file get the unchanged-text skip. The implementation in `_on_unchanged_text` (`werkrevisor/cli.py`) only returns True for paths matching `config.categories.docs` or `config.pr_doc.globs`; writing-rule violations on code paths stay line comments. Consider rephrasing, e.g. "...or a writing-rule violation on documentation,..." so the scope matches the code. 2. **Then clause drops the writing rule** at `docs/prs/2026-10-12-PR#91-hints-on-changed-lines.md:32-34`, severity unknown, counted as medium, hint, as a line comment ### Classifier | Unit | Question | Problem | Confidence | Verdict | |---|---|---|---|---| | docs/prs/2026-10-12-PR#91-hints-on-changed-lines.md Scenario#91.01 | given_when_then_misused | 0.67 | – | YELLOW | 5 of 6 units passed all questions (1 PR document(s)). 2 answers ignored because of a confidence below [classifier] min_confidence. <sub> Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 24609, calls 1, tokens in 23812 / out 23999 (reasoning included in out), duration 279.4 s, cost 0.0357 USD (reported), classifier `jev-1.13.0` calls 6, tokens in 4821, cost 0.0002 USD, finding judge `jev-1.13.0` calls 2, tokens in 3360, cost 0.0001 USD, excerpt selection `openrouter/openai/gpt-6-luna` calls 1, tokens in 22787 / out 456, cost 0.0031 USD (reported), change summary `openrouter/minimax/minimax-m3` via Minimax calls 1, tokens in 4250 / out 2049, cost 0.0037 USD (reported), PR document check `jev-1.13.0` calls 6, tokens in 8703, cost 0.0004 USD, build file judge `jev-1.13.0` calls 5, tokens in 4993, cost 0.0002 USD, phases: path_judge 0.4 s, classifier 0.4 s, change_summary 37.4 s, doc_check 0.5 s, context 5.8 s, model_review 234.0 s, finding_judge 0.3 s, config: defaults + host + repository (.werkrevisor.toml at main 7ea928f).<br> Reviewed head `7b3e2a040879a895640280b9525aa8615b74a59c` against base `7ea928f1cfb4b80b694e56feca447fb5746f3140`, werkrevisor 0.35.0. </sub> </details>
ai-reviewer left a comment
Collaborator

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

werkrevisor: YELLOW / HUMAN_REVIEW for `7b3e2a040879a895640280b9525aa8615b74a59c`. The result comment of werkrevisor holds the details. <!-- werkrevisor-review:7b3e2a040879a895640280b9525aa8615b74a59c -->
@@ -0,0 +29,4 @@
So that a fix of one point does not start a round for the next point in text that the last round had seen.
- **Given** a PR after its first review round, and a document line that the new head did not change
Collaborator

Then clause drops the writing rule, severity unknown, counted as medium (werkrevisor)

hint; Jev: real 0.87, severity 1.4 of 3

Scenario#91.01 has "When werkrevisor reports a GREEN hint or a writing rule on that line" but the Then says only "the hint stands only in the result comment". A writing-rule violation on unchanged text is also moved out of the line comments (added to result.writing_unchanged, see _plan_line_comments in werkrevisor/cli.py), so the Then wording does not cover the second trigger. Reword to "the hint or writing rule stands only in the result comment" so both triggers match the test test_writing_rule_on_old_text.

**Then clause drops the writing rule**, severity unknown, counted as medium (werkrevisor) hint; Jev: real 0.87, severity 1.4 of 3 Scenario#91.01 has "When werkrevisor reports a GREEN hint or a writing rule on that line" but the Then says only "the hint stands only in the result comment". A writing-rule violation on unchanged text is also moved out of the line comments (added to `result.writing_unchanged`, see `_plan_line_comments` in `werkrevisor/cli.py`), so the Then wording does not cover the second trigger. Reword to "the hint or writing rule stands only in the result comment" so both triggers match the test `test_writing_rule_on_old_text`.
Author
Collaborator

Fixed in 4dc8396: the Then names the hint and the writing rule.

Fixed in `4dc8396`: the Then names the hint and the writing rule.
claude-code marked this conversation as resolved
ai-reviewer scheduled this pull request to auto merge when all checks succeed 2026-10-12 07:51:04 +02:00
claude-code added 1 commit 2026-10-12 07:53:38 +02:00
A finding on a heading covers its section, a paragraph rule its paragraph; Then of 91.01 names the writing rule
werkator build succeeded after 00:09
werkator/werkrevisor-statistics build succeeded after 00:29
ai-review/assessment AI review passed; approved by werkrevisor; merge already scheduled; review request of mi withdrawn
ai-review/gate build succeeded after 08:15
4dc839613d
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ai-reviewer left a comment
Collaborator

Codex review of 7b3e2a040879a895640280b9525aa8615b74a59c

Codex review of `7b3e2a040879a895640280b9525aa8615b74a59c` <!-- werkrevisor-codex -->
@@ -755,12 +797,18 @@ def _plan_line_comments(config, gitea, pr, result, bot_login, redactor):
if not _update_line_comment(gitea, pr, earlier, report.line_comment(f, v), redactor, updated):
result.reused_not_updated.add(i)
Collaborator

[medium] New paragraph violations can be suppressed as unchanged (Codex review)

Paragraph-length violations are anchored to the paragraph’s first line, but this check examines only that line. Adding a sixth sentence to a previously valid five-sentence paragraph leaves its opening line unchanged, so the newly introduced violation is suppressed. Reproducing this case produces no line comment and schedules the merge. Paragraph violations need to account for changes throughout the paragraph.

Fix it, or reply why it does not hold, and resolve this comment.

**[medium] New paragraph violations can be suppressed as unchanged** (Codex review) Paragraph-length violations are anchored to the paragraph’s first line, but this check examines only that line. Adding a sixth sentence to a previously valid five-sentence paragraph leaves its opening line unchanged, so the newly introduced violation is suppressed. Reproducing this case produces no line comment and schedules the merge. Paragraph violations need to account for changes throughout the paragraph. Fix it, or reply why it does not hold, and resolve this comment. <!-- werkrevisor-codex -->
Collaborator
⚠️ werkrevisor ERROR for ?, superseded by the result for 4dc8396

Codex review: critical

This change weakens the automatic merge gate by allowing some unresolved hints to stop blocking merges. Changes to CI gates require human review under the stated criteria.

Findings

  1. [medium] New paragraph violations can be suppressed as unchanged at werkrevisor/cli.py:798, as a line comment

This review only advises; it holds no merge.

Model `gpt-6-astra`, effort high, tokens in 419590 (cached 362496) / out 2327, 92.3 s, 14 commands; reviewed head `7b3e2a040879a895640280b9525aa8615b74a59c`.
<!-- werkrevisor-codex:7b3e2a040879a895640280b9525aa8615b74a59c --> <!-- werkrevisor-codex-critical:true --> <!-- werkrevisor-codex-unattached:0 --> <!-- werkrevisor-codex --> <!-- werkrevisor-folded --> <details><summary>⚠️ werkrevisor ERROR for <code>?</code>, superseded by <a href="http://git.javagil.de/mi/werkrevisor/pulls/91#issuecomment-4347">the result for <code>4dc8396</code></a></summary> ## Codex review: critical This change weakens the automatic merge gate by allowing some unresolved hints to stop blocking merges. Changes to CI gates require human review under the stated criteria. ### Findings 1. **[medium] New paragraph violations can be suppressed as unchanged** at `werkrevisor/cli.py:798`, as a line comment This review only advises; it holds no merge. <sub> Model `gpt-6-astra`, effort high, tokens in 419590 (cached 362496) / out 2327, 92.3 s, 14 commands; reviewed head `7b3e2a040879a895640280b9525aa8615b74a59c`. </sub> </details>
Collaborator

🟢 werkrevisor: GREEN / PASS

Change kind: mixed.

Reasons

  • hint 5 changed file(s) that neither weaken the checks nor touch security according to Jev
  • hint 1 build change(s) of low risk according to Jev: statistics/build.gradle.kts (weakens checks 0.02, risk 0.00, security 0.01)
  • hint 6 section(s) of the PR document agree with the change summary of openrouter/minimax/minimax-m3 according to Jev
  • 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 (each larger than [review] max_full_file_chars = 80000): werkrevisor/cli.py
  • hint files the model cannot review: docs/werkrevisor-pr-workflow-dark.svg, docs/werkrevisor-pr-workflow.svg (advisory: Jev judged every changed file)
  • hint 1 finding(s) of low severity or rated minor by Jev: docs/werkrevisor.werkbaum:133-134
  • hint model recommends merge with caution

Findings

  1. Inconsistent round counts at docs/werkrevisor.werkbaum:133-134, severity unknown, counted as medium

    hint; Jev: real 0.82, severity 1.4 of 3

    The PR document states "47 needed one review round, 23 two, 10 three or four, 9 five or more"
    totaling 89 PRs, and its Solution section says the werkbaum has the counts in #model.rounds.check.
    The werkbaum instead summarizes as "47 one round, 19 three or more" and omits the two-round group
    entirely. The numbers reconcile (47 + 23 + 19 = 89, since "19 three or more" = 10 + 9),
    but a reader scanning the entry would see 47 + 19 = 66 PRs and 23 unaccounted for.
    Either include the 23 two-round PRs in the entry, or state the multi-round group explicitly
    (e.g. "47 one round, 42 with two or more of which 19 with three or more").

Classifier

6 of 6 units passed all questions (1 PR document(s)).
2 answers ignored because of a confidence below [classifier] min_confidence.

Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 29358, calls 1, tokens in 28393 / out 42497 (reasoning included in out), duration 492.8 s, cost 0.0595 USD (reported), classifier `jev-1.13.0` calls 6, tokens in 4871, cost 0.0002 USD, finding judge `jev-1.13.0` calls 1, tokens in 2005, cost 0.0001 USD, excerpt selection `openrouter/openai/gpt-6-luna` calls 1, tokens in 23105 / out 354, cost 0.0031 USD (reported), change summary `openrouter/minimax/minimax-m3` via Minimax calls 1, tokens in 4821 / out 1723, cost 0.0035 USD (reported), PR document check `jev-1.13.0` calls 6, tokens in 10487, cost 0.0004 USD, build file judge `jev-1.13.0` calls 6, tokens in 5988, cost 0.0003 USD, phases: path_judge 0.5 s, classifier 0.5 s, change_summary 19.5 s, doc_check 0.5 s, context 6.1 s, model_review 465.0 s, finding_judge 0.3 s, config: defaults + host + repository (.werkrevisor.toml at main 7ea928f).
Reviewed head `4dc839613dca080adcb8619fbd20041c2a231906` against base `7ea928f1cfb4b80b694e56feca447fb5746f3140`, werkrevisor 0.35.0.
<!-- werkrevisor:4dc839613dca080adcb8619fbd20041c2a231906 --> <!-- werkrevisor-verdict:GREEN --> <!-- werkrevisor-blocks:37fd0098e9bd0a8745384f11de183662,1d04e34a6b8fc5cb96df54d66b43620f,e1653ea316e82da567a3f623c2202057,5ca747434848bab0c6f366909b5d2e13,53e9c0eed30aa970a121cf6bbe8e008c,e53e31106374ab79ac7b1d56485d09fb,c6542e63935e08397a8b75c11be3e655,0c6c37b5d19f162b3f8efdac41043281,98ac7162b79d422af36d44eb429e90b1,5afc59be341d770d4cb652d957bd15ae,cba0c7de0e76daa9051b1c598036a311,a34f47329d000ca858deab198d2ca484,54a17f0286343cc588259ed70466c74d,fd028f4aa61c8d8c21d61dbe0ca9dac8,f8de77d92c16fb428c959f4f9bb2b79d,74a8b34877e718e42b2800c7a09908e9,ef5f32b9e0581532cd0ebb801649e9e3,3d1f092cb6157c5337f20c56a82ed01c,870b80c9e1b502381361c93c76143473,7f13738d84f7cb08414488dd89508d74,1cefeeade6a985f4ff05fad4e47f766f --> ## 🟢 werkrevisor: GREEN / PASS Change kind: `mixed`. ### Reasons - **hint** 5 changed file(s) that neither weaken the checks nor touch security according to Jev - **hint** 1 build change(s) of low risk according to Jev: statistics/build.gradle.kts (weakens checks 0.02, risk 0.00, security 0.01) - **hint** 6 section(s) of the PR document agree with the change summary of openrouter/minimax/minimax-m3 according to Jev - **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 (each larger than [review] max_full_file_chars = 80000): werkrevisor/cli.py - **hint** files the model cannot review: docs/werkrevisor-pr-workflow-dark.svg, docs/werkrevisor-pr-workflow.svg (advisory: Jev judged every changed file) - **hint** 1 finding(s) of low severity or rated minor by Jev: docs/werkrevisor.werkbaum:133-134 - **hint** model recommends merge with caution ### Findings 1. **Inconsistent round counts** at `docs/werkrevisor.werkbaum:133-134`, severity unknown, counted as medium hint; Jev: real 0.82, severity 1.4 of 3 The PR document states "47 needed one review round, 23 two, 10 three or four, 9 five or more" totaling 89 PRs, and its Solution section says the werkbaum has the counts in `#model.rounds.check`. The werkbaum instead summarizes as "47 one round, 19 three or more" and omits the two-round group entirely. The numbers reconcile (47 + 23 + 19 = 89, since "19 three or more" = 10 + 9), but a reader scanning the entry would see 47 + 19 = 66 PRs and 23 unaccounted for. Either include the 23 two-round PRs in the entry, or state the multi-round group explicitly (e.g. "47 one round, 42 with two or more of which 19 with three or more"). ### Classifier 6 of 6 units passed all questions (1 PR document(s)). 2 answers ignored because of a confidence below [classifier] min_confidence. <sub> Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 29358, calls 1, tokens in 28393 / out 42497 (reasoning included in out), duration 492.8 s, cost 0.0595 USD (reported), classifier `jev-1.13.0` calls 6, tokens in 4871, cost 0.0002 USD, finding judge `jev-1.13.0` calls 1, tokens in 2005, cost 0.0001 USD, excerpt selection `openrouter/openai/gpt-6-luna` calls 1, tokens in 23105 / out 354, cost 0.0031 USD (reported), change summary `openrouter/minimax/minimax-m3` via Minimax calls 1, tokens in 4821 / out 1723, cost 0.0035 USD (reported), PR document check `jev-1.13.0` calls 6, tokens in 10487, cost 0.0004 USD, build file judge `jev-1.13.0` calls 6, tokens in 5988, cost 0.0003 USD, phases: path_judge 0.5 s, classifier 0.5 s, change_summary 19.5 s, doc_check 0.5 s, context 6.1 s, model_review 465.0 s, finding_judge 0.3 s, config: defaults + host + repository (.werkrevisor.toml at main 7ea928f).<br> Reviewed head `4dc839613dca080adcb8619fbd20041c2a231906` against base `7ea928f1cfb4b80b694e56feca447fb5746f3140`, werkrevisor 0.35.0. </sub>
ai-reviewer left a comment
Collaborator

werkrevisor: GREEN / PASS for 4dc839613dca080adcb8619fbd20041c2a231906.
The result comment of werkrevisor holds the details.

werkrevisor: GREEN / PASS for `4dc839613dca080adcb8619fbd20041c2a231906`. The result comment of werkrevisor holds the details. <!-- werkrevisor-review:4dc839613dca080adcb8619fbd20041c2a231906 -->
ai-reviewer removed review request for mi 2026-10-12 08:01:57 +02:00
ai-reviewer merged commit edcb9e3665 into main 2026-10-12 08:01:59 +02:00
ai-reviewer deleted branch claude-code/hints-on-changed-lines 2026-10-12 08:01:59 +02:00
Sign in to join this conversation.
No Reviewers
No labels
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: mi/werkrevisor#91