Skip to content

mboss37/claude-launchpad

Repository files navigation

Claude Launchpad

npm version npm downloads GitHub stars License: MIT macOS Linux Windows

Claude follows CLAUDE.md ~80% of the time. Hooks run at 100%. Most setups have zero hooks.

Launchpad scores your Claude Code config, fixes the gaps with hooks and permissions, and runs scenarios to prove Claude follows your rules.

For developers using Claude Code who want consistent results: solo devs, vibe coders, AI-first teams.

Install and See Your Score

npx claude-launchpad
  Instruction Budget     ━━━━━━━━━━━━━━━━━━━━   100%
  CLAUDE.md Quality      ━━━━━━━━━━━━━━━━━━━━   100%
  Settings               ━━━━━━━━━━━━━━━━━━━━   100%
  Hooks                  ━━━━━━━━━━━━━━━━━━━━   100%
  Rules                  ━━━━━━━━━━━━━━━━━━━━   100%
  Permissions            ━━━━━━━━━━━━━━━━━━━━   100%
  MCP Servers            ━━━━━━━━━━━━━━━━━━━━   100%

  Overall                ━━━━━━━━━━━━━━━━━━━━   100%

  ✓ No issues found. Your configuration looks solid.

A typical unconfigured project scores ~31%. After --fix, it jumps to ~91%.

Quick Start

New project:

npx claude-launchpad init

Detects your stack, generates config, hooks, and permissions. Start at ~93%.

Existing project:

npx claude-launchpad doctor --fix

Scores your config, auto-repairs everything it can.

The Three-File System + Workflow Rules

Without structure, CLAUDE.md becomes a dumping ground:

  • Future ideas bury active guidance
  • Sprint notes push conventions off-screen
  • Past ~200 lines, Claude starts ignoring rules at the bottom

The three-file split keeps each concern where it belongs:

File Purpose Example
CLAUDE.md What Claude needs to know Stack, commands, conventions, guardrails
TASKS.md What we're doing now Current sprint, session log (empty between sprints)
BACKLOG.md What we're doing later WP-NNN template, 7 mandatory fields, P0/P1/P2/P3 sections

Init generates all three plus .claude/rules/workflow.md, a path-scoped rule file Claude auto-loads only when editing BACKLOG.md or TASKS.md. It also installs a workflow-check.sh hook that warns on drift: duplicate WP IDs across files, TASKS.md > 80 lines, Current Sprint > 15 items, Session Log > 3 entries.

Doctor flags MEDIUM when workflow.md is missing, LOW when the hook is missing, and MEDIUM on duplicate ## Memory headings in CLAUDE.md. --fix installs or repairs any of them without clobbering existing user content. See the workflow docs for the full lifecycle.

Commands

Command What it does Runs
claude-launchpad Score your config (routes to doctor) Locally, free
claude-launchpad init Detect stack, generate config + hooks + permissions Locally, free
claude-launchpad doctor --fix Auto-fix issues found by doctor Locally, free
claude-launchpad eval Run Claude against test scenarios, score results Via Claude CLI
claude-launchpad memory Optional knowledge base that persists across sessions Locally
/lp-enhance (skill) Claude reads your code and completes CLAUDE.md Inside Claude Code

Doctor

Runs 7 analyzers against your .claude/ directory and CLAUDE.md. No API calls, no network, no cost.

Analyzers:

Analyzer What it catches
Instruction Budget Too many instructions. Claude starts ignoring rules past ~200.
CLAUDE.md Quality Missing sections, vague instructions, hardcoded secrets, duplicate ## Memory headings
Settings No hooks configured, dangerous tool access without safety nets
Hooks Missing auto-format, no .env protection, no PostCompact hook, no workflow-check hook, no auto-sync on session end
Rules Dead rule files, stale references, empty configs, missing .claude/rules/workflow.md
Permissions Credential exposure (~/.ssh, ~/.aws), blanket Bash approval, bypass-mode unprotected
MCP Servers Invalid transport configs, missing commands/URLs

