Skip to content

Commit beb2d83

Browse files
docs: declare the PR-gated remote - Phase 1 of the branching cutover
master is branch-protected (PR + green ci-ok for non-maintainers, linear history, rebase/squash only, no force-push/delete); release tags v* and stable/* are immutable by ruleset. CONTRIBUTING gains the Branching & merging section (lane/<lane>/<slug> house style, the one required check); CLAUDE.md/AGENTS.md note the transitional admin bypass - the local direct-commit ritual is unchanged until the fleet and release skills are converted to the PR path.
1 parent a0a0911 commit beb2d83

3 files changed

Lines changed: 41 additions & 0 deletions

File tree

AGENTS.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,12 @@ the preference is to land promptly, not defer. A few specifics:
186186
rule is the "Out-of-scope findings" section of [CLAUDE.md](CLAUDE.md).
187187
- **Ask first only for the hard-to-reverse / outward-facing** — pushing, tagging, a
188188
release, history rewrites. A local commit on `master` is none of those.
189+
- **The GitHub remote is PR-gated** (since 2026-06-10): a non-maintainer change
190+
lands via PR with the `ci-ok` check green; merges are rebase/squash only
191+
(linear history). Maintainer/fleet commits to local `master` are unchanged
192+
during the transition (admin bypass). PR-path work uses a
193+
`lane/<lane>/<slug>` branch in its own worktree — never switch the shared
194+
working tree's branch while another loop is editing it.
189195

190196
---
191197

CLAUDE.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -359,6 +359,21 @@ Match the existing commit-subject grammar (see `git log`). Do **not** add a
359359
agent co-authors on commits, and this overrides any harness default that
360360
appends one.
361361

362+
**The remote is PR-gated (Phase 1 of the branching cutover, 2026-06-10).**
363+
`master` on GitHub is branch-protected. For anyone but the maintainer, the
364+
way in is a PR with a green `ci-ok` check — the one required check; it folds
365+
the whole CI matrix into a single verdict. Merges are rebase or squash only
366+
(linear history; merge commits are off). Release tags (`v*`, `stable/*`)
367+
cannot be moved or deleted (a tag ruleset; admins keep a recovery bypass).
368+
The maintainer and this machine's fleet ride the admin bypass for now, so the
369+
local direct-commit-to-`master` ritual above is unchanged during the
370+
transition. PR-path work takes a `lane/<lane>/<slug>` branch in its **own
371+
worktree** (`git worktree add` — never switch the shared tree's branch under
372+
a concurrent loop); the branch name mirrors the arbiter's lane claim. The
373+
full cutover plan and the remaining steps (fleet + release-skill conversion,
374+
bypass removal) live in the private sibling repo,
375+
`notes/2026-06-10_branching-model-plan.md`.
376+
362377
### Out-of-scope findings — file an issue, don't widen the lane
363378

364379
Working in here you will notice things that need doing but are not your task —

CONTRIBUTING.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,26 @@ For the MCP server surface: `pip install -e ".[mcp]"` then `dos-mcp`.
6767
purpose; the suite is fast. A change that can't keep the suite green is a change that
6868
isn't ready.
6969

70+
## Branching & merging
71+
72+
`master` is the only long-lived branch, and it is protected:
73+
74+
- **Changes land via pull request.** Direct pushes are reserved to the
75+
maintainer (a transitional state); the contributor path is fork → branch → PR.
76+
- **One required check: `ci-ok`.** It folds the whole CI matrix (leak scan, lint,
77+
the test legs, the wheel build) into a single verdict. The PR can merge when it
78+
is green; no approving-review count is configured today (single-maintainer
79+
reality — see "Maintenance reality" below).
80+
- **Rebase or squash only.** Merge commits are disabled and linear history is
81+
enforced. A single-commit PR keeps its authored subject on squash, so write
82+
the subject to the repo's grammar (`git log` shows it).
83+
- **Branch naming:** `lane/<lane>/<slug>` (e.g. `lane/docs/fix-readme-link`) is
84+
the house style — `<lane>` mirrors the top-level directory the change touches,
85+
the same taxonomy `dos arbitrate` adjudicates. Helpful but not enforced for
86+
external PRs.
87+
- **Release tags are immutable** (`v*` and `stable/*`, by ruleset), and head
88+
branches auto-delete on merge.
89+
7090
## What makes a good change
7191

7292
- **Small, in one layer.** A PR that edits the kernel *and* a driver *and* a skill is

0 commit comments

Comments
 (0)