stranma/claude-code-python-template
Production-ready Python project template for Claude Code with TDD workflow, 7 custom agents, and 11-step Phase Completion Checklist
ARCHETYPE
Fort Knox
Deny lists, pre-tool hooks, sandboxing. Nothing touches prod without a signature.
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 stranma/claude-code-python-template/.claude ./rig-claude-code-python-template # 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 stranma/claude-code-python-template/.claude/skills/design .claude/skills/design $ npx degit stranma/claude-code-python-template/.claude/skills/done .claude/skills/done $ npx degit stranma/claude-code-python-template/.claude/skills/landed .claude/skills/landed $ npx degit stranma/claude-code-python-template/.claude/skills/sync .claude/skills/sync
$ curl -fsSL --create-dirs -o .claude/agents/code-quality-validator.md https://raw.githubusercontent.com/stranma/claude-code-python-template/master/.claude/agents/code-quality-validator.md $ curl -fsSL --create-dirs -o .claude/agents/code-reviewer.md https://raw.githubusercontent.com/stranma/claude-code-python-template/master/.claude/agents/code-reviewer.md $ curl -fsSL --create-dirs -o .claude/agents/docs-updater.md https://raw.githubusercontent.com/stranma/claude-code-python-template/master/.claude/agents/docs-updater.md $ curl -fsSL --create-dirs -o .claude/agents/pr-writer.md https://raw.githubusercontent.com/stranma/claude-code-python-template/master/.claude/agents/pr-writer.md $ curl -fsSL --create-dirs -o .claude/agents/review-responder.md https://raw.githubusercontent.com/stranma/claude-code-python-template/master/.claude/agents/review-responder.md $ curl -fsSL --create-dirs -o .claude/agents/test-coverage-validator.md https://raw.githubusercontent.com/stranma/claude-code-python-template/master/.claude/agents/test-coverage-validator.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(gh secret *)",
"Bash(gh auth *)",
"Bash(gh ssh-key *)",
"Bash(gh gpg-key *)",
"Bash(git push --force *)",
"Bash(git push -f *)",
"Bash(git clean *)",
"Bash(git config *)",
"Bash(*git remote add *)",
"Bash(*git remote set-url *)",
"Bash(*git remote remove *)",
"Bash(*git remote rename *)",
"Bash(*git remote set-head *)",
"Bash(uv self *)"
],
"ask": [
"Bash(python *)",
"Bash(uv run python *)",
"Bash(docker *)",
"Bash(docker-compose *)",
"Bash(terraform *)",
"Bash(gh pr merge *)",
"Bash(gh pr reopen *)",
"Bash(gh pr close *)",
"Bash(gh pr comment *)",
"Bash(gh pr review *)",
"Bash(gh pr ready *)",
"Bash(gh workflow run *)",
"Bash(gh workflow enable *)",
"Bash(gh workflow disable *)",
"Bash(gh api *)",
"Bash(gh issue create *)",
"Bash(gh issue comment *)",
"Bash(gh issue close *)",
"Bash(gh issue edit *)",
"Bash(git push *)",
"Bash(git init *)",
"Bash(git clone *)",
"Bash(uv remove *)",
"Bash(uv cache *)",
"Bash(uv init *)",
"WebFetch"
]
},
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/dangerous-actions-blocker.sh"
}
]
}
]
}
} Skills (4)
Subagents (6)
| code-quality-validator model: haiku | Use this agent for Step S.5 - Code Quality validation.\n\nRuns linting, formatting verification, and type checking across monorepo packages.\n\n**Examples:**\n\n<example>\nContext: Step S.5.\n\nuser: |
| code-reviewer model: sonnet | Use this agent for Step S.6.4 - Code Review.\n\nPerforms an independent code review of the current phase's changes, checking for bugs, logic errors, security issues, and adherence to project conventio |
| docs-updater model: sonnet | Use this agent for Step S.7 - Documentation Updates.\n\nUpdates IMPLEMENTATION_PLAN.md and CHANGELOG.md after phase completion.\n\n**Examples:**\n\n<example>\nContext: A development phase was just com |
| pr-writer model: sonnet | Use this agent for Step S.6.2 - PR Description generation.\n\nGenerates structured PR descriptions from git diff, implementation plan, and changelog.\n\n**Examples:**\n\n<example>\nContext: Creating a |
| review-responder model: sonnet | Use this agent for Step S.6.4 - Code Review Response (Optional).\n\nHandles automated reviewer (e.g., CodeRabbit) comments by triaging, auto-fixing, and flagging concerns.\nSkip this agent if no autom |
| test-coverage-validator model: sonnet | Use this agent for Step S.5 - Test Coverage validation.\n\nAlso use when:\n1. A development phase or increment has been completed\n2. New functionality has been implemented following the TDD process\n |
Hooks (2)
| event | matcher | runs |
|---|---|---|
| PreToolUse | Bash | "$CLAUDE_PROJECT_DIR"/.claude/hooks/dangerous-actions-blocker.sh |
| PostToolUse | Edit|Write | "$CLAUDE_PROJECT_DIR"/.claude/hooks/auto-format.sh |
Plugins (1)
security-guidance@claude-code-plugins
Permissions
deny (14)
Bash(gh secret *)
Bash(gh auth *)
Bash(gh ssh-key *)
Bash(gh gpg-key *)
Bash(git push --force *)
Bash(git push -f *)
Bash(git clean *)
Bash(git config *)
Bash(*git remote add *)
Bash(*git remote set-url *)
Bash(*git remote remove *)
Bash(*git remote rename *)
Bash(*git remote set-head *)
Bash(uv self *)
ask (26)
Bash(python *)
Bash(uv run python *)
Bash(docker *)
Bash(docker-compose *)
Bash(terraform *)
Bash(gh pr merge *)
Bash(gh pr reopen *)
Bash(gh pr close *)
Bash(gh pr comment *)
Bash(gh pr review *)
Bash(gh pr ready *)
Bash(gh workflow run *)
Bash(gh workflow enable *)
Bash(gh workflow disable *)
Bash(gh api *)
Bash(gh issue create *)
Bash(gh issue comment *)
Bash(gh issue close *)
Bash(gh issue edit *)
Bash(git push *)
Bash(git init *)
Bash(git clone *)
Bash(uv remove *)
Bash(uv cache *)
Bash(uv init *)
WebFetch
allow (76)
Bash(pytest *)
Bash(uv run pytest *)
Bash(uv run ruff *)
Bash(uv sync *)
Bash(uv --version *)
Bash(uv run pyright *)
Bash(uv add *)
Bash(uv pip *)
Bash(uv venv *)
Bash(uv lock *)
Bash(uv tree *)
Bash(uv export *)
Bash(git add *)
Bash(git commit *)
Bash(git fetch *)
Bash(git pull *)
Bash(git rebase *)
Bash(git branch *)
Bash(git checkout *)
Bash(git status *)
Bash(git diff *)
Bash(git log *)
Bash(git show *)
Bash(git merge *)
Bash(git stash *)
Bash(git restore *)
Bash(git reset *)
Bash(git rm *)
Bash(git mv *)
Bash(git worktree *)
Bash(git remote *)
Bash(git submodule *)
Bash(git tag *)
Bash(git switch *)
Bash(git rev-parse *)
Bash(git cherry-pick *)
Bash(git blame *)
Bash(git reflog *)
Bash(git ls-files *)
Bash(git describe *)
Bash(git shortlog *)
Bash(git rev-list *)
Bash(gh pr create *)
Bash(gh pr view *)
Bash(gh pr list *)
Bash(gh pr checks *)
Bash(gh pr diff *)
Bash(gh pr edit *)
Bash(gh run list *)
Bash(gh run view *)
Bash(gh run watch *)
Bash(gh issue list *)
Bash(gh issue view *)
Bash(gh repo view *)
Bash(gh release list *)
Bash(gh release view *)
Bash(gh label list *)
Bash(gh browse *)
Bash(gh search *)
Bash(ls *)
Similar rigs
junianwoo/claude-toad
One command. Your entire Claude Code setup. Done.
Pragmatist 18.7k tok ·
skullninja/coco-workflow
Autonomous spec-driven development plugin for Claude Code. Describe a feature, get merged, tested, reviewed code. Full pipeline from PRD to PR with dependency-aware task tracking, AI code review, and zero dependencies beyond bash + jq.
Pragmatist 8.5k tok ·
Adityaraj0421/naksha-studio
A virtual design team for Claude Code, Cursor, Windsurf, Gemini CLI, and Copilot — 26 roles, 62 commands, 15,000+ lines of expert design knowledge. Your agency's design brain, inside your terminal.
Minimalist 2.4k tok ·
dravensoft-dev/arena
One design system, in React and in Angular, from one contract. Every component API and the accessibility pattern it binds is a contract a gate holds.
Pragmatist 12.2k tok ·