diff --git a/CLAUDE.md b/CLAUDE.md index 4ee44a3..0446eef 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -26,6 +26,12 @@ The Nexus connects to Timmy's backend via WebSocket for live cognitive state: - **Outbound**: `chat_message`, `presence` - **Graceful degradation**: When WS is offline, agents idle locally, chat shows "OFFLINE" +## The Hard Rule — Read This First + +**Every PR: net ≤ 10 added lines.** Add 40, remove 30. Can't remove? Import instead. +You MUST plan your cuts BEFORE writing new code. See CONTRIBUTING.md. +Do NOT self-merge. Do NOT submit a PR that violates this. + ## Conventions - **ES modules only** — no CommonJS, no bundler @@ -49,10 +55,11 @@ The `nexus-merge-bot.sh` validates PRs before auto-merge: ## PR Rules +- **Net addition limit: ≤ 10 lines.** No exceptions. Plan cuts before writing. +- **Do NOT self-merge.** Submit the PR, a different user merges it. - Base every PR on latest `main` - Squash merge only -- **Do NOT merge manually** — merge-bot handles merges -- If merge-bot comments "CONFLICT": rebase onto `main` and force-push your branch +- Include manual test plan + automated test output in PR body - Include `Fixes #N` or `Refs #N` in commit message ## Running Locally