werkrevisor 0.30.0: each repository chooses and tunes its risk categories in .werkrevisor.toml #63

Merged
ai-reviewer merged 6 commits from risk-in-repo-config into main 2026-10-08 22:09:38 +02:00
Collaborator

See the PR document.

🤖 Generated with Claude Code

See [the PR document](docs/prs/2026-10-08-PR%2363-risk-in-repo-config.md). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
claude-code added 1 commit 2026-10-08 21:45:55 +02:00
PR#63: PR document for risk categories in .werkrevisor.toml
werkator build succeeded after 00:25
werkator/werkrevisor-statistics build succeeded after 00:28
68332a21eb
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
mi added 1 commit 2026-10-08 21:46:50 +02:00
PR#63: red scenario tests for risk categories in .werkrevisor.toml
werkator build failed after 00:19
werkator/werkrevisor-statistics build succeeded after 00:28
1d8c55fbf8
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
claude-code marked the pull request as ready for review 2026-10-08 21:48:45 +02:00
mi added 1 commit 2026-10-08 21:48:45 +02:00
werkrevisor 0.30.0: each repository chooses and tunes its risk categories in .werkrevisor.toml
werkator build succeeded after 00:10
werkator/werkrevisor-statistics build succeeded after 00:34
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
ai-review/gate build succeeded after 01:57
10e69bf700
.werkrevisor.toml may set [path_judge] risk_template and [[risk.categories]]: change the
threshold or action of a template category, switch it off, or add an own category.
The host key [path_judge] repository_may_tune_risks forbids it; hsadmin-ng does.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Collaborator
🟢 werkrevisor GREEN for 10e69bf, superseded by the result for 4055d4a

🟢 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 7 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 10 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 (all full files together would exceed [review] max_full_files_chars = 160000): werkrevisor/config.py
  • hint 1 finding(s) of low severity or rated minor by Jev: werkrevisor/risk/__init__.py:1-4

Findings

  1. [low] Stale Header Docstring at werkrevisor/risk/__init__.py:1-4, hint, as a line comment

Classifier

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

Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 54241, calls 1, tokens in 52421 / out 10360 (reasoning included in out), duration 114.5 s, cost 0.0281 USD (reported), classifier `jev-1.13.0` calls 10, tokens in 8259, cost 0.0003 USD, finding judge `none` calls 0, tokens in 0, cost 0.0000 USD, excerpt selection `openrouter/openai/gpt-6-luna` calls 1, tokens in 16328 / out 641, cost 0.0024 USD (reported), change summary `openrouter/minimax/minimax-m3` via Minimax calls 1, tokens in 4887 / out 1621, cost 0.0034 USD (reported), PR document check `jev-1.13.0` calls 10, tokens in 15574, cost 0.0007 USD, build file judge `jev-1.13.0` calls 8, tokens in 7238, cost 0.0003 USD, phases: path_judge 0.7 s, classifier 0.7 s, change_summary 12.7 s, doc_check 0.8 s, context 9.4 s, model_review 89.8 s, finding_judge 0.0 s, config: defaults + host + repository (.werkrevisor.toml at main 6b0a631).
Reviewed head `10e69bf7009f532cbe87c879920784f2ec1584f2` against base `6b0a6311192d5c04f914c4b6a3b91f2b4a8a1495`, werkrevisor 0.29.0.
<!-- werkrevisor:10e69bf7009f532cbe87c879920784f2ec1584f2 --> <!-- werkrevisor-verdict:GREEN --> <!-- werkrevisor-folded --> <details><summary>🟢 werkrevisor GREEN for <code>10e69bf</code>, superseded by <a href="http://git.javagil.de/mi/werkrevisor/pulls/63#issuecomment-2264">the result for <code>4055d4a</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** 7 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** 10 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 (all full files together would exceed [review] max_full_files_chars = 160000): werkrevisor/config.py - **hint** 1 finding(s) of low severity or rated minor by Jev: werkrevisor/risk/__init__.py:1-4 ### Findings 1. **[low] Stale Header Docstring** at `werkrevisor/risk/__init__.py:1-4`, hint, as a line comment ### Classifier 10 of 10 units passed all questions (1 PR document(s)). 4 answers ignored because of a confidence below [classifier] min_confidence. <sub> Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 54241, calls 1, tokens in 52421 / out 10360 (reasoning included in out), duration 114.5 s, cost 0.0281 USD (reported), classifier `jev-1.13.0` calls 10, tokens in 8259, cost 0.0003 USD, finding judge `none` calls 0, tokens in 0, cost 0.0000 USD, excerpt selection `openrouter/openai/gpt-6-luna` calls 1, tokens in 16328 / out 641, cost 0.0024 USD (reported), change summary `openrouter/minimax/minimax-m3` via Minimax calls 1, tokens in 4887 / out 1621, cost 0.0034 USD (reported), PR document check `jev-1.13.0` calls 10, tokens in 15574, cost 0.0007 USD, build file judge `jev-1.13.0` calls 8, tokens in 7238, cost 0.0003 USD, phases: path_judge 0.7 s, classifier 0.7 s, change_summary 12.7 s, doc_check 0.8 s, context 9.4 s, model_review 89.8 s, finding_judge 0.0 s, config: defaults + host + repository (.werkrevisor.toml at main 6b0a631).<br> Reviewed head `10e69bf7009f532cbe87c879920784f2ec1584f2` against base `6b0a6311192d5c04f914c4b6a3b91f2b4a8a1495`, werkrevisor 0.29.0. </sub> </details>
ai-reviewer approved these changes 2026-10-08 21:50:43 +02:00
Dismissed
ai-reviewer left a comment
Collaborator

