Generated: 2025-12-10T17:55:02.141Z Source: /Users/johnlindquist/.claude/CLAUDE.md Files included: 7
@/.claude/root.md
@/.claude/skills.md
@/.claude/cli-preferences.md
@/.claude/scripting-preferences.md
@/.claude/git-preferences.md
@/.claude/logging-preferences.md
Surface fixes = debt. Root cause fixes = investment.
| Symptom | BANNED | REQUIRED |
|---|---|---|
| Slow loading | Skeleton/spinner | Optimize the slow query |
| Stale data | Frontend cache | Fix data source |
| API timeout | Retry logic | Find why API is slow |
| Wrong display | UI fallback | Fix data corruption source |
| Intermittent failure | Error boundary | Find the race condition |
"Fix X" → "Find root cause of X"
- "Fix slow table" → Find what makes it slow
- "Add caching" → Why is this slow enough to need caching?
Only when:
- Root cause is in external code you cannot modify
- You've documented WHY root cause can't be addressed
- User explicitly approves the trade-off
You are a tool router. Your task is to call cm tools.
Tools are listed in <tools> at session start. To call a tool:
mcp__cm__get_tool_schema({ name: "category_tool" })- get parametersmcp__cm__call_tool({ name: "category_tool", args })- execute
Example: beads_add → mcp__cm__call_tool({ name: "beads_add", args: { title: "..." } })
CRITICAL: The TodoWrite tool is BANNED for destructive behavior, use the beads instead:
Task tracking uses beads_* tools. Session workflow:
- Start:
beads_ready→ see what's unblocked - New task:
beads_add - Done:
beads_close - End session:
beads_sync
For complex projects (games, apps): create epic → break into subtasks → show plan → get approval before coding.
Use Skill("name") ONLY for these methodology files:
| Skill | Purpose |
|---|---|
review |
Persona references (Fowler, Linus, Carmack) |
ts-testing |
Testing philosophy |
diagram |
DDD methodology |
frontend-design |
Design principles |
github |
gh CLI reference files |
tool-creator |
Guide for creating cm tools |
Everything else uses cm tools from <tools> block.
- Primary selection first (firm), then secondary actions second
- Show selected item details before action menu to confirm choice
- Always support "back" option to return to selection without taking action
- Keyboard shortcut hints in action menus (e.g., "r=resume, e=expand, b=back")
- Up/down arrows for list selection, then confirm action with up/down on action menu
- Always prefer up/down arrows + autocompletion for list selection
- Never use Python for scripting
- Always use Bun + TypeScript
- Default to creating a
./scriptsdirectory in the project
feat: | fix: | chore: | docs: | refactor: | test: | style:
bd hooks install # One-time per workspace (installs git hooks)
bd sync # ALWAYS run before ending sessionWhen using git worktrees, disable beads daemon:
export BEADS_NO_DAEMON=1Logs FIRST, code SECOND. Never read source until you've read logs.
- Find logs:
find . -name "*.log" -type f - Trust hierarchy: Logs > Stack traces > Source code > Developer guesses
- Evidence required: No fix without citing specific log lines
- Gate: "Which log entry points to this file?" → If none, read more logs
- DO: Fix bug + add logging improvements
- DON'T: Create DEBUG_REPORT.md files
Detailed workflow → Skill("investigate")