werkregie checks its dependencies for vulnerabilities and licenses #59

Merged
ai-reviewer merged 7 commits from claude-code/dependency-checks into main 2026-10-13 13:50:43 +02:00
Collaborator

See the PR document.

🤖 Generated with Claude Code

See [the PR document](doc/prs/2026-10-13-PR%2359-dependency-checks.md). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
claude-code marked the pull request as ready for review 2026-10-13 11:10:24 +02:00
claude-code force-pushed claude-code/dependency-checks from f49c3891f9 to 447a95be35 2026-10-13 11:22:28 +02:00 Compare
Collaborator
🟡 werkrevisor YELLOW for 447a95b, superseded by the result for 3bba749

🟡 werkrevisor: YELLOW / HUMAN_REVIEW

Change kind: mixed.

Reasons

  • YELLOW risky paths changed: .werkrevisor.toml (built in)
  • YELLOW risky build changes according to Jev: dashboard/build.gradle.kts (weakens checks 0.05, risk 1.63, security 0.49)
  • YELLOW spec: doc/prs/2026-10-13-PR#59-dependency-checks.md Scenario#59.02 implementation_details (0.62 > yellow_above = 0.6)
  • hint writing rules violated in the changed docs: doc/risk-analysis.md:57: more than one sentence on a line
  • hint 2 changed file(s) that neither weaken the checks, touch security nor show a risk category of jvm-spring-backend according to Jev
  • hint 1 build change(s) of low risk according to Jev: .werkator.yml (weakens checks 0.05, risk 1.30, security 0.69)
  • hint 1 finding(s) of low severity or rated minor by Jev: dashboard/build.gradle.kts:145-146

Findings

  1. Misleading comment with redundant wiring at dashboard/build.gradle.kts:145-146, severity unknown, counted as medium, hint, as a line comment

Classifier

Unit Question Problem Confidence Verdict
doc/prs/2026-10-13-PR#59-dependency-checks.md Scenario#59.02 implementation_details 0.62 – YELLOW

