diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3571646..00b3b12 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,39 +1,53 @@ -# Contribution Workflow +# Contribution & Code Review Policy -## Mandatory Review Process +## Branch Protection & Review Policy -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 +All repositories enforce these rules on the `main` branch: +- ✅ Require Pull Request for merge +- ✅ Require 1 approval before merge +- ✅ Dismiss stale approvals on new commits +- �️ Require CI to pass (where CI exists) +- ✅ Block force pushes to `main` +- ✅ Block deletion of `main` branch -## Branch Protection Rules +### Default Reviewer Assignments -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 +| Repository | Required Reviewers | +|------------------|---------------------------------| +| `hermes-agent` | `@perplexity`, `@Timmy` | +| `the-nexus` | `@perplexity` | +| `timmy-home` | `@perplexity` | +| `timmy-config` | `@perplexity` | -## Code Ownership +### CI Enforcement Status -Default reviewers by repository: -- hermes-agent: @perplexity, @Timmy -- the-nexus: @perplexity -- timmy-home: @perplexity -- timmy-config: @perplexity +| Repository | CI Status | +|------------------|---------------------------------| +| `hermes-agent` | ✅ Active | +| `the-nexus` | �️ CI runner pending (#915) | +| `timmy-home` | ❌ No CI | +| `timmy-config` | ❌ Limited CI | -## PR Maintenance +### Workflow Requirements -Abandoned PRs will be: -- Labeled "stale" after 7 days -- Auto-closed after 30 days +1. Create feature branch from `main` +2. Submit PR with clear description +3. Wait for @perplexity review +4. Address feedback if any +5. Merge after approval and passing CI + +### Emergency Exceptions +Hotfixes require: +- ✅ @Timmy approval +- ✅ Post-merge documentation +- ✅ Follow-up PR for full review + +### Abandoned PR Policy +- PRs inactive >7 day: 🧹 archived +- Unreviewed PRs >14 days: ❌ closed + +### Policy Enforcement +These rules are enforced by Gitea branch protection settings. Direct pushes to main will be blocked. - Require rebase to re-enable ## Enforcement