···11-# CLAUDE.md
22-33-Global guidance for Claude Code across all projects.
44-55-## Instructions
66-77-- Format code with the project's formatter before committing (e.g. `nix fmt`, `ruff format`, `prettier`).
88-- Write shell scripts that pass ShellCheck.
99-- Write Python code for 3.12 that conforms to `ruff format` and passes `ruff check`.
1010-- Always test/lint/format your code before committing.
1111-- Add debug output or unit tests when troubleshooting.
1212-- Avoid mocking in tests.
1313-- Use the `gh` tool to interact with GitHub.
1414-- Do not include "claude" in commit messages.
1515-- Take extra care not to commit lines with trailing whitespace.
1616-- Use the `tmux` skill for long-running tasks. Use a session with a `claude-` prefix — create one if no idle session exists.
1717-- Use the `notify` skill (`s say "..."`) to get the user's attention when a long task finishes, you need input to continue, or something needs human review.
1818-- Use git-mcp for advanced git operations (interactive staging, stash management, bisecting).
1919-2020-## Nix
2121-2222-When working in a Nix flake:
2323-2424-- Use `--log-format bar-with-logs` with `nix build` for improved build log output.
2525-- Add new untracked files with `git add` — flake eval only sees tracked files.
2626-- Use `nix-locate` to find packages by file path.
2727-- Use `nix run nixpkgs#foo` to execute tools that aren't installed.
2828-- Use `nix eval` instead of `nix flake show` to look up attributes in a flake.
2929- For listing: `nix eval .#packages.<system> --apply builtins.attrNames --json | jq`.