PR Gate
August 16, 2026 ยท View on GitHub
This is the canonical pull-request governance policy for main.
Who Controls What
SKILL.md(.ai/skills/pr-gate-review/SKILL.md): AI behavior for PR scrutiny and conflict triage..github/pull_request_template.md: plain-language author context..github/workflows/pr-gate.yml: PR size label assignment..github/workflows/pr-conflict-assistant.yml: required branch freshness gate (Up To Date With Main).
Use all four together. None of them is sufficient by itself.
Merge Requirements
Before merging a PR into main, require all of the following:
- Baseline CI is green.
- PR full QA is green, including the required
Guard and code-quality gate,Runtime and security gate,Static analyzer gate,Full pytest gate, andSanitizer gate. Up To Date With Mainis green.- Any non-trivial PR (the same source/test/script/Makefile/workflow changes that trigger
.github/workflows/full-qa.yml) includes explicit security validation evidence in the PR body:make qa-unsafe-apis, plusmake qa-fileops-integritywhen file/archive mutation flows change. - If size is
LorXL, the PR body explains why it is large, why it is not split right now, and what could break. Provide this once, updating only if scope materially changes. - At least one human maintainer approves.
AI-First Review Contract
AI is expected to audit PRs directly from code + CI + PR metadata without requiring maintainers to read raw diffs:
- Size signal from
pr-gate.yml(size/S,size/M,size/L,size/XL). - Freshness result from
pr-conflict-assistant.yml(Up To Date With Main). - CI outcomes and changed file metadata.
- PR author context from the template.
Branch Freshness Handling
If the freshness gate fails:
- Contributor updates branch to latest
main. - Contributor pushes updated branch.
- Gate reruns automatically.
- Merge only when freshness and required checks are green.