7 of 8 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 14305, calls 1, tokens in 13809 / out 12211 (reasoning included in out), duration 104.8 s, cost 0.0188 USD (reported), classifier `jev-1.13.0` calls 8, tokens in 6296, cost 0.0003 USD, finding judge `jev-1.13.0` calls 1, tokens in 2313, cost 0.0001 USD, build file judge `jev-1.13.0` calls 4, tokens in 4864, cost 0.0002 USD, phases: path_judge 0.3 s, classifier 0.5 s, context 1.3 s, model_review 101.5 s, finding_judge 0.3 s, config: defaults + host + repository (.werkrevisor.toml at main 470d826).
Reviewed head `447a95be35e2c94a209b2ca83b61b0c306cb1dcb` against base `470d826c1033c0b21bf8b4ed9e809d3850247acd`, werkrevisor 0.41.0.
<!-- werkrevisor:447a95be35e2c94a209b2ca83b61b0c306cb1dcb --> <!-- werkrevisor-verdict:YELLOW --> <!-- werkrevisor-blocks:6dc53ebdf5edf6e67062129ba0cc673f,2e587da85123d936e37c4b1000e3f3ea,0951fb17e0c38e61bbab9e7e249c2ebf,cb21867942d68e44d2ac278c624a5d12,203b1605de8f571521683cff98673180,88247425b3956973dc06e8009c6c333e,fe311b3edffdd23f5fc10568facc7e2d,e6e542b2bbdd80314f21df93bc3457f3,30cbea64207ce648409fa8f9fa1f9250,4f53b75d4aa310900d0f37053b1e651a,0cace83b1566d028f63a1d70604d161a,9e05d5ee49bd0db71ebd218942f1d800,26b1292365a9a467247623867e5b4613,dca5e3a3fadda42cb90dd07cd5cfd4bc,91e11bf72c63185f5c1bcdf17253e919 --> <!-- werkrevisor-folded --> <details><summary>🟡 werkrevisor YELLOW for <code>447a95b</code>, superseded by <a href="http://git.javagil.de/mi/werkregie/pulls/59#issuecomment-5116">the result for <code>3bba749</code></a></summary> ## 🟡 werkrevisor: YELLOW / HUMAN_REVIEW Change kind: `mixed`. ### Reasons - **YELLOW** risky paths changed: .werkrevisor.toml (built in) - **YELLOW** risky build changes according to Jev: dashboard/build.gradle.kts (weakens checks 0.05, risk 1.63, security 0.49) - **YELLOW** spec: doc/prs/2026-10-13-PR#59-dependency-checks.md Scenario#59.02 implementation_details (0.62 > yellow_above = 0.6) - **hint** writing rules violated in the changed docs: doc/risk-analysis.md:57: more than one sentence on a line - **hint** 2 changed file(s) that neither weaken the checks, touch security nor show a risk category of jvm-spring-backend according to Jev - **hint** 1 build change(s) of low risk according to Jev: .werkator.yml (weakens checks 0.05, risk 1.30, security 0.69) - **hint** 1 finding(s) of low severity or rated minor by Jev: dashboard/build.gradle.kts:145-146 ### Findings 1. **Misleading comment with redundant wiring** at `dashboard/build.gradle.kts:145-146`, severity unknown, counted as medium, hint, as a line comment ### Classifier | Unit | Question | Problem | Confidence | Verdict | |---|---|---|---|---| | doc/prs/2026-10-13-PR#59-dependency-checks.md Scenario#59.02 | implementation_details | 0.62 | – | YELLOW | 7 of 8 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 14305, calls 1, tokens in 13809 / out 12211 (reasoning included in out), duration 104.8 s, cost 0.0188 USD (reported), classifier `jev-1.13.0` calls 8, tokens in 6296, cost 0.0003 USD, finding judge `jev-1.13.0` calls 1, tokens in 2313, cost 0.0001 USD, build file judge `jev-1.13.0` calls 4, tokens in 4864, cost 0.0002 USD, phases: path_judge 0.3 s, classifier 0.5 s, context 1.3 s, model_review 101.5 s, finding_judge 0.3 s, config: defaults + host + repository (.werkrevisor.toml at main 470d826).<br> Reviewed head `447a95be35e2c94a209b2ca83b61b0c306cb1dcb` against base `470d826c1033c0b21bf8b4ed9e809d3850247acd`, werkrevisor 0.41.0. </sub> </details>
ai-reviewer left a comment
Collaborator

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

werkrevisor: YELLOW / HUMAN_REVIEW for `447a95be35e2c94a209b2ca83b61b0c306cb1dcb`. The result comment of werkrevisor holds the details. <!-- werkrevisor-review:447a95be35e2c94a209b2ca83b61b0c306cb1dcb -->
@@ -105,0 +142,4 @@
allowedLicensesFile = file("config/allowed-licenses.json")
}
// dependencyCheckAnalyze runs as Werkator's build "dependencies": the first download of the NVD data exceeds the build's timeout
Collaborator

Misleading comment with redundant wiring, severity unknown, counted as medium (werkrevisor)

hint; Jev: real 0.58, severity 1.0 of 3

Line 146's tasks.check { dependsOn("checkLicense") } is redundant: the com.github.jk1.dependency-license-report plugin (3.1.4) already wires checkLicense into check. The comment on line 145 explains why dependencyCheckAnalyze is intentionally NOT part of check (the NVD download would exceed the build timeout), so placing it right above a checkLicense line is confusing — a reader expects the comment to document the line below it. Either drop the redundant checkLicense line or move the comment so the two are not adjacent.

**Misleading comment with redundant wiring**, severity unknown, counted as medium (werkrevisor) hint; Jev: real 0.58, severity 1.0 of 3 Line 146's `tasks.check { dependsOn("checkLicense") }` is redundant: the `com.github.jk1.dependency-license-report` plugin (3.1.4) already wires `checkLicense` into `check`. The comment on line 145 explains why `dependencyCheckAnalyze` is intentionally NOT part of `check` (the NVD download would exceed the build timeout), so placing it right above a `checkLicense` line is confusing — a reader expects the comment to document the line below it. Either drop the redundant `checkLicense` line or move the comment so the two are not adjacent.
Author
Collaborator

