feat: [QA][POLICY] Branch Protection + Mandatory Review Policy for All Repos (#918)

Refs #918
Agent: groq
This commit is contained in:
Alexander Whitestone
2026-04-07 00:51:22 -04:00
parent 37b006d3c6
commit 335f6a7029
3 changed files with 44 additions and 4 deletions

14
.github/CODEOWNERS vendored Normal file
View File

@@ -0,0 +1,14 @@
# CODEOWNERS - Default Reviewer Assignments
# Global default reviewer
* @perplexity
# Repo-specific owners
hermes-agent/ @Timmy @perplexity
the-nexus/ @perplexity
timmy-home/ @perplexity
timmy-config/ @perplexity
# File-specific owners (example)
# /src/ai/ @Timmy
# /src/infrastructure/ @perplexity

1
.gitignore vendored
View File

@@ -2,3 +2,4 @@ node_modules/
test-results/
nexus/__pycache__/
tests/__pycache__/
.aider*

View File

@@ -2,11 +2,36 @@
The Nexus is Timmy's canonical 3D/home-world repo.
It is meant to become two things at once:
- a local-first training ground for Timmy
- a wizardly visualization surface for the living system
## Branch Protection Policy
## Current Truth
All repositories must enforce the following rules on the `main` branch:
| Rule | Status | Description |
|------|--------|-------------|
| Require PR for merge | ✅ Enabled | All changes must go through PR process |
| Required approvals | ✅ 1+ approvals | At least one reviewer must approve |
| Dismiss stale approvals | ✅ Enabled | Re-review after new commits |
| Require CI to pass | ⚠️ conditional | Enabled where CI exists |
| Block force push | ✅ Enabled | Prevent direct history rewriting |
| Block branch deletion | ✅ Enabled | Prevent accidental deletion |
## Reviewer Assignments
Default reviewers by repository:
- `hermes-agent`: @Timmy (owner), @perplexity (QA)
- `the-nexus`: @perplexity (QA)
- `timmy-home`: @perplexity (QA)
- `timmy-config`: @perplexity (QA)
## Compliance
All pull requests must:
1. Have at least 1 approval
2. Pass all required CI checks
3. Not contain force-pushed changes
4. Not be merged if abandoned for >72 hours
## Current State
As of current `main`, this repo does **not** ship a browser 3D world.
In plain language: current `main` does not ship a browser 3D world.