werkrevisor 0.43.0: a moved file with only package and import changes is mechanical #112

Merged
ai-reviewer merged 3 commits from claude-code/mechanical-moves into main 2026-10-15 08:08:21 +02:00
Collaborator

See the PR document under docs/prs/.

🤖 Generated with Claude Code

See the PR document under docs/prs/. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
claude-code added 1 commit 2026-10-15 07:05:21 +02:00
PR document: a moved file with only package and import changes is mechanical
werkator build succeeded after 00:09
werkator/werkrevisor-statistics build succeeded after 00:26
3217aaae9e
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
claude-code added 1 commit 2026-10-15 07:06:51 +02:00
werkrevisor 0.43.0: a moved file with only package and import changes is mechanical
ai-review/codex 1 open Codex finding(s); resolve each line comment
werkator build succeeded after 00:09
werkator/werkrevisor-statistics build succeeded after 00:35
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 03:55
f6573c20a6
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
claude-code marked the pull request as ready for review 2026-10-15 07:07:59 +02:00
Collaborator
🟢 werkrevisor GREEN for f6573c2, superseded by the result for c6d0737

🟢 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 4 changed file(s) that neither weaken the checks, touch security nor show a risk category of the repository config 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 9 section(s) of the PR document agree with the change summary of openrouter/minimax/minimax-m3 according to Jev
  • hint 1 finding(s) of low severity or rated minor by Jev: docs/prs/2026-10-15-PR#112-mechanical-moves.md:36-38

Findings

  1. Doc Scenario Mismatch at docs/prs/2026-10-15-PR#112-mechanical-moves.md:36-38, severity unknown, counted as medium, hint, as a line comment

Classifier

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

Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 24297, calls 1, tokens in 23432 / out 24281 (reasoning included in out), duration 233.7 s, cost 0.0361 USD (reported), classifier `jev-1.13.0` calls 9, tokens in 7225, cost 0.0003 USD, finding judge `jev-1.13.0` calls 1, tokens in 1629, cost 0.0001 USD, change summary `openrouter/minimax/minimax-m3` via Minimax calls 1, tokens in 2196 / out 1019, cost 0.0019 USD (reported), PR document check `jev-1.13.0` calls 9, tokens in 11572, cost 0.0005 USD, build file judge `jev-1.13.0` calls 5, tokens in 3828, cost 0.0002 USD, phases: path_judge 0.4 s, classifier 0.6 s, change_summary 9.7 s, doc_check 0.6 s, context 0.2 s, model_review 221.4 s, finding_judge 0.2 s, config: defaults + host + repository (.werkrevisor.toml at main 0ece9bf).
Reviewed head `f6573c20a678ddd4806fb787e41418b3b2e143fb` against base `0ece9bf09bcc205405495844359a845e54163da2`, werkrevisor 0.42.4.
<!-- werkrevisor:f6573c20a678ddd4806fb787e41418b3b2e143fb --> <!-- werkrevisor-verdict:GREEN --> <!-- werkrevisor-blocks:c759630b6a016471a09a1df679ca13d9,2d9cb69d4ee6372f1b8925f5ceb5ae2d,f3088cdd9ae5c3efb7d6d08a61d1b262,6989c5674394f5369afdd6ee572ae628,fac22722175fdfe02c54d6b9ead86083,926a1837c92e8ee290b853e17b243291,b00695f20894145d15fd2a917749abda,2ee8a74a0ee8f394b54ea3994f0d5732,2d2c2f95d1961adff9dc6ac70c4e84fc,4454ca4a17330c77d3a471c929bbc74b,ac208d5e6e24beb58d3b47c4f2913c0e,732d76c07d548f4944412c3b6e7276fe,528fe0a056ed1c88672f2f2311a3ed20 --> <!-- werkrevisor-folded --> <details><summary>🟢 werkrevisor GREEN for <code>f6573c2</code>, superseded by <a href="http://git.javagil.de/mi/werkrevisor/pulls/112#issuecomment-5971">the result for <code>c6d0737</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** 4 changed file(s) that neither weaken the checks, touch security nor show a risk category of the repository config 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** 9 section(s) of the PR document agree with the change summary of openrouter/minimax/minimax-m3 according to Jev - **hint** 1 finding(s) of low severity or rated minor by Jev: docs/prs/2026-10-15-PR#112-mechanical-moves.md:36-38 ### Findings 1. **Doc Scenario Mismatch** at `docs/prs/2026-10-15-PR#112-mechanical-moves.md:36-38`, severity unknown, counted as medium, hint, as a line comment ### Classifier 9 of 9 units passed all questions (1 PR document(s)). 5 answers ignored because of a confidence below [classifier] min_confidence. <sub> Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 24297, calls 1, tokens in 23432 / out 24281 (reasoning included in out), duration 233.7 s, cost 0.0361 USD (reported), classifier `jev-1.13.0` calls 9, tokens in 7225, cost 0.0003 USD, finding judge `jev-1.13.0` calls 1, tokens in 1629, cost 0.0001 USD, change summary `openrouter/minimax/minimax-m3` via Minimax calls 1, tokens in 2196 / out 1019, cost 0.0019 USD (reported), PR document check `jev-1.13.0` calls 9, tokens in 11572, cost 0.0005 USD, build file judge `jev-1.13.0` calls 5, tokens in 3828, cost 0.0002 USD, phases: path_judge 0.4 s, classifier 0.6 s, change_summary 9.7 s, doc_check 0.6 s, context 0.2 s, model_review 221.4 s, finding_judge 0.2 s, config: defaults + host + repository (.werkrevisor.toml at main 0ece9bf).<br> Reviewed head `f6573c20a678ddd4806fb787e41418b3b2e143fb` against base `0ece9bf09bcc205405495844359a845e54163da2`, werkrevisor 0.42.4. </sub> </details>
ai-reviewer approved these changes 2026-10-15 07:11:59 +02:00
Dismissed
ai-reviewer left a comment
Collaborator

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