Partly fixed in b85d5a9: the comment about OWASP Dependency-Check moved to its block, and checkLicense got its own comment.
The line itself stays: without it, ./gradlew check --dry-run lists no checkLicense, so plugin 3.1.4 does not add it to check.

Partly fixed in `b85d5a9`: the comment about OWASP Dependency-Check moved to its block, and checkLicense got its own comment. The line itself stays: without it, `./gradlew check --dry-run` lists no checkLicense, so plugin 3.1.4 does not add it to check.
claude-code marked this conversation as resolved
@@ -0,0 +54,4 @@
## Deviations from the Defaults of the Required Checks
- None. The mutation tests are still missing; they follow as a nightly build.
Collaborator

Writing rule: more than one sentence on a line (werkrevisor writing rule)

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

**Writing rule: more than one sentence on a line** (werkrevisor writing rule) Fix the line, or reply why it stays, and resolve this comment.
Author
Collaborator

Fixed in b85d5a9: one sentence per line.

Fixed in `b85d5a9`: one sentence per line.
claude-code marked this conversation as resolved
ai-reviewer scheduled this pull request to auto merge when all checks succeed 2026-10-13 11:24:39 +02:00
ai-reviewer requested review from mi 2026-10-13 11:24:39 +02:00
claude-code added 5 commits 2026-10-13 11:35:29 +02:00
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Version 0.38.0 after PR#60
werkator build succeeded after 01:39
ai-review/assessment human review required; a human approval unlocks the merge; a human review request is pending; merge already scheduled
ai-review/gate build succeeded after 02:08
3bba749daf
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
claude-code force-pushed claude-code/dependency-checks from b85d5a97b8 to 3bba749daf 2026-10-13 11:35:29 +02:00 Compare
Collaborator
🟡 werkrevisor YELLOW for 3bba749, superseded by the result for b92abeb

🟡 werkrevisor: YELLOW / HUMAN_REVIEW

Change kind: mixed.

Reasons

  • YELLOW risky paths changed: .werkrevisor.toml (built in)
  • YELLOW risky build changes according to Jev: dashboard/build.gradle.kts (weakens checks 0.05, risk 1.61, security 0.51)
  • hint 2 changed file(s) that neither weaken the checks, touch security nor show a risk category of jvm-spring-backend according to Jev
  • hint 1 build change(s) of low risk according to Jev: .werkator.yml (weakens checks 0.05, risk 1.34, security 0.67)
  • hint 1 finding(s) of low severity or rated minor by Jev: doc/prs/2026-10-13-PR#59-dependency-checks.md:83-84

Findings

  1. Unclear follow-up wording at doc/prs/2026-10-13-PR#59-dependency-checks.md:83-84, severity unknown, counted as medium

    hint; Jev: real 0.56, severity 1.4 of 3

    The Follow-up PRs section is terse and unexplained: "The build dependencies for each PR branch, once main knows its status context; the human then adds werkator/dependencies to the required checks of main." A reader unfamiliar with Werkator's status-context mechanism cannot tell why a successful main build is required before the human can add the context as a required check on PR branches, nor why the new build is restricted to branches: ["main"] for now. The accompanying .werkator.yml comment ("PR builds follow once main knows it") is equally terse; spelling out the rationale would make the follow-up actionable.

Classifier

