All Changes Land via PR Against Main

Rule

Every change lands via PR against main — including the maintainer’s. Branch protection enforces it. No direct pushes, no admin-bypass merges, no “I’ll fix it after.” Every commit on main traces back to a PR; every PR traces back to a reviewed branch.

Opening a PR is also the ready-to-merge signal. A pushed branch, Workroom, or Build Studio build is the place for in-flight handoff and recovery. Do not open a PR as a parking place, early visibility marker, or draft handoff. GitHub draft PRs are not used in DPF’s normal delivery lane: agents must open regular ready-for-review PRs and must not pass --draft to gh pr create. If an agent opens a PR before the branch has passed the relevant build, migration, and UX gates, close the PR and keep the branch alive. If an agent accidentally opens a draft PR after gates are green, immediately mark it ready for review so CI and operator review stay visible in the normal PR lane.

Why

PR review is the cheapest cross-check the platform has. Two minutes of a reviewer’s eyes catches the wrong-file edit, the off-by-one, the secret accidentally committed, the migration that doesn’t roll back. Direct pushes skip that check entirely and trade a known-bounded cost (PR review latency) for an unknown-bounded one (cost of the defect that slipped through). The PR audit chain also makes the codebase’s history readable: every change has a description, a discussion, a CI run, and a merge timestamp — that’s the operational evidence DPF’s compliance and on-call posture both depend on.

Applies To

In-platform coworkers (Build Studio’s feature PRs), external coding agents (Claude / Codex working on the repo), and humans (including the maintainer). Symmetric. Applies to feature work, bug fixes, documentation, configuration, and dependency bumps. Does NOT apply to operational hot-fixes during a confirmed production incident with the incident-response runbook engaged — and those exceptions get a post-incident audit PR within the same business day.

How To Apply

Create a topic branch named by intent: feat/<slug>, fix/<slug>, chore/<slug>, doc/<slug>, clean/<slug>. Push the branch whenever useful so work is backed up and visible. Keep using the branch or Workroom while the work is not merge-ready. Open the PR only after the author has run the relevant checks, captured required evidence, and believes merge automation may act on it. Let CI run. Get review (human, automated, or both). Merge with squash-and-delete. Never git push origin main directly. Never gh pr merge --admin to bypass review. When a change is too small to justify the ceremony, the PR description can say so — the ceremony is still cheap and the audit value is the point.

Decision Dimensions

Examples

Sources

(Rendered from the sources: frontmatter by WikiSourceCitations — do not duplicate citation prose here.)