felixhennequin-gif/claude-code-config-template
Production-ready AI config template for Claude Code. CLAUDE.md, agents, skills, hooks, routines, and commands — based on analysis of 55+ open-source repos (Supabase, Bitwarden, Vercel, Cloudflare, OpenAI).
ARCHETYPE
Orchestrator
A bench of specialised subagents. The main agent mostly delegates.
Copy this rig
# review before running: this installs third-party code $ claude mcp add github -e GITHUB_PERSONAL_ACCESS_<redacted> -- npx -y @modelcontextprotocol/server-github $ claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem ${PROJECT_ROOT} $ claude mcp add postgres -- npx -y @modelcontextprotocol/server-postgres ${DATABASE_URL} $ npx degit felixhennequin-gif/claude-code-config-template/.claude ./rig-claude-code-config-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.
$ claude mcp add github -e GITHUB_PERSONAL_ACCESS_<redacted> -- npx -y @modelcontextprotocol/server-github $ claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem ${PROJECT_ROOT} $ claude mcp add postgres -- npx -y @modelcontextprotocol/server-postgres ${DATABASE_URL}
$ curl -fsSL --create-dirs -o .claude/agents/architect.md https://raw.githubusercontent.com/felixhennequin-gif/claude-code-config-template/master/.claude/agents/architect.md $ curl -fsSL --create-dirs -o .claude/agents/changelog-updater.md https://raw.githubusercontent.com/felixhennequin-gif/claude-code-config-template/master/.claude/agents/changelog-updater.md $ curl -fsSL --create-dirs -o .claude/agents/commit-writer.md https://raw.githubusercontent.com/felixhennequin-gif/claude-code-config-template/master/.claude/agents/commit-writer.md $ curl -fsSL --create-dirs -o .claude/agents/pr-creator.md https://raw.githubusercontent.com/felixhennequin-gif/claude-code-config-template/master/.claude/agents/pr-creator.md $ curl -fsSL --create-dirs -o .claude/agents/reviewer.md https://raw.githubusercontent.com/felixhennequin-gif/claude-code-config-template/master/.claude/agents/reviewer.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(rm -rf /:*)",
"Bash(rm -rf ~:*)",
"Bash(dd:*)",
"Bash(mkfs:*)",
"Bash(git push --force:*)",
"Bash(git reset --hard:*)",
"Bash(git clean -fd:*)",
"Bash(git branch -D:*)",
"Bash(npm publish:*)",
"Bash(yarn publish:*)",
"Bash(pnpm publish:*)",
"Bash(cargo publish:*)",
"Bash(twine upload:*)",
"Bash(curl * | sh)",
"Bash(curl * | bash)",
"Bash(wget * | sh)",
"Bash(wget * | bash)"
]
},
"hooks": {
"PreToolUse": [
{
"matcher": "Edit|MultiEdit|Write|NotebookEdit",
"hooks": [
{
"type": "command",
"command": "if [ \"${ALLOW_MAIN_EDIT:-}\" = \"true\" ]; then exit 0; fi; BRANCH=\"$(cd \"$CLAUDE_PROJECT_DIR\" && git branch --show-current 2>/dev/null)\"; case \"$BRANCH\" in main|master) echo \"Cannot edit on $BRANCH branch. Switch to a feature branch, or set A"
}
]
},
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "bash $CLAUDE_PROJECT_DIR/.claude/hooks/dangerous-rm-guard.sh"
},
{
"type": "command",
"command": "bash $CLAUDE_PROJECT_DIR/.claude/hooks/pre-commit-secret-scan.sh"
}
]
}
]
}
} MCP servers (3)
| server | source | est. tokens |
|---|---|---|
| GitHub MCP · "github" env: GITHUB_PERSONAL_ACCESS_TOKEN | npm | 18.0k |
| Filesystem | npm | 4.2k |
| Postgres | npm | 600 |
Subagents (5)
| architect model: sonnet | Stack-agnostic architecture reviewer. Use when proposing a new module, evaluating a dependency, refactoring across layers, or before committing to a design that touches more than one file. Checks stru |
| changelog-updater model: haiku | Parses commits between the most recent tag and HEAD, then appends Keep a Changelog-formatted entries to `CHANGELOG.md` under `## [Unreleased]`. Use after merging PRs, before cutting a release. Does no |
| commit-writer model: haiku | Drafts a Conventional Commits message for the currently staged changes and creates the commit. Reads the modified files in full (not just the diff hunks) before classifying — that step is the differen |
| pr-creator model: haiku | Opens a GitHub pull request for the current branch using `gh pr create`. Use when work is committed and pushed and the only remaining step is filling out a PR title and body. Reads the diff against th |
| reviewer model: sonnet | Stack-agnostic code reviewer. Use when reviewing PRs, auditing a diff, or before merging. Checks banned patterns, security hygiene, error handling, test coverage, and convention drift — without assumi |
Hooks (6)
| event | matcher | runs |
|---|---|---|
| SessionStart | * | bash $CLAUDE_PROJECT_DIR/.claude/hooks/session-start.sh |
| PreToolUse | Edit|MultiEdit|Write|NotebookEdit | if [ "${ALLOW_MAIN_EDIT:-}" = "true" ]; then exit 0; fi; BRANCH="$(cd "$CLAUDE_PROJECT_DIR" && git branch --show-current 2>/dev/null)"; case "$BRANCH" in main|master) echo "Cannot edit on $BRANCH branch. Switch to a feature branch, or set A |
| PreToolUse | Bash | bash $CLAUDE_PROJECT_DIR/.claude/hooks/dangerous-rm-guard.sh |
| PreToolUse | Bash | bash $CLAUDE_PROJECT_DIR/.claude/hooks/pre-commit-secret-scan.sh |
| PostToolUse | Edit|MultiEdit|Write|NotebookEdit | $CLAUDE_PROJECT_DIR/.claude/hooks/lint-on-edit.sh |
| Notification | * | bash $CLAUDE_PROJECT_DIR/.claude/hooks/notification.sh |
Slash commands (7)
/audit/deploy/lint-config/pr/skill-check/wrap-apply/wrap
Permissions
deny (18)
Bash(sudo:*)
Bash(rm -rf /:*)
Bash(rm -rf ~:*)
Bash(dd:*)
Bash(mkfs:*)
Bash(git push --force:*)
Bash(git reset --hard:*)
Bash(git clean -fd:*)
Bash(git branch -D:*)
Bash(npm publish:*)
Bash(yarn publish:*)
Bash(pnpm publish:*)
Bash(cargo publish:*)
Bash(twine upload:*)
Bash(curl * | sh)
Bash(curl * | bash)
Bash(wget * | sh)
Bash(wget * | bash)
ask (0)
—
allow (21)
Read
Grep
Glob
Bash(git status:*)
Bash(git diff:*)
Bash(git log:*)
Bash(git show:*)
Bash(git add:*)
Bash(git commit:*)
Bash(git push:*)
Bash(git fetch:*)
Bash(git pull:*)
Bash(git branch:*)
Bash(git checkout:*)
Bash(git switch:*)
Bash(git stash:*)
Bash(git merge:*)
Bash(git rebase:*)
Bash(git tag:*)
Bash(git remote:*)
Bash(git restore:*)
Similar rigs
holt-web-ai/n8n-nodes-claudecode
—
Pragmatist 27.1k tok ·
floating-astronaut/vibe-coding-kit
Replace your dev team: an operating system for a coordinated Claude Code, Codex and Kimi AI coding team. Docs-first lanes, zero-drift handoffs. MIT.
Pragmatist 22.8k tok ·
haritzloza/nebula
Personal Hyprland dotfiles for CachyOS — gaming, dev, and an embedded Claude AI widget
Pragmatist 25.6k tok ·
sjrhee/claudeGuides
Claude Code environment guides - agents, skills, plugins, settings, hooks, workflows, and CLAUDE.md best practices
Pragmatist 21.4k tok ·