8 of 8 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 14301, calls 1, tokens in 13807 / out 13854 (reasoning included in out), duration 121.8 s, cost 0.0207 USD (reported), classifier `jev-1.13.0` calls 8, tokens in 6257, cost 0.0003 USD, finding judge `jev-1.13.0` calls 1, tokens in 1946, cost 0.0001 USD, build file judge `jev-1.13.0` calls 4, tokens in 4886, cost 0.0002 USD, phases: path_judge 0.3 s, classifier 0.7 s, context 2.8 s, model_review 117.1 s, finding_judge 0.3 s, config: defaults + host + repository (.werkrevisor.toml at main bcf45a9).
Reviewed head `3bba749dafdfc728603aa399513c500d47afa533` against base `bcf45a996494d09be706fc7ec859bd3e824d77f1`, werkrevisor 0.41.0.
<!-- werkrevisor:3bba749dafdfc728603aa399513c500d47afa533 --> <!-- werkrevisor-verdict:YELLOW --> <!-- werkrevisor-blocks:6dc53ebdf5edf6e67062129ba0cc673f,2e587da85123d936e37c4b1000e3f3ea,0951fb17e0c38e61bbab9e7e249c2ebf,cb21867942d68e44d2ac278c624a5d12,203b1605de8f571521683cff98673180,88247425b3956973dc06e8009c6c333e,74f9169f358c89de0d9e647e82b4e9dd,e6e542b2bbdd80314f21df93bc3457f3,7464be505ac25745d237a8689df2918c,4f53b75d4aa310900d0f37053b1e651a,0cace83b1566d028f63a1d70604d161a,9e05d5ee49bd0db71ebd218942f1d800,3f47d3644833608fd369e3182da09937,7cc6285f52460d6edf3d8e4ab2e071df,91e11bf72c63185f5c1bcdf17253e919 --> <!-- werkrevisor-folded --> <details><summary>🟡 werkrevisor YELLOW for <code>3bba749</code>, superseded by <a href="http://git.javagil.de/mi/werkregie/pulls/59#issuecomment-5119">the result for <code>b92abeb</code></a></summary> ## 🟡 werkrevisor: YELLOW / HUMAN_REVIEW Change kind: `mixed`. ### Reasons - **YELLOW** risky paths changed: .werkrevisor.toml (built in) - **YELLOW** risky build changes according to Jev: dashboard/build.gradle.kts (weakens checks 0.05, risk 1.61, security 0.51) - **hint** 2 changed file(s) that neither weaken the checks, touch security nor show a risk category of jvm-spring-backend according to Jev - **hint** 1 build change(s) of low risk according to Jev: .werkator.yml (weakens checks 0.05, risk 1.34, security 0.67) - **hint** 1 finding(s) of low severity or rated minor by Jev: doc/prs/2026-10-13-PR#59-dependency-checks.md:83-84 ### Findings 1. **Unclear follow-up wording** at `doc/prs/2026-10-13-PR#59-dependency-checks.md:83-84`, severity unknown, counted as medium hint; Jev: real 0.56, severity 1.4 of 3 The Follow-up PRs section is terse and unexplained: "The build `dependencies` for each PR branch, once main knows its status context; the human then adds `werkator/dependencies` to the required checks of `main`." A reader unfamiliar with Werkator's status-context mechanism cannot tell why a successful main build is required before the human can add the context as a required check on PR branches, nor why the new build is restricted to `branches: ["main"]` for now. The accompanying .werkator.yml comment ("PR builds follow once main knows it") is equally terse; spelling out the rationale would make the follow-up actionable. ### Classifier 8 of 8 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 14301, calls 1, tokens in 13807 / out 13854 (reasoning included in out), duration 121.8 s, cost 0.0207 USD (reported), classifier `jev-1.13.0` calls 8, tokens in 6257, cost 0.0003 USD, finding judge `jev-1.13.0` calls 1, tokens in 1946, cost 0.0001 USD, build file judge `jev-1.13.0` calls 4, tokens in 4886, cost 0.0002 USD, phases: path_judge 0.3 s, classifier 0.7 s, context 2.8 s, model_review 117.1 s, finding_judge 0.3 s, config: defaults + host + repository (.werkrevisor.toml at main bcf45a9).<br> Reviewed head `3bba749dafdfc728603aa399513c500d47afa533` against base `bcf45a996494d09be706fc7ec859bd3e824d77f1`, werkrevisor 0.41.0. </sub> </details>
claude-code added 1 commit 2026-10-13 11:40:37 +02:00
The follow-up of the build dependencies explains why it waits for main
werkator build succeeded after 01:54
ai-review/assessment AI findings; a developer approval after checking them unlocks the merge; a human review request is pending; merge already scheduled
ai-review/gate build succeeded after 04:06
b92abeb06c
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Collaborator
🟠 werkrevisor ORANGE for b92abeb, superseded by the result for 7c9544b