werkrevisor: GREEN / PASS for 10e69bf7009f532cbe87c879920784f2ec1584f2.
The result comment of werkrevisor holds the details.

werkrevisor: GREEN / PASS for `10e69bf7009f532cbe87c879920784f2ec1584f2`. The result comment of werkrevisor holds the details. <!-- werkrevisor-review:10e69bf7009f532cbe87c879920784f2ec1584f2 -->
@@ -1,1 +1,1 @@
"""Risk categories per ecosystem: which risks of a changed file make a PR need a human.
Collaborator

[low] Stale Header Docstring (werkrevisor)

hint

The module docstring still says "Later each repository keeps its categories in its .werkrevisor.toml; until then the templates here hold them." This PR makes that future tense statement the present tense, and the analogous sentence was removed from the README in the same diff. The comment is now misleading: every repository can already keep its categories in its config.

**[low] Stale Header Docstring** (werkrevisor) hint The module docstring still says "Later each repository keeps its categories in its .werkrevisor.toml; until then the templates here hold them." This PR makes that future tense statement the present tense, and the analogous sentence was removed from the README in the same diff. The comment is now misleading: every repository can already keep its categories in its config.
Author
Collaborator

Fixed: the docstring says that a repository chooses and tunes a template in its .werkrevisor.toml; the inside diagram said "later in .werkrevisor.toml" too and is fixed as well.

Fixed: the docstring says that a repository chooses and tunes a template in its .werkrevisor.toml; the inside diagram said "later in .werkrevisor.toml" too and is fixed as well.
claude-code marked this conversation as resolved
mi added 1 commit 2026-10-08 21:52:01 +02:00
PR#63: the risk module and the inside diagram say that a repository tunes its categories
werkator build succeeded after 00:08
werkator/werkrevisor-statistics build succeeded after 00:29
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 01:04
4055d4a476
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
mi dismissed ai-reviewer's review 2026-10-08 21:52:01 +02:00
Reason:

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

Collaborator
🟡 werkrevisor YELLOW for 4055d4a, superseded by the result for 18ac6ae

🟡 werkrevisor: YELLOW / HUMAN_REVIEW

Change kind: mixed.

Reasons

  • YELLOW model reports a security concern
  • hint 8 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 10 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 (all full files together would exceed [review] max_full_files_chars = 160000): werkrevisor/config.py
  • hint files the model cannot review: docs/werkrevisor-review-inside-dark.svg, docs/werkrevisor-review-inside.svg (advisory: Jev judged every changed file)
  • hint 2 finding(s) of low severity or rated minor by Jev: docs/prs/2026-10-08-PR#63-risk-in-repo-config.md:92, docs/prs/2026-10-08-PR#63-risk-in-repo-config.md:94

Findings

  1. Documentation inaccuracy at docs/prs/2026-10-08-PR#63-risk-in-repo-config.md:92, severity unknown, counted as medium, hint, as a line comment

  2. Misleading test description at docs/prs/2026-10-08-PR#63-risk-in-repo-config.md:94, severity unknown, counted as medium, hint, as a line comment

Classifier

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

Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 56343, calls 1, tokens in 54432 / out 10953 (reasoning included in out), duration 62.3 s, cost 0.0294 USD (reported), classifier `jev-1.13.0` calls 10, tokens in 8278, cost 0.0003 USD, finding judge `jev-1.13.0` calls 2, tokens in 2399, cost 0.0001 USD, excerpt selection `openrouter/openai/gpt-6-luna` calls 1, tokens in 16328 / out 378, cost 0.0004 USD (reported), change summary `openrouter/minimax/minimax-m3` via Minimax calls 1, tokens in 6488 / out 1722, cost 0.0040 USD (reported), PR document check `jev-1.13.0` calls 10, tokens in 18573, cost 0.0008 USD, build file judge `jev-1.13.0` calls 9, tokens in 8030, cost 0.0003 USD, phases: path_judge 0.7 s, classifier 0.7 s, change_summary 8.1 s, doc_check 0.7 s, context 6.5 s, model_review 45.1 s, finding_judge 0.3 s, config: defaults + host + repository (.werkrevisor.toml at main 6b0a631).
Reviewed head `4055d4a4764127e6222c054afd8fd8c7af54dab0` against base `6b0a6311192d5c04f914c4b6a3b91f2b4a8a1495`, werkrevisor 0.29.0.
<!-- werkrevisor:4055d4a4764127e6222c054afd8fd8c7af54dab0 --> <!-- werkrevisor-verdict:YELLOW --> <!-- werkrevisor-folded --> <details><summary>🟡 werkrevisor YELLOW for <code>4055d4a</code>, superseded by <a href="http://git.javagil.de/mi/werkrevisor/pulls/63#issuecomment-2273">the result for <code>18ac6ae</code></a></summary> ## 🟡 werkrevisor: YELLOW / HUMAN_REVIEW Change kind: `mixed`. ### Reasons - **YELLOW** model reports a security concern - **hint** 8 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** 10 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 (all full files together would exceed [review] max_full_files_chars = 160000): werkrevisor/config.py - **hint** files the model cannot review: docs/werkrevisor-review-inside-dark.svg, docs/werkrevisor-review-inside.svg (advisory: Jev judged every changed file) - **hint** 2 finding(s) of low severity or rated minor by Jev: docs/prs/2026-10-08-PR#63-risk-in-repo-config.md:92, docs/prs/2026-10-08-PR#63-risk-in-repo-config.md:94 ### Findings 1. **Documentation inaccuracy** at `docs/prs/2026-10-08-PR#63-risk-in-repo-config.md:92`, severity unknown, counted as medium, hint, as a line comment 2. **Misleading test description** at `docs/prs/2026-10-08-PR#63-risk-in-repo-config.md:94`, severity unknown, counted as medium, hint, as a line comment ### Classifier 10 of 10 units passed all questions (1 PR document(s)). 4 answers ignored because of a confidence below [classifier] min_confidence. <sub> Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 56343, calls 1, tokens in 54432 / out 10953 (reasoning included in out), duration 62.3 s, cost 0.0294 USD (reported), classifier `jev-1.13.0` calls 10, tokens in 8278, cost 0.0003 USD, finding judge `jev-1.13.0` calls 2, tokens in 2399, cost 0.0001 USD, excerpt selection `openrouter/openai/gpt-6-luna` calls 1, tokens in 16328 / out 378, cost 0.0004 USD (reported), change summary `openrouter/minimax/minimax-m3` via Minimax calls 1, tokens in 6488 / out 1722, cost 0.0040 USD (reported), PR document check `jev-1.13.0` calls 10, tokens in 18573, cost 0.0008 USD, build file judge `jev-1.13.0` calls 9, tokens in 8030, cost 0.0003 USD, phases: path_judge 0.7 s, classifier 0.7 s, change_summary 8.1 s, doc_check 0.7 s, context 6.5 s, model_review 45.1 s, finding_judge 0.3 s, config: defaults + host + repository (.werkrevisor.toml at main 6b0a631).<br> Reviewed head `4055d4a4764127e6222c054afd8fd8c7af54dab0` against base `6b0a6311192d5c04f914c4b6a3b91f2b4a8a1495`, werkrevisor 0.29.0. </sub> </details>
ai-reviewer left a comment
Collaborator

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

werkrevisor: YELLOW / HUMAN_REVIEW for `4055d4a4764127e6222c054afd8fd8c7af54dab0`. The result comment of werkrevisor holds the details. <!-- werkrevisor-review:4055d4a4764127e6222c054afd8fd8c7af54dab0 -->
@@ -0,0 +89,4 @@
- `.werkrevisor.toml` may set `[path_judge] risk_template` and a list `[[risk.categories]]`.
- An entry with the name of a template category changes its `yellow_min`, `orange_min` or `action`; `action = "off"` removes it.
- An entry with a new name is a category of its own and needs all keys, as in a template.
Collaborator

Documentation inaccuracy, severity unknown, counted as medium (werkrevisor)

hint; Jev: real 0.86, severity 2.1 of 3

Line 92 states an entry with a new name "needs all keys, as in a template", but the _category parser in werkrevisor/risk/__init__.py defaults kinds to ["main"] (and orange_min only when action = "yellow"). An own category only requires name, title, question, yellow_min and action; the test's OWN constant and the README example omit kinds and rely on this default.

**Documentation inaccuracy**, severity unknown, counted as medium (werkrevisor) hint; Jev: real 0.86, severity 2.1 of 3 Line 92 states an entry with a new name "needs all keys, as in a template", but the `_category` parser in `werkrevisor/risk/__init__.py` defaults `kinds` to `["main"]` (and `orange_min` only when `action = "yellow"`). An own category only requires `name`, `title`, `question`, `yellow_min` and `action`; the test's `OWN` constant and the README example omit `kinds` and rely on this default.
Author
Collaborator

Fixed: an own category needs name, title, question, yellow_min and action; kinds defaults to main code, and orange_min is optional.

Fixed: an own category needs name, title, question, yellow_min and action; kinds defaults to main code, and orange_min is optional.
claude-code marked this conversation as resolved
@@ -0,0 +91,4 @@
- An entry with the name of a template category changes its `yellow_min`, `orange_min` or `action`; `action = "off"` removes it.
- An entry with a new name is a category of its own and needs all keys, as in a template.
- The host key `[path_judge] repository_may_tune_risks`, default true, allows both.
- `risk_template` is no longer host only, so tests/test_pathjudge.py lists `repository_may_tune_risks` as host only instead.
Collaborator

Misleading test description, severity unknown, counted as medium (werkrevisor)

hint; Jev: real 0.77, severity 1.3 of 3

Line 94 says "tests/test_pathjudge.py lists repository_may_tune_risks as host only instead" of risk_template. The test still tests all five original host-only keys; only risk_template is dropped and repository_may_tune_risks is added, not a one-for-one swap.

**Misleading test description**, severity unknown, counted as medium (werkrevisor) hint; Jev: real 0.77, severity 1.3 of 3 Line 94 says "tests/test_pathjudge.py lists `repository_may_tune_risks` as host only instead" of `risk_template`. The test still tests all five original host-only keys; only `risk_template` is dropped and `repository_may_tune_risks` is added, not a one-for-one swap.
Author
Collaborator

Fixed: the bullet says that the test drops risk_template from the host-only keys and adds repository_may_tune_risks.

Fixed: the bullet says that the test drops risk_template from the host-only keys and adds repository_may_tune_risks.
claude-code marked this conversation as resolved
ai-reviewer scheduled this pull request to auto merge when all checks succeed 2026-10-08 21:53:07 +02:00
ai-reviewer requested review from mi 2026-10-08 21:53:07 +02:00
mi added 1 commit 2026-10-08 22:04:06 +02:00
PR#63: exact keys of an own category and of the host-only test; the Werkbaum plans to show a security concern
werkator/werkrevisor-statistics build succeeded after 00:28
werkator build succeeded after 00:09
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 02:14
18ac6ae176
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Collaborator
🟢 werkrevisor GREEN for 18ac6ae, superseded by the result for 16a88b1

🟢 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 8 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 10 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 with 40 lines around each changed line, not in full (all full files together would exceed [review] max_full_files_chars = 160000): werkrevisor/config.py
  • hint 1 changed file was given to the AI only as diff, not in full, so it could not check it against the rest of its file (all full files together would exceed [review] max_full_files_chars = 160000, and no excerpt fits the limits either): werkrevisor/risk/__init__.py (advisory: Jev judged every changed file)
  • hint excerpt selection by openrouter/openai/gpt-6-luna failed, the fixed window was used: werkrevisor/config.py (the answer is no JSON)
  • hint files the model cannot review: docs/werkrevisor-review-inside-dark.svg, docs/werkrevisor-review-inside.svg (advisory: Jev judged every changed file)
  • hint 2 finding(s) of low severity or rated minor by Jev: tests/test_pathjudge.py:300-316, README.md:628-649

Findings

  1. Missing validation test at tests/test_pathjudge.py:300-316, severity unknown, counted as medium, hint, as a line comment

  2. Incomplete example at README.md:628-649, severity unknown, counted as medium, hint, as a line comment

Classifier

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

Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 59575, calls 1, tokens in 57530 / out 17568 (reasoning included in out), duration 132.1 s, cost 0.0383 USD (reported), classifier `jev-1.13.0` calls 10, tokens in 8311, cost 0.0003 USD, finding judge `jev-1.13.0` calls 2, tokens in 3761, cost 0.0002 USD, excerpt selection `openrouter/openai/gpt-6-luna` calls 2, tokens in 18884 / out 2302, cost 0.0016 USD (reported), change summary `openrouter/minimax/minimax-m3` via Minimax calls 1, tokens in 6627 / out 1419, cost 0.0037 USD (reported), PR document check `jev-1.13.0` calls 10, tokens in 17186, cost 0.0007 USD, build file judge `jev-1.13.0` calls 9, tokens in 8030, cost 0.0003 USD, phases: path_judge 0.8 s, classifier 0.8 s, change_summary 7.5 s, doc_check 0.7 s, context 26.3 s, model_review 95.3 s, finding_judge 0.3 s, config: defaults + host + repository (.werkrevisor.toml at main 6b0a631).
Reviewed head `18ac6ae1766525377cfe384a5c62aeb658399ff8` against base `6b0a6311192d5c04f914c4b6a3b91f2b4a8a1495`, werkrevisor 0.29.0.
<!-- werkrevisor:18ac6ae1766525377cfe384a5c62aeb658399ff8 --> <!-- werkrevisor-verdict:GREEN --> <!-- werkrevisor-folded --> <details><summary>🟢 werkrevisor GREEN for <code>18ac6ae</code>, superseded by <a href="http://git.javagil.de/mi/werkrevisor/pulls/63#issuecomment-2282">the result for <code>16a88b1</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** 8 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** 10 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 with 40 lines around each changed line, not in full (all full files together would exceed [review] max_full_files_chars = 160000): werkrevisor/config.py - **hint** 1 changed file was given to the AI only as diff, not in full, so it could not check it against the rest of its file (all full files together would exceed [review] max_full_files_chars = 160000, and no excerpt fits the limits either): werkrevisor/risk/__init__.py (advisory: Jev judged every changed file) - **hint** excerpt selection by openrouter/openai/gpt-6-luna failed, the fixed window was used: werkrevisor/config.py (the answer is no JSON) - **hint** files the model cannot review: docs/werkrevisor-review-inside-dark.svg, docs/werkrevisor-review-inside.svg (advisory: Jev judged every changed file) - **hint** 2 finding(s) of low severity or rated minor by Jev: tests/test_pathjudge.py:300-316, README.md:628-649 ### Findings 1. **Missing validation test** at `tests/test_pathjudge.py:300-316`, severity unknown, counted as medium, hint, as a line comment 2. **Incomplete example** at `README.md:628-649`, severity unknown, counted as medium, hint, as a line comment ### Classifier 10 of 10 units passed all questions (1 PR document(s)). 3 answers ignored because of a confidence below [classifier] min_confidence. <sub> Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 59575, calls 1, tokens in 57530 / out 17568 (reasoning included in out), duration 132.1 s, cost 0.0383 USD (reported), classifier `jev-1.13.0` calls 10, tokens in 8311, cost 0.0003 USD, finding judge `jev-1.13.0` calls 2, tokens in 3761, cost 0.0002 USD, excerpt selection `openrouter/openai/gpt-6-luna` calls 2, tokens in 18884 / out 2302, cost 0.0016 USD (reported), change summary `openrouter/minimax/minimax-m3` via Minimax calls 1, tokens in 6627 / out 1419, cost 0.0037 USD (reported), PR document check `jev-1.13.0` calls 10, tokens in 17186, cost 0.0007 USD, build file judge `jev-1.13.0` calls 9, tokens in 8030, cost 0.0003 USD, phases: path_judge 0.8 s, classifier 0.8 s, change_summary 7.5 s, doc_check 0.7 s, context 26.3 s, model_review 95.3 s, finding_judge 0.3 s, config: defaults + host + repository (.werkrevisor.toml at main 6b0a631).<br> Reviewed head `18ac6ae1766525377cfe384a5c62aeb658399ff8` against base `6b0a6311192d5c04f914c4b6a3b91f2b4a8a1495`, werkrevisor 0.29.0. </sub> </details>
ai-reviewer approved these changes 2026-10-08 22:06:28 +02:00
Dismissed
ai-reviewer left a comment
Collaborator

werkrevisor: GREEN / PASS for 18ac6ae1766525377cfe384a5c62aeb658399ff8.
The result comment of werkrevisor holds the details.

werkrevisor: GREEN / PASS for `18ac6ae1766525377cfe384a5c62aeb658399ff8`. The result comment of werkrevisor holds the details. <!-- werkrevisor-review:18ac6ae1766525377cfe384a5c62aeb658399ff8 -->
@@ -627,7 +628,25 @@ with `hint`, e.g. for performance or API compatibility, it gives a hint only.
The reason `risk_<category>` names the category and the files,
Collaborator

Incomplete example, severity unknown, counted as medium (werkrevisor)

hint; Jev: real 0.60, severity 2.3 of 3

The README example for [[risk.categories]] shows only [path_judge] risk_template; the host config also needs scope = "all" for the template and the categories to be accepted. The description of risk_template mentions the requirement, but the example contradicts it and would fail validation if copied verbatim.

**Incomplete example**, severity unknown, counted as medium (werkrevisor) hint; Jev: real 0.60, severity 2.3 of 3 The README example for `[[risk.categories]]` shows only `[path_judge] risk_template`; the host config also needs `scope = "all"` for the template and the categories to be accepted. The description of `risk_template` mentions the requirement, but the example contradicts it and would fail validation if copied verbatim.
Author
Collaborator

Fixed: the README says before the example that the host config must set judge = "jev" and scope = "all", and that the example is a .werkrevisor.toml; scope is a host key, so the repository cannot set it.

Fixed: the README says before the example that the host config must set judge = "jev" and scope = "all", and that the example is a .werkrevisor.toml; scope is a host key, so the repository cannot set it.
claude-code marked this conversation as resolved
Collaborator

Missing validation test, severity unknown, counted as medium (werkrevisor)

hint; Jev: real 0.76, severity 2.0 of 3

The new _validate check for repository_may_tune_risks is not covered by test_values_are_validated. The existing pattern tests repository_may_enable = "yes" and expects a type error; a parallel case for repository_may_tune_risks would keep coverage symmetric with the sibling host-only switch.

**Missing validation test**, severity unknown, counted as medium (werkrevisor) hint; Jev: real 0.76, severity 2.0 of 3 The new `_validate` check for `repository_may_tune_risks` is not covered by `test_values_are_validated`. The existing pattern tests `repository_may_enable = "yes"` and expects a type error; a parallel case for `repository_may_tune_risks` would keep coverage symmetric with the sibling host-only switch.
Author
Collaborator

Fixed: test_values_are_validated also checks that repository_may_tune_risks must be true or false.

Fixed: test_values_are_validated also checks that repository_may_tune_risks must be true or false.
claude-code marked this conversation as resolved
ai-reviewer canceled auto merging this pull request when all checks succeed 2026-10-08 22:06:28 +02:00
mi added 1 commit 2026-10-08 22:07:35 +02:00
PR#63: a test for the type of repository_may_tune_risks; the README example names the host prerequisites
werkator build succeeded after 00:16
werkator/werkrevisor-statistics build succeeded after 00:30
ai-review/assessment AI review passed; approved by werkrevisor; merge scheduled for when the checks succeed; review request of mi withdrawn
ai-review/gate build succeeded after 01:52
16a88b18f1
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
mi dismissed ai-reviewer's review 2026-10-08 22:07:35 +02:00
Reason:

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

Collaborator

🟢 werkrevisor: GREEN / PASS

Change kind: mixed.

Reasons

  • hint 8 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.02)
  • hint PR document not compared with a change summary: the summary by openrouter/minimax/minimax-m3 failed: the answer holds no list of changes
  • 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): werkrevisor/config.py
  • hint files the model cannot review: docs/werkrevisor-review-inside-dark.svg, docs/werkrevisor-review-inside.svg (advisory: Jev judged every changed file)

Classifier

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

Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 56973, calls 1, tokens in 55023 / out 21696 (reasoning included in out), duration 109.3 s, cost 0.0425 USD (reported), classifier `jev-1.13.0` calls 10, tokens in 8311, cost 0.0003 USD, excerpt selection `openrouter/openai/gpt-6-luna` calls 1, tokens in 16328 / out 461, cost 0.0004 USD (reported), change summary `openrouter/minimax/minimax-m3` via Minimax calls 1, tokens in 6854 / out 1365, cost 0.0037 USD (reported), build file judge `jev-1.13.0` calls 9, tokens in 8228, cost 0.0003 USD, phases: path_judge 0.7 s, classifier 0.7 s, change_summary 11.7 s, context 6.6 s, model_review 89.1 s, config: defaults + host + repository (.werkrevisor.toml at main 6b0a631).
Reviewed head `16a88b18f1ff917d71e567944bf9036dbdd3a218` against base `6b0a6311192d5c04f914c4b6a3b91f2b4a8a1495`, werkrevisor 0.29.0.
<!-- werkrevisor:16a88b18f1ff917d71e567944bf9036dbdd3a218 --> <!-- werkrevisor-verdict:GREEN --> ## 🟢 werkrevisor: GREEN / PASS Change kind: `mixed`. ### Reasons - **hint** 8 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.02) - **hint** PR document not compared with a change summary: the summary by openrouter/minimax/minimax-m3 failed: the answer holds no list of changes - **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): werkrevisor/config.py - **hint** files the model cannot review: docs/werkrevisor-review-inside-dark.svg, docs/werkrevisor-review-inside.svg (advisory: Jev judged every changed file) ### Classifier 10 of 10 units passed all questions (1 PR document(s)). 3 answers ignored because of a confidence below [classifier] min_confidence. <sub> Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 56973, calls 1, tokens in 55023 / out 21696 (reasoning included in out), duration 109.3 s, cost 0.0425 USD (reported), classifier `jev-1.13.0` calls 10, tokens in 8311, cost 0.0003 USD, excerpt selection `openrouter/openai/gpt-6-luna` calls 1, tokens in 16328 / out 461, cost 0.0004 USD (reported), change summary `openrouter/minimax/minimax-m3` via Minimax calls 1, tokens in 6854 / out 1365, cost 0.0037 USD (reported), build file judge `jev-1.13.0` calls 9, tokens in 8228, cost 0.0003 USD, phases: path_judge 0.7 s, classifier 0.7 s, change_summary 11.7 s, context 6.6 s, model_review 89.1 s, config: defaults + host + repository (.werkrevisor.toml at main 6b0a631).<br> Reviewed head `16a88b18f1ff917d71e567944bf9036dbdd3a218` against base `6b0a6311192d5c04f914c4b6a3b91f2b4a8a1495`, werkrevisor 0.29.0. </sub>
ai-reviewer left a comment
Collaborator

werkrevisor: GREEN / PASS for 16a88b18f1ff917d71e567944bf9036dbdd3a218.
The result comment of werkrevisor holds the details.

werkrevisor: GREEN / PASS for `16a88b18f1ff917d71e567944bf9036dbdd3a218`. The result comment of werkrevisor holds the details. <!-- werkrevisor-review:16a88b18f1ff917d71e567944bf9036dbdd3a218 -->
ai-reviewer scheduled this pull request to auto merge when all checks succeed 2026-10-08 22:09:36 +02:00
ai-reviewer removed review request for mi 2026-10-08 22:09:36 +02:00
ai-reviewer merged commit 9c7ab5aa83 into main 2026-10-08 22:09:38 +02:00
ai-reviewer deleted branch risk-in-repo-config 2026-10-08 22:09:38 +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/werkrevisor#63