scripts/select-queue.sh ranked Renovate's Dependency Dashboard (#22) as an ordinary priority: low candidate. With the backlog now entirely priority: low (ordered by issue number), #22 sorted to the top and was the first thing the selector proposed to every fresh session — a bot-rewritten status board whose checkboxes are commands to Renovate, not work items. A session that trusts the selector's "DEPS/tiering/ordering are deterministic — trust them" contract would either waste a pickup on it or make the exact undocumented judgment call the script exists to eliminate. (This session hit it live.)
Fix
Drop bot-authored issues in the same jq pass that already drops PRs / in-progress / parked:
| (.user.login // "") as $author
| select(($author == "renovate" or ($author | test("\\[bot\\]$"))) | not)
A bot's actionable output is PRs (already excluded); it never files a human work-item issue, so the whole class is never a pickup. Matches the concrete renovate login plus the GitHub name[bot] convention so a future bot dashboard is excluded too. Documented in the script's header alongside the existing label/PR/dependency exclusions.
Also (kickoff process)
Made "scan for bundle-able siblings after claiming" an explicit kickoff step (new step 4 in docs/handoffs/chicorytv-issue-queue.md) with a third bundle axis — shared label / adjacent subject — so a session sweeps small independent same-label issues together instead of one at a time. This PR's own bundle (#553 + #512, two ci-cd tooling-hygiene fixes) is the worked example.
Verification
bash -n + shellcheck clean.
Ran the patched selector: #22 is absent; genuine backlog issues (#74, #248, #297, #381, #392, #414, …) still rank.
Confirmed #22 is the only bot-authored open issue (grouped all 36 open issues by author → only renovate → [22]), so nothing legitimate is dropped.
Cold independent adversarial review: VERDICT: MERGEABLE (jq null-guard/regex/placement/pagination/doc-renumber all verified).
Done-when
scripts/select-queue.sh no longer ranks #22 (or any future bot-authored dashboard) as a candidate
The exclusion is documented in the script's header comment alongside the existing label/PR/dependency exclusions
Verified by running the selector and confirming #22 is absent while genuine backlog issues still rank
Adversarial review passed, with Review-verdict: referencing the PR's current head sha
Docs-only/tooling change — no .cs, no API, no web build, no migration.
Fixes #553.
## What
`scripts/select-queue.sh` ranked Renovate's **Dependency Dashboard (#22)** as an ordinary `priority: low` candidate. With the backlog now entirely `priority: low` (ordered by issue number), #22 sorted to the **top** and was the first thing the selector proposed to every fresh session — a bot-rewritten status board whose checkboxes are commands to Renovate, not work items. A session that trusts the selector's "DEPS/tiering/ordering are deterministic — trust them" contract would either waste a pickup on it or make the exact undocumented judgment call the script exists to eliminate. (This session hit it live.)
## Fix
Drop bot-authored issues in the same jq pass that already drops PRs / `in-progress` / `parked`:
```jq
| (.user.login // "") as $author
| select(($author == "renovate" or ($author | test("\\[bot\\]$"))) | not)
```
A bot's actionable output is PRs (already excluded); it never files a human work-item issue, so the whole class is never a pickup. Matches the concrete `renovate` login plus the GitHub `name[bot]` convention so a future bot dashboard is excluded too. Documented in the script's header alongside the existing label/PR/dependency exclusions.
## Also (kickoff process)
Made **"scan for bundle-able siblings after claiming"** an explicit kickoff step (new **step 4** in `docs/handoffs/chicorytv-issue-queue.md`) with a third bundle axis — **shared label / adjacent subject** — so a session sweeps small independent same-label issues together instead of one at a time. This PR's own bundle (#553 + #512, two `ci-cd` tooling-hygiene fixes) is the worked example.
## Verification
- `bash -n` + `shellcheck` clean.
- Ran the patched selector: **#22 is absent**; genuine backlog issues (#74, #248, #297, #381, #392, #414, …) still rank.
- Confirmed #22 is the **only** bot-authored open issue (grouped all 36 open issues by author → only `renovate → [22]`), so nothing legitimate is dropped.
- Cold independent adversarial review: **VERDICT: MERGEABLE** (jq null-guard/regex/placement/pagination/doc-renumber all verified).
## Done-when
- [x] `scripts/select-queue.sh` no longer ranks #22 (or any future bot-authored dashboard) as a candidate
- [x] The exclusion is documented in the script's header comment alongside the existing label/PR/dependency exclusions
- [x] Verified by running the selector and confirming #22 is absent while genuine backlog issues still rank
- [ ] Adversarial review passed, with `Review-verdict:` referencing the PR's current head sha
Docs-only/tooling change — no `.cs`, no API, no web build, no migration.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
scripts/select-queue.sh ranked Renovate's Dependency Dashboard (#22) as an
ordinary `priority: low` candidate. With an all-low backlog ordered by issue
number, #22 sorted to the top and was proposed to every fresh session — a bot-
rewritten status board whose checkboxes are commands to Renovate, not work
items. A session trusting the selector's "trust the ordering" contract would
either waste a pickup or make the exact undocumented judgment call the script
exists to eliminate (this session hit it live).
Drop bot-authored issues in the same jq pass that drops PRs/in-progress/parked:
match login `renovate` plus the GitHub `name[bot]` convention so a future bot
dashboard is excluded too. A bot's actionable output is PRs (already excluded);
it never files a human work-item issue, so the whole class is never a pickup.
Also make "scan for bundle-able siblings after claiming" an explicit kickoff
step (new step 4) with a third bundle axis — shared label / adjacent subject —
so a session sweeps small independent same-label issues together (e.g. this
change's own #553 + #512 ci-cd hygiene bundle) instead of closing one at a time.
Verified: selector no longer lists #22; genuine backlog issues still rank; the
only bot-authored open issue is #22. shellcheck clean.
Fixes#553
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Cold, independent adversarial review (fresh-context reviewer, review-only brief) ran every check: .user.login present in the live payload; // "" null-guard verified (no null.login throw); \[bot\]$ regex survives the single-quoted-bash → jq passthrough; filter placement references nothing undefined and doesn't touch pagination (loop breaks on the raw pre-filter batch count); regression PASS (#22 absent, #74/#248/#297/#381/#392/#414 still rank; #22 confirmed the sole bot-authored open issue); bash -n + shellcheck clean; doc renumber clean 1..7 with the one back-reference correct. No findings above NIT.
Cold, independent adversarial review (fresh-context reviewer, review-only brief) ran every check: `.user.login` present in the live payload; `// ""` null-guard verified (no `null.login` throw); `\[bot\]$` regex survives the single-quoted-bash → jq passthrough; filter placement references nothing undefined and doesn't touch pagination (loop breaks on the raw pre-filter batch count); regression PASS (#22 absent, #74/#248/#297/#381/#392/#414 still rank; #22 confirmed the sole bot-authored open issue); `bash -n` + `shellcheck` clean; doc renumber clean 1..7 with the one back-reference correct. No findings above NIT.
Review-verdict: MERGEABLE @ 6208d668
⚠️ CI reds on this PR are infra, not code — the runner host hit No space left on device during the build step (EF migration + Functional E2E both failed inside dotnet build … Release, never reaching real assertions). Tracked in server-management#654. Build & test (.NET) already went green here on 6208d66. Merge is pending a clean rerun once the runner-host capacity issue is resolved — no code change needed.
⚠️ CI reds on this PR are **infra, not code** — the runner host hit `No space left on device` during the build step (EF migration + Functional E2E both failed inside `dotnet build … Release`, never reaching real assertions). Tracked in **server-management#654**. `Build & test (.NET)` already went green here on `6208d66`. Merge is pending a clean rerun once the runner-host capacity issue is resolved — no code change needed.
timothy
merged commit 869253cd83 into main2026-07-22 18:01:20 +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.
Fixes #553.
What
scripts/select-queue.shranked Renovate's Dependency Dashboard (#22) as an ordinarypriority: lowcandidate. With the backlog now entirelypriority: low(ordered by issue number), #22 sorted to the top and was the first thing the selector proposed to every fresh session — a bot-rewritten status board whose checkboxes are commands to Renovate, not work items. A session that trusts the selector's "DEPS/tiering/ordering are deterministic — trust them" contract would either waste a pickup on it or make the exact undocumented judgment call the script exists to eliminate. (This session hit it live.)Fix
Drop bot-authored issues in the same jq pass that already drops PRs /
in-progress/parked:A bot's actionable output is PRs (already excluded); it never files a human work-item issue, so the whole class is never a pickup. Matches the concrete
renovatelogin plus the GitHubname[bot]convention so a future bot dashboard is excluded too. Documented in the script's header alongside the existing label/PR/dependency exclusions.Also (kickoff process)
Made "scan for bundle-able siblings after claiming" an explicit kickoff step (new step 4 in
docs/handoffs/chicorytv-issue-queue.md) with a third bundle axis — shared label / adjacent subject — so a session sweeps small independent same-label issues together instead of one at a time. This PR's own bundle (#553 + #512, twoci-cdtooling-hygiene fixes) is the worked example.Verification
bash -n+shellcheckclean.renovate → [22]), so nothing legitimate is dropped.Done-when
scripts/select-queue.shno longer ranks #22 (or any future bot-authored dashboard) as a candidateReview-verdict:referencing the PR's current head shaDocs-only/tooling change — no
.cs, no API, no web build, no migration.🤖 Generated with Claude Code
Cold, independent adversarial review (fresh-context reviewer, review-only brief) ran every check:
.user.loginpresent in the live payload;// ""null-guard verified (nonull.loginthrow);\[bot\]$regex survives the single-quoted-bash → jq passthrough; filter placement references nothing undefined and doesn't touch pagination (loop breaks on the raw pre-filter batch count); regression PASS (#22 absent, #74/#248/#297/#381/#392/#414 still rank; #22 confirmed the sole bot-authored open issue);bash -n+shellcheckclean; doc renumber clean 1..7 with the one back-reference correct. No findings above NIT.Review-verdict: MERGEABLE @
6208d668⚠️ CI reds on this PR are infra, not code — the runner host hit
No space left on deviceduring the build step (EF migration + Functional E2E both failed insidedotnet build … Release, never reaching real assertions). Tracked in server-management#654.Build & test (.NET)already went green here on6208d66. Merge is pending a clean rerun once the runner-host capacity issue is resolved — no code change needed.