Files
dots/common/.config/claude/CLAUDE.md
T
2026-09-17 20:58:21 +02:00

2.8 KiB

Global user preferences (applies to every project)

Environment

  • Arch Linux, Wayland, fish shell, kitty terminal. Prefer fish-compatible syntax in shell snippets (not bash-isms) when writing things the user will run interactively. Clipboard is wl-copy.
  • Package manager: pacman / yay. Common abbrs: pacs, yays.

Local-first LLMs

  • The user self-hosts models on the LAN at 192.168.0.204:
    • llama.cpp server — http://192.168.0.204:11343/v1 (OpenAI-compatible).
    • Ollama — 192.168.0.204:11434.
  • The available models are the section names in ~/.dots/fl/.config/llamacpp/config.ini (the router's client model ids) — read that file rather than trusting any list written here; the roster changes often. When configuring any AI/agent tool, default to these endpoints rather than a cloud API unless asked otherwise.

Git

  • Do not run git commit or git push, and never offer or ask to do the committing/pushing yourself — the user reviews and commits entirely manually (denied in settings.json and enforced by the ~/.claude/hooks/git-guard.py PreToolUse hook, which catches git -C … push-style spellings the prefix rules miss and also blocks history rewrites and working-tree discards — revert, cherry-pick, rebase, merge, reset that moves HEAD or unstages everything, restore <paths>, checkout --, stash drop/pop/clear, branch -D — plus gh pr merge/create/close/edit; several sessions share this checkout, so never discard changes you did not make). Stage/prepare changes and stop there. You may suggest a commit message for the user to use, but nothing more.
  • To hand off a suggested commit message, feed it to ~/.config/git/claude-commit-msg save after staging (it records the staged paths with the message), as a quoted heredoc so quotes and backticks in the body survive:
    ~/.config/git/claude-commit-msg save <<'EOF'
    <message>
    EOF
    
    Never write CLAUDE_COMMIT_MSG or COMMIT_EDITMSG directly — several sessions share this checkout, and the single file got overwritten. A prepare-commit-msg hook prefills the next git commit / lazygit C with the message(s) whose recorded paths are part of that commit, then consumes them. Just the raw message, no # comments. claude-commit-msg list shows what is pending.

Formatting

  • Lua: format with stylua (2-space indent, 120 col, no call parentheses — see any .stylua.toml).

Dotfiles

  • Configs live in the dots repo under .config/ and are surfaced via per-file symlinks (GNU Stow --no-folding; directories stay real) into ~/.config/, and from there into ~/.claude/ by ~/.config/claude/link.sh. Editing an existing file under the repo's .config/ is editing the live config — no deploy step. A new file is not live until a re-stow creates its symlink (cd ~/.dots && ./install.sh), on each host.