🟠 werkrevisor: ORANGE / FINDINGS

Change kind: mixed.

Reasons

  • ORANGE 1 finding(s) that Jev rates as probably real and severe: .werkator.yml:38-44
  • YELLOW risky paths changed: .werkrevisor.toml (built in)
  • YELLOW risky build changes according to Jev: dashboard/build.gradle.kts (weakens checks 0.05, risk 1.64, security 0.55)
  • hint 2 changed file(s) that neither weaken the checks, touch security nor show a risk category of jvm-spring-backend according to Jev
  • hint 1 build change(s) of low risk according to Jev: .werkator.yml (weakens checks 0.05, risk 1.40, security 0.62)
  • hint 1 finding(s) possibly severe, but Jev doubts that they are real: .werkator.yml:33-44 (advisory: Jev judged every changed file)
  • hint 1 finding(s) of low severity or rated minor by Jev: dashboard/build.gradle.kts:128
  • hint model recommends merge with caution

Findings

  1. Reports not archived at .werkator.yml:38-44, severity unknown, counted as medium, ORANGE, as a line comment

  2. Empty timeout convention at .werkator.yml:33-44, severity unknown, counted as medium, YELLOW, as a line comment

  3. Misleading "nightly build" comment at dashboard/build.gradle.kts:128, severity unknown, counted as medium, hint, as a line comment

Classifier

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

Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 14285, calls 1, tokens in 13794 / out 21398 (reasoning included in out), duration 240.3 s, cost 0.0298 USD (reported), classifier `jev-1.13.0` calls 8, tokens in 6334, cost 0.0003 USD, finding judge `jev-1.13.0` calls 3, tokens in 5877, cost 0.0002 USD, build file judge `jev-1.13.0` calls 4, tokens in 4903, cost 0.0002 USD, phases: path_judge 0.3 s, classifier 0.5 s, context 0.9 s, model_review 237.6 s, finding_judge 0.2 s, config: defaults + host + repository (.werkrevisor.toml at main bcf45a9).
Reviewed head `b92abeb06c6db22c661aa17e28804e009626cbb1` against base `bcf45a996494d09be706fc7ec859bd3e824d77f1`, werkrevisor 0.41.0.
<!-- werkrevisor:b92abeb06c6db22c661aa17e28804e009626cbb1 --> <!-- werkrevisor-verdict:ORANGE --> <!-- werkrevisor-blocks:740ca2aa5af0f69de7bbac2df896a487,2e587da85123d936e37c4b1000e3f3ea,0951fb17e0c38e61bbab9e7e249c2ebf,cb21867942d68e44d2ac278c624a5d12,203b1605de8f571521683cff98673180,88247425b3956973dc06e8009c6c333e,74f9169f358c89de0d9e647e82b4e9dd,e6e542b2bbdd80314f21df93bc3457f3,7464be505ac25745d237a8689df2918c,4f53b75d4aa310900d0f37053b1e651a,0cace83b1566d028f63a1d70604d161a,9e05d5ee49bd0db71ebd218942f1d800,9f6d8bc11dcad19b54289acddf7a8dc7,7cc6285f52460d6edf3d8e4ab2e071df,91e11bf72c63185f5c1bcdf17253e919 --> <!-- werkrevisor-folded --> <details><summary>🟠 werkrevisor ORANGE for <code>b92abeb</code>, superseded by <a href="http://git.javagil.de/mi/werkregie/pulls/59#issuecomment-5128">the result for <code>7c9544b</code></a></summary> ## 🟠 werkrevisor: ORANGE / FINDINGS Change kind: `mixed`. ### Reasons - **ORANGE** 1 finding(s) that Jev rates as probably real and severe: .werkator.yml:38-44 - **YELLOW** risky paths changed: .werkrevisor.toml (built in) - **YELLOW** risky build changes according to Jev: dashboard/build.gradle.kts (weakens checks 0.05, risk 1.64, security 0.55) - **hint** 2 changed file(s) that neither weaken the checks, touch security nor show a risk category of jvm-spring-backend according to Jev - **hint** 1 build change(s) of low risk according to Jev: .werkator.yml (weakens checks 0.05, risk 1.40, security 0.62) - **hint** 1 finding(s) possibly severe, but Jev doubts that they are real: .werkator.yml:33-44 (advisory: Jev judged every changed file) - **hint** 1 finding(s) of low severity or rated minor by Jev: dashboard/build.gradle.kts:128 - **hint** model recommends merge with caution ### Findings 1. **Reports not archived** at `.werkator.yml:38-44`, severity unknown, counted as medium, ORANGE, as a line comment 2. **Empty timeout convention** at `.werkator.yml:33-44`, severity unknown, counted as medium, YELLOW, as a line comment 3. **Misleading "nightly build" comment** at `dashboard/build.gradle.kts:128`, severity unknown, counted as medium, hint, as a line comment ### Classifier 8 of 8 units passed all questions (1 PR document(s)). <sub> Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 14285, calls 1, tokens in 13794 / out 21398 (reasoning included in out), duration 240.3 s, cost 0.0298 USD (reported), classifier `jev-1.13.0` calls 8, tokens in 6334, cost 0.0003 USD, finding judge `jev-1.13.0` calls 3, tokens in 5877, cost 0.0002 USD, build file judge `jev-1.13.0` calls 4, tokens in 4903, cost 0.0002 USD, phases: path_judge 0.3 s, classifier 0.5 s, context 0.9 s, model_review 237.6 s, finding_judge 0.2 s, config: defaults + host + repository (.werkrevisor.toml at main bcf45a9).<br> Reviewed head `b92abeb06c6db22c661aa17e28804e009626cbb1` against base `bcf45a996494d09be706fc7ec859bd3e824d77f1`, werkrevisor 0.41.0. </sub> </details>
ai-reviewer left a comment
Collaborator

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

