Skip to content

Protect main, and add the docs-only companion to the PR gate - #4

Merged
ChrisonSimtian merged 1 commit into
mainfrom
chore/protect-main
Aug 13, 2026
Merged

Protect main, and add the docs-only companion to the PR gate#4
ChrisonSimtian merged 1 commit into
mainfrom
chore/protect-main

Conversation

@ChrisonSimtian

Copy link
Copy Markdown
Contributor

Follow-up to #3 — this was pushed to that branch moments after it merged, so it needs its own PR.

Branch protection and the merge/tag settings are already applied to the repo (they're API state, not files). What's here is the repository-side companion to them.

Protection applied (mirrors the framework repo field-for-field)

Setting Value
Required status check ubuntu-latest, non-strict
Pull request required yes, 0 approvals + code-owner review
Linear history required
Conversation resolution required
Force-push / deletion blocked
enforce_admins false — admins keep an escape hatch
Tag ruleset v* creation/deletion/update blocked, admins bypass
Merge squash + rebase, no merge commits, delete branch on merge

The tag ruleset matters more here than in Fallout: every release channel in publish.yml is tag-triggered, so an accidental tag is an accidental release.

What's in this PR

.github/CODEOWNERS — follows Fallout's scoping rather than covering everything: shipped code only (src/, plugins/). The build orchestrator, CI and docs have no owner and are gated by the status check alone, so routine build work still lands without a second pair of eyes.

.github/workflows/build-skip.yml — the companion Fallout already worked out. build.yml ignores **/*.md, so without a substitute a docs-only PR sits blocked forever on a required check that never reports. This fires on the exact inverse path set and reports success under the same ubuntu-latest context.

build.yml's exclude list is narrowed to that single pattern so the two sets can't drift — my earlier !.github/workflows/** negation made the complement impossible to state correctly, which is precisely how such a gap opens.

Note

#3 merged as a merge commit at 02:51:12, one second before these settings landed. Merge commits are now disabled and linear history is required, so this PR needs squash or rebase.

🤖 Generated with Claude Code

Branch protection on main now mirrors the framework repo field-for-field:
the ubuntu-latest check required, PRs required, linear history, conversation
resolution, no force-pushes or deletions, and admins exempt so an emergency
fix or a stuck check is still unblockable. A v* tag ruleset blocks tag
creation/deletion/update for non-admins, which matters more here than in
Fallout: every release channel in publish.yml is tag-triggered.

CODEOWNERS follows Fallout's scoping rather than covering everything —
shipped code only (src/, plugins/), leaving the build orchestrator, CI and
docs gated by the status check alone. Routine build work doesn't need a
second pair of eyes; the extension and the published plugin do.

build-skip.yml is the companion Fallout already worked out: build.yml
ignores **/*.md, so without a substitute a docs-only PR would sit blocked
forever on a required check that never reports. It fires on the exact
inverse path set and reports success under the same ubuntu-latest context.
build.yml's exclude list is narrowed to that single pattern so the two sets
cannot drift — the earlier negation carve-out made the complement
impossible to state, which is exactly how such a gap opens.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@ChrisonSimtian ChrisonSimtian added the skip-changelog Housekeeping with no consumer-facing release note. label Aug 13, 2026
@ChrisonSimtian
ChrisonSimtian merged commit 3155cfd into main Aug 13, 2026
1 check passed
@ChrisonSimtian
ChrisonSimtian deleted the chore/protect-main branch August 13, 2026 03:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

skip-changelog Housekeeping with no consumer-facing release note.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant