The tracked next-step said "align gate.yml's push trigger with this repo's feat/**
prefix". Doing that literally would have made things worse, so this does the opposite.
act_runner runs at capacity 1. A branch push and its PR fire the same gate over the same tree, and the redundant run serialises ahead of the PR run — doubling the wall
clock on the one result that gates the merge. Adding another prefix widens that problem. infra/plex/claim-ship.sh currently has to pick a feat/ branch name specifically to dodge this, during a loop racing a short-lived token.
The list also silently failed to match this repo's own convention — branches here are feat/**, which was absent, so "fast feedback" never fired for the most common prefix.
Nobody noticed for a month, because the only symptom of a wrong entry is a missing run.
Any hand-maintained prefix list has that failure mode; deleting the list removes the class
rather than correcting one entry.
It was redundant anyway: CLAUDE.md already requires ./ci/gate.sh in the pinned toolbox
before pushing (74s locally), and the PR gate re-runs it authoritatively.
push: [main] is kept — post-merge main must still be verified, and it's the only run
for which no PR context exists.
The tracked next-step said *"align `gate.yml`'s push trigger with this repo's `feat/**`
prefix"*. **Doing that literally would have made things worse**, so this does the opposite.
`act_runner` runs at **capacity 1**. A branch push and its PR fire the *same* gate over the
*same* tree, and the redundant run **serialises ahead of the PR run** — doubling the wall
clock on the one result that gates the merge. Adding another prefix widens that problem.
`infra/plex/claim-ship.sh` currently has to pick a `feat/` branch name specifically to
*dodge* this, during a loop racing a short-lived token.
The list also silently failed to match this repo's own convention — branches here are
`feat/**`, which was absent, so "fast feedback" never fired for the most common prefix.
Nobody noticed for a month, because **the only symptom of a wrong entry is a missing run.**
Any hand-maintained prefix list has that failure mode; deleting the list removes the class
rather than correcting one entry.
It was redundant anyway: `CLAUDE.md` already requires `./ci/gate.sh` in the pinned toolbox
before pushing (74s locally), and the PR gate re-runs it authoritatively.
`push: [main]` is **kept** — post-merge main must still be verified, and it's the only run
for which no PR context exists.
Gate: **PASS, rc 0, 74s**.
Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
🤖 Generated with [Claude Code](https://claude.com/claude-code)
The tracked next-step said "align gate.yml's push trigger with this repo's feat/**
prefix". Doing that literally would have made things worse, so this does the opposite.
act_runner runs at capacity 1. A branch push and its PR fire the SAME gate over the SAME
tree, and the redundant run SERIALISES AHEAD of the PR run -- doubling the wall clock on
the one result that gates the merge. Adding another prefix widens that, it does not fix
it. infra/plex/claim-ship.sh currently has to pick a feat/ branch name specifically to
DODGE this, during a loop that is racing a short-lived token.
The prefix list also silently failed to match this repo's own convention: branches here
are feat/**, which was absent, so the "fast feedback" never fired for the most common
prefix. Nobody noticed for a month because the only symptom of a wrong entry is a MISSING
run. Any hand-maintained prefix list has that failure mode. Deleting the list removes the
whole class rather than correcting one entry.
It was redundant anyway: CLAUDE.md already requires ./ci/gate.sh in the pinned toolbox
before pushing (74s locally), and the PR gate re-runs it authoritatively.
push: [main] is KEPT -- post-merge main must still be verified, and it is the only run for
which no PR context exists.
FOLLOW-UP once this and #5 are both merged: the feat/ rationale in
infra/plex/claim-ship.sh becomes obsolete and its comment should be trimmed. The script
keeps working either way.
Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
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.
The tracked next-step said "align
gate.yml's push trigger with this repo'sfeat/**prefix". Doing that literally would have made things worse, so this does the opposite.
act_runnerruns at capacity 1. A branch push and its PR fire the same gate over thesame tree, and the redundant run serialises ahead of the PR run — doubling the wall
clock on the one result that gates the merge. Adding another prefix widens that problem.
infra/plex/claim-ship.shcurrently has to pick afeat/branch name specifically tododge this, during a loop racing a short-lived token.
The list also silently failed to match this repo's own convention — branches here are
feat/**, which was absent, so "fast feedback" never fired for the most common prefix.Nobody noticed for a month, because the only symptom of a wrong entry is a missing run.
Any hand-maintained prefix list has that failure mode; deleting the list removes the class
rather than correcting one entry.
It was redundant anyway:
CLAUDE.mdalready requires./ci/gate.shin the pinned toolboxbefore pushing (74s locally), and the PR gate re-runs it authoritatively.
push: [main]is kept — post-merge main must still be verified, and it's the only runfor which no PR context exists.
Gate: PASS, rc 0, 74s.
Co-Authored-By: Claude Opus 5 (1M context) [email protected]
🤖 Generated with Claude Code