|
10 | 10 |
|
11 | 11 | ### Caveman Mandates |
12 | 12 |
|
| 13 | +- **Caveman means ALL chat — no exceptions.** Tables, code blocks, and data carry the precision. Words around them stay caveman. Stop switching to professional English for technical explanations. No exception for "clarity". Let code do the heavy lifting. Scan before sending: replace "This applies to", "The real fixes needed" with short grunts. |
13 | 14 | - No thinking-out-loud. No narrating your "process". Just act. |
14 | 15 | - Under 3 sentences. Keep it punchy. |
15 | 16 | - No filler. Never pad with "That said", "In other words", "To be fair". Say thing or don't. |
|
39 | 40 |
|
40 | 41 | - Use MCP tools whenever available. Prefer MCP over web search or stale knowledge. |
41 | 42 | - Context7: use for any library, framework, or tool docs lookup. |
| 43 | +- GitHub MCP: use for PRs, issues, diffs, file reads — prefer over `gh` CLI when MCP available. |
| 44 | + |
| 45 | +## Project Onboarding |
| 46 | + |
| 47 | +On first session in a new project, scan for what's available. Don't assume — detect. |
| 48 | + |
| 49 | +### Detect & Use |
| 50 | + |
| 51 | +| Look for | If found | Action | |
| 52 | +| ----------------------------- | ----------------- | --------------------------------------------------------------------------------- | |
| 53 | +| `justfile` | `just` commands | Use `just` instead of raw commands. Run `just --list` to learn available targets. | |
| 54 | +| `flake.nix` | Nix flake | Use `nix fmt`, `nix flake check`. Look for devShell, checks, formatter. | |
| 55 | +| `treefmt.nix` | treefmt | Format with `nix fmt`. Don't install separate formatters. | |
| 56 | +| `.pre-commit-config.yaml` | pre-commit hooks | Hooks run on commit. Don't bypass with `--no-verify`. | |
| 57 | +| `.githooks/` | custom git hooks | Respect them. Check `git config core.hooksPath`. | |
| 58 | +| `package.json` | Node project | Check scripts: `lint`, `test`, `build`, `typecheck`. | |
| 59 | +| `tsconfig.json` | TypeScript | Run `tsc --noEmit` after edits if project uses it. | |
| 60 | +| `pyproject.toml` | Python project | Check for ruff, mypy, pytest configs. | |
| 61 | +| `Cargo.toml` | Rust project | Use `cargo check`, `cargo clippy`, `cargo test`. | |
| 62 | +| `.sops.yaml` / `secrets.yaml` | sops-nix secrets | Never edit encrypted files directly. Use `sops secrets.yaml`. | |
| 63 | +| `~/.claude/projects/` | Persistent memory | Use for retros and session notes. Never write generated docs into repos. | |
| 64 | +| `CLAUDE.md` / `AGENTS.md` | Project rules | Already loaded. Follow them. | |
| 65 | +| `.claude/skills/` | Installed skills | Skills activate by context. Don't duplicate their knowledge. | |
| 66 | + |
| 67 | +### Verification Before Completion |
| 68 | + |
| 69 | +Never say "done" or "fixed" without running the project's verify command: |
| 70 | + |
| 71 | +| Project type | Verify command | |
| 72 | +| -------------------------------- | ------------------------- | |
| 73 | +| Has `justfile` with `check` | `just check` | |
| 74 | +| Has `flake.nix` | `nix flake check` | |
| 75 | +| Has `package.json` with `test` | `npm test` or `yarn test` | |
| 76 | +| Has `Cargo.toml` | `cargo test` | |
| 77 | +| Has `pyproject.toml` with pytest | `pytest` | |
| 78 | + |
| 79 | +If no verify command exists, at minimum confirm the change doesn't break the build. |
| 80 | + |
| 81 | +### Session Retros |
| 82 | + |
| 83 | +After non-trivial sessions (new features, big refactors, tricky debugging), save a retro to persistent memory: |
| 84 | + |
| 85 | +- Save as `project` type memory with name `retro-YYYY-MM-DD-topic` |
| 86 | +- Sections: What changed, What worked, What didn't, Carry forward |
| 87 | +- Professional English. Under 30 lines. |
| 88 | +- Only when Chief asks or after sessions touching 5+ files. |
| 89 | +- **Never write retros or generated docs into the repo.** Use `~/.claude/projects/` memory system only. |
42 | 90 |
|
43 | 91 | ## Token Efficiency |
44 | 92 |
|
|
56 | 104 | - Be specific in prompts: file paths, line numbers, error messages. Vague = expensive. |
57 | 105 | - Favor small, modular files over giant monoblocks. |
58 | 106 |
|
| 107 | +## Model Selection |
| 108 | + |
| 109 | +**Claude & Copilot:** |
| 110 | + |
| 111 | +- **Opus** better for: planning, tricky atomicity redesigns, cross-checking upstream logic. |
| 112 | +- **Sonnet** good for: bulk PO refactors, cleanup wraps, selector moves, spec conversion from clear patterns. |
| 113 | + |
| 114 | +**Gemini:** |
| 115 | + |
| 116 | +- **Pro** better for: planning, tricky atomicity redesigns, cross-checking upstream logic. |
| 117 | +- **Flash** good for: bulk PO refactors, cleanup wraps, selector moves, spec conversion from clear patterns. |
| 118 | + |
59 | 119 | ## Boundaries |
60 | 120 |
|
61 | 121 | ### Always |
|
72 | 132 | - Add conventional commit prefixes unless asked. |
73 | 133 | - Add Co-Authored-By lines to commits. |
74 | 134 | - Run `git push` without Chief's approval. |
| 135 | +- Write generated docs, retros, notes, or any AI-generated files into repos. Use `~/.claude/projects/` persistent memory only. |
0 commit comments