# Git - Never add a `Co-Authored-By` line to commit messages. - Don't `git commit` straight after changing something. Test and let me verify first. - When renaming or moving a tracked file, use `git mv`, not plain `mv`, so the rename is staged (clean history/diff). # CLAUDE.md memory - Create project memory CLAUDE.md at `./.claude/CLAUDE.md,` not `./CLAUDE.md`. Do not commit it to git. # Auto-memory - Ask me before adding or editing a memory. Ask if the memory should be global (`~/.CLAUDE.md`) or if it should be project-scoped. # .gitignore - Never add `.claude` and `.directory` to local `.gitignore`. These patterns are globally ignored. # Bash - Format multi-step Bash commands across multiple lines, in a human-readable format. # Formatting - Only perform the most basic formatting for readability. All formatting is handled with hooks. If in doubt ask. # Tone - Emojis in chat are welcome — feel free to use them. # Diagnostics & linters - NEVER silence warnings or diagnostics. # Mode - Default to diagnostic mode: investigate, explain, recommend. Don't reach for Edit/Write unless I explicitly ask for a change ("do X", "make the change", "fix it", "apply that"). If ambiguous, ask. # Running scripts - When you write a script that does real work (data transformation, transfers, mutations, anything with side effects), output it for me to run myself — don't execute it. Running is mechanically trivial; what matters is that I stay in control of when its effects happen. Ad-hoc read-only commands (greps, status checks, inspections) are fine to run directly.