werkrevisor: ORANGE / FINDINGS for `b92abeb06c6db22c661aa17e28804e009626cbb1`. The result comment of werkrevisor holds the details. <!-- werkrevisor-review:b92abeb06c6db22c661aa17e28804e009626cbb1 -->
@@ -30,2 +30,4 @@
stdoutLog: build.stdout.log
stderrLog: build.stderr.log
# The known vulnerabilities of the dependencies (doc/risk-analysis.md). The first download of the NVD data takes
Collaborator

Empty timeout convention, severity unknown, counted as medium (werkrevisor)

YELLOW; Jev: real 0.47, severity 2.8 of 3

The Werkator dependencies build uses timeout: "", which the inline comment and the PR doc claim means "host's longest timeout" / "no timeout". This is a Werkator-specific value and not a standard YAML duration; without confirming Werkator's parser, an unexpected default could be applied. If Werkator treats the empty value as a short default, the first download (the comment says it exceeds the default build's 10 minutes) will time out, defeating the reason this build is split off.

**Empty timeout convention**, severity unknown, counted as medium (werkrevisor) YELLOW; Jev: real 0.47, severity 2.8 of 3 The Werkator `dependencies` build uses `timeout: ""`, which the inline comment and the PR doc claim means "host's longest timeout" / "no timeout". This is a Werkator-specific value and not a standard YAML duration; without confirming Werkator's parser, an unexpected default could be applied. If Werkator treats the empty value as a short default, the first download (the comment says it exceeds the default build's 10 minutes) will time out, defeating the reason this build is split off.
Author
Collaborator

No change of the value: Werkator's docs/configuration.md, builds.default.timeout, says "Empty takes the host's executor.buildTimeout; a longer value is capped to it".
Without it, the build would inherit the 10 min of default; werkator's own build mutation uses timeout: "" the same way.
7c9544b names it in a comment.

