diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3c80822..3733f2a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -150,7 +150,44 @@ PRs not updated in >7 days will be labeled "stale" and may be closed after 30 da **Every PR: net ≤ 10 added lines.** Not a guideline — a hard limit. Add 40, remove 30. Can't remove? You're homebrewing. Import instead. -## Branch Protection Policy +## Branch Protection & Review Policy + +### Branch Protection Rules + +All repositories enforce the following rules on the `main` branch: + +| Rule | Status | Applies To | +|------|--------|------------| +| Require Pull Request for merge | ✅ Enabled | All | +| Require 1 approval before merge | ✅ Enabled | All | +| Dismiss stale approvals on new commits | ✅ Enabled | All | +| Require CI to pass (where CI exists) | ⚠️ Conditional | All | +| Block force pushes to `main` | ✅ Enabled | All | +| Block deletion of `main` branch | ✅ Enabled | All | + +### Default Reviewer Assignments + +| Repository | Required Reviewers | +|------------|------------------| +| `hermes-agent` | `@perplexity`, `@Timmy` | +| `the-nexus` | `@perplexity` | +| `timmy-home` | `@perplexity` | +| `timmy-config` | `@perplexity` | + +### CI Enforcement Status + +| Repository | CI Status | +|------------|-----------| +| `hermes-agent` | ✅ Active | +| `the-nexus` | ⚠️ CI runner pending (#915) | +| `timmy-home` | ❌ No CI | +| `timmy-config` | ❌ Limited CI | + +### Review Requirements + +- All PRs must be reviewed by at least one reviewer +- `@perplexity` is the default reviewer for all repositories +- `@Timmy` is a required reviewer for `hermes-agent` All repositories enforce: - ✅ Require Pull Request for merge