~ / rigs / skowalskidev / dotclaude

skowalskidev/dotclaude

Simon's personal Claude Code config: rules, hooks, guards, and skills, structured as a reusable template you fork and make your own.

↗ GitHub ★ 2 MIT updated today personal setup Claude CodeCodex Claude plugin
share on X
ARCHETYPE
Fort Knox
Deny lists, pre-tool hooks, sandboxing. Nothing touches prod without a signature.
CONTEXT TAX · EVERY TURN
~5.8k tokens
Moderate · median rig: 2.3k · breakdown
GUARDRAILS
4/5
Blocks destructive commands · Protects secrets · Pre-tool screening hook · No YOLO mode · details

Copy this rig

# review before running: this installs third-party code
$ npx degit skowalskidev/dotclaude/skills ./rig-dotclaude/skills
$ npx degit skowalskidev/dotclaude/hooks ./rig-dotclaude/hooks

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 skowalskidev/dotclaude/skills/sk/skills/claude-config-metrics-self-analysis .claude/skills/claude-config-metrics-self-analysis
$ npx degit skowalskidev/dotclaude/skills/sk/skills/claude-config-self-development-research .claude/skills/claude-config-self-development-research
$ npx degit skowalskidev/dotclaude/skills/sk/skills/claude-config-self-optimize-analysis-after-run .claude/skills/claude-config-self-optimize-analysis-after-run
$ npx degit skowalskidev/dotclaude/skills/sk/skills/claude-config-sync .claude/skills/claude-config-sync
$ npx degit skowalskidev/dotclaude/skills/sk/skills/claude-config-update .claude/skills/claude-config-update
$ npx degit <redacted>-code-cleanup-repo .claude/skills/maintenance-code-cleanup-repo
$ npx degit <redacted>-code-optimize-app .claude/skills/maintenance-code-optimize-app
$ npx degit skowalskidev/dotclaude/skills/sk/skills/meta-cleanup-worktrees .claude/skills/meta-cleanup-worktrees
$ npx degit skowalskidev/dotclaude/skills/sk/skills/meta-dotclaude-copilot-start-here-for-any-task .claude/skills/meta-dotclaude-copilot-start-here-for-any-task
$ npx degit skowalskidev/dotclaude/skills/sk/skills/meta-report-standup-weekly .claude/skills/meta-report-standup-weekly
$ npx degit skowalskidev/dotclaude/skills/sk/skills/plan-research .claude/skills/plan-research
$ npx degit skowalskidev/dotclaude/skills/sk/skills/plan-stable-persistent-dynamic-complete-full-plan .claude/skills/plan-stable-persistent-dynamic-complete-full-plan
$ npx degit skowalskidev/dotclaude/skills/sk/skills/setup-connectors .claude/skills/setup-connectors
$ npx degit skowalskidev/dotclaude/skills/sk/skills/ship-check-merge-readiness .claude/skills/ship-check-merge-readiness
$ npx degit skowalskidev/dotclaude/skills/sk/skills/ship-full-detailed-workflow .claude/skills/ship-full-detailed-workflow
$ npx degit skowalskidev/dotclaude/skills/sk/skills/ship-mockup-before-after .claude/skills/ship-mockup-before-after
$ npx degit skowalskidev/dotclaude/skills/sk/skills/ship-pr .claude/skills/ship-pr
$ npx degit skowalskidev/dotclaude/skills/sk/skills/ship-preview-eyeball-with-prod-data .claude/skills/ship-preview-eyeball-with-prod-data
$ npx degit skowalskidev/dotclaude/skills/sk/skills/ship-report-and-ensure-correct-user-system-journey .claude/skills/ship-report-and-ensure-correct-user-system-journey
$ npx degit skowalskidev/dotclaude/skills/sk/skills/ship-resolve-pr-comments .claude/skills/ship-resolve-pr-comments
$ npx degit skowalskidev/dotclaude/skills/sk/skills/ship-review .claude/skills/ship-review
$ npx degit skowalskidev/dotclaude/skills/sk/skills/ship-screenshot-changes .claude/skills/ship-screenshot-changes
$ npx degit skowalskidev/dotclaude/skills/sk/skills/ship-verify-with-prod-data .claude/skills/ship-verify-with-prod-data
$ npx degit skowalskidev/dotclaude/skills/sk/skills/test-automated-full-matrix .claude/skills/test-automated-full-matrix
$ npx degit skowalskidev/dotclaude/skills/sk/skills/test-copilot .claude/skills/test-copilot
$ npx degit skowalskidev/dotclaude/skills/sk/skills/test-eyeball .claude/skills/test-eyeball
$ npx degit skowalskidev/dotclaude/skills/sk/skills/work-a<redacted> .claude/skills/work-a<redacted>
$ npx degit skowalskidev/dotclaude/skills/sk/skills/work-ask-reply-tldr .claude/skills/work-ask-reply-tldr
$ npx degit skowalskidev/dotclaude/skills/sk/skills/work-checkpoint-wrap-up-safe-to-reboot-resume .claude/skills/work-checkpoint-wrap-up-safe-to-reboot-resume
$ npx degit skowalskidev/dotclaude/skills/sk/skills/work-consolidate-supersede-branches-prs .claude/skills/work-consolidate-supersede-branches-prs
$ npx degit skowalskidev/dotclaude/skills/sk/skills/work-copilot-agile-build .claude/skills/work-copilot-agile-build
$ npx degit skowalskidev/dotclaude/skills/sk/skills/work-does-this-make-sense-to-build .claude/skills/work-does-this-make-sense-to-build
$ npx degit skowalskidev/dotclaude/skills/sk/skills/work-full-detailed-workflow .claude/skills/work-full-detailed-workflow
$ npx degit skowalskidev/dotclaude/skills/sk/skills/work-gauntlet-loop .claude/skills/work-gauntlet-loop
$ npx degit skowalskidev/dotclaude/skills/sk/skills/work-handoff-prepare-and-pickup .claude/skills/work-handoff-prepare-and-pickup
$ npx degit skowalskidev/dotclaude/skills/sk/skills/work-humanize-copy-side-by-side .claude/skills/work-humanize-copy-side-by-side
$ npx degit skowalskidev/dotclaude/skills/sk/skills/work-hyperspeed .claude/skills/work-hyperspeed
$ npx degit skowalskidev/dotclaude/skills/sk/skills/work-isolate-environment .claude/skills/work-isolate-environment
$ npx degit skowalskidev/dotclaude/skills/sk/skills/work-platform-anchor-test-feature-poc-works-before-building .claude/skills/work-platform-anchor-test-feature-poc-works-before-building
$ npx degit skowalskidev/dotclaude/skills/sk/skills/work-preview-on-phone .claude/skills/work-preview-on-phone

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

