name: cc-config-placement description: Use when adding rules, commands, or skills to dotfiles - decides global vs project-local placement
CC Config Placement
Decide whether Claude Code config belongs in global (claude/) or project-local (.claude/).
The Two Levels
| Path | Symlink Direction | Scope |
|---|---|---|
dotfiles/claude/ | ~/.claude/* symlinks point here | All projects (global) |
dotfiles/.claude/ | Not symlinked | Dotfiles repo only |
Symlink Structure
~/.claude/ contains symlinks pointing into dotfiles/claude/:
~/.claude/
├── CLAUDE.md → dotfiles/claude/CLAUDE.md
├── commands/ → dotfiles/claude/commands/
├── rules/ → dotfiles/claude/rules/
├── scripts/ → dotfiles/claude/scripts/
├── skills/ → dotfiles/claude/skills/
└── settings.json (real file, NOT symlinked)
Exception: settings.json - the real file lives at ~/.claude/settings.json. For version control visibility, dotfiles/claude/settings.json symlinks TO it (reverse direction).
Decision Guide
Global (dotfiles/claude/):
- Communication preferences, work style
- Commit format, API rules
- Skills/commands useful across all projects
- Settings changes → edit
~/.claude/settings.jsondirectly
Project-local (dotfiles/.claude/):
- Dotfiles-specific conventions
- Commands like
/audit - Rules scoped to specific dotfiles
When Ambiguous
Ask: "Should this apply globally (all projects) or just to dotfiles?"
Ambiguous examples:
- "Add a rule about X" → which level?
- "Create a command for Y" → global or local?
- "Remember that I prefer Z" → sounds global, confirm
File Structure
dotfiles/
├── claude/ ← ~/.claude/* symlinks point here (GLOBAL)
│ ├── CLAUDE.md
│ ├── commands/
│ ├── rules/
│ ├── scripts/
│ ├── skills/
│ └── settings.json → ~/.claude/settings.json (reverse symlink)
│
└── .claude/ ← PROJECT-LOCAL (dotfiles repo only)
├── CLAUDE.md
├── settings.json
├── settings.local.json
├── skills/
└── rules/