claude-launchpad 0.3.3 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 mboss37
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,32 +1,89 @@
1
1
  # Claude Launchpad
2
2
 
3
- **Your Claude Code setup is probably broken. This tool tells you how.**
3
+ [![npm version](https://img.shields.io/npm/v/claude-launchpad?style=flat-square)](https://www.npmjs.com/package/claude-launchpad)
4
+ [![npm downloads](https://img.shields.io/npm/dm/claude-launchpad?style=flat-square)](https://www.npmjs.com/package/claude-launchpad)
5
+ [![GitHub stars](https://img.shields.io/github/stars/mboss37/claude-launchpad?style=flat-square)](https://github.com/mboss37/claude-launchpad)
6
+ [![License: MIT](https://img.shields.io/badge/license-MIT-blue?style=flat-square)](https://github.com/mboss37/claude-launchpad/blob/master/LICENSE)
4
7
 
5
- Claude Code's effectiveness is 90% configuration, 10% prompting. But nobody can tell if their config is actually good. You write a `CLAUDE.md`, add some hooks, install some plugins — and then *hope* Claude follows them.
8
+ **Everything you need to launch a project with Claude Code — and keep it healthy.**
6
9
 
7
- Claude Launchpad is the first CLI that **diagnoses, scaffolds, enhances, and tests** Claude Code configurations. Think ESLint for your AI setup.
10
+ A launchpad isn't just where you start. It's where you prepare, run checks, and make sure everything is ready before you go. Claude Launchpad does exactly that for your Claude Code setup:
11
+
12
+ - **Launch new projects** with production-ready Claude Code config from day one
13
+ - **Check existing projects** — score your config, find issues, auto-fix them
14
+ - **Prove it works** — run Claude against test scenarios and see if your rules are actually followed
8
15
 
9
16
  ```bash
10
- npx claude-launchpad
17
+ npm i -g claude-launchpad
18
+ ```
19
+
20
+ ## Two Paths, One Tool
21
+
22
+ ### Starting a new project?
23
+
24
+ ```bash
25
+ claude-launchpad init
11
26
  ```
12
27
 
13
- ## The Workflow
28
+ Detects your stack, generates `CLAUDE.md` with your commands and conventions, creates `TASKS.md` for sprint tracking and session continuity, sets up hooks for auto-formatting and `.env` protection, and adds a `.claudeignore` so Claude doesn't waste time reading `node_modules`.
29
+
30
+ Then run `enhance` to have Claude read your codebase and fill in the architecture, conventions, and guardrails with real, project-specific content — not boilerplate.
31
+
32
+ ### Already have a project?
14
33
 
15
34
  ```bash
16
- npx claude-launchpad init # 1. Auto-detect stack, generate config + hooks + .claudeignore
17
- npx claude-launchpad enhance # 2. Claude reads your code, completes CLAUDE.md
18
- npx claude-launchpad # 3. Check your score (42%)
19
- npx claude-launchpad doctor --fix # 4. Auto-fix everything (→ 86%)
20
- npx claude-launchpad eval # 5. Prove your config works (89% eval score)
35
+ claude-launchpad
21
36
  ```
22
37
 
23
- > See the [full story on the landing page](https://mboss37.github.io/claude-launchpad/) a 42% 89% journey.
38
+ Scans your Claude Code config, gives you a score out of 100, and tells you exactly what's wrong. Run `--fix` to auto-apply fixes. Run `--watch` to see the score update live as you edit. Run `eval` to prove your config actually makes Claude behave.
39
+
40
+ ## All Commands
41
+
42
+ | Command | What it does | Cost |
43
+ |---|---|---|
44
+ | `claude-launchpad init` | Launch a new project: detects stack, generates config, hooks, TASKS.md | Free |
45
+ | `claude-launchpad` | Check your config: score it 0-100, list issues | Free |
46
+ | `claude-launchpad doctor --fix` | Auto-fix issues: adds hooks, rules, missing sections, .claudeignore | Free |
47
+ | `claude-launchpad doctor --watch` | Live score that updates when you save config files | Free |
48
+ | `claude-launchpad enhance` | Claude reads your code and completes CLAUDE.md with real content | Uses Claude |
49
+ | `claude-launchpad eval --suite security` | Run Claude against test scenarios, prove your config works | Uses Claude |
50
+
51
+ ## Quick Start
52
+
53
+ ```bash
54
+ # Install
55
+ npm i -g claude-launchpad
24
56
 
25
- ## Commands
57
+ # Go to any project with Claude Code
58
+ cd your-project
26
59
 
27
- ### `doctor` — Know your score
60
+ # See your score
61
+ claude-launchpad
28
62
 
29
- Runs 7 static analyzers against your `.claude/` directory and `CLAUDE.md`. No API calls, no cost, works offline.
63
+ # Fix everything it found
64
+ claude-launchpad doctor --fix
65
+
66
+ # See your new score
67
+ claude-launchpad
68
+ ```
69
+
70
+ That takes you from ~42% to ~86% with zero manual work.
71
+
72
+ ## The Doctor
73
+
74
+ The core of the tool. Runs 7 analyzers against your `.claude/` directory and `CLAUDE.md`:
75
+
76
+ | Analyzer | What it catches |
77
+ |---|---|
78
+ | **Instruction Budget** | Too many instructions in CLAUDE.md — Claude starts ignoring rules past ~150 |
79
+ | **CLAUDE.md Quality** | Missing sections, vague instructions ("write good code"), hardcoded secrets |
80
+ | **Settings** | No hooks configured, dangerous tool access without safety nets |
81
+ | **Hooks** | Missing auto-format on save, no .env file protection, no security gates |
82
+ | **Rules** | Dead rule files, stale references, empty configs |
83
+ | **Permissions** | Bash auto-allowed without security hooks, no force-push protection |
84
+ | **MCP Servers** | Invalid transport configs, missing commands/URLs |
85
+
86
+ Output looks like this:
30
87
 
31
88
  ```
32
89
  Instruction Budget ━━━━━━━━━━━━━━━━━━━━ 100%
@@ -42,40 +99,25 @@ Runs 7 static analyzers against your `.claude/` directory and `CLAUDE.md`. No AP
42
99
  ✓ No issues found. Your configuration looks solid.
43
100
  ```
44
101
 
45
- Running bare `claude-launchpad` with no subcommand auto-detects your config and runs doctor.
46
-
47
- **Flags:**
48
- - `--fix` — Auto-apply deterministic fixes (42% → 86% in one command)
49
- - `--watch` — Live score that updates every time you save a config file
50
- - `--json` — JSON output for programmatic use
51
- - `--min-score <n>` — Exit non-zero if score drops below threshold (for CI)
52
-
53
- **What it checks:**
102
+ **All doctor flags:**
54
103
 
55
- | Analyzer | What it catches |
104
+ | Flag | What it does |
56
105
  |---|---|
57
- | **Instruction Budget** | Are you over the ~150 instruction limit where Claude starts ignoring rules? |
58
- | **CLAUDE.md Quality** | Missing essential sections, vague instructions ("write good code"), hardcoded secrets |
59
- | **Settings** | Hooks configured, dangerous tool access without safety nets |
60
- | **Hooks** | Missing auto-format, no .env protection, no PreToolUse security gates |
61
- | **Rules** | Dead rule files, stale references, empty configs |
62
- | **Permissions** | Bash auto-allowed without security hooks, no force-push protection |
63
- | **MCP Servers** | Invalid transport configs, missing commands/URLs, broken executables |
64
-
65
- ### `init` — Set up any project in seconds
106
+ | `--fix` | Auto-fixes issues: adds hooks, CLAUDE.md sections, rules, .claudeignore |
107
+ | `--watch` | Re-runs every second, updates when you save a config file |
108
+ | `--json` | Pure JSON output, no colors, no banner for scripts and CI |
109
+ | `--min-score <n>` | Exit code 1 if score is below threshold use in CI to block bad configs |
110
+ | `-p, --path <dir>` | Run on a different directory |
66
111
 
67
- Auto-detects your stack and generates optimized Claude Code configuration. Works with **any** language — no fixed menu, no templates to pick from.
112
+ ## Init
68
113
 
69
- ```bash
70
- claude-launchpad init
71
- ```
114
+ Detects your project and generates Claude Code config that fits. No templates, no menus — it reads your manifest files and figures it out.
72
115
 
73
116
  ```
74
117
  → Detecting project...
75
118
  ✓ Found Next.js (TypeScript) project
76
119
  · Package manager: pnpm
77
120
  · Dev command: pnpm dev
78
- · Test command: pnpm test
79
121
 
80
122
  ✓ Generated CLAUDE.md
81
123
  ✓ Generated TASKS.md
@@ -83,86 +125,87 @@ claude-launchpad init
83
125
  ✓ Generated .claudeignore
84
126
  ```
85
127
 
86
- **Detects 13 languages:** TypeScript, JavaScript, Python, Go, Ruby, Rust, Dart, PHP, Java, Kotlin, Swift, Elixir, C#
87
-
88
- **Detects 20+ frameworks:** Next.js, FastAPI, Django, Rails, Laravel, Express, SvelteKit, Angular, NestJS, Hono, Astro, Remix, Nuxt, Symfony, and more.
89
-
90
- **Detects package managers from lockfiles:** pnpm, yarn, npm, bun, uv, poetry, cargo, bundler, composer, go modules.
128
+ **Works with:** TypeScript, JavaScript, Python, Go, Ruby, Rust, Dart, PHP, Java, Kotlin, Swift, Elixir, C# — and detects frameworks (Next.js, FastAPI, Django, Rails, Laravel, Express, SvelteKit, Angular, NestJS, and 15+ more).
91
129
 
92
130
  **What you get:**
93
- - `CLAUDE.md` with your detected stack, commands, and essential sections
94
- - `TASKS.md` for session continuity across Claude sessions
95
- - `.claude/settings.json` with auto-format hooks and .env file protection (merges with existing)
96
- - `.claudeignore` with language-specific ignore patterns (node_modules, __pycache__, dist, etc.)
131
+ - `CLAUDE.md` your stack, commands, conventions, guardrails
132
+ - `TASKS.md` session continuity across Claude Code sessions
133
+ - `.claude/settings.json` auto-format hooks and .env file protection
134
+ - `.claudeignore` keeps Claude from reading node_modules, dist, lockfiles, etc.
97
135
 
98
- ### `enhance` — Let Claude finish what init started
136
+ ## Enhance
99
137
 
100
- Init auto-detects your stack but can't understand your architecture. Enhance spawns Claude interactively to read your actual codebase and fill in the gaps.
138
+ Init detects your stack but can't understand your architecture. Enhance opens Claude to read your actual code and fill in the details.
101
139
 
102
140
  ```bash
103
141
  claude-launchpad enhance
104
142
  ```
105
143
 
106
- Claude opens, reads your code, and updates CLAUDE.md with:
107
- - **Architecture** — actual directory structure, data flow, key modules
108
- - **Conventions** — patterns it observes in your code (naming, imports, state management)
109
- - **Off-Limits** — guardrails based on what it sees (protected files, anti-patterns)
110
- - **Key Decisions** — architectural decisions visible in the code
144
+ 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 based on what it finds.
111
145
 
112
- You see Claude working in real-time same experience as running `claude` yourself.
146
+ Stays under the 120-instruction budget. Overflows detailed content to `.claude/rules/` files.
113
147
 
114
- ### `eval` — Prove your config works
148
+ ## Eval
115
149
 
116
- Runs Claude headless against 11 reproducible scenarios using the [Agent SDK](https://www.npmjs.com/package/@anthropic-ai/claude-agent-sdk) and **scores how well your config actually drives correct behavior**.
150
+ The part nobody else has built. Runs Claude against real test scenarios and scores the results.
117
151
 
118
152
  ```bash
119
- claude-launchpad eval --suite common
153
+ # Run only security tests (4 scenarios)
154
+ claude-launchpad eval --suite security
155
+
156
+ # Run only convention tests (5 scenarios)
157
+ claude-launchpad eval --suite conventions
158
+
159
+ # Run only workflow tests (2 scenarios)
160
+ claude-launchpad eval --suite workflow
161
+
162
+ # Run everything (11 scenarios)
163
+ claude-launchpad eval
164
+
165
+ # Use a cheaper model
166
+ claude-launchpad eval --suite security --model haiku
167
+
168
+ # One run per scenario (fastest)
169
+ claude-launchpad eval --suite security --runs 1
120
170
  ```
121
171
 
172
+ Each scenario creates an isolated sandbox, runs Claude with a task, and checks if Claude followed the rules:
173
+
122
174
  ```
123
175
  ✓ security/sql-injection 10/10 PASS
124
176
  ✓ security/env-protection 10/10 PASS
125
177
  ✓ security/secret-exposure 10/10 PASS
126
178
  ✓ security/input-validation 10/10 PASS
127
- conventions/error-handling 10/10 PASS
128
- conventions/immutability 10/10 PASS
129
- ✓ conventions/no-hardcoded-values 10/10 PASS
130
- ✓ conventions/naming-conventions 10/10 PASS
131
- ✓ conventions/file-size 10/10 PASS
132
- ✓ workflow/git-conventions 10/10 PASS
133
- ✗ workflow/session-continuity 7/10 WARN
179
+ conventions/file-size 5/10 FAIL
180
+ Claude kept all generated files under 800 lines
134
181
 
135
182
  Config Eval Score ━━━━━━━━━━━━━━━━━━━─ 95%
136
183
  ```
137
184
 
138
- Each scenario is a YAML file. [Write your own](scenarios/CONTRIBUTING.md).
139
-
140
- This is the part nobody else has built. Template repos scaffold. Audit tools diagnose. **Nobody tests whether your config actually makes Claude better.** Until now.
185
+ Results are saved to `.claude/eval/` as structured markdown — you can feed these reports back to Claude to fix the failures.
141
186
 
142
- ## How It Works Under the Hood
187
+ **Suites:**
143
188
 
144
- ### doctor
145
- Reads your `CLAUDE.md`, `.claude/settings.json`, `.claude/rules/`, and `.claudeignore`. Runs 7 analyzers that check instruction count, section completeness, hook configuration, rule validity, permission safety, and MCP server configs. Pure static analysis — no API calls, no network, no cost.
189
+ | Suite | Scenarios | What it tests |
190
+ |---|---|---|
191
+ | `security` | 4 | SQL injection, .env protection, secret exposure, input validation |
192
+ | `conventions` | 5 | Error handling, immutability, file size, naming, no hardcoded values |
193
+ | `workflow` | 2 | Git conventions, session continuity |
146
194
 
147
- ### init
148
- Scans the project root for manifest files (`package.json`, `go.mod`, `pyproject.toml`, `Gemfile`, `Cargo.toml`, `composer.json`, etc.). Detects language, framework, package manager, and available scripts. Generates config files with stack-appropriate hooks (prettier for TypeScript, gofmt for Go, ruff for Python, etc.). Merges with existing `settings.json` if one exists.
195
+ **All eval flags:**
149
196
 
150
- ### enhance
151
- Spawns `claude "prompt"` as an interactive child process with `stdio: "inherit"` — you see Claude's full UI. The prompt instructs Claude to read the codebase and fill in CLAUDE.md sections. No data passes through the launchpad — it just launches Claude with a pre-loaded task.
152
-
153
- ### eval
154
- 1. Creates a temp directory (`/tmp/claude-eval-<uuid>/`)
155
- 2. Writes seed files from the scenario YAML (e.g., a `src/db.ts` with a TODO)
156
- 3. Writes a `CLAUDE.md` with the scenario's instructions
157
- 4. Initializes a git repo (Claude Code expects one)
158
- 5. Runs Claude via the [Agent SDK](https://www.npmjs.com/package/@anthropic-ai/claude-agent-sdk) with `allowedTools: ["Bash", "Read", "Write", "Edit", "Glob", "Grep"]` and `permissionMode: "dontAsk"` — or falls back to `claude -p` if the SDK isn't installed
159
- 6. After Claude finishes, runs grep/file assertions against the modified files
160
- 7. Scores: each check has points, total determines pass/fail
161
- 8. Cleans up the temp directory (or preserves it with `--debug`)
197
+ | Flag | What it does |
198
+ |---|---|
199
+ | `--suite <name>` | Run one suite: `security`, `conventions`, or `workflow` |
200
+ | `--model <model>` | Model to use: `haiku`, `sonnet`, `opus` |
201
+ | `--runs <n>` | Runs per scenario (default 3, median score used) |
202
+ | `--debug` | Keep sandbox directories so you can inspect what Claude wrote |
203
+ | `--json` | JSON output |
204
+ | `--timeout <ms>` | Timeout per run (default 120000) |
162
205
 
163
206
  ## Use in CI
164
207
 
165
- Add this workflow to block PRs that degrade Claude Code config quality:
208
+ Block PRs that degrade your Claude Code config quality:
166
209
 
167
210
  ```yaml
168
211
  # .github/workflows/claude-config.yml
@@ -180,39 +223,52 @@ jobs:
180
223
  - run: npx claude-launchpad@latest doctor --min-score 80 --json
181
224
  ```
182
225
 
183
- Exit code is 1 when score is below the threshold, 0 when it passes.
226
+ Score below threshold = exit code 1 = PR blocked.
184
227
 
185
228
  ## Plugin (pending marketplace review)
186
229
 
187
- The plugin has been submitted to the Claude Code marketplace. Once approved:
188
-
189
230
  ```bash
190
231
  claude plugin install claude-launchpad
191
232
  ```
192
233
 
193
- Then use `/launchpad:doctor`, `/launchpad:init`, `/launchpad:enhance`, and `/launchpad:eval` directly inside Claude Code. The plugin also nudges you to re-check your score when you edit config files.
234
+ Then use `/launchpad:doctor`, `/launchpad:init`, `/launchpad:enhance`, `/launchpad:eval` inside Claude Code. The plugin nudges you to re-check your score when you edit config files.
235
+
236
+ ## How It Works
237
+
238
+ **Doctor** reads your files and runs static analysis. No API calls. No network. No cost.
194
239
 
195
- ## Why this exists
240
+ **Init** scans manifest files (package.json, go.mod, pyproject.toml, etc.), detects your stack, and generates config with safe, hardcoded formatter hooks — never interpolates user-controlled strings.
196
241
 
197
- Claude Code configurations are the new `.eslintrc` everyone has one, nobody knows if it's good. The difference:
242
+ **Enhance** spawns `claude "prompt"` as an interactive child process. You see Claude's full UI. No data passes through the tool — it just launches Claude with a task.
198
243
 
199
- - **CLAUDE.md is advisory** (~80% compliance). Claude might ignore your rules.
200
- - **Hooks are deterministic** (100% compliance). But most people don't have any.
201
- - **Instruction budget is real.** Past ~150 instructions, compliance drops. Most people don't know they're over.
244
+ **Eval** creates a temp directory, writes seed files from the scenario YAML, initializes a git repo, runs Claude via the Agent SDK (or falls back to CLI), then checks the output with grep/file assertions. Sandbox is cleaned up after (or preserved with `--debug`).
245
+
246
+ ## Why This Exists
247
+
248
+ - **CLAUDE.md is advisory.** ~80% compliance. Claude might ignore your rules.
249
+ - **Hooks are deterministic.** 100% compliance. But most people have zero hooks.
250
+ - **Instruction budget is real.** Past ~150, compliance drops. Most people don't know they're over.
202
251
  - **Nobody measures.** You can't improve what you can't measure.
203
252
 
204
- Claude Launchpad gives you a number. Fix the issues, re-run, watch the number go up.
253
+ This tool gives you a number. Fix the issues, re-run, watch the number go up.
254
+
255
+ ## Glossary
256
+
257
+ New to Claude Code? Here's what the terms mean:
258
+
259
+ | Term | What it is |
260
+ |---|---|
261
+ | **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](https://docs.anthropic.com/en/docs/claude-code/memory#claudemd) |
262
+ | **Hooks** | Shell commands that run automatically when Claude does something. For example: auto-format a file after Claude edits it, or block Claude from reading your `.env` file. They live in `.claude/settings.json`. |
263
+ | **Instruction budget** | CLAUDE.md has a soft limit of ~150 actionable lines. Past that, Claude starts ignoring rules at the bottom. Doctor counts your lines and warns you. |
264
+ | **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. |
265
+ | **MCP Servers** | External tools Claude can connect to (databases, APIs, docs). Configured in `.claude/settings.json`. Most projects don't need them. |
266
+ | **.claudeignore** | Like `.gitignore` but for Claude. Tells Claude which files to skip (node_modules, dist, lockfiles) so it doesn't waste time reading noise. |
205
267
 
206
- ## Philosophy
268
+ ## Privacy
207
269
 
208
- - **Zero dependencies on third-party Claude plugins.** Generates its own hooks and settings.
209
- - **Doctor is free.** No API calls, no secrets, works offline and air-gapped.
210
- - **Enhance uses Claude.** Spawns an interactive session to understand your codebase — costs tokens but produces a CLAUDE.md that actually knows your project.
211
- - **Eval uses the Agent SDK.** Runs Claude headless in sandboxes with explicit tool permissions — proof that your config works.
212
- - **Works with any stack.** Auto-detects your project. No fixed menu of supported frameworks.
213
- - **57 tests.** The tool that tests configs is itself well-tested.
214
- - **You never clone this repo.** It's a tool you run with `npx`, not a template you fork.
270
+ No telemetry. No analytics. No data sent anywhere. Doctor, init, and fix are fully offline. Enhance and eval run through your local Claude CLI — no data passes through this tool. [Full privacy policy](https://mboss37.github.io/claude-launchpad/privacy.html).
215
271
 
216
272
  ## License
217
273
 
218
- MIT — Built by [McLovin](https://github.com/mboss37) (the AI behind [@mboss37](https://github.com/mboss37))
274
+ MIT