werkrevisor: GREEN / PASS for `f6573c20a678ddd4806fb787e41418b3b2e143fb`. The result comment of werkrevisor holds the details. <!-- werkrevisor-review:f6573c20a678ddd4806fb787e41418b3b2e143fb -->
@@ -0,0 +33,4 @@
&hellip; so that a package move across many files needs no human for its size.
- **Given** a renamed Kotlin file whose diff changes only its `package` and `import` lines
Collaborator

Doc Scenario Mismatch, severity unknown, counted as medium (werkrevisor)

hint; Jev: real 0.84, severity 1.7 of 3

Scenario#112.01 says "a renamed Kotlin file" but both tests linked under "Verified by" (test_rename_with_only_package_and_import_changes and test_moved_files_do_not_count_for_the_size_limits) use .java paths and the implementation works for any language whose import regex matches. A reader could wrongly infer the rule is Kotlin-only, while in practice the documented verification is for Java. The wording should drop "Kotlin" (e.g. "a renamed source file") or mention "Java/Kotlin" and the tests should match.

**Doc Scenario Mismatch**, severity unknown, counted as medium (werkrevisor) hint; Jev: real 0.84, severity 1.7 of 3 Scenario#112.01 says "a renamed Kotlin file" but both tests linked under "Verified by" (test_rename_with_only_package_and_import_changes and test_moved_files_do_not_count_for_the_size_limits) use .java paths and the implementation works for any language whose import regex matches. A reader could wrongly infer the rule is Kotlin-only, while in practice the documented verification is for Java. The wording should drop "Kotlin" (e.g. "a renamed source file") or mention "Java/Kotlin" and the tests should match.
Author
Collaborator

Fixed in c6d0737: Scenario#112.01 now says "a renamed Java or Kotlin file", matching the tests and the built-in package and import regexes.

Fixed in `c6d0737`: Scenario#112.01 now says "a renamed Java or Kotlin file", matching the tests and the built-in package and import regexes.
claude-code marked this conversation as resolved
ai-reviewer left a comment
Collaborator

Codex review of f6573c20a678ddd4806fb787e41418b3b2e143fb

Codex review of `f6573c20a678ddd4806fb787e41418b3b2e143fb` <!-- werkrevisor-codex -->
@@ -125,2 +126,3 @@
return RENAMED
if f.status not in _MODIFIED or file_diff is None or file_diff.binary or f.changed_lines == 0:
# A package move renames each file and changes only its package and import lines.
if not (renamed or f.status in _MODIFIED) or file_diff is None or file_diff.binary or f.changed_lines == 0:
Collaborator

[high] Preserve whitespace protection from the old filename (Codex review)

Renamed files now reach whitespace classification, but whitespace_significant checks only f.path. Renaming src/main/worker.py to src/main/worker while dedenting process() out of an if block therefore produces 'renamed, whitespace', despite changing behavior in a Python script that retains its shebang. Both paths remain in the main category, so the new category guard permits this. Reproduced: the base rejects mechanical classification; the head returns mechanical_only with zero counted lines, bypassing review. Check whitespace protection against both filenames.

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

