~ / rigs / PranavMishra17 / Claude-setup

PranavMishra17/Claude-setup

Reusable Claude Code template for structured, agent-driven development. Includes planning agents, feature executors, workflow commands, and safety hooks ready to drop into any project.

↗ GitHub ★ 0 MIT updated 8mo ago personal setup Claude Code
share on X
ARCHETYPE
Automator
Hooks on every lifecycle event: format, lint, notify, log.
CONTEXT TAX · EVERY TURN
~1.3k tokens
Featherweight · median rig: 2.3k · breakdown
GUARDRAILS
3/5
Blocks destructive commands · Pre-tool screening hook · No YOLO mode · details

Copy this rig

# review before running: this installs third-party code
$ npx degit PranavMishra17/Claude-setup/.claude ./rig-claude-setup  # 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.

$ curl -fsSL --create-dirs -o .claude/agents/feature-builder.md https://raw.githubusercontent.com/PranavMishra17/Claude-setup/main/.claude/agents/feature-builder.md
$ curl -fsSL --create-dirs -o .claude/agents/planner.md https://raw.githubusercontent.com/PranavMishra17/Claude-setup/main/.claude/agents/planner.md

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

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "tool == \"Bash\"",
        "hooks": [
          {
            "type": "command",
            "command": "python3 -c \"\nimport json, sys\ndata = json.load(sys.stdin)\ncmd = data.get('tool_input', {}).get('command', '')\nblocklist = ['rm -rf /', 'rm -rf ~', 'DROP TABLE', 'DROP DATABASE', 'DELETE FROM', 'truncate', ':(){:|:&};:']\nfor pattern in block"
          },
          {
            "type": "command",
            "command": "python3 -c \"\nimport json, sys, os\ndata = json.load(sys.stdin)\ncmd = data.get('tool_input', {}).get('command', '')\nlong_runners = ['npm run', 'pnpm run', 'yarn run', 'streamlit run', 'uvicorn', 'flask run', 'python -m pytest', 'cargo build',"
          }
        ]
      }
    ]
  }
}

Subagents (2)

feature-builder
model: claude-sonnet-4-5
Zero-ambient-context feature implementation agent. Receives exactly one feature spec from the planner's output and completes it end-to-end. Do not invoke directly — the main orchestrator feeds this ag
planner
model: claude-sonnet-4-5
Use this agent FIRST before any multi-feature implementation. Given a goal or feature request, produces a detailed technical plan and an ordered, atomic feature list. Each feature is scoped for indepe

Hooks (6)

eventmatcherruns
PreToolUsetool == "Bash"python3 -c " import json, sys data = json.load(sys.stdin) cmd = data.get('tool_input', {}).get('command', '') blocklist = ['rm -rf /', 'rm -rf ~', 'DROP TABLE', 'DROP DATABASE', 'DELETE FROM', 'truncate', ':(){:|:&};:'] for pattern in block
PreToolUsetool == "Bash"python3 -c " import json, sys, os data = json.load(sys.stdin) cmd = data.get('tool_input', {}).get('command', '') long_runners = ['npm run', 'pnpm run', 'yarn run', 'streamlit run', 'uvicorn', 'flask run', 'python -m pytest', 'cargo build',
PostToolUsetool == "Write" or tool == "Edit" or tool == "str_replace_based_edit_tool"python3 -c " import json, sys, subprocess data = json.load(sys.stdin) path = data.get('tool_input', {}).get('path', '') or data.get('tool_input', {}).get('file_path', '') if path.endswith('.py'): result = subprocess.run(['python3', '-m'
PostToolUsetool == "Write" or tool == "Edit" or tool == "str_replace_based_edit_tool"python3 -c " import json, sys data = json.load(sys.stdin) path = data.get('tool_input', {}).get('path', '') or data.get('tool_input', {}).get('file_path', '') if not path: sys.exit(0) try: content = open(path).read() except Exceptio
Stop*python3 -c " import sys print('[Hook] Session ending. If this was a long session, run /dump before /clear to preserve progress for the next agent.', file=sys.stderr) sys.exit(0) "
UserPromptSubmit*python3 -c "import sys; sys.exit(0)"

Slash commands (2)

/dump/push2git

Similar rigs

copied ✓