An optional Memory analyzer runs when agentic memory is detected.

Flags:

Flag What it does
--fix Auto-fix: adds hooks, CLAUDE.md sections, BACKLOG.md, rules, .claudeignore
--fix --dry-run Preview fixes without applying them
--watch Re-runs every second as you edit config files
--json Pure JSON output for scripts and CI
--min-score <n> Exit code 1 if score is below threshold (for CI)
-p, --path <dir> Run on a different directory

Init

Reads your manifest files (package.json, go.mod, pyproject.toml, etc.) and generates config that fits. No templates, no menus.

  → Detecting project...
  ✓ Found Next.js project
  · Package manager: pnpm

  ✓ Generated CLAUDE.md
  ✓ Generated TASKS.md
  ✓ Generated BACKLOG.md
  ✓ Generated .claude/settings.json (schema, permissions, hooks)
  ✓ Generated .claude/.gitignore
  ✓ Generated .claudeignore
  ✓ Generated .claude/rules/conventions.md

What init writes:

  • Always: CLAUDE.md, TASKS.md, BACKLOG.md, .claude/settings.json
  • Creates when missing: .claude/.gitignore, .claudeignore, .claude/rules/conventions.md
  • Offers /lp-enhance install (project/global/skip) if not already present
  • CLAUDE.md includes a stop-and-swarm rule: after 3 failed attempts, Claude spins up parallel agents instead of retrying the same approach

Supported stacks: TypeScript, JavaScript, Python, Go, Ruby, Rust, Dart, PHP, Java, Kotlin, Swift, Elixir, C#. Detects frameworks: Next.js, FastAPI, Django, Rails, Laravel, Express, SvelteKit, Angular, NestJS, and 15+ more.

Enhance

Init detects your stack but cannot read your architecture. The /lp-enhance skill runs inside Claude Code to fill in the details.

/lp-enhance

Claude reads your codebase and updates CLAUDE.md with real content: actual architecture, actual conventions, actual guardrails. Not boilerplate. It also suggests project-specific hooks and MCP servers.

Stays under the 200-instruction budget. Overflows detailed content to .claude/rules/ files. If the skill is missing, doctor --fix will create it.

When to re-run: after major refactors, new dependencies, or architecture changes.

Eval

Runs Claude against real test scenarios and scores the results.

# Interactive mode (pick suite, runs, model)
claude-launchpad eval

# Or pass flags directly
claude-launchpad eval --suite security --runs 1 --model haiku

Each scenario creates an isolated sandbox with your full Claude Code config copied in. It runs Claude with a task and checks if your configuration made Claude follow the rules.

  ✓ security/sql-injection            10/10  PASS
  ✓ security/env-protection           10/10  PASS
  ✓ security/secret-exposure          10/10  PASS
  ✓ security/input-validation         10/10  PASS
  ✗ conventions/file-size              5/10  FAIL
    ✗ Claude kept all generated files under 800 lines

  Config Eval Score      ━━━━━━━━━━━━━━━━━━━─    95%

Results save to .claude/eval/ as structured markdown. Feed them back to Claude to fix failures.

Suites:

Suite Scenarios What it tests
security 6 SQL injection, .env protection, secret exposure, input validation, credential read, env exfil via Bash
conventions 5 Error handling, immutability, file size, naming, no hardcoded values
workflow 4 Git conventions, session continuity, memory persistence, deferred tracking

Flags:

Flag What it does
--suite <name> Run one suite: security, conventions, or workflow
-p, --path <dir> Project root to evaluate (defaults to cwd)
--scenarios <path> Use a custom scenarios directory
--model <model> Model to use: haiku, sonnet, opus
--runs <n> Runs per scenario (default 3, median score used)
--debug Keep sandbox directories for inspection
--json JSON output
--timeout <ms> Timeout per run (default 120000)

Hooks

CLAUDE.md rules are ~80% reliable. Hooks are 100% enforced by the harness. Init and --fix set up these hooks automatically:

Hook Trigger What it does
.env protection Before any Read/Write/Edit Blocks Claude from reading .env files that contain secrets
Force-push protection Before any Bash command Blocks git push --force to prevent destroying remote history
Auto-format After any Write/Edit Runs your language's formatter (prettier, ruff, gofmt, rustfmt, etc.)
SessionStart Session opens Injects TASKS.md so Claude knows where you left off
PostCompact After context compression Re-injects TASKS.md so Claude doesn't lose sprint state mid-session
workflow-check After BACKLOG.md/TASKS.md Edit/Write Warns on duplicate WP IDs across files, TASKS.md > 80 lines, Current Sprint > 15 items, Session Log > 3 entries
sprint-size / sprint-open Session start / git commit Warns on microsprints (<3 WPs), oversized sprints (>7 WPs), new sprint opened without BACKLOG cleanup

Memory projects get two additional hooks:

Hook Trigger What it does
SessionStart pull Session opens Auto-pulls memories from GitHub Gist
SessionEnd push Session closes Auto-pushes new memories to GitHub Gist

Memory (optional)

Claude's built-in memory resets per machine. Launchpad gives each project persistent, cross-device memory that syncs via a private GitHub Gist. Switch laptops and your decisions are already there.

claude-launchpad memory

Interactive setup if not installed, stats if it is. Requires native deps first: npm install better-sqlite3 sqlite-vec. Sync requires the GitHub CLI.

  • Relevant memories auto-injected at session start, new memories stored as Claude works
  • Stale knowledge fades, important decisions persist
  • Each project has its own scoped memory
  • --dashboard opens a terminal UI with vim nav, filtering, and search

Full flag and subcommand reference in the memory docs.

Use in CI

Block PRs that degrade your Claude Code config quality:

# .github/workflows/claude-config.yml
name: Claude Code Config Quality
on:
  pull_request:
    paths: ['CLAUDE.md', '.claude/**', '.claudeignore']
jobs:
  config-check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with: { node-version: '22' }
      - run: npx claude-launchpad@latest doctor --min-score 80 --json

Score below threshold = exit code 1 = PR blocked.

Glossary

New to Claude Code? Here's what the terms mean.

Term What it is
CLAUDE.md A markdown file in your project root that tells Claude how to work on your code. Think of it as instructions for your AI pair programmer. Official docs
TASKS.md Sprint tracker and session log. Claude reads this at session start to pick up where you left off.
BACKLOG.md Where deferred features live. Priority tiers (P0/P1/P2) keep future ideas organized without cluttering TASKS.md.
Hooks Shell commands that run automatically when Claude does something. CLAUDE.md rules are ~80% reliable. Hooks are 100% enforced. A SessionStart hook that runs cat TASKS.md means Claude sees your task list at every session start.
Instruction budget CLAUDE.md has a soft limit of ~200 actionable lines. Past that, Claude starts ignoring rules at the bottom. Doctor counts your lines and warns you.
Rules Extra markdown files in .claude/rules/ that Claude reads alongside CLAUDE.md. Use them to offload detailed conventions so CLAUDE.md stays under budget.
Compaction When a conversation gets too long, Claude compresses older messages. Without a PostCompact hook, Claude loses track of your sprint and session context mid-work. The hook re-injects TASKS.md after compaction so Claude stays on track.
MCP Servers External tools Claude can connect to (databases, APIs, docs). Configured in .mcp.json (project scope) or .claude/settings.json. Most projects don't need them.
.claudeignore Like .gitignore but for Claude. Tells Claude which files to skip so it doesn't waste time reading noise.

Privacy

  • No telemetry, no analytics, no data sent anywhere
  • Doctor, init, and fix run fully offline
  • Memory stores data locally at ~/.agentic-memory/
  • Sync (memory push/pull) uses a private GitHub Gist under your account
  • Enhance and eval run through your local Claude CLI

Full privacy policy.

License

MIT