No change of the value: Werkator's docs/configuration.md, builds.default.timeout, says "Empty takes the host's executor.buildTimeout; a longer value is capped to it". Without it, the build would inherit the 10 min of default; werkator's own build mutation uses timeout: "" the same way. `7c9544b` names it in a comment.
claude-code marked this conversation as resolved
@@ -32,0 +35,4 @@
# NVD_API_KEY comes from the host's .git/werkator/.werkator.yml.
# Only main for now: Werkator reads statusContext from main, so on a branch that alone defines this build
# it would report as "werkator" and overwrite the status of default; PR branches follow once main has the context.
dependencies:
Collaborator

Reports not archived, severity unknown, counted as medium (werkrevisor)

ORANGE; Jev: real 0.88, severity 2.6 of 3

The dependencies build declares no artifactDirs, so the OWASP Dependency-Check reports produced at dashboard/build/reports/dependency-check/ (HTML and JSON, configured in dependencyCheck { formats = listOf("HTML", "JSON") }) are not archived as build artifacts. On a failed run the report is lost with the runner, making triage of the named vulnerability harder than for the default build, which does archive dashboard/build/reports.

**Reports not archived**, severity unknown, counted as medium (werkrevisor) ORANGE; Jev: real 0.88, severity 2.6 of 3 The `dependencies` build declares no `artifactDirs`, so the OWASP Dependency-Check reports produced at `dashboard/build/reports/dependency-check/` (HTML and JSON, configured in `dependencyCheck { formats = listOf("HTML", "JSON") }`) are not archived as build artifacts. On a failed run the report is lost with the runner, making triage of the named vulnerability harder than for the default build, which does archive `dashboard/build/reports`.
Author
Collaborator

