mboss37/claude-launchpad
Consistent developer experience for Claude Code. Sprint tracking, config scoring, auto-fix, and behavior verification out of the box.
ARCHETYPE
Automator
Hooks on every lifecycle event: format, lint, notify, log.
Copy this rig
# review before running: this installs third-party code $ claude mcp add agentic-memory -- npx claude-launchpad memory serve $ npx degit mboss37/claude-launchpad/.claude ./rig-claude-launchpad # 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 agentic-memory -- npx claude-launchpad memory serve $ npx degit mboss37/claude-launchpad/.claude/skills/lp-enhance .claude/skills/lp-enhance $ npx degit mboss37/claude-launchpad/.claude/skills/lp-migrate-memory .claude/skills/lp-migrate-memory
$ curl -fsSL --create-dirs -o .claude/agents/code-reviewer.md https://raw.githubusercontent.com/mboss37/claude-launchpad/master/.claude/agents/code-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": [
"Read(~/.ssh/*)",
"Read(~/.aws/*)",
"Read(~/.npmrc)"
]
},
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "cmd=$(jq -r '.tool_input.command // empty' 2>/dev/null); echo \"$cmd\" | grep -qE 'git +push[^|;&]*( -f| --force| --force-with-lease)( |$)' && { echo 'WARNING: Force push detected — this can destroy remote history' >&2; exit 2; }; exit 0"
}
]
},
{
"matcher": "Read|Write|Edit",
"hooks": [
{
"type": "command",
"command": "fp=$(jq -r '.tool_input.file_path // empty' 2>/dev/null); echo \"$fp\" | grep -qE '\\.(env|env\\..*)$' && ! echo \"$fp\" | grep -q '.env.example' && { echo 'BLOCKED: .env files contain secrets' >&2; exit 2; }; exit 0"
}
]
}
]
}
} MCP servers (1)
| server | source | est. tokens |
|---|---|---|
| claude-launchpad · "agentic-memory" | npm | 2.5k |
Skills (2)
Subagents (1)
| code-reviewer | Independent, fresh-context review of a diff. Use PROACTIVELY before sprint-ending commits. Pass base and head SHAs (find the base with `git log --grep 'chore(sprint-' -n 1 --format=%H`). |
Hooks (13)
| event | matcher | runs |
|---|---|---|
| PreToolUse | Bash | cmd=$(jq -r '.tool_input.command // empty' 2>/dev/null); echo "$cmd" | grep -qE 'git +push[^|;&]*( -f| --force| --force-with-lease)( |$)' && { echo 'WARNING: Force push detected — this can destroy remote history' >&2; exit 2; }; exit 0 |
| PreToolUse | Read|Write|Edit | fp=$(jq -r '.tool_input.file_path // empty' 2>/dev/null); echo "$fp" | grep -qE '\.(env|env\..*)$' && ! echo "$fp" | grep -q '.env.example' && { echo 'BLOCKED: .env files contain secrets' >&2; exit 2; }; exit 0 |
| PostToolUse | Bash | payload=$(cat); cmd=$(echo "$payload" | jq -r '.tool_input.command // empty'); out=$(echo "$payload" | jq -r '(.tool_response.stdout // "") + (.tool_response.stderr // "")'); echo "$cmd" | grep -qE '(npm|pnpm) publish' && ! echo "$cmd" | gr |
| PostToolUse | Bash | bash .claude/hooks/sprint-open-check.sh; exit 0 |
| PostToolUse | Write|Edit | fp=$(jq -r '.tool_input.file_path // empty' 2>/dev/null); ext="${fp##*.}"; ([ "$ext" = "ts" ] || [ "$ext" = "tsx" ]) && npx prettier --write "$fp" 2>/dev/null; exit 0 |
| PostToolUse | Edit|Write | fp=$(jq -r '.tool_input.file_path // empty' 2>/dev/null); echo "$fp" | grep -q TASKS.md || exit 0; section=$(sed -n '/^## Current/,/^## /p' TASKS.md 2>/dev/null); [ -z "$section" ] && exit 0; unchecked=$(echo "$section" | grep -cE '^[[:spac |
| PostToolUse | Edit|Write | bash .claude/hooks/workflow-check.sh 2>/dev/null; exit 0 |
| SessionStart | startup | npx claude-launchpad memory pull -y 2>/dev/null; exit 0 |
| SessionStart | startup | bash .claude/hooks/release-state-check.sh 2>/dev/null; exit 0 |
| SessionStart | startup|resume|compact|clear | cat TASKS.md 2>/dev/null; exit 0 |
| SessionStart | startup|resume | npx claude-launchpad memory context --json 2>/dev/null; exit 0 |
| SessionStart | startup|resume | bash .claude/hooks/sprint-size-check.sh TASKS.md 2>/dev/null; exit 0 |
| SessionEnd | * | npx claude-launchpad memory push -y |
Cursor rules (7)
architecture · alwaysconventions · alwaysdoctorhooksmemoryverification · alwaysworkflow
Permissions
deny (3)
Read(~/.ssh/*)
Read(~/.aws/*)
Read(~/.npmrc)
ask (0)
—
allow (7)
mcp__agentic-memory__memory_store
mcp__agentic-memory__memory_search
mcp__agentic-memory__memory_recent
mcp__agentic-memory__memory_forget
mcp__agentic-memory__memory_relate
mcp__agentic-memory__memory_stats
mcp__agentic-memory__memory_update
Similar rigs
AizenvoltPrime/claude-setup
—
Pragmatist 1.2k tok ·
IvanKuzyshyn/dotfiles
Dotfiles optimized for speed, coffee, and questionable life choices. 😜
Pragmatist 3.0k tok ·
HGInsights/claude-code-setup
Production-tested Claude Code harness configuration: hooks, skills, subagents, and automated review loops
Pragmatist 1.9k tok ·
stavrespasov/claude-code-os-lite
A free, installable starter setup for Claude Code: 10 workflow commands, 2 agents, and the hook that ends --no-verify commits. MIT.
Pragmatist 101 tok ·