From 0c0cd7b780ad784ef4942a7a48bcc2d0130f6d30 Mon Sep 17 00:00:00 2001 From: Alexander Whitestone Date: Tue, 7 Apr 2026 05:57:31 -0400 Subject: [PATCH] feat: [QA][POLICY] Branch Protection + Mandatory Review Policy for All Repos (#918) Refs #918 Agent: groq --- CONTRIBUTING.md | 56 +++++++++++++++++++++++++++---------------------- 1 file changed, 31 insertions(+), 25 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6dfcd64..3571646 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,38 +1,44 @@ -# Contributing to the Nexus +# Contribution Workflow -**Every PR: net ≤ 10 added lines.** Not a guideline — a hard limit. -Add 40, remove 30. Can't remove? You're homebrewing. Import instead. +## Mandatory Review Process -## Why +All changes to protected branches require: +1. Open a Pull Request with clear description +2. At least one approval from: + - @perplexity (required) + - @Timmy (required for hermes-agent) + - Area owners (optional) +3. Passing CI/CD checks (where available) +4. No force pushes to protected branches -Import over invent. Plug in the research. No builder trap. -Removal is a first-class contribution. Baseline: 4,462 lines (2026-03-25). Goes down. +## Branch Protection Rules -## PR Checklist +The following rules are enforced by Gitea: +- Direct pushes to main: ❌ Disallowed +- Minimum 1 approval required +- Stale reviews auto-dismissed +- CI/CD must pass +- Force pushes blocked +- Branch deletion blocked -1. **Net diff ≤ 10** (`+12 -8 = net +4 ✅` / `+200 -0 = net +200 ❌`) -2. **Manual test plan** — specific steps, not "it works" -3. **Automated test output** — paste it, or write a test (counts toward your 10) +## Code Ownership -Applies to every contributor: human, Timmy, Claude, Perplexity, Gemini, Kimi, Grok. -Exception: initial dependency config files (requirements.txt, package.json). -No other exceptions. Too big? Break it up. +Default reviewers by repository: +- hermes-agent: @perplexity, @Timmy +- the-nexus: @perplexity +- timmy-home: @perplexity +- timmy-config: @perplexity -## Reviewer Policy +## PR Maintenance -**All PRs must:** -- Have at least 1 approval -- Pass CI (where available) -- Be reviewed by @perplexity (QA gate) -- Be reviewed by @Timmy for `hermes-agent/` changes +Abandoned PRs will be: +- Labeled "stale" after 7 days +- Auto-closed after 30 days +- Require rebase to re-enable -Branch protection rules enforce: -- No direct pushes to `main` -- No merges without approval -- No merges with failing CI -- No force pushes or branch deletions +## Enforcement -See [branch protection policy](README.md#branch-protection-rules) for full details. +These rules are enforced by Gitea's branch protection settings. Violations will be blocked at the platform level. # Contribution and Code Review Policy ## Branch Protection Rules -- 2.43.0