~ / rigs / gsotirchos / dotfiles

gsotirchos/dotfiles

My dotfiles for my macOS/Linux computer(s).

↗ GitHub ★ 1 mit updated 8d ago personal setup Claude Code
share on X
ARCHETYPE
Pragmatist
A balanced, no-drama setup: some rules, some tools, nothing extreme.
CONTEXT TAX · EVERY TURN
~745 tokens
Featherweight · median rig: 2.3k · breakdown
GUARDRAILS
1/5
No YOLO mode · details

Copy this rig

# review before running: this installs third-party code
$ npx degit gsotirchos/dotfiles/packages/claude/.claude ./rig-dotfiles  # inspect, then merge into .claude/

MCP servers are added to Claude Code at local scope; env vars are shown as YOUR_… placeholders — we never store values. Files are fetched with degit into a separate folder so you can review before merging.

$ npx degit gsotirchos/dotfiles/packages/claude/.claude/skills/merge-request-description .claude/skills/merge-request-description

This rig commits no guardrails. Here is the community baseline instead — the deny/ask rules most often found across all 7,204 rigs:

{
  "permissions": {
    "deny": [
      "Read(./.env)",
      "Read(**/.env)",
      "Read(~/.ssh/**)",
      "Bash(rm -rf *)",
      "Read(**/*.pem)",
      "Bash(rm -rf /)",
      "Bash(git push --force:*)",
      "Bash(sudo *)",
      "Read(.env)",
      "Bash(rm -rf /*)",
      "Read(./.env.*)",
      "Read(~/.aws/**)",
      "Bash(git push --force*)",
      "Bash(rm -rf:*)",
      "Read(**/*.key)",
      "Read(**/.env.*)",
      "Bash(sudo:*)",
      "Bash(git reset --hard*)",
      "Bash(git reset --hard:*)",
      "Read(.env.*)"
    ],
    "ask": [
      "Bash(git push:*)",
      "Bash(git push *)",
      "Bash(git commit:*)",
      "Bash(rm *)",
      "Bash(rm:*)",
      "Bash(git rebase *)",
      "Bash(wget *)",
      "Bash(npm publish:*)",
      "Bash(git commit *)",
      "Bash(gh pr merge *)"
    ]
  }
}

Skills (1)

Hooks (2)

eventmatcherruns
PostToolUseEdit|Writef=$(jq -r ".tool_input.file_path // empty"); case "$f" in *.c|*.cc|*.cpp|*.cxx|*.h|*.hh|*.hpp|*.hxx) ;; *) exit 0 ;; esac; clang-format -i --style=file --fallback-style=none "$f" >&2 || exit 2
PostToolUseEdit|Writef=$(jq -r ".tool_input.file_path // empty"); case "$f" in *.py) ;; *) exit 0 ;; esac; cd "$(dirname "$f")" || exit 2; ruff check --fix --quiet "$f" >&2; unfixed=$?; ruff format --silent "$f" >&2 || exit 2; [ "$unfixed" -eq 0 ] || exit 2

Plugins (3)

clangd-lsp@claude-plugins-officialpyright-lsp@claude-plugins-officialemacs-query@gsotirchos

Permissions

deny (0)
—
ask (0)
—
allow (3)
Bash(emacs-query:*)
Bash(glab api:*)
Bash(glab repo:*)

Similar rigs

copied ✓