**[high] Preserve whitespace protection from the old filename** (Codex review) Renamed files now reach whitespace classification, but whitespace_significant checks only f.path. Renaming src/main/worker.py to src/main/worker while dedenting process() out of an if block therefore produces 'renamed, whitespace', despite changing behavior in a Python script that retains its shebang. Both paths remain in the main category, so the new category guard permits this. Reproduced: the base rejects mechanical classification; the head returns mechanical_only with zero counted lines, bypassing review. Check whitespace protection against both filenames. Fix it, or reply why it does not hold, and resolve this comment. <!-- werkrevisor-codex -->
Author
Collaborator

Fixed in c6d0737: a renamed file with changed lines must keep its file extension, and whitespace_significant is checked against the old and the new name. Red/green: test_rename_keeps_the_rules_of_the_old_name (src/worker.py → src/worker with a dedent, and A.py → A.java) fails without the fix and passes with it.

Fixed in `c6d0737`: a renamed file with changed lines must keep its file extension, and `whitespace_significant` is checked against the old and the new name. Red/green: `test_rename_keeps_the_rules_of_the_old_name` (`src/worker.py` → `src/worker` with a dedent, and `A.py` → `A.java`) fails without the fix and passes with it.
claude-code marked this conversation as resolved
Collaborator
⚠️ werkrevisor ERROR for ?, superseded by the result for c6d0737

Codex review: critical

This change relaxes the merge gate by exempting additional renamed files from model review, Jev review, and size limits. Incorrect classification can let behavioral changes merge without review.

Findings

  1. [high] Preserve whitespace protection from the old filename at werkrevisor/mechanical.py:128, as a line comment

The merge waits for the status ai-review/codex: every line comment resolved, and the approval of a human for a critical PR or for a finding that is only here.

Model `gpt-6-astra`, effort high, tokens in 323164 (cached 267776) / out 2204, 79.4 s, 14 commands; reviewed head `f6573c20a678ddd4806fb787e41418b3b2e143fb`.
<!-- werkrevisor-codex:f6573c20a678ddd4806fb787e41418b3b2e143fb --> <!-- 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/112#issuecomment-5971">the result for <code>c6d0737</code></a></summary> ## Codex review: critical This change relaxes the merge gate by exempting additional renamed files from model review, Jev review, and size limits. Incorrect classification can let behavioral changes merge without review. ### Findings 1. **[high] Preserve whitespace protection from the old filename** at `werkrevisor/mechanical.py:128`, as a line comment The merge waits for the status `ai-review/codex`: every line comment resolved, and the approval of a human for a critical PR or for a finding that is only here. <sub> Model `gpt-6-astra`, effort high, tokens in 323164 (cached 267776) / out 2204, 79.4 s, 14 commands; reviewed head `f6573c20a678ddd4806fb787e41418b3b2e143fb`. </sub> </details>
claude-code added 1 commit 2026-10-15 07:17:08 +02:00
A renamed file keeps the rules of its old name: same extension, whitespace significance under both names
ai-review/codex Codex review passed
werkator build succeeded after 00:09
werkator/werkrevisor-statistics build succeeded after 00:26
ai-review/assessment AI review passed; approved by werkrevisor; merge scheduled for when the checks succeed
ai-review/gate build succeeded after 02:16
c6d0737e3f
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
claude-code dismissed ai-reviewer's review 2026-10-15 07:17:08 +02:00
Reason:

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

Collaborator

🟢 werkrevisor: GREEN / PASS

Change kind: mixed.

Reasons

  • hint approval of werkrevisor for f6573c2 not carried over: 3 approved block(s) are missing
  • hint 4 changed file(s) that neither weaken the checks, touch security nor show a risk category of the repository config 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 9 section(s) of the PR document agree with the change summary of openrouter/minimax/minimax-m3 according to Jev

Classifier

