Skip to content

feat(fr-gate): promotion-shape guard — only the train promotes - #104

Merged
LukasWodka merged 1 commit into
developfrom
feat/promotion-shape-guard
Jul 29, 2026
Merged

feat(fr-gate): promotion-shape guard — only the train promotes#104
LukasWodka merged 1 commit into
developfrom
feat/promotion-shape-guard

Conversation

@LukasWodka

@LukasWodkaLukasWodka commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

Hardening from today's parallel-promotion collision (backend#1336 indirect-merging the train's #1326): the gate now fails any PR targeting staging/main/master whose head isn't release-train/* or hotfix-backmerge/*, with an instructive error pointing at the train. Escapes: hotfix label (D14a single-repo lane) and skip-fr-gate (existing audited override). The old fashion stops compiling.

🤖 Generated with Claude Code


Note

Low Risk
Workflow-only enforcement on promotion PR shape; escapes for train branches, hotfix back-merges, hotfix label, and skip-fr-gate are unchanged in intent.

Overview
Adds a promotion-shape guard to the reusable FR gate so PRs into staging, main, or master must come from sanctioned lanes, not ad-hoc manual promotions.

The new step runs after the existing skip-fr-gate check and fails the job when the head ref is not release-train/* or hotfix-backmerge/* and the PR lacks the hotfix label. The error message directs teams to the release train workflow and documents the emergency overrides (hotfix, skip-fr-gate). A short comment notes that skip-fr-gate also skips this guard.

Reviewed by Cursor Bugbot for commit 0e5f5a7. Bugbot is set up for automated code reviews on this repo. Configure here.

Manual promotion PRs (head=staging/develop into prod branches) bypass the
train's Bugbot soft-gate, tagging and records, and indirect-merge its PRs
(backend#1336, 2026-07-29). The gate now fails any promotion-target PR
whose head is not release-train/* or hotfix-backmerge/*, unless labeled
'hotfix' (D14a emergency lane) or 'skip-fr-gate' (audited override).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@LukasWodka

Copy link
Copy Markdown
ContributorAuthor

👋 Heads-up — Code review queue is at 33 / 30

Above the WIP limit. The team convention is to review existing PRs before opening new work.

Open PRs currently in Code review (oldest first):

Pull from review before opening new work. (This is a nudge from the kanban WIP check, not a block.)

@LukasWodka
LukasWodka merged commit 0f53856 into developJul 29, 2026
5 checks passed
@LukasWodka
LukasWodka deleted the feat/promotion-shape-guard branch August 1, 2026 21:45
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@LukasWodka