From 875cc8e8d1025f4a2026385b7f6e83e0e79358d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Jane=C5=BEi=C4=8D?= Date: Sun, 15 Mar 2026 11:15:28 +0100 Subject: [PATCH] feat(claude): add initial dotfiles --- .gitignore | 6 ++++++ claude/CLAUDE.md | 38 ++++++++++++++++++++++++++++++++++++++ claude/settings.json | 13 +++++++++++++ zsh/.zshenv | 3 +++ 4 files changed, 60 insertions(+) create mode 100644 claude/CLAUDE.md create mode 100644 claude/settings.json diff --git a/.gitignore b/.gitignore index daa0836..d6527ee 100644 --- a/.gitignore +++ b/.gitignore @@ -110,3 +110,9 @@ swaync/* !fuzzel fuzzel/* !fuzzel/fuzzel.ini + +# claude +!claude +claude/* +!claude/CLAUDE.md +!claude/settings.json diff --git a/claude/CLAUDE.md b/claude/CLAUDE.md new file mode 100644 index 0000000..eb35f68 --- /dev/null +++ b/claude/CLAUDE.md @@ -0,0 +1,38 @@ +# Global CLAUDE.md + +## Comments + +Comments must be one of two forms: + +``` +# descriptive but non-verbose comment +# KEYWORD:(@janezicmatej) descriptive but non-verbose comment +``` + +Rules: +- always lowercase +- no trailing punctuation +- keywords: WARN, FIX, NOTE, TODO, PERF, TEST, HACK +- keyword comments must include attribution `(@janezicmatej)` + +## Git +- all git work MUST happen in sub-agents with `isolation: "worktree"` +- agents MUST commit with `--no-gpg-sign` + +## Workflow +- implement changes directly; don't use sub-agents/Task for simple operations like renames, file moves, or single-file edits; only use Task for genuinely complex parallel exploration or research +- when redirected or interrupted, immediately stop the current approach and follow the new direction; don't explain or defend the previous approach +- focus on one goal per session; don't drift into unrelated improvements +- use Task agents for research and exploration, not for straightforward implementation + +## Scope +- NEVER modify anything outside the scope of what was asked +- don't introduce unrelated changes, touch unrelated configs, or change defaults not mentioned +- if something related should change, ask first + +## Config locations +- MCP server configs go in `.claude.json` (project) or `~/.claude.json` (global), not `settings.json` +- `settings.json` is for permissions, hooks, and behavior settings + +## Code quality +- after making changes, check if the project has linters/formatters and run them diff --git a/claude/settings.json b/claude/settings.json new file mode 100644 index 0000000..62bdcfd --- /dev/null +++ b/claude/settings.json @@ -0,0 +1,13 @@ +{ + "permissions": { + "allow": [ + "mcp__todo__*", + "mcp__nixos__*" + ] + }, + "hooks": {}, + "voiceEnabled": true, + "skipDangerousModePermissionPrompt": true, + "effortLevel": "high", + "mcpServers": {} +} diff --git a/zsh/.zshenv b/zsh/.zshenv index 2c4e136..22b8f0b 100644 --- a/zsh/.zshenv +++ b/zsh/.zshenv @@ -23,6 +23,9 @@ export NAME="Matej Janežič" # starship nest config into a folder, default is ~/.config/starship.toml export STARSHIP_CONFIG="$XDG_CONFIG_HOME/starship/config.toml" +# claude +export CLAUDE_CONFIG_DIR="$XDG_CONFIG_HOME/claude" + # cliphist export CLIPHIST_DB_PATH="/tmp/cliphist-db"