Problem
dev-lead's fix-review only acts on review threads/findings (advisory-bot comments). When dev-lead's own change breaks a CI check (e.g. a red bats assertion or shellcheck warning) that has no associated review finding, the fix-review returns status=no-changes and the PR sits BLOCKED indefinitely — dev-lead won't fix a regression it introduced because the failing check isn't a 'finding' it recognizes.
Concrete case (2026-07-23)
PR #887 (implementing #886) regressed Lint and bats:
Expected
dev-lead's fix loop should treat a required CI check that its own commits turned from green→red as a first-class thing to fix — diff the failing check against the PR base, reproduce the failure, and fix it (or escalate to needs-human with the specific failing test named). Silent no-changes on a self-introduced red check is the worst outcome (looks 'done', actually stuck).
Scope
- In the fix-review loop (dev-lead-fix-reviews / review-cycle), detect failing required checks (not just review threads); if a check regressed vs base and there are no findings, attempt a fix or set
needs-human with the failing-check detail — never exit no-changes while a required check is red.
- Add a guard/test for: 'required check red + no review findings' → must NOT resolve as no-changes.
Refs: #886/#887 (the incident), Epic #850.
Problem
dev-lead's fix-review only acts on review threads/findings (advisory-bot comments). When dev-lead's own change breaks a CI check (e.g. a red bats assertion or shellcheck warning) that has no associated review finding, the fix-review returns
status=no-changesand the PR sits BLOCKED indefinitely — dev-lead won't fix a regression it introduced because the failing check isn't a 'finding' it recognizes.Concrete case (2026-07-23)
PR #887 (implementing #886) regressed
Lint and bats:not ok 26 opens a PR to INSERT the baseline when the repo has no .gitignore— was green on main (last run 2026-07-20, sha 49ecdfb:ok 26), red on feat: implement issue #886 — [#850] repo-template baseline re-seed pins BARE @dev-lead/stable — reverts the v<M>-stable convergence (flapping) #887.status=no-changes(intent=review-changes,intent=fix-bot-comment). It never addressed the failing test.needs-human-labeled). A human had to intervene.Expected
dev-lead's fix loop should treat a required CI check that its own commits turned from green→red as a first-class thing to fix — diff the failing check against the PR base, reproduce the failure, and fix it (or escalate to
needs-humanwith the specific failing test named). Silentno-changeson a self-introduced red check is the worst outcome (looks 'done', actually stuck).Scope
needs-humanwith the failing-check detail — never exitno-changeswhile a required check is red.Refs: #886/#887 (the incident), Epic #850.