Description
The anti-slop GitHub Actions workflow (.github/workflows/anti-slop.yml) auto-closes legitimate PRs from team members within ~2 minutes of opening.
Root cause
.github/pull_request_template.md contains an HTML comment instructing LLMs to prepend "PINEAPPLE" to the PR description — classic honeypot. But anti-slop.yml:50 lists PINEAPPLE as a blocked-terms, so any PR that follows the template's own instruction (i.e. AI-assisted PRs, which includes most legitimate agent-authored code-review + fix flows) gets auto-closed.
Separately, close-pr: true is set with no TEAM_MEMBERS carve-out. The pr-standards.yml workflow has a TEAM_MEMBERS exemption pattern but anti-slop does not — so even team members listed in .github/TEAM_MEMBERS are subject to auto-close.
Evidence
PR #739 (my legitimate BQ finops fix, 8 files, 496 LOC, passed all other CI checks, had a consensus code review from 3 external models) was auto-closed 2 minutes after opening with:
This PR was automatically closed by our quality checks. Common reasons: New GitHub account with limited contribution history, PR description doesn't meet our guidelines, Contribution appears to be AI-generated without meaningful review.
My account (anandgupta42) is in TEAM_MEMBERS, has >30-day age, and a merge history well above the threshold. The only failure vector was the PINEAPPLE term I followed the template instruction to include.
Impact
- Every AI-assisted PR from team members gets auto-closed.
- Reopening requires a maintainer and loses CI history.
- Disincentivizes using agent-authored workflows that follow the PR template correctly.
Proposed fix
Minimal change: set close-pr: false in anti-slop.yml. Keep all the quality signals (labels, comments, failure message) so the action still flags spam PRs, but don't auto-close. Maintainers can close manually when needed.
Out of scope (follow-ups)
- Decide whether to keep
PINEAPPLE as a honeypot at all (the template actively induces the behavior).
- Consider adding a
TEAM_MEMBERS carve-out to anti-slop like pr-standards.yml has.
Description
The
anti-slopGitHub Actions workflow (.github/workflows/anti-slop.yml) auto-closes legitimate PRs from team members within ~2 minutes of opening.Root cause
.github/pull_request_template.mdcontains an HTML comment instructing LLMs to prepend "PINEAPPLE" to the PR description — classic honeypot. Butanti-slop.yml:50listsPINEAPPLEas ablocked-terms, so any PR that follows the template's own instruction (i.e. AI-assisted PRs, which includes most legitimate agent-authored code-review + fix flows) gets auto-closed.Separately,
close-pr: trueis set with no TEAM_MEMBERS carve-out. Thepr-standards.ymlworkflow has a TEAM_MEMBERS exemption pattern butanti-slopdoes not — so even team members listed in.github/TEAM_MEMBERSare subject to auto-close.Evidence
PR #739 (my legitimate BQ finops fix, 8 files, 496 LOC, passed all other CI checks, had a consensus code review from 3 external models) was auto-closed 2 minutes after opening with:
My account (
anandgupta42) is inTEAM_MEMBERS, has >30-day age, and a merge history well above the threshold. The only failure vector was the PINEAPPLE term I followed the template instruction to include.Impact
Proposed fix
Minimal change: set
close-pr: falseinanti-slop.yml. Keep all the quality signals (labels, comments, failure message) so the action still flags spam PRs, but don't auto-close. Maintainers can close manually when needed.Out of scope (follow-ups)
PINEAPPLEas a honeypot at all (the template actively induces the behavior).TEAM_MEMBERScarve-out toanti-sloplikepr-standards.ymlhas.