~ / rigs / LasseJacobsen / claude-dotfiles

LasseJacobsen/claude-dotfiles

Reusable Claude Code configuration: hooks, commands, skills, and MCP server setup. One install.sh for a new machine.

↗ GitHub ★ 0 MIT updated 14d ago personal setup Claude Code
share on X
ARCHETYPE
Fort Knox
Deny lists, pre-tool hooks, sandboxing. Nothing touches prod without a signature.
CONTEXT TAX · EVERY TURN
~524 tokens
Featherweight · median rig: 2.3k · breakdown
GUARDRAILS
5/5
Blocks destructive commands · Protects secrets · Pre-tool screening hook · No YOLO mode · Sandbox or ask-first rules · details

Copy this rig

# review before running: this installs third-party code
$ npx degit LasseJacobsen/claude-dotfiles/.claude ./rig-claude-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 LasseJacobsen/claude-dotfiles/.claude/skills/writing-for-agents .claude/skills/writing-for-agents
$ npx degit LasseJacobsen/claude-dotfiles/skills/book-to-skill .claude/skills/book-to-skill
$ npx degit LasseJacobsen/claude-dotfiles/skills/domain-modeling .claude/skills/domain-modeling
$ npx degit LasseJacobsen/claude-dotfiles/skills/grill-with-docs .claude/skills/grill-with-docs
$ npx degit LasseJacobsen/claude-dotfiles/skills/iso-24495-code .claude/skills/iso-24495-code
$ npx degit LasseJacobsen/claude-dotfiles/skills/pyspark-audit .claude/skills/pyspark-audit
$ npx degit LasseJacobsen/claude-dotfiles/skills/pyspark-style .claude/skills/pyspark-style

Merge into .claude/settings.json (project) or ~/.claude/settings.json (user). Hook commands reference scripts in the source repo — copy those too.

{
  "permissions": {
    "deny": [
      "Bash(sudo *)",
      "Bash(rm -rf ~*)",
      "Bash(rm -rf /*)",
      "Read(.env)",
      "Read(.env.*)",
      "Read(secrets/**)",
      "Read(**/*.pem)",
      "Read(**/*.key)",
      "Read(**/*.p12)",
      "Read(**/*.pfx)",
      "Read(**/credentials.json)",
      "Read(**/.mcp.local.json)",
      "Read(~/.ssh/**)",
      "Edit(.env*)",
      "Edit(secrets/**)"
    ],
    "ask": [
      "Bash(git push *)",
      "Edit(pyproject.toml)",
      "Edit(uv.lock)"
    ]
  },
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "bash \"$HOME/.claude/hooks/block-destructive.sh\""
          },
          {
            "type": "command",
            "command": "bash \"$HOME/.claude/hooks/enforce-uv.sh\""
          },
          {
            "type": "command",
            "command": "bash \"$HOME/.claude/hooks/block-git-main.sh\""
          },
          {
            "type": "command",
            "command": "bash \"$HOME/.claude/hooks/block-big-binaries.sh\""
          },
          {
            "type": "command",
            "command": "bash \"$HOME/.claude/hooks/protect-secrets.sh\""
          }
        ]
      }
    ]
  }
}

Skills (7)

Hooks (8)

eventmatcherruns
PreToolUseBashbash "$HOME/.claude/hooks/block-destructive.sh"
PreToolUseBashbash "$HOME/.claude/hooks/enforce-uv.sh"
PreToolUseBashbash "$HOME/.claude/hooks/block-git-main.sh"
PreToolUseBashbash "$HOME/.claude/hooks/block-big-binaries.sh"
PreToolUseBashbash "$HOME/.claude/hooks/protect-secrets.sh"
PostToolUseWrite|Edit|MultiEditbash "$HOME/.claude/hooks/ruff-after-edit.sh"
PostToolUseWrite|NotebookEditbash "$HOME/.claude/hooks/nbstripout.sh"
Notification*bash "$HOME/.claude/hooks/notify.sh"

Permissions

deny (15)
Bash(sudo *)
Bash(rm -rf ~*)
Bash(rm -rf /*)
Read(.env)
Read(.env.*)
Read(secrets/**)
Read(**/*.pem)
Read(**/*.key)
Read(**/*.p12)
Read(**/*.pfx)
Read(**/credentials.json)
Read(**/.mcp.local.json)
Read(~/.ssh/**)
Edit(.env*)
Edit(secrets/**)
ask (3)
Bash(git push *)
Edit(pyproject.toml)
Edit(uv.lock)
allow (0)
—

Similar rigs

copied ✓