1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
# 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.
- Prefer long-form option names over short flags whenever a long form exists (`--raw-output` not `-r`, `--app-name` not
`-a`). Fall back to short flags only when the tool offers no long equivalent.
# 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.
|