~ / rigs / jcdendrite / claude-config

jcdendrite/claude-config

Portable Claude Code global configuration: custom skills, PreToolUse hooks, and a custom statusline. Runs on Linux, macOS, WSL.

↗ GitHub ★ 5 MIT updated today personal setup Claude Code Claude plugin
share on X
ARCHETYPE
Fort Knox
Deny lists, pre-tool hooks, sandboxing. Nothing touches prod without a signature.
CONTEXT TAX · EVERY TURN
~13.4k tokens
Heavy · 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 jcdendrite/claude-config/.claude ./rig-claude-config  # 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 jcdendrite/claude-config/.claude/skills/code-review-claude-config .claude/skills/code-review-claude-config
$ npx degit jcdendrite/claude-config/.claude/skills/plan-review-claude-config .claude/skills/plan-review-claude-config
$ npx degit jcdendrite/claude-config/.claude/skills/test-conventions-claude-config .claude/skills/test-conventions-claude-config
$ npx degit jcdendrite/claude-config/claude-skills/skills/agent-review .claude/skills/agent-review
$ npx degit jcdendrite/claude-config/claude-skills/skills/ai-instruction-and-memory-files .claude/skills/ai-instruction-and-memory-files
$ npx degit jcdendrite/claude-config/claude-skills/skills/branch-management .claude/skills/branch-management
$ npx degit jcdendrite/claude-config/claude-skills/skills/brief .claude/skills/brief
$ npx degit jcdendrite/claude-config/claude-skills/skills/code-review .claude/skills/code-review
$ npx degit jcdendrite/claude-config/claude-skills/skills/config-environments .claude/skills/config-environments
$ npx degit jcdendrite/claude-config/claude-skills/skills/error-handling .claude/skills/error-handling
$ npx degit jcdendrite/claude-config/claude-skills/skills/error-mode-analysis .claude/skills/error-mode-analysis
$ npx degit jcdendrite/claude-config/claude-skills/skills/feature-flags .claude/skills/feature-flags
$ npx degit jcdendrite/claude-config/claude-skills/skills/git-feature-branch-sync .claude/skills/git-feature-branch-sync
$ npx degit jcdendrite/claude-config/claude-skills/skills/git-state-safety .claude/skills/git-state-safety
$ npx degit jcdendrite/claude-config/claude-skills/skills/handoff .claude/skills/handoff
$ npx degit jcdendrite/claude-config/claude-skills/skills/measure-check-output .claude/skills/measure-check-output
$ npx degit jcdendrite/claude-config/claude-skills/skills/memory-store-audit .claude/skills/memory-store-audit
$ npx degit jcdendrite/claude-config/claude-skills/skills/plan-it .claude/skills/plan-it
$ npx degit jcdendrite/claude-config/claude-skills/skills/plan-review .claude/skills/plan-review
$ npx degit jcdendrite/claude-config/claude-skills/skills/pr-description-claude-config .claude/skills/pr-description-claude-config
$ npx degit jcdendrite/claude-config/claude-skills/skills/pr-description .claude/skills/pr-description
$ npx degit jcdendrite/claude-config/claude-skills/skills/read-docx-comments .claude/skills/read-docx-comments
$ npx degit jcdendrite/claude-config/claude-skills/skills/ready-for-review .claude/skills/ready-for-review
$ npx degit jcdendrite/claude-config/claude-skills/skills/respond-pr .claude/skills/respond-pr
$ npx degit jcdendrite/claude-config/claude-skills/skills/review-loop-cost-audit .claude/skills/review-loop-cost-audit
$ npx degit jcdendrite/claude-config/claude-skills/skills/review-permissions .claude/skills/review-permissions
$ npx degit jcdendrite/claude-config/claude-skills/skills/review-pr .claude/skills/review-pr
$ npx degit jcdendrite/claude-config/claude-skills/skills/root-cause-analysis .claude/skills/root-cause-analysis
$ npx degit jcdendrite/claude-config/claude-skills/skills/sql-query-conventions .claude/skills/sql-query-conventions
$ npx degit jcdendrite/claude-config/claude-skills/skills/subagent-delegation .claude/skills/subagent-delegation
$ npx degit jcdendrite/claude-config/claude-skills/skills/test-conventions .claude/skills/test-conventions
$ npx degit jcdendrite/claude-config/claude-skills/skills/test-evaluation .claude/skills/test-evaluation
$ npx degit jcdendrite/claude-config/claude-skills/skills/tighten-prose .claude/skills/tighten-prose
$ npx degit jcdendrite/claude-config/claude-skills/skills/transcript-analysis .claude/skills/transcript-analysis
$ npx degit jcdendrite/claude-config/claude-skills/skills/transcript-narrative .claude/skills/transcript-narrative
$ npx degit jcdendrite/claude-config/claude-skills/skills/verify-sources .claude/skills/verify-sources
$ npx degit jcdendrite/claude-config/plugins/claude-hook-review/skills/claude-hook-review .claude/skills/claude-hook-review
$ npx degit jcdendrite/claude-config/plugins/issue-triage/skills/issue-triage .claude/skills/issue-triage
$ npx degit jcdendrite/claude-config/plugins/linear-formatting/skills/linear-formatting .claude/skills/linear-formatting
$ npx degit jcdendrite/claude-config/plugins/lovable-cloud/skills/lovable-cloud-edge-functions .claude/skills/lovable-cloud-edge-functions
$ curl -fsSL --create-dirs -o .claude/agents/Explore.md https://raw.githubusercontent.com/jcdendrite/claude-config/main/claude/.claude/agents/Explore.md
$ curl -fsSL --create-dirs -o .claude/agents/ciso-reviewer.md https://raw.githubusercontent.com/jcdendrite/claude-config/main/claude/.claude/agents/ciso-reviewer.md
$ curl -fsSL --create-dirs -o .claude/agents/code-writer.md https://raw.githubusercontent.com/jcdendrite/claude-config/main/claude/.claude/agents/code-writer.md
$ curl -fsSL --create-dirs -o .claude/agents/comment-discipline-reviewer.md https://raw.githubusercontent.com/jcdendrite/claude-config/main/claude/.claude/agents/comment-discipline-reviewer.md
$ curl -fsSL --create-dirs -o .claude/agents/plan-architect.md https://raw.githubusercontent.com/jcdendrite/claude-config/main/claude/.claude/agents/plan-architect.md
$ curl -fsSL --create-dirs -o .claude/agents/skill-fidelity-reviewer.md https://raw.githubusercontent.com/jcdendrite/claude-config/main/claude/.claude/agents/skill-fidelity-reviewer.md
$ curl -fsSL --create-dirs -o .claude/agents/staff-analytics-engineer.md https://raw.githubusercontent.com/jcdendrite/claude-config/main/claude/.claude/agents/staff-analytics-engineer.md
$ curl -fsSL --create-dirs -o .claude/agents/staff-backend-engineer.md https://raw.githubusercontent.com/jcdendrite/claude-config/main/claude/.claude/agents/staff-backend-engineer.md
$ curl -fsSL --create-dirs -o .claude/agents/staff-data-engineer.md https://raw.githubusercontent.com/jcdendrite/claude-config/main/claude/.claude/agents/staff-data-engineer.md
$ curl -fsSL --create-dirs -o .claude/agents/staff-frontend-engineer.md https://raw.githubusercontent.com/jcdendrite/claude-config/main/claude/.claude/agents/staff-frontend-engineer.md
$ curl -fsSL --create-dirs -o .claude/agents/staff-platform-engineer.md https://raw.githubusercontent.com/jcdendrite/claude-config/main/claude/.claude/agents/staff-platform-engineer.md
$ curl -fsSL --create-dirs -o .claude/agents/staff-product-engineer.md https://raw.githubusercontent.com/jcdendrite/claude-config/main/claude/.claude/agents/staff-product-engineer.md
$ curl -fsSL --create-dirs -o .claude/agents/staff-sdet.md https://raw.githubusercontent.com/jcdendrite/claude-config/main/claude/.claude/agents/staff-sdet.md

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(sudo)",
      "Read(**/.env)",
      "Read(**/.env.local)",
      "Read(**/.env.local.*)",
      "Read(**/.env.production)",
      "Read(**/.env.production.*)",
      "Read(**/.env.development)",
      "Read(**/.env.development.*)",
      "Read(**/.env.staging)",
      "Read(**/.env.staging.*)",
      "Read(**/.env.test)",
      "Read(**/.env.test.*)",
      "Read(**/credentials.json)",
      "Read(**/.credentials.json)",
      "Bash(brew install *)",
      "Bash(brew tap *)",
      "Bash(brew reinstall *)",
      "Bash(gem install *)",
      "Bash(cargo install *)",
      "Bash(go install *)",
      "Bash(gh extension install *)",
      "Bash(mas install *)",
      "Bash(pipx install *)",
      "Bash(apt-get install *)",
      "Bash(apt install *)",
      "Bash(yum install *)",
      "Bash(dnf install *)",
      "Bash(apk add *)",
      "Bash(zypper install *)",
      "EnterPlanMode",
      "ScheduleWakeup"
    ],
    "ask": [
      "Bash(~/.claude/scripts/cleanup-merged-branches.sh)",
      "Bash(cleanup-merged-branches)",
      "Bash(~/.claude/scripts/cleanup-merged-branches.sh --all-projects)",
      "Bash(cleanup-merged-branches --all-projects)",
      "Bash(~/.claude/scripts/cleanup-merged-branches.sh --all-projects --dry-run)",
      "Bash(cleanup-merged-branches --all-projects --dry-run)",
      "Bash(~/.claude/scripts/cleanup-idle-open-pr-worktrees.sh)",
      "Bash(cleanup-idle-open-pr-worktrees)",
      "Edit(//**/.claude/settings*.json)"
    ]
  },
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "~/.claude/hooks/require-code-review.sh"
          },
          {
            "type": "command",
            "command": "~/.claude/hooks/guard-settings-session-keys.sh"
          },
          {
            "type": "command",
            "command": "~/.claude/hooks/deny-private-project-refs.sh"
          },
          {
            "type": "command",
            "command": "~/.claude/hooks/require-stow-reminder.sh"
          },
          {
            "type": "command",
            "command": "~/.claude/hooks/require-stow-reminder.sh"
          },
          {
            "type": "command",
            "command": "~/.claude/hooks/deny-escaped-backticks-in-pr-body.sh"
          },
          {
            "type": "command",
            "command": "~/.claude/hooks/deny-escaped-backticks-in-pr-body.sh"
          },
          {
            "type": "command",
            "command": "~/.claude/hooks/block-gh-pr-merge.sh"
          },
          {
            "type": "command",
            "command": "~/.claude/hooks/require-respond-pr.sh"
          },
          {
            "type": "command",
            "command": "~/.claude/hooks/check-skill-length.sh"
          }
        ]
      },
      {
        "matcher": "Edit|Write|MultiEdit",
        "hooks": [
          {
            "type": "command",
            "command": "~/.claude/hooks/a<redacted>.sh"
          },
          {
            "type": "command",
            "command": "~/.claude/hooks/require-plan-review.sh"
          },
          {
            "type": "command",
            "command": "~/.claude/hooks/require-worktree-for-file-writes.sh"
          },
          {
            "type": "command",
            "command": "~/.claude/hooks/require-memory-skill.sh"
          },
          {
            "type": "command",
            "command": "~/.claude/hooks/deny-reviewer-tree-mutation.sh"
          },
          {
            "type": "command",
            "command": "~/.claude/hooks/enforce-marker-script-shape.sh"
          },
          {
            "type": "command",
            "command": "~/.claude/hooks/a<redacted>.sh"
          }
        ]
      },
      {
        "matcher": "ExitPlanMode",
        "hooks": [
          {
            "type": "command",
            "command": "~/.claude/hooks/require-plan-review.sh"
          }
        ]
      },
      {
        "matcher": "Agent",
        "hooks": [
          {
            "type": "command",
            "command": "~/.claude/hooks/require-routing-read.sh"
          }
        ]
      },
      {
        "matcher": "Agent|Task",
        "hooks": [
          {
            "type": "command",
            "command": "~/.claude/hooks/require-architect-consult.sh"
          },
          {
            "type": "command",
            "command": "~/.claude/hooks/deny-no-op-dispatch.sh"
          }
        ]
      },
      {
        "matcher": "Read",
        "hooks": [
          {
            "type": "command",
            "command": "~/.claude/hooks/deny-env-reads.sh"
          },
          {
            "type": "command",
            "command": "~/.claude/hooks/deny-data-file-reads.sh"
          },
          {
            "type": "command",
            "command": "~/.claude/hooks/deny-credential-file-reads.sh"
          }
        ]
      }
    ]
  }
}

