claude-launchpad 0.1.1 → 0.2.1
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/README.md +55 -35
- package/dist/cli.js +264 -112
- package/dist/cli.js.map +1 -1
- package/package.json +4 -1
- package/scenarios/CONTRIBUTING.md +62 -0
- package/scenarios/common/file-size.yaml +3 -2
- package/scenarios/common/git-conventions.yaml +36 -0
- package/scenarios/common/no-hardcoded-values.yaml +33 -0
package/README.md
CHANGED
|
@@ -13,14 +13,14 @@ npx claude-launchpad
|
|
|
13
13
|
## The Workflow
|
|
14
14
|
|
|
15
15
|
```bash
|
|
16
|
-
npx claude-launchpad init
|
|
17
|
-
npx claude-launchpad enhance
|
|
18
|
-
npx claude-launchpad
|
|
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
19
|
npx claude-launchpad doctor --fix # 4. Auto-fix everything (→ 86%)
|
|
20
|
-
npx claude-launchpad
|
|
20
|
+
npx claude-launchpad eval # 5. Prove your config works (89% eval score)
|
|
21
21
|
```
|
|
22
22
|
|
|
23
|
-
> See the [full story on the landing page](https://mboss37.github.io/claude-launchpad/) — a 42% →
|
|
23
|
+
> See the [full story on the landing page](https://mboss37.github.io/claude-launchpad/) — a 42% → 89% journey.
|
|
24
24
|
|
|
25
25
|
## Commands
|
|
26
26
|
|
|
@@ -31,32 +31,32 @@ Runs 7 static analyzers against your `.claude/` directory and `CLAUDE.md`. No AP
|
|
|
31
31
|
```
|
|
32
32
|
Instruction Budget ━━━━━━━━━━━━━━━━━━━━ 100%
|
|
33
33
|
CLAUDE.md Quality ━━━━━━━━━━━━━━━━━━━━ 100%
|
|
34
|
-
Settings
|
|
34
|
+
Settings ━━━━━━━━━━━━━━━━━━━━ 100%
|
|
35
35
|
Hooks ━━━━━━━━━━━━━━━━━━━━ 100%
|
|
36
|
-
Rules
|
|
37
|
-
Permissions
|
|
36
|
+
Rules ━━━━━━━━━━━━━━━━━━━━ 100%
|
|
37
|
+
Permissions ━━━━━━━━━━━━━━━━━━━━ 100%
|
|
38
38
|
MCP Servers ━━━━━━━━━━────────── 50%
|
|
39
39
|
|
|
40
|
-
Overall
|
|
40
|
+
Overall ━━━━━━━━━━━━━━━━━━━─ 93%
|
|
41
41
|
|
|
42
|
-
|
|
43
|
-
No .env file protection hook
|
|
44
|
-
Fix: Add a PreToolUse hook that blocks writes to .env files
|
|
45
|
-
|
|
46
|
-
LOW Permissions
|
|
47
|
-
No force-push protection hook
|
|
48
|
-
Fix: Add a PreToolUse hook that warns on `git push --force` commands
|
|
42
|
+
✓ No issues found. Your configuration looks solid.
|
|
49
43
|
```
|
|
50
44
|
|
|
51
45
|
Running bare `claude-launchpad` with no subcommand auto-detects your config and runs doctor.
|
|
52
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
53
|
**What it checks:**
|
|
54
54
|
|
|
55
55
|
| Analyzer | What it catches |
|
|
56
56
|
|---|---|
|
|
57
57
|
| **Instruction Budget** | Are you over the ~150 instruction limit where Claude starts ignoring rules? |
|
|
58
58
|
| **CLAUDE.md Quality** | Missing essential sections, vague instructions ("write good code"), hardcoded secrets |
|
|
59
|
-
| **Settings** |
|
|
59
|
+
| **Settings** | Hooks configured, dangerous tool access without safety nets |
|
|
60
60
|
| **Hooks** | Missing auto-format, no .env protection, no PreToolUse security gates |
|
|
61
61
|
| **Rules** | Dead rule files, stale references, empty configs |
|
|
62
62
|
| **Permissions** | Bash auto-allowed without security hooks, no force-push protection |
|
|
@@ -80,6 +80,7 @@ claude-launchpad init
|
|
|
80
80
|
✓ Generated CLAUDE.md
|
|
81
81
|
✓ Generated TASKS.md
|
|
82
82
|
✓ Generated .claude/settings.json (with hooks)
|
|
83
|
+
✓ Generated .claudeignore
|
|
83
84
|
```
|
|
84
85
|
|
|
85
86
|
**Detects 13 languages:** TypeScript, JavaScript, Python, Go, Ruby, Rust, Dart, PHP, Java, Kotlin, Swift, Elixir, C#
|
|
@@ -91,7 +92,8 @@ claude-launchpad init
|
|
|
91
92
|
**What you get:**
|
|
92
93
|
- `CLAUDE.md` with your detected stack, commands, and essential sections
|
|
93
94
|
- `TASKS.md` for session continuity across Claude sessions
|
|
94
|
-
- `.claude/settings.json` with auto-format hooks and .env file protection
|
|
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.)
|
|
95
97
|
|
|
96
98
|
### `enhance` — Let Claude finish what init started
|
|
97
99
|
|
|
@@ -109,33 +111,50 @@ Claude opens, reads your code, and updates CLAUDE.md with:
|
|
|
109
111
|
|
|
110
112
|
You see Claude working in real-time — same experience as running `claude` yourself.
|
|
111
113
|
|
|
112
|
-
### `eval` —
|
|
114
|
+
### `eval` — Prove your config works
|
|
113
115
|
|
|
114
|
-
Runs Claude headless against reproducible scenarios and **scores how well your config actually
|
|
116
|
+
Runs Claude headless against 9 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**.
|
|
115
117
|
|
|
116
118
|
```bash
|
|
117
|
-
claude-launchpad eval --suite
|
|
119
|
+
claude-launchpad eval --suite common
|
|
118
120
|
```
|
|
119
121
|
|
|
120
122
|
```
|
|
121
123
|
✓ security/sql-injection 10/10 PASS
|
|
122
|
-
✓ security/env-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
124
|
+
✓ security/env-protection 10/10 PASS
|
|
125
|
+
✓ security/secret-exposure 10/10 PASS
|
|
126
|
+
✓ 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/file-size 10/10 PASS
|
|
131
|
+
✗ workflow/git-conventions 7/10 WARN
|
|
132
|
+
|
|
133
|
+
Config Eval Score ━━━━━━━━━━━━━━━━━━── 89%
|
|
127
134
|
```
|
|
128
135
|
|
|
136
|
+
Each scenario creates an isolated sandbox, runs Claude with explicit tool permissions, and verifies the output with grep/file assertions. [Write your own scenarios](scenarios/CONTRIBUTING.md) in YAML.
|
|
137
|
+
|
|
129
138
|
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.
|
|
130
139
|
|
|
131
140
|
## Use in CI
|
|
132
141
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
142
|
+
Add this workflow to block PRs that degrade Claude Code config quality:
|
|
143
|
+
|
|
144
|
+
```yaml
|
|
145
|
+
# .github/workflows/claude-config.yml
|
|
146
|
+
name: Claude Code Config Quality
|
|
147
|
+
on:
|
|
148
|
+
pull_request:
|
|
149
|
+
paths: ['CLAUDE.md', '.claude/**', '.claudeignore']
|
|
150
|
+
jobs:
|
|
151
|
+
config-check:
|
|
152
|
+
runs-on: ubuntu-latest
|
|
153
|
+
steps:
|
|
154
|
+
- uses: actions/checkout@v4
|
|
155
|
+
- uses: actions/setup-node@v4
|
|
156
|
+
with: { node-version: '22' }
|
|
157
|
+
- run: npx claude-launchpad@latest doctor --min-score 80 --json
|
|
139
158
|
```
|
|
140
159
|
|
|
141
160
|
Exit code is 1 when score is below the threshold, 0 when it passes.
|
|
@@ -146,7 +165,7 @@ Exit code is 1 when score is below the threshold, 0 when it passes.
|
|
|
146
165
|
claude plugin install claude-launchpad
|
|
147
166
|
```
|
|
148
167
|
|
|
149
|
-
Then use `/doctor
|
|
168
|
+
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.
|
|
150
169
|
|
|
151
170
|
## Why this exists
|
|
152
171
|
|
|
@@ -164,10 +183,11 @@ Claude Launchpad gives you a number. Fix the issues, re-run, watch the number go
|
|
|
164
183
|
- **Zero dependencies on third-party Claude plugins.** Generates its own hooks and settings.
|
|
165
184
|
- **Doctor is free.** No API calls, no secrets, works offline and air-gapped.
|
|
166
185
|
- **Enhance uses Claude.** Spawns an interactive session to understand your codebase — costs tokens but produces a CLAUDE.md that actually knows your project.
|
|
167
|
-
- **Eval
|
|
186
|
+
- **Eval uses the Agent SDK.** Runs Claude headless in sandboxes with explicit tool permissions — proof that your config works.
|
|
168
187
|
- **Works with any stack.** Auto-detects your project. No fixed menu of supported frameworks.
|
|
188
|
+
- **50 tests.** The tool that tests configs is itself well-tested.
|
|
169
189
|
- **You never clone this repo.** It's a tool you run with `npx`, not a template you fork.
|
|
170
190
|
|
|
171
191
|
## License
|
|
172
192
|
|
|
173
|
-
MIT
|
|
193
|
+
MIT — Built by [McLovin](https://github.com/mboss37) (the AI behind [@mboss37](https://github.com/mboss37))
|