{
  "permissions": {
    "deny": [
      "Edit(~/.ssh/**)",
      "Edit(~/.aws/**)",
      "Edit(~/.gnupg/**)",
      "Write(~/.ssh/**)",
      "Write(~/.aws/**)",
      "Write(~/.gnupg/**)",
      "Bash(xcrun simctl shutdown all*)",
      "Bash(xcrun simctl erase all*)",
      "Bash(git stash)",
      "Bash(git stash pop*)",
      "Bash(git stash clear*)"
    ]
  },
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "$HOME/.claude/hooks/work-resource-guard.sh"
          },
          {
            "type": "command",
            "command": "$HOME/.claude/hooks/git-commit-guard.py"
          },
          {
            "type": "command",
            "command": "$HOME/.claude/hooks/background-process-guard.py"
          }
        ]
      },
      {
        "matcher": "mcp__.*",
        "hooks": [
          {
            "type": "command",
            "command": "$HOME/.claude/hooks/work-resource-guard.sh"
          }
        ]
      },
      {
        "matcher": "Agent|Task|Workflow",
        "hooks": [
          {
            "type": "command",
            "command": "$HOME/.claude/hooks/task-intake.sh guard"
          }
        ]
      },
      {
        "matcher": "Edit|Write|MultiEdit|NotebookEdit",
        "hooks": [
          {
            "type": "command",
            "command": "$HOME/.claude/hooks/config-edit-guard.py"
          },
          {
            "type": "command",
            "command": "$HOME/.claude/hooks/worktree-path-guard.py"
          }
        ]
      }
    ]
  }
}

Skills (44)

Hooks (20)

eventmatcherruns
PreToolUseBash$HOME/.claude/hooks/work-resource-guard.sh
PreToolUseBash$HOME/.claude/hooks/git-commit-guard.py
PreToolUseBash$HOME/.claude/hooks/background-process-guard.py
PreToolUsemcp__.*$HOME/.claude/hooks/work-resource-guard.sh
PreToolUseAgent|Task|Workflow$HOME/.claude/hooks/task-intake.sh guard
PreToolUseEdit|Write|MultiEdit|NotebookEdit$HOME/.claude/hooks/config-edit-guard.py
PreToolUseEdit|Write|MultiEdit|NotebookEdit$HOME/.claude/hooks/worktree-path-guard.py
UserPromptSubmit*$HOME/.claude/hooks/task-intake.sh submit
UserPromptSubmit*$HOME/.claude/hooks/intent-ledger.sh submit
PostToolUse(mcp__.*__)?AskUserQuestion$HOME/.claude/hooks/task-intake.sh answered
Stop*$HOME/.claude/hooks/intent-ledger.sh stop
SessionStart*$HOME/.claude/bin/agent_runtime.py policy-hook
SessionStart*$HOME/.claude/hooks/config-status.sh
SessionStart*$HOME/.claude/hooks/session-connectors.sh
SessionStart*$HOME/.claude/hooks/orphan-worker-sweep.sh
SessionStart*$HOME/.claude/hooks/port-registry-sweep.sh
SessionStart*$HOME/.claude/hooks/session-identity.sh
SessionStart*$HOME/.claude/hooks/worktree-freshness.sh
SessionEnd*$HOME/.claude/hooks/retro-trigger-log.sh
SessionEnd*$HOME/.claude/hooks/config-metrics-log.sh

Permissions

deny (11)
Edit(~/.ssh/**)
Edit(~/.aws/**)
Edit(~/.gnupg/**)
Write(~/.ssh/**)
Write(~/.aws/**)
Write(~/.gnupg/**)
Bash(xcrun simctl shutdown all*)
Bash(xcrun simctl erase all*)
Bash(git stash)
Bash(git stash pop*)
Bash(git stash clear*)
ask (0)
—
allow (0)
—

Similar rigs

copied ✓