The reports are archived: a named build inherits everything from builds.default but its trigger (Werkator's docs/configuration.md: "the only part a definition does NOT inherit"), so artifactDirs [dashboard/build/reports] applies, and the dependency-check report lies in dashboard/build/reports/dependency-check.
7c9544b names it in a comment.

The reports are archived: a named build inherits everything from builds.default but its trigger (Werkator's docs/configuration.md: "the only part a definition does NOT inherit"), so artifactDirs [dashboard/build/reports] applies, and the dependency-check report lies in dashboard/build/reports/dependency-check. `7c9544b` names it in a comment.
claude-code marked this conversation as resolved
@@ -105,0 +125,4 @@
// an empty key, e.g. a variable set to "", counts as none: the NVD refuses a key of length 0
apiKey = providers.environmentVariable("NVD_API_KEY").orElse(providers.gradleProperty("OWASP_API_KEY"))
.orNull?.takeIf { it.isNotBlank() }
// the nightly build "dependencies" of .werkator.yml updates the data in the shared Gradle home
Collaborator

Misleading "nightly build" comment, severity unknown, counted as medium (werkrevisor)

hint; Jev: real 0.68, severity 1.2 of 3

The comment "the nightly build 'dependencies' of .werkator.yml updates the data in the shared Gradle home" sits next to validForHours = 24, but .werkator.yml triggers the dependencies build with onPush: true, branches: ["main"], i.e. on every push, not on a nightly schedule. The wording misleads future readers about when the NVD cache is refreshed and is inconsistent with the trigger in the same PR.

**Misleading "nightly build" comment**, severity unknown, counted as medium (werkrevisor) hint; Jev: real 0.68, severity 1.2 of 3 The comment "the nightly build 'dependencies' of .werkator.yml updates the data in the shared Gradle home" sits next to `validForHours = 24`, but `.werkator.yml` triggers the `dependencies` build with `onPush: true, branches: ["main"]`, i.e. on every push, not on a nightly schedule. The wording misleads future readers about when the NVD cache is refreshed and is inconsistent with the trigger in the same PR.
Author
Collaborator

Fixed in 7c9544b: the comment names the build on each push to main and the update at most once a day.

Fixed in `7c9544b`: the comment names the build on each push to main and the update at most once a day.
claude-code marked this conversation as resolved
claude-code added 1 commit 2026-10-13 11:46:08 +02:00
The build dependencies names its timeout and inherited reports; no nightly build in the comment
werkator build succeeded after 01:58
ai-review/assessment human review required; a human approval unlocks the merge; a human review request is pending; merge already scheduled
ai-review/gate build succeeded after 02:44
7c9544bca1
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Collaborator

🟡 werkrevisor: YELLOW / HUMAN_REVIEW

Change kind: mixed.

Reasons

  • YELLOW risky paths changed: .werkrevisor.toml (built in)
  • YELLOW risky build changes according to Jev: .werkator.yml (weakens checks 0.07, risk 1.56, security 0.55), dashboard/build.gradle.kts (weakens checks 0.05, risk 1.60, security 0.48)
  • hint 2 changed file(s) that neither weaken the checks, touch security nor show a risk category of jvm-spring-backend according to Jev

Classifier

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

Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 14423, calls 1, tokens in 13926 / out 15537 (reasoning included in out), duration 154.4 s, cost 0.0228 USD (reported), classifier `jev-1.13.0` calls 8, tokens in 6334, cost 0.0003 USD, build file judge `jev-1.13.0` calls 4, tokens in 4968, cost 0.0002 USD, phases: path_judge 0.3 s, classifier 0.5 s, context 1.7 s, model_review 150.4 s, config: defaults + host + repository (.werkrevisor.toml at main bcf45a9).
Reviewed head `7c9544bca16445994f88091f15dce3161d80f617` against base `bcf45a996494d09be706fc7ec859bd3e824d77f1`, werkrevisor 0.41.0.
<!-- werkrevisor:7c9544bca16445994f88091f15dce3161d80f617 --> <!-- werkrevisor-verdict:YELLOW --> <!-- werkrevisor-blocks:c082b39e626abcaccdeb8bdb5562c240,2e587da85123d936e37c4b1000e3f3ea,0951fb17e0c38e61bbab9e7e249c2ebf,cb21867942d68e44d2ac278c624a5d12,203b1605de8f571521683cff98673180,88247425b3956973dc06e8009c6c333e,74f9169f358c89de0d9e647e82b4e9dd,e6e542b2bbdd80314f21df93bc3457f3,2621a23ed722b77f7c39dfcbb91812c2,4f53b75d4aa310900d0f37053b1e651a,0cace83b1566d028f63a1d70604d161a,9e05d5ee49bd0db71ebd218942f1d800,9f6d8bc11dcad19b54289acddf7a8dc7,7cc6285f52460d6edf3d8e4ab2e071df,91e11bf72c63185f5c1bcdf17253e919 --> ## 🟡 werkrevisor: YELLOW / HUMAN_REVIEW Change kind: `mixed`. ### Reasons - **YELLOW** risky paths changed: .werkrevisor.toml (built in) - **YELLOW** risky build changes according to Jev: .werkator.yml (weakens checks 0.07, risk 1.56, security 0.55), dashboard/build.gradle.kts (weakens checks 0.05, risk 1.60, security 0.48) - **hint** 2 changed file(s) that neither weaken the checks, touch security nor show a risk category of jvm-spring-backend according to Jev ### Classifier 8 of 8 units passed all questions (1 PR document(s)). <sub> Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 14423, calls 1, tokens in 13926 / out 15537 (reasoning included in out), duration 154.4 s, cost 0.0228 USD (reported), classifier `jev-1.13.0` calls 8, tokens in 6334, cost 0.0003 USD, build file judge `jev-1.13.0` calls 4, tokens in 4968, cost 0.0002 USD, phases: path_judge 0.3 s, classifier 0.5 s, context 1.7 s, model_review 150.4 s, config: defaults + host + repository (.werkrevisor.toml at main bcf45a9).<br> Reviewed head `7c9544bca16445994f88091f15dce3161d80f617` against base `bcf45a996494d09be706fc7ec859bd3e824d77f1`, werkrevisor 0.41.0. </sub>
mi approved these changes 2026-10-13 13:50:42 +02:00
ai-reviewer merged commit 5fdfd84e29 into main 2026-10-13 13:50:43 +02:00
ai-reviewer deleted branch claude-code/dependency-checks 2026-10-13 13:50:43 +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/werkregie#59