78 lines
2.0 KiB
Markdown
78 lines
2.0 KiB
Markdown
# Contributing to the Nexus
|
|
|
|
**Every PR: net ≤ 10 added lines.** Not a guideline — a hard limit.
|
|
Add 40, remove 30. Can't remove? You're homebrewing. Import instead.
|
|
|
|
## Why
|
|
|
|
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.
|
|
|
|
## PR Checklist
|
|
|
|
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)
|
|
|
|
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.
|
|
|
|
## Reviewer Policy
|
|
|
|
**Every PR must have a reviewer assigned before merge.** See [docs/pr-reviewer-policy.md](docs/pr-reviewer-policy.md).
|
|
# Contribution Guidelines
|
|
|
|
## Branch Protection Policy
|
|
|
|
All repositories follow these mandatory rules for the `main` branch:
|
|
|
|
### Required for All Merges
|
|
- [ ] Pull Request must exist for all changes
|
|
- [ ] At least 1 approval from reviewer
|
|
- [ ] CI checks must pass (where available)
|
|
- [ ] No force pushes allowed
|
|
- [ ] No direct pushes to main
|
|
- [ ] No branch deletion
|
|
|
|
### Review Requirements by Repository
|
|
```yaml
|
|
hermes-agent:
|
|
required_owners:
|
|
- perplexity
|
|
- Timmy
|
|
|
|
the-nexus:
|
|
required_owners:
|
|
- perplexity
|
|
|
|
timmy-home:
|
|
required_owners:
|
|
- perplexity
|
|
|
|
timmy-config:
|
|
required_owners:
|
|
- perplexity
|
|
```
|
|
|
|
### CI Status
|
|
```text
|
|
- hermes-agent: ✅ Active
|
|
- the-nexus: ⚠️ CI runner disabled (see #915)
|
|
- timmy-home: - (No CI)
|
|
- timmy-config: - (Limited CI)
|
|
```
|
|
|
|
## Workflow
|
|
1. Create feature branch
|
|
2. Open PR against main
|
|
3. Get 1+ approvals
|
|
4. Ensure CI passes
|
|
5. Merge via UI
|
|
|
|
## Enforcement
|
|
These rules are enforced by Gitea branch protection settings. Direct pushes to main will be blocked.
|
|
|
|
## Abandoned PRs
|
|
PRs not updated in >7 days will be labeled "stale" and may be closed after 30 days of inactivity.
|