Skills (45)

Subagents (13)

Explore
model: sonnet
A fast, read-only agent for searching and analyzing codebases — file discovery, code search, and codebase exploration without making changes. Use it to locate symbols, map an unfamiliar area, or grep/
ciso-reviewer
model: sonnet
CISO-perspective security review of a diff or plan. Focus on threat modeling, auth boundaries, privilege escalation, data exposure, defense in depth. TRIGGER when changes touch authentication or autho
code-writer
model: sonnet
Implements a specified code change, then self-reviews its own diff before returning. TRIGGER when delegating code-writing or implementation work to a subagent — feature code, bug fixes, refactors, mig
comment-discipline-reviewer
model: sonnet
Independent review of a diff against CLAUDE.md §Durable text and §Engineering Judgment's single-source-of-truth bullet, in a fresh context enumerating every violating site. Focus on comment verbosity,
plan-architect
model: opus
Read-only Opus design-synthesis agent with two dispatch modes. TRIGGER when (1) dispatched by /plan-it Step 5 to author a plan's Approach, assumption ledger, Critical files, Verification, and Out of s
skill-fidelity-reviewer
model: sonnet
Independent reviewer that checks whether the skills a branch's work invoked were actually executed or silently abbreviated — including whether code-review's required specialist dispatches actually hap
staff-analytics-engineer
model: sonnet
Staff analytics engineer review of a diff or plan. Focus on warehouse-side modeling (fact/dim, SCD, partitioning, materialization), transformation correctness, and data-contract review of source schem
staff-backend-engineer
model: sonnet
Staff backend engineer review of a diff or plan. Focus on API contracts, error handling, idempotency, retry semantics, service boundaries, SDK behavior, and application data-store schema design (relat
staff-data-engineer
model: sonnet
Staff data engineer review of a diff or plan. Focus on operational data infrastructure across all stores — migration safety (pipeline impact), pipeline transport (CDC, change streams, ETL/ELT), schema
staff-frontend-engineer
model: sonnet
Staff frontend engineer review of a diff or plan. Focus on component patterns, state management, data fetching and cache consistency, routing, forms, accessibility, Web Vitals, internationalization, a
staff-platform-engineer
model: sonnet
Staff platform engineer review of a diff or plan. Covers CI/CD, IaC, shell discipline, deployment ordering, <redacted> AND observability coverage, alerting, SLO impact, runbook linkage, load character
staff-product-engineer
model: sonnet
Staff product engineer review of a diff or plan. You are the reviewer who reads the spec — and reads it critically, separating requirements from implementation details. Focus on spec-to-user-problem f
staff-sdet
model: sonnet
Staff SDET review of a diff or plan. Focus on testability of the design, test-pyramid shape, edge cases the plan omits, mock design, fixture realism, and security invariant coverage. TRIGGER when the

Hooks (49)

eventmatcherruns
SessionStart*~/.claude/hooks/capture-session-id.sh
SessionStartstartup|clear|compact|resume~/.claude/hooks/session-marker-dashboard.sh
SessionStartstartup~/.claude/hooks/check-branch-divergence.sh
SessionStartstartup~/.claude/hooks/set-session-title-from-branch.sh
SessionStartstartup~/.claude/hooks/nudge-memory-store-audit.sh
SessionStartcompact~/.claude/hooks/restore-authorization-boundary-on-compact.sh
SubagentStart*~/.claude/hooks/capture-session-id.sh
SessionEnd*~/.claude/hooks/record-session-end.sh
UserPromptSubmit*~/.claude/hooks/nudge-error-mode-analysis.sh
UserPromptSubmit*~/.claude/hooks/nudge-worktree-anchor.sh
UserPromptSubmit*~/.claude/hooks/nudge-unexpanded-skill-mention.sh
Stop*~/.claude/hooks/advance-past-commit-stall.sh
Stop*~/.claude/hooks/nudge-handoff-near-context-cap.sh
PreToolUseBash~/.claude/hooks/require-code-review.sh
PreToolUseBash~/.claude/hooks/guard-settings-session-keys.sh
PreToolUseBash~/.claude/hooks/deny-private-project-refs.sh
PreToolUseBash~/.claude/hooks/require-stow-reminder.sh
PreToolUseBash~/.claude/hooks/require-stow-reminder.sh
PreToolUseBash~/.claude/hooks/deny-escaped-backticks-in-pr-body.sh
PreToolUseBash~/.claude/hooks/deny-escaped-backticks-in-pr-body.sh
PreToolUseBash~/.claude/hooks/block-gh-pr-merge.sh
PreToolUseBash~/.claude/hooks/require-respond-pr.sh
PreToolUseBash~/.claude/hooks/check-skill-length.sh
PreToolUseEdit|Write|MultiEdit~/.claude/hooks/a<redacted>.sh
PreToolUseEdit|Write|MultiEdit~/.claude/hooks/require-plan-review.sh
PreToolUseEdit|Write|MultiEdit~/.claude/hooks/require-worktree-for-file-writes.sh
PreToolUseEdit|Write|MultiEdit~/.claude/hooks/require-memory-skill.sh
PreToolUseEdit|Write|MultiEdit~/.claude/hooks/deny-reviewer-tree-mutation.sh
PreToolUseEdit|Write|MultiEdit~/.claude/hooks/enforce-marker-script-shape.sh
PreToolUseEdit|Write|MultiEdit~/.claude/hooks/a<redacted>.sh

Plugins (4)

skill-management@claude-configclaude-hook-review@claude-configplugin-semver@claude-configissue-triage@claude-config

Permissions

deny (32)
Bash(sudo *)
Bash(sudo)
Read(**/.env)
Read(**/.env.local)
Read(**/.env.local.*)
Read(**/.env.production)
Read(**/.env.production.*)
Read(**/.env.development)
Read(**/.env.development.*)
Read(**/.env.staging)
Read(**/.env.staging.*)
Read(**/.env.test)
Read(**/.env.test.*)
Read(**/credentials.json)
Read(**/.credentials.json)
Bash(brew install *)
Bash(brew tap *)
Bash(brew reinstall *)
Bash(gem install *)
Bash(cargo install *)
Bash(go install *)
Bash(gh extension install *)
Bash(mas install *)
Bash(pipx install *)
Bash(apt-get install *)
Bash(apt install *)
Bash(yum install *)
Bash(dnf install *)
Bash(apk add *)
Bash(zypper install *)
EnterPlanMode
ScheduleWakeup
ask (9)
Bash(~/.claude/scripts/cleanup-merged-branches.sh)
Bash(cleanup-merged-branches)
Bash(~/.claude/scripts/cleanup-merged-branches.sh --all-projects)
Bash(cleanup-merged-branches --all-projects)
Bash(~/.claude/scripts/cleanup-merged-branches.sh --all-projects --dry-run)
Bash(cleanup-merged-branches --all-projects --dry-run)
Bash(~/.claude/scripts/cleanup-idle-open-pr-worktrees.sh)
Bash(cleanup-idle-open-pr-worktrees)
Edit(//**/.claude/settings*.json)
allow (34)
Bash(ruff check claude/.claude/)
Bash(.venv/bin/python3 claude/.claude/scripts/select-tests.py)
Bash(../../../.venv/bin/python3 claude/.claude/scripts/select-tests.py)
Bash(pytest claude/.claude/scripts/tests/test_cleanup_merged_branches.py)
Bash(~/.claude/scripts/marker.sh write code-review)
Bash(~/.claude/scripts/marker.sh write skill-review)
Bash(~/.claude/scripts/marker.sh write plan-review)
Bash(~/.claude/scripts/marker.sh write ready-for-review)
Bash(~/.claude/scripts/marker.sh write cumulative-review)
Bash(~/.claude/scripts/marker.sh write review-pr)
Bash(~/.claude/scripts/marker.sh write verification)
Bash(~/.claude/scripts/marker.sh activate plan-review)
Bash(~/.claude/scripts/marker.sh activate ready-for-review)
Bash(~/.claude/scripts/marker.sh activate respond-pr)
Bash(~/.claude/scripts/marker.sh deactivate plan-review)
Bash(~/.claude/scripts/marker.sh deactivate ready-for-review)
Bash(~/.claude/scripts/marker.sh deactivate respond-pr)
Bash(~/.claude/scripts/marker.sh activate memory-skill)
Bash(~/.claude/scripts/marker.sh deactivate memory-skill)
Bash(~/.claude/scripts/marker.sh activate handoff)
Bash(~/.claude/scripts/marker.sh deactivate handoff)
Bash(~/.claude/scripts/marker.sh resolve-session-id)
Bash(~/.claude/scripts/marker.sh status)
Bash(~/.claude/scripts/marker.sh check code-review)
Bash(~/.claude/scripts/marker.sh check verification)
Bash(~/.claude/scripts/review-pr-findings-path.sh)
Bash(~/.claude/scripts/review-pr-finish.sh)
Bash(~/.claude/scripts/findings-path-suffix.sh)
Bash(~/.claude/scripts/cleanup-merged-branches.sh --dry-run)
Bash(cleanup-merged-branches --dry-run)
Bash(~/.claude/scripts/cleanup-idle-open-pr-worktrees.sh --dry-run)
Bash(cleanup-idle-open-pr-worktrees --dry-run)
Bash(~/.claude/scripts/worktree-removal-status.sh)
Bash(worktree-removal-status)

Similar rigs

copied ✓