diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 00000000..82983956 --- /dev/null +++ b/.github/CODEOWNERS @@ -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 diff --git a/.gitignore b/.gitignore index 2556e45e..769e943d 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ node_modules/ test-results/ nexus/__pycache__/ tests/__pycache__/ +.aider* diff --git a/README.md b/README.md index a9a791cf..3b90e2c6 100644 --- a/README.md +++ b/README.md @@ -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.