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 writing rules violated in the changed docs: doc/prs/2026-10-11-PR#25-taiga-statuses.md:45: more than one sentence on a line
hint 10 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: dashboard/build.gradle.kts (weakens checks 0.02, risk 0.00, security 0.01)
Classifier
9 of 9 units passed all questions (1 PR document(s)).
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 59039, calls 1, tokens in 57075 / out 27959 (reasoning included in out), duration 327.8 s, cost 0.0506 USD (reported), classifier `jev-1.13.0` calls 9, tokens in 7169, cost 0.0003 USD, build file judge `jev-1.13.0` calls 11, tokens in 16357, cost 0.0007 USD, phases: path_judge 0.7 s, classifier 0.7 s, context 3.6 s, model_review 322.1 s, config: defaults + host + repository (.werkrevisor.toml at main 3a553e5).
Reviewed head `3b2e3737ebbbd4ddf5b1ba556f870784cc4ef1b4` against base `3a553e58641c11e90d46b798937d15a986ae0be8`, werkrevisor 0.32.7.
<!-- werkrevisor:3b2e3737ebbbd4ddf5b1ba556f870784cc4ef1b4 -->
<!-- werkrevisor-verdict:GREEN -->
<!-- werkrevisor-blocks:1fef775917be3c610b1402c54b08e8b3,27be4b37fca56e6739932033dcc0a44a,53762f43b6838fe0bb7b55c181c12498,286bc444d92db8c8787cc9a89ff98266,659cd5856a40fdd2cba0fa23eceaf767,09219022246c78d089d0169134013144,3d01e84930457987da233eff02b78fb3,65377264b264c0290d9afeee54b281e5,9482e77b64c3e39e114a565f7ae09a0d,216ac7743fcb0450aa98219d94eb43f5,05d084d466b1e89b211239828fea3d0c,e856e0412b652dd841d0877f4dd0a035,900cc6c0036de6c54f03ffc29e5ff8d4,7392c9dacd52ff1be17f341ba168a319,ed73de1dfad5b14f3942a2ca5a74db77,5a2c3ea89db64794e995660a8c8a097c,ce1f71b20fe9a42746cb81a8ce296412,1bb6e66e9d5ebeadeec3c630a7f6e050,fa780f4be1811fef42cf5e8574e09e13,446cdb58d8c89cc073d709a04ba9ab66,7522b12b76f7b5f8bee3d0a51d8e9cd9,58eadd6c18ec870b818864fe49087978,41b7785226c6c4e1afbf3e506fff8999,ee95325691fd5e1d5dd3e0b1f30842dd,494ea205ea05d8c3773ed62b0c56ab4f,91049ed4b486c15b602ffbf82906adcc,35216a5d7c89c27980c6430b47b912ad,113d204dcf525c20147ee33cbeeec039,0a3124e30171c400e13a00bcf6eedd3a,ddf5f05376878f31850ece5b7e01a0ac,cdb2d128f8d72138449b546b2aab0b5b,baf1bd1104ab3da3025ac1b11f356606 -->
<!-- werkrevisor-folded -->
<details><summary>🟢 werkrevisor GREEN for <code>3b2e373</code>, superseded by <a href="http://git.javagil.de/mi/werkregie/pulls/25#issuecomment-3897">the result for <code>b17eafe</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** writing rules violated in the changed docs: doc/prs/2026-10-11-PR#25-taiga-statuses.md:45: more than one sentence on a line
- **hint** 10 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: dashboard/build.gradle.kts (weakens checks 0.02, risk 0.00, security 0.01)
### Classifier
9 of 9 units passed all questions (1 PR document(s)).
<sub>
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 59039, calls 1, tokens in 57075 / out 27959 (reasoning included in out), duration 327.8 s, cost 0.0506 USD (reported), classifier `jev-1.13.0` calls 9, tokens in 7169, cost 0.0003 USD, build file judge `jev-1.13.0` calls 11, tokens in 16357, cost 0.0007 USD, phases: path_judge 0.7 s, classifier 0.7 s, context 3.6 s, model_review 322.1 s, config: defaults + host + repository (.werkrevisor.toml at main 3a553e5).<br>
Reviewed head `3b2e3737ebbbd4ddf5b1ba556f870784cc4ef1b4` against base `3a553e58641c11e90d46b798937d15a986ae0be8`, werkrevisor 0.32.7.
</sub>
</details>
werkrevisor: GREEN / PASS for 3b2e3737ebbbd4ddf5b1ba556f870784cc4ef1b4.
The result comment of werkrevisor holds the details.
werkrevisor: GREEN / PASS for `3b2e3737ebbbd4ddf5b1ba556f870784cc4ef1b4`.
The result comment of werkrevisor holds the details.
<!-- werkrevisor-review:3b2e3737ebbbd4ddf5b1ba556f870784cc4ef1b4 -->
Gate: approved by werkrevisor; merge waits for 3 open hint(s): reply to each line comment and resolve it, then restart the review or push a commit.
Change kind: mixed.
Reasons
hint approval of werkrevisor for 3b2e373 not carried over: 1 approved block(s) are missing
hint 10 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: dashboard/build.gradle.kts (weakens checks 0.02, risk 0.00, security 0.01)
hint 3 finding(s) of low severity or rated minor by Jev: doc/werkregie.werkbaum:35-36, dashboard/src/main/kotlin/de/hoennig/werkregie/dashboard/sources/TaigaSource.kt:138, doc/prs/2026-10-11-PR#25-taiga-statuses.md:30-37
Findings
Werkbaum node title now contradicts description at doc/werkregie.werkbaum:35-36, severity unknown, counted as medium, hint, as a line comment
Colour regex allows non-CSS hex lengths at dashboard/src/main/kotlin/de/hoennig/werkregie/dashboard/sources/TaigaSource.kt:138, severity unknown, counted as medium, hint, as a line comment
Scenario#25.01 Given is incomplete at doc/prs/2026-10-11-PR#25-taiga-statuses.md:30-37, severity unknown, counted as medium, hint, as a line comment
Classifier
9 of 9 units passed all questions (1 PR document(s)).
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 59040, calls 1, tokens in 57077 / out 21216 (reasoning included in out), duration 216.5 s, cost 0.0426 USD (reported), classifier `jev-1.13.0` calls 9, tokens in 7177, cost 0.0003 USD, finding judge `jev-1.13.0` calls 3, tokens in 6544, cost 0.0003 USD, build file judge `jev-1.13.0` calls 11, tokens in 16357, cost 0.0007 USD, phases: path_judge 0.8 s, classifier 0.7 s, context 2.8 s, model_review 211.3 s, finding_judge 0.3 s, config: defaults + host + repository (.werkrevisor.toml at main 3a553e5).
Reviewed head `b17eafe9b4de74b2efa0afbaf295943a2cfce35a` against base `3a553e58641c11e90d46b798937d15a986ae0be8`, werkrevisor 0.32.7.
<!-- werkrevisor:b17eafe9b4de74b2efa0afbaf295943a2cfce35a -->
<!-- werkrevisor-verdict:GREEN -->
<!-- werkrevisor-blocks:1fef775917be3c610b1402c54b08e8b3,27be4b37fca56e6739932033dcc0a44a,53762f43b6838fe0bb7b55c181c12498,286bc444d92db8c8787cc9a89ff98266,659cd5856a40fdd2cba0fa23eceaf767,09219022246c78d089d0169134013144,3d01e84930457987da233eff02b78fb3,65377264b264c0290d9afeee54b281e5,9482e77b64c3e39e114a565f7ae09a0d,216ac7743fcb0450aa98219d94eb43f5,05d084d466b1e89b211239828fea3d0c,e856e0412b652dd841d0877f4dd0a035,900cc6c0036de6c54f03ffc29e5ff8d4,7392c9dacd52ff1be17f341ba168a319,ed73de1dfad5b14f3942a2ca5a74db77,5a2c3ea89db64794e995660a8c8a097c,ce1f71b20fe9a42746cb81a8ce296412,1bb6e66e9d5ebeadeec3c630a7f6e050,fa780f4be1811fef42cf5e8574e09e13,446cdb58d8c89cc073d709a04ba9ab66,7522b12b76f7b5f8bee3d0a51d8e9cd9,58eadd6c18ec870b818864fe49087978,41b7785226c6c4e1afbf3e506fff8999,ee95325691fd5e1d5dd3e0b1f30842dd,494ea205ea05d8c3773ed62b0c56ab4f,91049ed4b486c15b602ffbf82906adcc,35216a5d7c89c27980c6430b47b912ad,113d204dcf525c20147ee33cbeeec039,0a3124e30171c400e13a00bcf6eedd3a,ddf5f05376878f31850ece5b7e01a0ac,d558c8af7a109e1364cd8c374ac7191c,baf1bd1104ab3da3025ac1b11f356606 -->
<!-- werkrevisor-folded -->
<details><summary>🟢 werkrevisor GREEN for <code>b17eafe</code>, superseded by <a href="http://git.javagil.de/mi/werkregie/pulls/25#issuecomment-3926">the result for <code>7bb5353</code></a></summary>
## 🟢 werkrevisor: GREEN / PASS
Gate: approved by werkrevisor; merge waits for 3 open hint(s): reply to each line comment and resolve it, then restart the review or push a commit.
Change kind: `mixed`.
### Reasons
- **hint** approval of werkrevisor for `3b2e373` not carried over: 1 approved block(s) are missing
- **hint** 10 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: dashboard/build.gradle.kts (weakens checks 0.02, risk 0.00, security 0.01)
- **hint** 3 finding(s) of low severity or rated minor by Jev: doc/werkregie.werkbaum:35-36, dashboard/src/main/kotlin/de/hoennig/werkregie/dashboard/sources/TaigaSource.kt:138, doc/prs/2026-10-11-PR#25-taiga-statuses.md:30-37
### Findings
1. **Werkbaum node title now contradicts description** at `doc/werkregie.werkbaum:35-36`, severity unknown, counted as medium, hint, as a line comment
2. **Colour regex allows non-CSS hex lengths** at `dashboard/src/main/kotlin/de/hoennig/werkregie/dashboard/sources/TaigaSource.kt:138`, severity unknown, counted as medium, hint, as a line comment
3. **Scenario#25.01 Given is incomplete** at `doc/prs/2026-10-11-PR#25-taiga-statuses.md:30-37`, severity unknown, counted as medium, hint, as a line comment
### Classifier
9 of 9 units passed all questions (1 PR document(s)).
<sub>
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 59040, calls 1, tokens in 57077 / out 21216 (reasoning included in out), duration 216.5 s, cost 0.0426 USD (reported), classifier `jev-1.13.0` calls 9, tokens in 7177, cost 0.0003 USD, finding judge `jev-1.13.0` calls 3, tokens in 6544, cost 0.0003 USD, build file judge `jev-1.13.0` calls 11, tokens in 16357, cost 0.0007 USD, phases: path_judge 0.8 s, classifier 0.7 s, context 2.8 s, model_review 211.3 s, finding_judge 0.3 s, config: defaults + host + repository (.werkrevisor.toml at main 3a553e5).<br>
Reviewed head `b17eafe9b4de74b2efa0afbaf295943a2cfce35a` against base `3a553e58641c11e90d46b798937d15a986ae0be8`, werkrevisor 0.32.7.
</sub>
</details>
werkrevisor: GREEN / PASS for b17eafe9b4de74b2efa0afbaf295943a2cfce35a.
The result comment of werkrevisor holds the details.
werkrevisor: GREEN / PASS for `b17eafe9b4de74b2efa0afbaf295943a2cfce35a`.
The result comment of werkrevisor holds the details.
<!-- werkrevisor-review:b17eafe9b4de74b2efa0afbaf295943a2cfce35a -->
Colour regex allows non-CSS hex lengths, severity unknown, counted as medium (werkrevisor)
hint; Jev: real 0.86, severity 2.0 of 3
COLOR = Regex("^#[0-9a-fA-F]{3,8}$") (and the identical one in index.html) accepts any 3–8 digit hex string, but CSS only recognises 3, 4, 6 or 8 hex digits. A Taiga status whose colour is e.g. #abcde or #abcdef0 passes the regex, is forwarded to the page and stored in --dot, where the browser silently ignores it as invalid and the dot falls back to the default colour. Tightening the pattern to ^#([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$ would prevent this; the comment "nothing but a colour gets through" then matches reality.
**Colour regex allows non-CSS hex lengths**, severity unknown, counted as medium (werkrevisor)
hint; Jev: real 0.86, severity 2.0 of 3
`COLOR = Regex("^#[0-9a-fA-F]{3,8}$")` (and the identical one in `index.html`) accepts any 3–8 digit hex string, but CSS only recognises 3, 4, 6 or 8 hex digits. A Taiga status whose colour is e.g. `#abcde` or `#abcdef0` passes the regex, is forwarded to the page and stored in `--dot`, where the browser silently ignores it as invalid and the dot falls back to the default colour. Tightening the pattern to `^#([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$` would prevent this; the comment "nothing but a colour gets through" then matches reality.
Scenario#25.01 Given is incomplete, severity unknown, counted as medium (werkrevisor)
hint; Jev: real 0.76, severity 1.8 of 3
Scenario#25.01 specifies "Given statuses with [In Arbeit, In Progress], Bereit" (two entries), but the test cited under "Verified by" runs with three entries ([In Arbeit, In Progress], Bereit, [Neu, New]). The scenario as written does not cover the case that the cited test depends on; either the Given should add [Neu, New] or the verification link should point to a test that uses only two entries.
**Scenario#25.01 Given is incomplete**, severity unknown, counted as medium (werkrevisor)
hint; Jev: real 0.76, severity 1.8 of 3
Scenario#25.01 specifies "Given `statuses` with `[In Arbeit, In Progress]`, `Bereit`" (two entries), but the test cited under "Verified by" runs with three entries (`[In Arbeit, In Progress]`, `Bereit`, `[Neu, New]`). The scenario as written does not cover the case that the cited test depends on; either the Given should add `[Neu, New]` or the verification link should point to a test that uses only two entries.
Werkbaum node title now contradicts description, severity unknown, counted as medium (werkrevisor)
hint; Jev: real 0.83, severity 1.2 of 3
The pre-existing node title "Configured statuses first, in their order" was accurate under the old code (unknown statuses ranked last). After this PR an unknown status returns rank -1 and sorts before configured ones, and the description newly added under it states "unknown ones first and marked", contradicting the title. The title is unchanged in the diff, so the Werkbaum now reads "Configured statuses first" while the actual order is unknown → configured → hidden. The description clarifies the behaviour, but the title should be reworded (e.g. "Statuses in their configured order, unknown first") to match.
**Werkbaum node title now contradicts description**, severity unknown, counted as medium (werkrevisor)
hint; Jev: real 0.83, severity 1.2 of 3
The pre-existing node title "Configured statuses first, in their order" was accurate under the old code (unknown statuses ranked last). After this PR an unknown status returns rank -1 and sorts before configured ones, and the description newly added under it states "unknown ones first and marked", contradicting the title. The title is unchanged in the diff, so the Werkbaum now reads "Configured statuses first" while the actual order is unknown → configured → hidden. The description clarifies the behaviour, but the title should be reworded (e.g. "Statuses in their configured order, unknown first") to match.
Gate: approved by werkrevisor; merge waits for 3 open hint(s): reply to each line comment and resolve it, then restart the review or push a commit.
Change kind: mixed.
Reasons
hint approval of werkrevisor for b17eafe not carried over: 5 approved block(s) are missing
hint 10 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: dashboard/build.gradle.kts (weakens checks 0.02, risk 0.00, security 0.01)
hint 3 finding(s) of low severity or rated minor by Jev: dashboard/src/main/resources/static/werkregie.css:261-269, dashboard/src/main/kotlin/de/hoennig/werkregie/dashboard/Model.kt:36-37, doc/werkregie.werkbaum:35-39
hint model recommends merge with caution
Findings
Hidden flag chip renders without colour at dashboard/src/main/resources/static/werkregie.css:261-269, severity unknown, counted as medium, hint, as a line comment
Color comment is inaccurate at dashboard/src/main/kotlin/de/hoennig/werkregie/dashboard/Model.kt:36-37, severity unknown, counted as medium, hint, as a line comment
Missing PR reference in Werkbaum at doc/werkregie.werkbaum:35-39, severity unknown, counted as medium, hint, as a line comment
Classifier
9 of 9 units passed all questions (1 PR document(s)).
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 59625, calls 1, tokens in 57623 / out 22918 (reasoning included in out), duration 200.4 s, cost 0.0448 USD (reported), classifier `jev-1.13.0` calls 9, tokens in 7223, cost 0.0003 USD, finding judge `jev-1.13.0` calls 3, tokens in 7522, cost 0.0003 USD, build file judge `jev-1.13.0` calls 11, tokens in 16470, cost 0.0007 USD, phases: path_judge 0.7 s, classifier 0.7 s, context 0.6 s, model_review 197.7 s, finding_judge 0.2 s, config: defaults + host + repository (.werkrevisor.toml at main 3a553e5).
Reviewed head `7bb5353e607f5a3ffb21c48f472cbda97c8be3de` against base `3a553e58641c11e90d46b798937d15a986ae0be8`, werkrevisor 0.32.7.
<!-- werkrevisor:7bb5353e607f5a3ffb21c48f472cbda97c8be3de -->
<!-- werkrevisor-verdict:GREEN -->
<!-- werkrevisor-blocks:1fef775917be3c610b1402c54b08e8b3,27be4b37fca56e6739932033dcc0a44a,53762f43b6838fe0bb7b55c181c12498,286bc444d92db8c8787cc9a89ff98266,659cd5856a40fdd2cba0fa23eceaf767,09219022246c78d089d0169134013144,3d01e84930457987da233eff02b78fb3,65377264b264c0290d9afeee54b281e5,9482e77b64c3e39e114a565f7ae09a0d,216ac7743fcb0450aa98219d94eb43f5,05d084d466b1e89b211239828fea3d0c,e856e0412b652dd841d0877f4dd0a035,900cc6c0036de6c54f03ffc29e5ff8d4,1b460a22c3f14b1566b166bbbb2ecf18,96cddb4e8affd720e34df17b4f773193,5a2c3ea89db64794e995660a8c8a097c,ce1f71b20fe9a42746cb81a8ce296412,1bb6e66e9d5ebeadeec3c630a7f6e050,fa780f4be1811fef42cf5e8574e09e13,446cdb58d8c89cc073d709a04ba9ab66,7522b12b76f7b5f8bee3d0a51d8e9cd9,58eadd6c18ec870b818864fe49087978,41b7785226c6c4e1afbf3e506fff8999,ee95325691fd5e1d5dd3e0b1f30842dd,494ea205ea05d8c3773ed62b0c56ab4f,91049ed4b486c15b602ffbf82906adcc,35216a5d7c89c27980c6430b47b912ad,113d204dcf525c20147ee33cbeeec039,0a3124e30171c400e13a00bcf6eedd3a,a67b6e2563eec3da6407254b9c0c8a01,690097f0c6314f0a9f64bc06bd27b9d8,760d0d4c77759a47500084c9d28a21b4 -->
<!-- werkrevisor-folded -->
<details><summary>🟢 werkrevisor GREEN for <code>7bb5353</code>, superseded by <a href="http://git.javagil.de/mi/werkregie/pulls/25#issuecomment-3937">the result for <code>a983eba</code></a></summary>
## 🟢 werkrevisor: GREEN / PASS
Gate: approved by werkrevisor; merge waits for 3 open hint(s): reply to each line comment and resolve it, then restart the review or push a commit.
Change kind: `mixed`.
### Reasons
- **hint** approval of werkrevisor for `b17eafe` not carried over: 5 approved block(s) are missing
- **hint** 10 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: dashboard/build.gradle.kts (weakens checks 0.02, risk 0.00, security 0.01)
- **hint** 3 finding(s) of low severity or rated minor by Jev: dashboard/src/main/resources/static/werkregie.css:261-269, dashboard/src/main/kotlin/de/hoennig/werkregie/dashboard/Model.kt:36-37, doc/werkregie.werkbaum:35-39
- **hint** model recommends merge with caution
### Findings
1. **Hidden flag chip renders without colour** at `dashboard/src/main/resources/static/werkregie.css:261-269`, severity unknown, counted as medium, hint, as a line comment
2. **Color comment is inaccurate** at `dashboard/src/main/kotlin/de/hoennig/werkregie/dashboard/Model.kt:36-37`, severity unknown, counted as medium, hint, as a line comment
3. **Missing PR reference in Werkbaum** at `doc/werkregie.werkbaum:35-39`, severity unknown, counted as medium, hint, as a line comment
### Classifier
9 of 9 units passed all questions (1 PR document(s)).
<sub>
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 59625, calls 1, tokens in 57623 / out 22918 (reasoning included in out), duration 200.4 s, cost 0.0448 USD (reported), classifier `jev-1.13.0` calls 9, tokens in 7223, cost 0.0003 USD, finding judge `jev-1.13.0` calls 3, tokens in 7522, cost 0.0003 USD, build file judge `jev-1.13.0` calls 11, tokens in 16470, cost 0.0007 USD, phases: path_judge 0.7 s, classifier 0.7 s, context 0.6 s, model_review 197.7 s, finding_judge 0.2 s, config: defaults + host + repository (.werkrevisor.toml at main 3a553e5).<br>
Reviewed head `7bb5353e607f5a3ffb21c48f472cbda97c8be3de` against base `3a553e58641c11e90d46b798937d15a986ae0be8`, werkrevisor 0.32.7.
</sub>
</details>
werkrevisor: GREEN / PASS for 7bb5353e607f5a3ffb21c48f472cbda97c8be3de.
The result comment of werkrevisor holds the details.
werkrevisor: GREEN / PASS for `7bb5353e607f5a3ffb21c48f472cbda97c8be3de`.
The result comment of werkrevisor holds the details.
<!-- werkrevisor-review:7bb5353e607f5a3ffb21c48f472cbda97c8be3de -->
Color comment is inaccurate, severity unknown, counted as medium (werkrevisor)
hint; Jev: real 0.86, severity 1.3 of 3
Item.color is documented as #rrggbb, but the validator in both TaigaSource (COLOR regex) and index.html accepts 3, 4, 6 or 8 hex digits; the PR document itself states "the same mechanism accepts # and 3, 4, 6 or 8 hex digits only". Taiga can return 3- or 4-digit colours, so the comment will mislead future readers.
**Color comment is inaccurate**, severity unknown, counted as medium (werkrevisor)
hint; Jev: real 0.86, severity 1.3 of 3
`Item.color` is documented as `#rrggbb`, but the validator in both `TaigaSource` (`COLOR` regex) and `index.html` accepts 3, 4, 6 or 8 hex digits; the PR document itself states "the same mechanism accepts `#` and 3, 4, 6 or 8 hex digits only". Taiga can return 3- or 4-digit colours, so the comment will mislead future readers.
Hidden flag chip renders without colour, severity unknown, counted as medium (werkrevisor)
hint; Jev: real 0.88, severity 1.9 of 3
TaigaSource.item now adds Flag("hidden") to tasks whose status is in hiddenStatuses.
The page renders that flag with class flag flag-hidden, but no .flag-hidden rule
exists in the CSS — only .flag-stuck/-rework/-approve/-merge/-review/-approved/-direct/-mention/-unknown/-room/-unread set --flag. The base .flag rule uses background: var(--flag) and color: var(--bg), so with --flag undefined the background falls back to transparent and the white text in light mode becomes invisible on the white row. When the user toggles 1 ausgeblendet to show hidden items, the chip carries no visible indicator.
**Hidden flag chip renders without colour**, severity unknown, counted as medium (werkrevisor)
hint; Jev: real 0.88, severity 1.9 of 3
`TaigaSource.item` now adds `Flag("hidden")` to tasks whose status is in `hiddenStatuses`.
The page renders that flag with class `flag flag-hidden`, but no `.flag-hidden` rule
exists in the CSS — only `.flag-stuck/-rework/-approve/-merge/-review/-approved/-direct/-mention/-unknown/-room/-unread` set `--flag`. The base `.flag` rule uses `background: var(--flag)` and `color: var(--bg)`, so with `--flag` undefined the background falls back to transparent and the white text in light mode becomes invisible on the white row. When the user toggles `1 ausgeblendet` to show hidden items, the chip carries no visible indicator.
Missing PR reference in Werkbaum, severity unknown, counted as medium (werkrevisor)
hint; Jev: real 0.86, severity 1.0 of 3
The two sibling Taiga nodes added by this PR carry a Werkregie PR#25: description that names the PR that brought them live, but the third node, Taiga's status colours (XS), has no such line. The Werkbaum header states "Each PR updates this file with the status its merge brings" — the colours feature is brought live by this PR too and should carry the same attribution.
**Missing PR reference in Werkbaum**, severity unknown, counted as medium (werkrevisor)
hint; Jev: real 0.86, severity 1.0 of 3
The two sibling Taiga nodes added by this PR carry a `Werkregie PR#25:` description that names the PR that brought them live, but the third node, `Taiga's status colours (XS)`, has no such line. The Werkbaum header states "Each PR updates this file with the status its merge brings" — the colours feature is brought live by this PR too and should carry the same attribution.
hint approval of werkrevisor for 7bb5353 not carried over: 4 approved block(s) are missing
hint 10 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: dashboard/build.gradle.kts (weakens checks 0.02, risk 0.00, security 0.01)
Classifier
9 of 9 units passed all questions (1 PR document(s)).
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 59750, calls 1, tokens in 57742 / out 18927 (reasoning included in out), duration 172.7 s, cost 0.0400 USD (reported), classifier `jev-1.13.0` calls 9, tokens in 7223, cost 0.0003 USD, build file judge `jev-1.13.0` calls 11, tokens in 16528, cost 0.0007 USD, phases: path_judge 0.8 s, classifier 0.6 s, context 0.5 s, model_review 170.2 s, config: defaults + host + repository (.werkrevisor.toml at main 212a98a).
Reviewed head `a983eba1910d29c8f383986e39422d6cbb15f14b` against base `212a98a69c4a378d5bc30150bfd1a822dc1dfd0f`, werkrevisor 0.32.7.
<!-- werkrevisor:a983eba1910d29c8f383986e39422d6cbb15f14b -->
<!-- werkrevisor-verdict:GREEN -->
<!-- werkrevisor-blocks:1fef775917be3c610b1402c54b08e8b3,27be4b37fca56e6739932033dcc0a44a,53762f43b6838fe0bb7b55c181c12498,286bc444d92db8c8787cc9a89ff98266,659cd5856a40fdd2cba0fa23eceaf767,09219022246c78d089d0169134013144,3d01e84930457987da233eff02b78fb3,65377264b264c0290d9afeee54b281e5,04117bd0dcadb4dc57a63819d54bf542,216ac7743fcb0450aa98219d94eb43f5,05d084d466b1e89b211239828fea3d0c,e856e0412b652dd841d0877f4dd0a035,900cc6c0036de6c54f03ffc29e5ff8d4,1b460a22c3f14b1566b166bbbb2ecf18,1fe8e4222ad4651bb6e1a8928096da1b,5a2c3ea89db64794e995660a8c8a097c,ce1f71b20fe9a42746cb81a8ce296412,1bb6e66e9d5ebeadeec3c630a7f6e050,fa780f4be1811fef42cf5e8574e09e13,446cdb58d8c89cc073d709a04ba9ab66,7522b12b76f7b5f8bee3d0a51d8e9cd9,58eadd6c18ec870b818864fe49087978,944113028ed51e9eba48d65990b4b09a,ee95325691fd5e1d5dd3e0b1f30842dd,494ea205ea05d8c3773ed62b0c56ab4f,91049ed4b486c15b602ffbf82906adcc,35216a5d7c89c27980c6430b47b912ad,113d204dcf525c20147ee33cbeeec039,0a3124e30171c400e13a00bcf6eedd3a,a67b6e2563eec3da6407254b9c0c8a01,690097f0c6314f0a9f64bc06bd27b9d8,3ae98b43984b0fe1ec6ffd2196813fa1 -->
<!-- werkrevisor-folded -->
<details><summary>🟢 werkrevisor GREEN for <code>a983eba</code>, superseded by <a href="http://git.javagil.de/mi/werkregie/pulls/25#issuecomment-3982">the result for <code>667ad3c</code></a></summary>
## 🟢 werkrevisor: GREEN / PASS
Change kind: `mixed`.
### Reasons
- **hint** approval of werkrevisor for `7bb5353` not carried over: 4 approved block(s) are missing
- **hint** 10 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: dashboard/build.gradle.kts (weakens checks 0.02, risk 0.00, security 0.01)
### Classifier
9 of 9 units passed all questions (1 PR document(s)).
<sub>
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 59750, calls 1, tokens in 57742 / out 18927 (reasoning included in out), duration 172.7 s, cost 0.0400 USD (reported), classifier `jev-1.13.0` calls 9, tokens in 7223, cost 0.0003 USD, build file judge `jev-1.13.0` calls 11, tokens in 16528, cost 0.0007 USD, phases: path_judge 0.8 s, classifier 0.6 s, context 0.5 s, model_review 170.2 s, config: defaults + host + repository (.werkrevisor.toml at main 212a98a).<br>
Reviewed head `a983eba1910d29c8f383986e39422d6cbb15f14b` against base `212a98a69c4a378d5bc30150bfd1a822dc1dfd0f`, werkrevisor 0.32.7.
</sub>
</details>
werkrevisor: GREEN / PASS for a983eba1910d29c8f383986e39422d6cbb15f14b.
The result comment of werkrevisor holds the details.
werkrevisor: GREEN / PASS for `a983eba1910d29c8f383986e39422d6cbb15f14b`.
The result comment of werkrevisor holds the details.
<!-- werkrevisor-review:a983eba1910d29c8f383986e39422d6cbb15f14b -->
werkrevisor: GREEN / PASS for 667ad3ce4bacfeebae9f171a6b9775f25f07ed2b.
The result comment of werkrevisor holds the details.
werkrevisor: GREEN / PASS for `667ad3ce4bacfeebae9f171a6b9775f25f07ed2b`.
The result comment of werkrevisor holds the details.
<!-- werkrevisor-review:667ad3ce4bacfeebae9f171a6b9775f25f07ed2b -->
ai-reviewer
scheduled this pull request to auto merge when all checks succeed 2026-10-11 14:03:16 +02:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Taiga-Status: gleichwertige Namen, ausgeblendete Status (einblendbar), unbekannte vorn markiert, Taigas Farben.
🤖 Generated with Claude Code
3d493bac06to3b2e3737eb🟢 werkrevisor GREEN for
3b2e373, superseded by the result forb17eafe🟢 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
Classifier
9 of 9 units passed all questions (1 PR document(s)).
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 59039, calls 1, tokens in 57075 / out 27959 (reasoning included in out), duration 327.8 s, cost 0.0506 USD (reported), classifier `jev-1.13.0` calls 9, tokens in 7169, cost 0.0003 USD, build file judge `jev-1.13.0` calls 11, tokens in 16357, cost 0.0007 USD, phases: path_judge 0.7 s, classifier 0.7 s, context 3.6 s, model_review 322.1 s, config: defaults + host + repository (.werkrevisor.toml at main3a553e5).Reviewed head `3b2e3737ebbbd4ddf5b1ba556f870784cc4ef1b4` against base `3a553e58641c11e90d46b798937d15a986ae0be8`, werkrevisor 0.32.7.
werkrevisor: GREEN / PASS for
3b2e3737ebbbd4ddf5b1ba556f870784cc4ef1b4.The result comment of werkrevisor holds the details.
@@ -0,0 +42,4 @@- **Given** an item in a status that `statuses` and `hiddenStatuses` do not name- **When** the page shows the panel "Aufgaben"- **Then** the item stands first and carries the marker "? Status unbekannt"Writing rule: more than one sentence on a line (werkrevisor writing rule)
Fix the line, or reply why it stays, and resolve this comment.
fixed in
b17eafe: the question mark of the marker "? Status unbekannt" read as the end of a sentence; the line names it in words now.New commits pushed, approval review dismissed automatically according to repository settings
🟢 werkrevisor GREEN for
b17eafe, superseded by the result for7bb5353🟢 werkrevisor: GREEN / PASS
Gate: approved by werkrevisor; merge waits for 3 open hint(s): reply to each line comment and resolve it, then restart the review or push a commit.
Change kind:
mixed.Reasons
3b2e373not carried over: 1 approved block(s) are missingFindings
Werkbaum node title now contradicts description at
doc/werkregie.werkbaum:35-36, severity unknown, counted as medium, hint, as a line commentColour regex allows non-CSS hex lengths at
dashboard/src/main/kotlin/de/hoennig/werkregie/dashboard/sources/TaigaSource.kt:138, severity unknown, counted as medium, hint, as a line commentScenario#25.01 Given is incomplete at
doc/prs/2026-10-11-PR#25-taiga-statuses.md:30-37, severity unknown, counted as medium, hint, as a line commentClassifier
9 of 9 units passed all questions (1 PR document(s)).
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 59040, calls 1, tokens in 57077 / out 21216 (reasoning included in out), duration 216.5 s, cost 0.0426 USD (reported), classifier `jev-1.13.0` calls 9, tokens in 7177, cost 0.0003 USD, finding judge `jev-1.13.0` calls 3, tokens in 6544, cost 0.0003 USD, build file judge `jev-1.13.0` calls 11, tokens in 16357, cost 0.0007 USD, phases: path_judge 0.8 s, classifier 0.7 s, context 2.8 s, model_review 211.3 s, finding_judge 0.3 s, config: defaults + host + repository (.werkrevisor.toml at main3a553e5).Reviewed head `b17eafe9b4de74b2efa0afbaf295943a2cfce35a` against base `3a553e58641c11e90d46b798937d15a986ae0be8`, werkrevisor 0.32.7.
werkrevisor: GREEN / PASS for
b17eafe9b4de74b2efa0afbaf295943a2cfce35a.The result comment of werkrevisor holds the details.
@@ -115,0 +135,4 @@private companion object {// the page puts it into a style attribute, so nothing but a colour gets throughval COLOR = Regex("^#[0-9a-fA-F]{3,8}$")Colour regex allows non-CSS hex lengths, severity unknown, counted as medium (werkrevisor)
hint; Jev: real 0.86, severity 2.0 of 3
COLOR = Regex("^#[0-9a-fA-F]{3,8}$")(and the identical one inindex.html) accepts any 3–8 digit hex string, but CSS only recognises 3, 4, 6 or 8 hex digits. A Taiga status whose colour is e.g.#abcdeor#abcdef0passes the regex, is forwarded to the page and stored in--dot, where the browser silently ignores it as invalid and the dot falls back to the default colour. Tightening the pattern to^#([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$would prevent this; the comment "nothing but a colour gets through" then matches reality.fixed in
7bb5353@@ -0,0 +27,4 @@… so that one order fits projects that name a status differently.- **Given** `statuses` with `[In Arbeit, In Progress]`, `Bereit`Scenario#25.01 Given is incomplete, severity unknown, counted as medium (werkrevisor)
hint; Jev: real 0.76, severity 1.8 of 3
Scenario#25.01 specifies "Given
statuseswith[In Arbeit, In Progress],Bereit" (two entries), but the test cited under "Verified by" runs with three entries ([In Arbeit, In Progress],Bereit,[Neu, New]). The scenario as written does not cover the case that the cited test depends on; either the Given should add[Neu, New]or the verification link should point to a test that uses only two entries.fixed in
7bb5353@@ -33,6 +33,10 @@" Werkregie PR#21: panel Aufgaben; login by user and password from the environment." Werkregie PR#23: the API address from Taiga's conf.json, as on a host of its own.- [^] Configured statuses first, in their order (XS)Werkbaum node title now contradicts description, severity unknown, counted as medium (werkrevisor)
hint; Jev: real 0.83, severity 1.2 of 3
The pre-existing node title "Configured statuses first, in their order" was accurate under the old code (unknown statuses ranked last). After this PR an unknown status returns rank -1 and sorts before configured ones, and the description newly added under it states "unknown ones first and marked", contradicting the title. The title is unchanged in the diff, so the Werkbaum now reads "Configured statuses first" while the actual order is unknown → configured → hidden. The description clarifies the behaviour, but the title should be reworded (e.g. "Statuses in their configured order, unknown first") to match.
fixed in
7bb5353New commits pushed, approval review dismissed automatically according to repository settings
🟢 werkrevisor GREEN for
7bb5353, superseded by the result fora983eba🟢 werkrevisor: GREEN / PASS
Gate: approved by werkrevisor; merge waits for 3 open hint(s): reply to each line comment and resolve it, then restart the review or push a commit.
Change kind:
mixed.Reasons
b17eafenot carried over: 5 approved block(s) are missingFindings
Hidden flag chip renders without colour at
dashboard/src/main/resources/static/werkregie.css:261-269, severity unknown, counted as medium, hint, as a line commentColor comment is inaccurate at
dashboard/src/main/kotlin/de/hoennig/werkregie/dashboard/Model.kt:36-37, severity unknown, counted as medium, hint, as a line commentMissing PR reference in Werkbaum at
doc/werkregie.werkbaum:35-39, severity unknown, counted as medium, hint, as a line commentClassifier
9 of 9 units passed all questions (1 PR document(s)).
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 59625, calls 1, tokens in 57623 / out 22918 (reasoning included in out), duration 200.4 s, cost 0.0448 USD (reported), classifier `jev-1.13.0` calls 9, tokens in 7223, cost 0.0003 USD, finding judge `jev-1.13.0` calls 3, tokens in 7522, cost 0.0003 USD, build file judge `jev-1.13.0` calls 11, tokens in 16470, cost 0.0007 USD, phases: path_judge 0.7 s, classifier 0.7 s, context 0.6 s, model_review 197.7 s, finding_judge 0.2 s, config: defaults + host + repository (.werkrevisor.toml at main3a553e5).Reviewed head `7bb5353e607f5a3ffb21c48f472cbda97c8be3de` against base `3a553e58641c11e90d46b798937d15a986ae0be8`, werkrevisor 0.32.7.
werkrevisor: GREEN / PASS for
7bb5353e607f5a3ffb21c48f472cbda97c8be3de.The result comment of werkrevisor holds the details.
@@ -33,6 +33,8 @@ data class Item(val flags: List<Flag> = emptyList(),// the order within its panel where the source knows it, lower first, e.g. a task by its configured statusval rank: Int? = null,// the source's own colour of the state, as #rrggbb, e.g. a Taiga statusColor comment is inaccurate, severity unknown, counted as medium (werkrevisor)
hint; Jev: real 0.86, severity 1.3 of 3
Item.coloris documented as#rrggbb, but the validator in bothTaigaSource(COLORregex) andindex.htmlaccepts 3, 4, 6 or 8 hex digits; the PR document itself states "the same mechanism accepts#and 3, 4, 6 or 8 hex digits only". Taiga can return 3- or 4-digit colours, so the comment will mislead future readers.fixed in
a983eba@@ -257,5 +257,5 @@.flag-approved { --flag: var(--green); }.flag { display: inline-flex; align-items: center; gap: 6px; padding: 1px 8px; border-radius: 4px; background: var(--flag); color: var(--bg); font: 600 11px var(--mono); letter-spacing: 0.06em; text-transform: uppercase; white-space: nowrap; }.flag-reason { font-weight: 400; text-transform: none; letter-spacing: 0; font-family: var(--sans); }.flag-count { font-weight: 600; color: var(--clay); }/* drafts: nobody's turn yet */Hidden flag chip renders without colour, severity unknown, counted as medium (werkrevisor)
hint; Jev: real 0.88, severity 1.9 of 3
TaigaSource.itemnow addsFlag("hidden")to tasks whose status is inhiddenStatuses.The page renders that flag with class
flag flag-hidden, but no.flag-hiddenruleexists in the CSS — only
.flag-stuck/-rework/-approve/-merge/-review/-approved/-direct/-mention/-unknown/-room/-unreadset--flag. The base.flagrule usesbackground: var(--flag)andcolor: var(--bg), so with--flagundefined the background falls back to transparent and the white text in light mode becomes invisible on the white row. When the user toggles1 ausgeblendetto show hidden items, the chip carries no visible indicator.fixed in
a983eba@@ -33,3 +33,3 @@" Werkregie PR#21: panel Aufgaben; login by user and password from the environment." Werkregie PR#23: the API address from Taiga's conf.json, as on a host of its own.- [^] Configured statuses first, in their order (XS)- [^] Statuses in their configured order, unknown ones first (XS)Missing PR reference in Werkbaum, severity unknown, counted as medium (werkrevisor)
hint; Jev: real 0.86, severity 1.0 of 3
The two sibling Taiga nodes added by this PR carry a
Werkregie PR#25:description that names the PR that brought them live, but the third node,Taiga's status colours (XS), has no such line. The Werkbaum header states "Each PR updates this file with the status its merge brings" — the colours feature is brought live by this PR too and should carry the same attribution.fixed in
a983ebaNew commits pushed, approval review dismissed automatically according to repository settings
🟢 werkrevisor GREEN for
a983eba, superseded by the result for667ad3c🟢 werkrevisor: GREEN / PASS
Change kind:
mixed.Reasons
7bb5353not carried over: 4 approved block(s) are missingClassifier
9 of 9 units passed all questions (1 PR document(s)).
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 59750, calls 1, tokens in 57742 / out 18927 (reasoning included in out), duration 172.7 s, cost 0.0400 USD (reported), classifier `jev-1.13.0` calls 9, tokens in 7223, cost 0.0003 USD, build file judge `jev-1.13.0` calls 11, tokens in 16528, cost 0.0007 USD, phases: path_judge 0.8 s, classifier 0.6 s, context 0.5 s, model_review 170.2 s, config: defaults + host + repository (.werkrevisor.toml at main212a98a).Reviewed head `a983eba1910d29c8f383986e39422d6cbb15f14b` against base `212a98a69c4a378d5bc30150bfd1a822dc1dfd0f`, werkrevisor 0.32.7.
werkrevisor: GREEN / PASS for
a983eba1910d29c8f383986e39422d6cbb15f14b.The result comment of werkrevisor holds the details.
a983eba191to667ad3ce4bNew commits pushed, approval review dismissed automatically according to repository settings
🟢 werkrevisor: GREEN / PASS
Change kind:
mixed.Reasons
a983ebanot carried over: 1 approved block(s) are missingClassifier
9 of 9 units passed all questions (1 PR document(s)).
Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 59759, calls 1, tokens in 57752 / out 21391 (reasoning included in out), duration 230.8 s, cost 0.0430 USD (reported), classifier `jev-1.13.0` calls 9, tokens in 7223, cost 0.0003 USD, build file judge `jev-1.13.0` calls 11, tokens in 16528, cost 0.0007 USD, phases: path_judge 0.7 s, classifier 0.6 s, context 1.2 s, model_review 227.0 s, config: defaults + host + repository (.werkrevisor.toml at main212a98a).Reviewed head `667ad3ce4bacfeebae9f171a6b9775f25f07ed2b` against base `212a98a69c4a378d5bc30150bfd1a822dc1dfd0f`, werkrevisor 0.32.7.
werkrevisor: GREEN / PASS for
667ad3ce4bacfeebae9f171a6b9775f25f07ed2b.The result comment of werkrevisor holds the details.