9 of 9 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 24985, calls 1, tokens in 24101 / out 14049 (reasoning included in out), duration 133.5 s, cost 0.0241 USD (reported), classifier `jev-1.13.0` calls 9, tokens in 7281, cost 0.0003 USD, change summary `openrouter/minimax/minimax-m3` via Minimax calls 1, tokens in 2513 / out 957, cost 0.0019 USD (reported), PR document check `jev-1.13.0` calls 9, tokens in 11349, cost 0.0005 USD, build file judge `jev-1.13.0` calls 5, tokens in 4136, cost 0.0002 USD, phases: path_judge 0.4 s, classifier 0.6 s, change_summary 9.7 s, doc_check 0.6 s, context 0.4 s, model_review 121.3 s, config: defaults + host + repository (.werkrevisor.toml at main 0ece9bf).
Reviewed head `c6d0737e3fe1e0133f5b8ad5ddbe928c1d2b921a` against base `0ece9bf09bcc205405495844359a845e54163da2`, werkrevisor 0.42.4.
<!-- werkrevisor:c6d0737e3fe1e0133f5b8ad5ddbe928c1d2b921a --> <!-- werkrevisor-verdict:GREEN --> <!-- werkrevisor-blocks:96d6c6654e454897528e90b130cdac61,2d9cb69d4ee6372f1b8925f5ceb5ae2d,442ee844b843ba23928664a3eec8e8e3,6989c5674394f5369afdd6ee572ae628,fac22722175fdfe02c54d6b9ead86083,926a1837c92e8ee290b853e17b243291,ad6c736acfaaf2abcc0ccbfb0bc0e5c3,2ee8a74a0ee8f394b54ea3994f0d5732,2d2c2f95d1961adff9dc6ac70c4e84fc,4454ca4a17330c77d3a471c929bbc74b,ac208d5e6e24beb58d3b47c4f2913c0e,f6f7f7139406c8a865bf74c8b7fae8c3,d255fa4ce1b1338b302300434f087a93,732d76c07d548f4944412c3b6e7276fe,528fe0a056ed1c88672f2f2311a3ed20 --> ## 🟢 werkrevisor: GREEN / PASS Change kind: `mixed`. ### Reasons - **hint** approval of werkrevisor for `f6573c2` not carried over: 3 approved block(s) are missing - **hint** 4 changed file(s) that neither weaken the checks, touch security nor show a risk category of the repository config 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** 9 section(s) of the PR document agree with the change summary of openrouter/minimax/minimax-m3 according to Jev ### Classifier 9 of 9 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 24985, calls 1, tokens in 24101 / out 14049 (reasoning included in out), duration 133.5 s, cost 0.0241 USD (reported), classifier `jev-1.13.0` calls 9, tokens in 7281, cost 0.0003 USD, change summary `openrouter/minimax/minimax-m3` via Minimax calls 1, tokens in 2513 / out 957, cost 0.0019 USD (reported), PR document check `jev-1.13.0` calls 9, tokens in 11349, cost 0.0005 USD, build file judge `jev-1.13.0` calls 5, tokens in 4136, cost 0.0002 USD, phases: path_judge 0.4 s, classifier 0.6 s, change_summary 9.7 s, doc_check 0.6 s, context 0.4 s, model_review 121.3 s, config: defaults + host + repository (.werkrevisor.toml at main 0ece9bf).<br> Reviewed head `c6d0737e3fe1e0133f5b8ad5ddbe928c1d2b921a` against base `0ece9bf09bcc205405495844359a845e54163da2`, werkrevisor 0.42.4. </sub>
ai-reviewer left a comment
Collaborator

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

werkrevisor: GREEN / PASS for `c6d0737e3fe1e0133f5b8ad5ddbe928c1d2b921a`. The result comment of werkrevisor holds the details. <!-- werkrevisor-review:c6d0737e3fe1e0133f5b8ad5ddbe928c1d2b921a -->
ai-reviewer scheduled this pull request to auto merge when all checks succeed 2026-10-15 07:19:33 +02:00
Collaborator

Codex review: critical

The change relaxes the merge gate by allowing more renamed files to bypass model and Jev review and size limits. Incorrect classification could therefore let consequential changes merge without review, so human review is required.

No findings.

The merge waits for the status ai-review/codex: every line comment resolved, and the approval of a human for a critical PR or for a finding that is only here.

Model `gpt-6-astra`, effort high, tokens in 266942 (cached 211712) / out 1123, 51.8 s, 11 commands; reviewed head `c6d0737e3fe1e0133f5b8ad5ddbe928c1d2b921a`.
<!-- werkrevisor-codex:c6d0737e3fe1e0133f5b8ad5ddbe928c1d2b921a --> <!-- werkrevisor-codex-critical:true --> <!-- werkrevisor-codex-unattached:0 --> <!-- werkrevisor-codex --> ## Codex review: critical The change relaxes the merge gate by allowing more renamed files to bypass model and Jev review and size limits. Incorrect classification could therefore let consequential changes merge without review, so human review is required. No findings. The merge waits for the status `ai-review/codex`: every line comment resolved, and the approval of a human for a critical PR or for a finding that is only here. <sub> Model `gpt-6-astra`, effort high, tokens in 266942 (cached 211712) / out 1123, 51.8 s, 11 commands; reviewed head `c6d0737e3fe1e0133f5b8ad5ddbe928c1d2b921a`. </sub>
mi approved these changes 2026-10-15 08:05:33 +02:00
ai-reviewer merged commit 2b2413d0a4 into main 2026-10-15 08:08:21 +02:00
ai-reviewer deleted branch claude-code/mechanical-moves 2026-10-15 08:08:21 +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#112