@kennethsolomon/shipkit 3.12.0 → 3.13.2
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 +59 -0
- package/package.json +1 -1
- package/skills/sk:setup-claude/SKILL.md +57 -0
- package/skills/sk:setup-claude/templates/.claude/settings.json.template +1 -1
- package/skills/sk:setup-claude/templates/.claude/statusline.sh +2 -2
- package/skills/sk:setup-claude/templates/hooks/session-start.sh +9 -0
- package/skills/sk:setup-claude/templates/hooks/validate-commit.sh +3 -2
- package/skills/sk:setup-optimizer/SKILL.md +25 -0
package/README.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
<div align="center">
|
|
2
2
|
|
|
3
|
+
<img src="assets/shipkit-logo.png" alt="ShipKit" width="260" />
|
|
4
|
+
|
|
3
5
|
# SHIPKIT
|
|
4
6
|
|
|
5
7
|
**A structured, quality-gated workflow system for Claude Code.**
|
|
@@ -269,6 +271,63 @@ Use these anytime — they're not part of any workflow.
|
|
|
269
271
|
|
|
270
272
|
---
|
|
271
273
|
|
|
274
|
+
## Code Navigation (LSP)
|
|
275
|
+
|
|
276
|
+
ShipKit configures LSP (Language Server Protocol) automatically — giving Claude Code go-to-definition, find-references, hover, and diagnostics instead of plain text search.
|
|
277
|
+
|
|
278
|
+
**`/sk:setup-claude`** and **`/sk:setup-optimizer`** both run an LSP Integration step that:
|
|
279
|
+
- Sets `ENABLE_LSP_TOOL=1` in `~/.claude/settings.json`
|
|
280
|
+
- Detects your stack and installs the appropriate language server
|
|
281
|
+
|
|
282
|
+
| Stack | Language Server |
|
|
283
|
+
|-------|----------------|
|
|
284
|
+
| TypeScript / JavaScript | `typescript-language-server` |
|
|
285
|
+
| PHP | `intelephense` |
|
|
286
|
+
| Python | `pylsp` |
|
|
287
|
+
| Go | `gopls` |
|
|
288
|
+
| Rust | `rust-analyzer` |
|
|
289
|
+
| Swift | `sourcekit-lsp` |
|
|
290
|
+
|
|
291
|
+
**Rule:** Prefer LSP over `rg`/Grep for code navigation. Use `rg` only when LSP is unavailable or for arbitrary text/pattern matching.
|
|
292
|
+
|
|
293
|
+
---
|
|
294
|
+
|
|
295
|
+
## MCP Servers & Plugins
|
|
296
|
+
|
|
297
|
+
Both `/sk:setup-claude` and `/sk:setup-optimizer` offer to install three tools that enhance Claude Code's reasoning, knowledge, and session visibility. All are opt-in and idempotent.
|
|
298
|
+
|
|
299
|
+
### Sequential Thinking MCP
|
|
300
|
+
|
|
301
|
+
**Why it exists:** Complex problems — architecture decisions, multi-step debugging, tasks with many constraints — benefit from structured reasoning. Without it, Claude works through hard problems in a single pass, which can miss steps or lose track of constraints.
|
|
302
|
+
|
|
303
|
+
**What it does:** Gives Claude a dedicated reasoning scratchpad. It thinks through steps sequentially before responding, without cluttering your conversation with the intermediate work.
|
|
304
|
+
|
|
305
|
+
**Benefit:** More coherent, thorough responses on hard problems. Especially useful during `/sk:brainstorm`, `/sk:debug`, and `/sk:review`.
|
|
306
|
+
|
|
307
|
+
**How it's installed:** Adds `@modelcontextprotocol/server-sequential-thinking` to `~/.mcp.json` (global, applies to all projects).
|
|
308
|
+
|
|
309
|
+
### Context7
|
|
310
|
+
|
|
311
|
+
**Why it exists:** Claude's training has a knowledge cutoff. When you're working with libraries that release frequently — React, Next.js, Tailwind, shadcn/ui — Claude's suggestions can reference outdated APIs, deprecated methods, or patterns that no longer apply.
|
|
312
|
+
|
|
313
|
+
**What it does:** Fetches current, version-accurate documentation for libraries you're using and injects it into Claude's context at the moment it's needed.
|
|
314
|
+
|
|
315
|
+
**Benefit:** Accurate code suggestions for the actual version you're running. No more `useEffect` patterns from React 17 when you're on React 19.
|
|
316
|
+
|
|
317
|
+
**How it's installed:** Enables `context7@claude-plugins-official` in `~/.claude/settings.json`.
|
|
318
|
+
|
|
319
|
+
### ccstatusline
|
|
320
|
+
|
|
321
|
+
**Why it exists:** Knowing your context window %, active model, and current branch at a glance matters. Without it, you have to run `/sk:status` or guess when to `/compact`.
|
|
322
|
+
|
|
323
|
+
**What it does:** Adds a persistent statusline to the Claude Code CLI showing context window usage, active model, git branch, and current task.
|
|
324
|
+
|
|
325
|
+
**Benefit:** Always-visible session state. Know when you're approaching context limits before it becomes a problem.
|
|
326
|
+
|
|
327
|
+
**How it's installed:** Runs `npx ccstatusline@latest` which writes the statusline config to `~/.claude/settings.json`.
|
|
328
|
+
|
|
329
|
+
---
|
|
330
|
+
|
|
272
331
|
## All Commands
|
|
273
332
|
|
|
274
333
|
<details>
|
package/package.json
CHANGED
|
@@ -405,6 +405,63 @@ After stack detection, check and configure LSP tooling:
|
|
|
405
405
|
|
|
406
406
|
**Idempotency:** Skip install if the server is already present. Skip settings update if `ENABLE_LSP_TOOL` is already set.
|
|
407
407
|
|
|
408
|
+
### MCP Servers & Plugins
|
|
409
|
+
|
|
410
|
+
After LSP setup, prompt the user to install three recommended tools that enhance Claude Code with structured reasoning, live documentation, and session visibility:
|
|
411
|
+
|
|
412
|
+
> "Install recommended MCP servers & plugins? (Sequential Thinking, Context7, ccstatusline) [y/n]"
|
|
413
|
+
|
|
414
|
+
If yes, install each — skip any already configured.
|
|
415
|
+
|
|
416
|
+
#### 1. Sequential Thinking MCP
|
|
417
|
+
|
|
418
|
+
Gives Claude a structured scratchpad for complex multi-step reasoning (architecture decisions, debugging chains, multi-constraint problems) without cluttering the conversation context.
|
|
419
|
+
|
|
420
|
+
**Check:** grep `~/.mcp.json` for `sequential-thinking`. If missing, add the entry:
|
|
421
|
+
|
|
422
|
+
```json
|
|
423
|
+
{
|
|
424
|
+
"sequential-thinking": {
|
|
425
|
+
"command": "npx",
|
|
426
|
+
"args": ["-y", "@modelcontextprotocol/server-sequential-thinking"]
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
```
|
|
430
|
+
|
|
431
|
+
Merge additively into `~/.mcp.json` — never overwrite existing entries. Create the file if it doesn't exist.
|
|
432
|
+
|
|
433
|
+
Report: `+ sequential-thinking MCP added to ~/.mcp.json`
|
|
434
|
+
|
|
435
|
+
#### 2. Context7
|
|
436
|
+
|
|
437
|
+
Fetches live, version-accurate library documentation and injects it into Claude's context — eliminating stale knowledge cutoff issues when working with rapidly evolving frameworks (Tailwind 4, React 19, Next.js 15, etc.).
|
|
438
|
+
|
|
439
|
+
**Check:** grep `~/.claude/settings.json` for `context7`. If missing, add to `enabledPlugins`:
|
|
440
|
+
|
|
441
|
+
```json
|
|
442
|
+
"enabledPlugins": {
|
|
443
|
+
"context7@claude-plugins-official": true
|
|
444
|
+
}
|
|
445
|
+
```
|
|
446
|
+
|
|
447
|
+
Merge additively — never overwrite other `enabledPlugins` entries.
|
|
448
|
+
|
|
449
|
+
Report: `+ context7 plugin enabled in ~/.claude/settings.json`
|
|
450
|
+
|
|
451
|
+
#### 3. ccstatusline
|
|
452
|
+
|
|
453
|
+
Configures a persistent Claude Code statusline showing context window %, active model, git branch, and current task — always visible without running `/sk:status`.
|
|
454
|
+
|
|
455
|
+
**Check:** look for an existing `statusline` config in `~/.claude/settings.json`. If not already configured by ccstatusline:
|
|
456
|
+
|
|
457
|
+
```bash
|
|
458
|
+
npx ccstatusline@latest
|
|
459
|
+
```
|
|
460
|
+
|
|
461
|
+
Report: `+ ccstatusline configured`
|
|
462
|
+
|
|
463
|
+
**Idempotency:** Skip each install if already present. Never overwrite existing MCP entries, plugin flags, or statusline config.
|
|
464
|
+
|
|
408
465
|
### Settings Generation (`.claude/settings.json`)
|
|
409
466
|
|
|
410
467
|
Rendered from `templates/.claude/settings.json.template`. Contains:
|
|
@@ -26,10 +26,10 @@ fi
|
|
|
26
26
|
# Branch
|
|
27
27
|
BRANCH=$(git rev-parse --abbrev-ref HEAD 2>/dev/null || echo "none")
|
|
28
28
|
|
|
29
|
-
#
|
|
29
|
+
# Active task — first unchecked item in todo.md
|
|
30
30
|
TASK="—"
|
|
31
31
|
if [ -f "tasks/todo.md" ]; then
|
|
32
|
-
TASK=$(
|
|
32
|
+
TASK=$(grep -m1 '^\- \[ \]' "tasks/todo.md" 2>/dev/null | sed 's/^- \[ \] //' | cut -c1-40)
|
|
33
33
|
fi
|
|
34
34
|
|
|
35
35
|
# Output single line
|
|
@@ -38,5 +38,14 @@ if [ -d "src" ]; then
|
|
|
38
38
|
fi
|
|
39
39
|
fi
|
|
40
40
|
|
|
41
|
+
# Current task — first unchecked item in tasks/todo.md
|
|
42
|
+
if [ -f "tasks/todo.md" ]; then
|
|
43
|
+
CURRENT_TASK=$(grep -m1 '^\- \[ \]' "tasks/todo.md" 2>/dev/null | sed 's/^- \[ \] //')
|
|
44
|
+
if [ -n "$CURRENT_TASK" ]; then
|
|
45
|
+
echo ""
|
|
46
|
+
echo "Current task: $CURRENT_TASK"
|
|
47
|
+
fi
|
|
48
|
+
fi
|
|
49
|
+
|
|
41
50
|
echo "==================================="
|
|
42
51
|
exit 0
|
|
@@ -73,9 +73,10 @@ if [ -n "$STAGED" ]; then
|
|
|
73
73
|
fi
|
|
74
74
|
fi
|
|
75
75
|
|
|
76
|
-
#
|
|
76
|
+
# Block commit if any violations found
|
|
77
77
|
if [ -n "$WARNINGS" ]; then
|
|
78
|
-
echo -e "=== Commit
|
|
78
|
+
echo -e "=== Commit Blocked ===$WARNINGS\n\nFix the above issues before committing." >&2
|
|
79
|
+
exit 2
|
|
79
80
|
fi
|
|
80
81
|
|
|
81
82
|
exit 0
|
|
@@ -170,6 +170,31 @@ After hooks deployment, check and configure LSP tooling:
|
|
|
170
170
|
|
|
171
171
|
**Idempotency:** Never overwrite existing hook files — the user may have customized them. Only deploy hooks that don't exist yet. For settings.json, merge additively.
|
|
172
172
|
|
|
173
|
+
### Step 1.7: MCP Servers & Plugin Check
|
|
174
|
+
|
|
175
|
+
After LSP check, verify the three recommended tools are configured:
|
|
176
|
+
|
|
177
|
+
1. **Sequential Thinking MCP** — grep `~/.mcp.json` for `sequential-thinking`
|
|
178
|
+
2. **Context7 plugin** — grep `~/.claude/settings.json` for `context7@claude-plugins-official` in `enabledPlugins`
|
|
179
|
+
3. **ccstatusline** — check `~/.claude/settings.json` for a `statusline` entry set by ccstatusline
|
|
180
|
+
|
|
181
|
+
**Report status and prompt:**
|
|
182
|
+
|
|
183
|
+
> "MCP/Plugins: [X/3] configured
|
|
184
|
+
> sequential-thinking: [✓ configured / ✗ missing]
|
|
185
|
+
> context7: [✓ configured / ✗ missing]
|
|
186
|
+
> ccstatusline: [✓ configured / ✗ missing]
|
|
187
|
+
> Install missing? [y/n]"
|
|
188
|
+
|
|
189
|
+
**If yes:** Follow the same install steps as `sk:setup-claude` MCP Servers & Plugins section:
|
|
190
|
+
- Sequential Thinking: merge entry into `~/.mcp.json`
|
|
191
|
+
- Context7: add `context7@claude-plugins-official: true` to `~/.claude/settings.json` enabledPlugins
|
|
192
|
+
- ccstatusline: run `npx ccstatusline@latest`
|
|
193
|
+
|
|
194
|
+
**If no:** skip, continue to Step 2.
|
|
195
|
+
|
|
196
|
+
**Idempotency:** Never overwrite existing MCP entries, plugin flags, or statusline config — additive merge only.
|
|
197
|
+
|
|
173
198
|
### Step 2: Scan & Enrich
|
|
174
199
|
|
|
175
200
|
After workflow update, proceeds with codebase discovery and enrichment:
|