Repository navigation
Decide whether requires-manual-review label should actually block Renovate auto-merge #3556
Description
What happened
On PR #3552 the fullsend-ai review agent finished at 02:05 UTC and applied the requires-manual-review label (description: "Review requires human judgment") as part of a Medium [protected-path] finding — see the review workflow run. The PR's reviewDecision remained REVIEW_REQUIRED, no human commented or approved, and Renovate auto-merged the PR at 02:58 UTC (53 minutes later). Scanning recent Renovate .github/-only PRs shows the same sequence on #3553 (still open with the label applied) and #3338 (label applied, autoclosed unmerged after 39 CHANGES_REQUESTED re-fires). In every case the two automations disagree silently — the review agent asserts a human is needed, and the merge automation ignores that assertion.
What could go better
The two systems have contradictory contracts and neither is winning. If the label is meant to gate merges (as its description implies), Renovate should not have been able to auto-merge #3552 without a human. If the label is informational, the review agent should not be spending opus/high effort on a Medium finding whose only side effect is a label nobody consults. I am confident the disagreement exists — the evidence is direct on #3552. I am less certain which direction the maintainers want; that is a policy call, not a technical one. Note also that the broader upstream fixes for the review-side of this (see summary) are already tracked in fullsend-ai/fullsend, so the repo-side reconciliation is what remains uncovered.
Proposed change
Pick one direction and make it explicit in-repo: (a) Enforce the label. Add a small workflow (e.g., .github/workflows/gate-manual-review.yml) that runs on pull_request with types: [opened, labeled, unlabeled, synchronize, reopened], fails when the requires-manual-review label is present and passes otherwise, and wire it into main branch protection as a required status check. This makes Renovate's auto-merge wait until a human removes the label. (b) Accept auto-merge as intended. Add a short note to AGENTS.md (or a comment in renovate.json) documenting that requires-manual-review is informational-only for Renovate-authored PRs on this repo, and rely on the upstream tracker issues in fullsend-ai/fullsend (see summary — especially #5370, #2588, #4387, #4060) to eventually stop emitting Medium [protected-path] findings on verified SHA-only bot bumps. Either direction removes the silent disagreement.
Validation criteria
Within the next 5 Renovate PRs that touch .github/workflows/, one of these outcomes must hold. If (a): the new required check appears on each PR, is red while requires-manual-review is present, blocks Renovate's auto-merge, and turns green (allowing the merge) once a human removes the label. If (b): AGENTS.md (or renovate.json) contains an explicit note about the label's informational-only status for bot PRs, and the intended contract is discoverable to a new contributor reading either file. In both cases the retro agent should no longer flag this reconciliation gap on the next 5 Renovate .github/-only PRs.
Generated by retro agent from #3552
Activity
fullsend-ai-triage commentedon Sep 10, 2026
🤖 Finished Triage · ✅ Success · Started 3:05 AM UTC · Completed 3:08 AM UTC
Commit:
cd01138· View workflow run →Runtime: claude · Model: opus → claude-opus-4-7 · Effort: high · Cost: $0.79
fullsend-ai-triage commentedon Sep 10, 2026
Thanks for the detailed write-up with concrete PR evidence — the disagreement between the review agent applying
requires-manual-reviewand Renovate auto-merging is well-documented and reproducible.Before this can be dispatched for implementation, maintainers need to pick a direction. The two proposed options have very different scope and are mutually exclusive:
.github/workflows/plus a branch-protection change to make it a required status check. Heads-up: the code agent cannot modify files under.github/workflows/under current permissions, so option (a) would need a human to open the PR (or at minimum land the workflow file), and a repo admin to update branch protection.AGENTS.mdand/or a comment inrenovate.jsonclarifying thatrequires-manual-reviewis informational for Renovate-authored PRs. The code agent can do this end-to-end.Which direction do you want to take — (a) enforce, or (b) document as informational? If (a), please also confirm you (or an admin) are willing to handle the workflow-file PR and the branch-protection update after the docs/scoping work lands.
Labels: Issue concerns CI automation and Renovate behavior in this repo.