@kennethsolomon/shipkit 3.10.1 → 3.11.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.
Files changed (57) hide show
  1. package/README.md +121 -49
  2. package/commands/sk/autopilot.md +2 -2
  3. package/commands/sk/context-budget.md +5 -0
  4. package/commands/sk/eval.md +5 -0
  5. package/commands/sk/health.md +5 -0
  6. package/commands/sk/help.md +32 -8
  7. package/commands/sk/learn.md +5 -0
  8. package/commands/sk/resume-session.md +5 -0
  9. package/commands/sk/safety-guard.md +5 -0
  10. package/commands/sk/save-session.md +5 -0
  11. package/commands/sk/security-check.md +2 -2
  12. package/commands/sk/set-profile.md +8 -0
  13. package/commands/sk/status.md +4 -9
  14. package/package.json +1 -1
  15. package/skills/sk:accessibility/SKILL.md +10 -1
  16. package/skills/sk:autopilot/SKILL.md +26 -45
  17. package/skills/sk:brainstorming/SKILL.md +13 -0
  18. package/skills/sk:context/SKILL.md +11 -15
  19. package/skills/sk:context-budget/SKILL.md +126 -0
  20. package/skills/sk:dashboard/SKILL.md +3 -4
  21. package/skills/sk:dashboard/server.js +0 -65
  22. package/skills/sk:e2e/SKILL.md +3 -3
  23. package/skills/sk:eval/SKILL.md +188 -0
  24. package/skills/sk:fast-track/SKILL.md +0 -9
  25. package/skills/sk:frontend-design/SKILL.md +232 -0
  26. package/skills/sk:gates/SKILL.md +2 -3
  27. package/skills/sk:health/SKILL.md +146 -0
  28. package/skills/sk:learn/SKILL.md +138 -0
  29. package/skills/sk:lint/SKILL.md +3 -3
  30. package/skills/sk:perf/SKILL.md +3 -3
  31. package/skills/sk:resume-session/SKILL.md +95 -0
  32. package/skills/sk:retro/SKILL.md +1 -2
  33. package/skills/sk:review/SKILL.md +2 -2
  34. package/skills/sk:safety-guard/SKILL.md +134 -0
  35. package/skills/sk:save-session/SKILL.md +84 -0
  36. package/skills/sk:setup-claude/SKILL.md +40 -4
  37. package/skills/sk:setup-claude/scripts/__pycache__/apply_setup_claude.cpython-314.pyc +0 -0
  38. package/skills/sk:setup-claude/scripts/apply_setup_claude.py +0 -1
  39. package/skills/sk:setup-claude/templates/.claude/settings.json.template +110 -26
  40. package/skills/sk:setup-claude/templates/.claude/statusline.sh +1 -15
  41. package/skills/sk:setup-claude/templates/CLAUDE.md.template +69 -138
  42. package/skills/sk:setup-claude/templates/commands/brainstorm.md.template +2 -13
  43. package/skills/sk:setup-claude/templates/hooks/config-protection.sh +71 -0
  44. package/skills/sk:setup-claude/templates/hooks/console-log-warning.sh +42 -0
  45. package/skills/sk:setup-claude/templates/hooks/cost-tracker.sh +26 -0
  46. package/skills/sk:setup-claude/templates/hooks/post-edit-format.sh +53 -0
  47. package/skills/sk:setup-claude/templates/hooks/pre-compact.sh +1 -12
  48. package/skills/sk:setup-claude/templates/hooks/safety-guard.sh +72 -0
  49. package/skills/sk:setup-claude/templates/hooks/session-start.sh +0 -11
  50. package/skills/sk:setup-claude/templates/hooks/session-stop.sh +0 -7
  51. package/skills/sk:setup-claude/templates/hooks/suggest-compact.sh +35 -0
  52. package/skills/sk:setup-claude/tests/__pycache__/test_apply_setup_claude.cpython-314.pyc +0 -0
  53. package/skills/sk:setup-claude/tests/test_apply_setup_claude.py +2 -33
  54. package/skills/sk:setup-optimizer/SKILL.md +68 -15
  55. package/skills/sk:start/SKILL.md +34 -11
  56. package/skills/sk:test/SKILL.md +3 -3
  57. package/skills/sk:setup-claude/templates/tasks/workflow-status.md.template +0 -28
package/README.md CHANGED
@@ -48,6 +48,44 @@ That's it. `/sk:setup-claude` creates your project scaffolding: planning files,
48
48
 
49
49
  `/sk:start` is the recommended entry point — it classifies your task and routes you to the optimal flow automatically. You can also jump directly to `/sk:brainstorm`, `/sk:debug`, or any other flow entry point.
50
50
 
51
+ ### Updating ShipKit
52
+
53
+ ```bash
54
+ # Update the package
55
+ npm install -g @kennethsolomon/shipkit && shipkit
56
+
57
+ # Then in each project, update CLAUDE.md + deploy new hooks:
58
+ /sk:setup-optimizer
59
+ ```
60
+
61
+ `shipkit` re-installs all skills and commands globally. `/sk:setup-optimizer` updates each project's CLAUDE.md with new commands and deploys any missing hooks.
62
+
63
+ ---
64
+
65
+ ## Lifecycle Hooks
66
+
67
+ `/sk:setup-claude` installs lifecycle hooks that automate common tasks. Core hooks are always installed; enhanced hooks are opt-in.
68
+
69
+ **Core hooks (always installed):**
70
+ | Hook | Event | What it does |
71
+ |------|-------|-------------|
72
+ | `session-start` | SessionStart | Loads branch, recent commits, tech debt, code health |
73
+ | `session-stop` | Stop | Logs session accomplishments to `tasks/progress.md` |
74
+ | `pre-compact` | PreCompact | Saves git state before context compression |
75
+ | `validate-commit` | PreToolUse (git commit) | Validates conventional commit format, detects secrets |
76
+ | `validate-push` | PreToolUse (git push) | Warns before pushing to protected branches |
77
+ | `log-agent` | SubagentStart | Logs sub-agent invocations to `tasks/agent-audit.log` |
78
+
79
+ **Enhanced hooks (opt-in via `/sk:setup-claude` or `/sk:setup-optimizer`):**
80
+ | Hook | Event | What it does |
81
+ |------|-------|-------------|
82
+ | `config-protection` | PreToolUse (Edit/Write) | Blocks modifications to linter/formatter configs |
83
+ | `post-edit-format` | PostToolUse (Edit) | Auto-formats with Biome/Prettier/Pint/gofmt after edits |
84
+ | `console-log-warning` | Stop | Warns about `console.log`, `dd()`, `var_dump()` in modified files |
85
+ | `suggest-compact` | PreToolUse (Edit/Write) | Suggests `/compact` after 50+ tool calls |
86
+ | `cost-tracker` | Stop | Logs session metadata to `.claude/sessions/cost-log.jsonl` |
87
+ | `safety-guard` | PreToolUse (Bash/Edit/Write) | Enforces `/sk:safety-guard` freeze/careful mode |
88
+
51
89
  ---
52
90
 
53
91
  ## Pick Your Flow
@@ -55,8 +93,8 @@ That's it. `/sk:setup-claude` creates your project scaffolding: planning files,
55
93
  | I want to... | Run this | What happens |
56
94
  |--------------|----------|-------------|
57
95
  | **Not sure — let ShipKit decide** | `/sk:start` | Classifies your task, routes to optimal flow/mode/agents |
58
- | **Build a new feature** | `/sk:brainstorm` | Full workflow: plan → TDD → 6 quality gates → PR |
59
- | **Build hands-free** | `/sk:autopilot` | All 21 steps, auto-skip, auto-advance, auto-commit |
96
+ | **Build a new feature** | `/sk:brainstorm` | Full workflow: plan → TDD → quality gates → PR |
97
+ | **Build hands-free** | `/sk:autopilot` | All 8 steps, auto-skip, auto-advance, auto-commit |
60
98
  | **Full-stack feature (parallel)** | `/sk:team` | Parallel domain agents (backend + frontend + QA) |
61
99
  | **Make a small change** | `/sk:fast-track` | Skip planning, keep all quality gates |
62
100
  | **Fix a bug** | `/sk:debug` | Investigate → regression test → fix → gates → PR |
@@ -74,20 +112,13 @@ That's it. `/sk:setup-claude` creates your project scaffolding: planning files,
74
112
  | Step | Command | What it does | Phase |
75
113
  |------|---------|-------------|-------|
76
114
  | 1 | `/sk:brainstorm` | Explore requirements, propose approaches | Think |
77
- | 2 | `/sk:frontend-design` | *Optional* — UI mockup (`--pencil` for visual) | Think |
78
- | 3 | `/sk:api-design` | *Optional* API contracts | Think |
79
- | 4 | `/sk:accessibility` | *Optional* WCAG 2.1 AA audit on design | Think |
80
- | 5 | `/sk:write-plan` | Write decision-complete plan | Think |
81
- | 6 | `/sk:branch` | Create feature branch | Build |
82
- | 7 | `/sk:schema-migrate` | *Optional* auto-skips if no migrations | Build |
83
- | 8 | `/sk:write-tests` | TDD red write failing tests | Build |
84
- | 9 | `/sk:execute-plan` | TDD green — make tests pass | Build |
85
- | 10 | `/sk:smart-commit` | Conventional commit | Build |
86
- | 11 | `/sk:gates` | All 6 quality gates (parallel) | Verify |
87
- | 12 | `/sk:update-task` | Mark done | Ship |
88
- | 13 | `/sk:finish-feature` | Changelog + PR | Ship |
89
- | 14 | `/sk:features` | Sync feature specs | Ship |
90
- | 15 | `/sk:release` | *Optional* — version bump + tag | Ship |
115
+ | 2 | `/sk:frontend-design` or `/sk:api-design` | *Optional* — UI mockup or API contracts (includes accessibility) | Think |
116
+ | 3 | `/sk:write-plan` | Write decision-complete plan | Think |
117
+ | 4 | `/sk:branch` | Create feature branch | Build |
118
+ | 5 | `/sk:write-tests` + `/sk:execute-plan` | TDD: write failing tests, then implement | Build |
119
+ | 6 | `/sk:smart-commit` | Conventional commit | Build |
120
+ | 7 | `/sk:gates` | All 6 quality gates (parallel batches) | Verify |
121
+ | 8 | `/sk:finish-feature` | Update task, changelog, PR, feature sync, release | Ship |
91
122
 
92
123
  ---
93
124
 
@@ -97,14 +128,11 @@ That's it. `/sk:setup-claude` creates your project scaffolding: planning files,
97
128
 
98
129
  | Step | Command | What it does | Phase |
99
130
  |------|---------|-------------|-------|
100
- | ~~1~~ | ~~/sk:brainstorm~~ | **Skipped** | |
101
- | ~~2~~ | ~~/sk:write-plan~~ | **Skipped** | — |
102
- | ~~3~~ | ~~/sk:write-tests~~ | **Skipped** | |
103
- | 4 | `/sk:branch` | Create feature branch | Build |
104
- | 5 | implement directly | No TDD write code | Build |
105
- | 6 | `/sk:smart-commit` | Conventional commit | Build |
106
- | 7 | `/sk:gates` | All 6 quality gates (parallel) | Verify |
107
- | 8 | `/sk:finish-feature` | Changelog + PR | Ship |
131
+ | 1 | `/sk:branch` | Create feature branch | Build |
132
+ | 2 | implement directly | No TDDwrite code | Build |
133
+ | 3 | `/sk:smart-commit` | Conventional commit | Build |
134
+ | 4 | `/sk:gates` | All quality gates (parallel batches) | Verify |
135
+ | 5 | `/sk:finish-feature` | Changelog + PR | Ship |
108
136
 
109
137
  Guard rails: warns if diff > 300 lines or > 5 new files.
110
138
 
@@ -116,15 +144,13 @@ Guard rails: warns if diff > 300 lines or > 5 new files.
116
144
 
117
145
  | Step | Command | What it does | Phase |
118
146
  |------|---------|-------------|-------|
119
- | ~~1~~ | ~~/sk:brainstorm~~ | **Skipped** | |
120
- | ~~2~~ | ~~/sk:write-plan~~ | **Skipped** | |
121
- | 3 | `/sk:debug` | Reproduce, isolate, hypothesize, verify | Think |
122
- | 4 | `/sk:branch` | Create fix branch | Build |
123
- | 5 | `/sk:write-tests` | Regression test that reproduces the bug | Build |
124
- | 6 | implement the fix | Make regression test pass | Build |
125
- | 7 | `/sk:smart-commit` | Commit fix + test | Build |
126
- | 8 | `/sk:gates` | All 6 quality gates (parallel) | Verify |
127
- | 9 | `/sk:finish-feature` | Changelog + PR | Ship |
147
+ | 1 | `/sk:debug` | Reproduce, isolate, hypothesize, verify | Think |
148
+ | 2 | `/sk:branch` | Create fix branch | Build |
149
+ | 3 | `/sk:write-tests` | Regression test that reproduces the bug | Build |
150
+ | 4 | implement the fix | Make regression test pass | Build |
151
+ | 5 | `/sk:smart-commit` | Commit fix + test | Build |
152
+ | 6 | `/sk:gates` | All quality gates (parallel batches) | Verify |
153
+ | 7 | `/sk:finish-feature` | Changelog + PR | Ship |
128
154
 
129
155
  ---
130
156
 
@@ -134,16 +160,12 @@ Guard rails: warns if diff > 300 lines or > 5 new files.
134
160
 
135
161
  | Step | Command | What it does | Phase |
136
162
  |------|---------|-------------|-------|
137
- | ~~1~~ | ~~/sk:brainstorm~~ | **Skipped** | |
138
- | ~~2~~ | ~~/sk:write-plan~~ | **Skipped** | |
139
- | ~~3~~ | ~~/sk:write-tests~~ | **Skipped** | |
140
- | 4 | `/sk:debug` | Root-cause analysis | Think |
141
- | 5 | `/sk:branch` | Create hotfix branch | Build |
142
- | 6 | implement directly | Fix the issue | Build |
143
- | 7 | run existing tests | Must still pass | Build |
144
- | 8 | `/sk:smart-commit` | Commit the fix | Build |
145
- | 9 | `/sk:gates` | All 6 quality gates (parallel) | Verify |
146
- | 10 | `/sk:finish-feature` | Changelog + PR (marked as hotfix) | Ship |
163
+ | 1 | `/sk:debug` | Root-cause analysis | Think |
164
+ | 2 | `/sk:branch` | Create hotfix branch | Build |
165
+ | 3 | implement directly | Fix the issue | Build |
166
+ | 4 | `/sk:smart-commit` | Commit the fix | Build |
167
+ | 5 | `/sk:gates` | All quality gates (parallel batches) | Verify |
168
+ | 6 | `/sk:finish-feature` | Changelog + PR (marked as hotfix) | Ship |
147
169
 
148
170
  After merging: add regression test + lesson to `tasks/lessons.md`.
149
171
 
@@ -172,7 +194,7 @@ One command runs all 6 gates in parallel batches:
172
194
  | **3** | code review | Needs deep understanding |
173
195
  | **4** | E2E Tests | Needs review fixes |
174
196
 
175
- Each gate auto-fixes, auto-commits, and re-runs until clean. If a gate fails 3 times, it stops and asks for help.
197
+ Each gate auto-fixes and re-runs until clean. Fixes are squashed into one commit per gate pass. If a gate fails 3 times, it stops and asks for help.
176
198
 
177
199
  Pre-existing issues are logged to `tasks/tech-debt.md` — not fixed inline.
178
200
 
@@ -182,15 +204,56 @@ Pre-existing issues are logged to `tasks/tech-debt.md` — not fixed inline.
182
204
 
183
205
  Use these anytime — they're not part of any workflow.
184
206
 
207
+ ### Intelligence
208
+
209
+ | Command | Usage | What it does |
210
+ |---------|-------|-------------|
211
+ | `/sk:learn` | `/sk:learn` | Extract reusable patterns from the session with confidence scoring (0.3-0.9) |
212
+ | `/sk:learn` | `/sk:learn --list` | Show all learned patterns |
213
+ | `/sk:context-budget` | `/sk:context-budget` | Audit token consumption across skills, agents, MCP tools, CLAUDE.md |
214
+ | `/sk:context-budget` | `/sk:context-budget --verbose` | Per-file token breakdown |
215
+ | `/sk:health` | `/sk:health` | Scorecard across 7 categories (0-70): tools, context, gates, memory, evals, security, cost |
216
+ | `/sk:eval` | `/sk:eval define auth` | Define eval criteria before coding |
217
+ | `/sk:eval` | `/sk:eval check auth` | Run evals during implementation |
218
+ | `/sk:eval` | `/sk:eval report` | Summary of all eval results with pass@k metrics |
219
+
220
+ ### Session Management
221
+
222
+ | Command | Usage | What it does |
223
+ |---------|-------|-------------|
224
+ | `/sk:save-session` | `/sk:save-session` | Save branch, task, progress, open questions to `.claude/sessions/` |
225
+ | `/sk:save-session` | `/sk:save-session --name "auth-flow"` | Save with a custom name |
226
+ | `/sk:resume-session` | `/sk:resume-session` | List saved sessions and pick one to restore |
227
+ | `/sk:resume-session` | `/sk:resume-session --latest` | Auto-pick most recent session |
228
+ | `/sk:context` | `/sk:context` | Load all project context (automatic via hooks on session start) |
229
+
230
+ ### Safety
231
+
232
+ | Command | Usage | What it does |
233
+ |---------|-------|-------------|
234
+ | `/sk:safety-guard` | `/sk:safety-guard careful` | Block destructive commands (rm -rf, force push, etc.) |
235
+ | `/sk:safety-guard` | `/sk:safety-guard freeze --dir src/` | Lock edits to `src/` only |
236
+ | `/sk:safety-guard` | `/sk:safety-guard guard --dir src/` | Both careful + freeze combined |
237
+ | `/sk:safety-guard` | `/sk:safety-guard off` | Disable all guards |
238
+ | `/sk:safety-guard` | `/sk:safety-guard status` | Show current mode + blocked action count |
239
+
240
+ ### Code Quality
241
+
185
242
  | Command | When to use |
186
243
  |---------|------------|
187
244
  | `/sk:scope-check` | Mid-implementation — detect scope creep (On Track / Minor / Significant / Out of Control) |
188
245
  | `/sk:retro` | After shipping — analyze velocity, blockers, patterns, generate action items |
246
+ | `/sk:seo-audit` | Web projects — SEO audit with source + dev server scanning |
247
+
248
+ ### Documentation & Setup
249
+
250
+ | Command | When to use |
251
+ |---------|------------|
189
252
  | `/sk:reverse-doc` | Inherited codebase — generate architecture/design docs from existing code |
253
+ | `/sk:setup-optimizer` | Maintenance — diagnose, update workflow, deploy hooks, enrich CLAUDE.md |
254
+ | `/sk:mvp` | New idea — generate a complete MVP app from a single prompt |
190
255
  | `/sk:status` | Quick view of workflow and task status |
191
256
  | `/sk:dashboard` | Visual Kanban board across all git worktrees |
192
- | `/sk:mvp` | Generate a complete MVP app from a single idea prompt |
193
- | `/sk:seo-audit` | SEO audit for web projects |
194
257
 
195
258
  ---
196
259
 
@@ -209,7 +272,7 @@ Use these anytime — they're not part of any workflow.
209
272
  ## All Commands
210
273
 
211
274
  <details>
212
- <summary><strong>38 commands</strong> — click to expand</summary>
275
+ <summary><strong>51 commands</strong> — click to expand</summary>
213
276
 
214
277
  | Command | Purpose |
215
278
  |---------|---------|
@@ -221,33 +284,42 @@ Use these anytime — they're not part of any workflow.
221
284
  | `/sk:change` | Handle mid-workflow requirement changes |
222
285
  | `/sk:config` | View/edit project config |
223
286
  | `/sk:context` | Load project context (automatic via hooks) |
287
+ | `/sk:context-budget` | Audit context window token consumption |
224
288
  | `/sk:dashboard` | Live Kanban board — sk:dashboard across worktrees |
225
289
  | `/sk:debug` | Structured bug investigation |
226
290
  | `/sk:e2e` | E2E Tests — behavioral verification |
291
+ | `/sk:eval` | Define, run, and report evals for agent reliability |
227
292
  | `/sk:execute-plan` | Execute plan checkboxes in batches |
228
293
  | `/sk:fast-track` | Small changes — skip planning, keep gates |
229
294
  | `/sk:features` | Sync feature specs with codebase |
230
295
  | `/sk:finish-feature` | Changelog + PR |
231
296
  | `/sk:frontend-design` | UI mockup + optional Pencil visual design |
232
297
  | `/sk:gates` | All quality gates in parallel batches |
298
+ | `/sk:health` | Harness self-audit scorecard |
233
299
  | `/sk:help` | Show all commands |
234
300
  | `/sk:hotfix` | Emergency fix workflow |
235
301
  | `/sk:laravel-init` | Configure existing Laravel project |
236
302
  | `/sk:laravel-new` | Scaffold fresh Laravel app |
303
+ | `/sk:learn` | Extract reusable patterns from sessions |
237
304
  | `/sk:lint` | Auto-detect and run all linters |
238
305
  | `/sk:mvp` | Generate MVP app from a prompt |
239
306
  | `/sk:perf` | Performance audit |
240
307
  | `/sk:plan` | Create/refresh planning files |
241
308
  | `/sk:release` | Version bump + tag (`--android` / `--ios` for store audit) |
309
+ | `/sk:resume-session` | Resume a previously saved session |
242
310
  | `/sk:retro` | Post-ship retrospective |
243
311
  | `/sk:reverse-doc` | Generate docs from existing code |
244
312
  | `/sk:review` | 7-dimension code review |
313
+ | `/sk:safety-guard` | Protect against destructive ops |
314
+ | `/sk:save-session` | Save session state for continuity |
245
315
  | `/sk:schema-migrate` | Database schema change analysis |
246
316
  | `/sk:scope-check` | Detect scope creep mid-implementation |
247
317
  | `/sk:security-check` | OWASP security audit |
248
- | `/sk:seo-audit` | sk:seo-audit for web projects |
318
+ | `/sk:seo-audit` | SEO audit for web projects |
249
319
  | `/sk:set-profile` | Switch model routing profile |
250
320
  | `/sk:setup-claude` | Bootstrap project scaffolding |
321
+ | `/sk:setup-optimizer` | Diagnose + update workflow + deploy hooks + enrich CLAUDE.md |
322
+ | `/sk:skill-creator` | Create or improve skills |
251
323
  | `/sk:smart-commit` | Conventional commit with approval |
252
324
  | `/sk:start` | Smart entry point — classifies task, routes to optimal flow |
253
325
  | `/sk:status` | Show workflow + task status |
@@ -265,7 +337,7 @@ Use these anytime — they're not part of any workflow.
265
337
 
266
338
  | Topic | Where |
267
339
  |-------|-------|
268
- | Detailed workflow steps (21-step table) | [DOCUMENTATION.md](.claude/docs/DOCUMENTATION.md) |
340
+ | Detailed workflow steps (8-step flow) | [DOCUMENTATION.md](.claude/docs/DOCUMENTATION.md) |
269
341
  | Feature specifications | [docs/FEATURES.md](docs/FEATURES.md) |
270
342
  | Model routing profiles & config | [DOCUMENTATION.md — Config](.claude/docs/DOCUMENTATION.md#config-reference) |
271
343
  | Infrastructure (hooks, agents, rules) | [DOCUMENTATION.md — Setup](.claude/docs/DOCUMENTATION.md#what-gets-created) |
@@ -1,5 +1,5 @@
1
1
  ---
2
- description: "Hands-free workflow — all 21 steps, auto-skip, auto-advance, auto-commit. Stops only for direction approval and PR push."
2
+ description: "Hands-free workflow — all 8 steps, auto-skip, auto-advance, auto-commit. Stops only for direction approval and PR push."
3
3
  ---
4
4
 
5
5
  # /sk:autopilot
@@ -8,7 +8,7 @@ Run the full ShipIt workflow in hands-free mode.
8
8
 
9
9
  Usage: `/sk:autopilot <task description>`
10
10
 
11
- Executes all 21 workflow steps with:
11
+ Executes all 8 workflow steps with:
12
12
  - **Auto-skip** — optional steps skipped when clearly not needed
13
13
  - **Auto-advance** — no manual step transitions
14
14
  - **Auto-commit** — conventional format, no approval prompt
@@ -0,0 +1,5 @@
1
+ ---
2
+ description: "Audit context window token consumption and find optimization opportunities."
3
+ ---
4
+
5
+ Use the `sk:context-budget` skill to inventory all components consuming context tokens (agents, skills, rules, MCP tools, CLAUDE.md), classify usage frequency, detect bloat, and recommend top 3 optimizations with estimated token savings.
@@ -0,0 +1,5 @@
1
+ ---
2
+ description: "Define, run, and report on evaluations for agent reliability and code quality."
3
+ ---
4
+
5
+ Use the `sk:eval` skill to define eval criteria before coding (`define`), verify during implementation (`check`), and summarize results after shipping (`report`). Supports code-based, model-based, and human graders with pass@k and pass^k metrics.
@@ -0,0 +1,5 @@
1
+ ---
2
+ description: "Run harness self-audit and produce a health scorecard."
3
+ ---
4
+
5
+ Use the `sk:health` skill to score your ShipKit setup across 7 categories (Tool Coverage, Context Efficiency, Quality Gates, Memory Persistence, Eval Coverage, Security Guardrails, Cost Efficiency). Produces a 0-70 scorecard with concrete findings and top 3 actions.
@@ -65,35 +65,55 @@ Requirements change mid-workflow? Run `/sk:change` — it classifies the scope a
65
65
  |---------|-------------|
66
66
  | `/sk:accessibility` | WCAG 2.1 AA audit on frontend code |
67
67
  | `/sk:api-design` | Design REST/GraphQL contracts before implementation |
68
- | `/sk:brainstorm` | Explore requirements, no code |
68
+ | `/sk:autopilot` | Hands-free workflow — auto-skip, auto-advance, auto-commit |
69
+ | `/sk:brainstorm` | Explore requirements and design (includes search-first research) |
69
70
  | `/sk:branch` | Create branch from current task |
70
- | `/sk:change` | Handle mid-workflow requirement change — re-enter at the right step |
71
+ | `/sk:change` | Handle mid-workflow requirement change |
72
+ | `/sk:config` | View and edit project config |
73
+ | `/sk:context` | Load project context (automatic via hooks) |
74
+ | `/sk:context-budget` | Audit context window token consumption and find savings |
75
+ | `/sk:dashboard` | Read-only workflow Kanban board |
71
76
  | `/sk:debug` | Structured bug investigation |
77
+ | `/sk:e2e` | E2E behavioral verification |
78
+ | `/sk:eval` | Define, run, and report evals for agent reliability |
72
79
  | `/sk:execute-plan` | Implement plan in batches |
80
+ | `/sk:fast-track` | Small changes — skip planning, keep gates |
73
81
  | `/sk:features` | Sync docs/sk:features/ specs with codebase |
74
82
  | `/sk:finish-feature` | Changelog + PR creation |
75
- | `/sk:frontend-design` | UI mockup + design spec before implementation. Add `--pencil` to also generate a Pencil visual mockup (requires Pencil app + MCP) |
83
+ | `/sk:frontend-design` | UI mockup + optional Pencil visual mockup |
84
+ | `/sk:gates` | All quality gates in parallel batches |
85
+ | `/sk:health` | Harness self-audit scorecard (7 categories, 0-70) |
76
86
  | `/sk:hotfix` | Emergency fix workflow (skips design/TDD) |
77
87
  | `/sk:laravel-init` | Configure existing Laravel project |
78
88
  | `/sk:laravel-new` | Scaffold new Laravel project |
89
+ | `/sk:learn` | Extract reusable patterns from sessions |
79
90
  | `/sk:lint` | Auto-detect and run all linters |
91
+ | `/sk:mvp` | Generate MVP app from a prompt |
80
92
  | `/sk:perf` | Performance audit |
81
93
  | `/sk:plan` | Create/refresh task planning files |
82
- | `/sk:release` | Automate releases: bump version, update CHANGELOG, create tag, push to GitHub. Use --android and/or --ios flags for App Store / Play Store readiness audit |
83
- | `/sk:review` | Blast-radius-aware self-review of branch changes |
94
+ | `/sk:release` | Version bump + tag (`--android` / `--ios` for store audit) |
95
+ | `/sk:resume-session` | Resume a previously saved session |
96
+ | `/sk:retro` | Post-ship retrospective |
97
+ | `/sk:reverse-doc` | Generate docs from existing code |
98
+ | `/sk:review` | 7-dimension self-review of branch changes |
99
+ | `/sk:safety-guard` | Protect against destructive ops (careful/freeze/guard) |
100
+ | `/sk:save-session` | Save session state for cross-session continuity |
84
101
  | `/sk:schema-migrate` | Multi-ORM schema change analysis |
102
+ | `/sk:scope-check` | Detect scope creep mid-implementation |
85
103
  | `/sk:security-check` | OWASP security audit |
104
+ | `/sk:seo-audit` | SEO audit for web projects |
105
+ | `/sk:set-profile` | Switch model routing profile |
86
106
  | `/sk:setup-claude` | Bootstrap project scaffolding |
87
- | `/sk:setup-optimizer` | Enrich CLAUDE.md by scanning codebase |
107
+ | `/sk:setup-optimizer` | Diagnose + update workflow + enrich CLAUDE.md |
88
108
  | `/sk:skill-creator` | Create or improve skills |
89
109
  | `/sk:smart-commit` | Conventional commit with approval |
110
+ | `/sk:start` | Smart entry point — classifies task, routes to optimal flow |
90
111
  | `/sk:status` | Show workflow and task status |
112
+ | `/sk:team` | Parallel domain agents for full-stack tasks |
91
113
  | `/sk:test` | Auto-detect and verify all tests pass |
92
114
  | `/sk:update-task` | Mark task done, log completion |
93
115
  | `/sk:write-plan` | Write plan to `tasks/todo.md` |
94
116
  | `/sk:write-tests` | TDD: write failing tests first |
95
- | `/sk:config` | View and edit project config |
96
- | `/sk:set-profile` | Switch model routing profile |
97
117
 
98
118
  ---
99
119
 
@@ -113,9 +133,13 @@ ShipKit routes each skill to the right model automatically. Set once per project
113
133
  | brainstorm, write-plan, debug, execute-plan, review | opus | opus | sonnet | sonnet |
114
134
  | write-tests, frontend-design, api-design, security-check | opus | sonnet | sonnet | sonnet |
115
135
  | change | opus | sonnet | sonnet | sonnet |
136
+ | autopilot, team | opus | opus | sonnet | sonnet |
116
137
  | perf, schema-migrate, accessibility | opus | sonnet | sonnet | haiku |
138
+ | eval | sonnet | sonnet | sonnet | haiku |
117
139
  | lint, test | sonnet | sonnet | haiku | haiku |
118
140
  | smart-commit, branch, update-task | haiku | haiku | haiku | haiku |
141
+ | start, learn, context-budget, health | haiku | haiku | haiku | haiku |
142
+ | save-session, resume-session, safety-guard | haiku | haiku | haiku | haiku |
119
143
 
120
144
  `opus` = inherit (uses your current session model).
121
145
  Config lives in `.shipkit/config.json` — per project, gitignored by default.
@@ -0,0 +1,5 @@
1
+ ---
2
+ description: "Extract reusable patterns from the current session into learned instincts."
3
+ ---
4
+
5
+ Use the `sk:learn` skill to analyze the current session for extractable patterns (error resolutions, debugging techniques, workarounds, project conventions). Patterns are saved with confidence scoring and can be promoted from project-scoped to global.
@@ -0,0 +1,5 @@
1
+ ---
2
+ description: "Resume a previously saved session with full context restoration."
3
+ ---
4
+
5
+ Use the `sk:resume-session` skill to list available saved sessions from `.claude/sessions/`, select one, and restore its context (branch, task state, progress, open questions, next steps) into the current conversation.
@@ -0,0 +1,5 @@
1
+ ---
2
+ description: "Protect against destructive operations with careful, freeze, and guard modes."
3
+ ---
4
+
5
+ Use the `sk:safety-guard` skill to activate protection modes: `careful` (block destructive commands), `freeze --dir <path>` (lock edits to a directory), `guard --dir <path>` (both), `off` (disable), or `status` (show current mode).
@@ -0,0 +1,5 @@
1
+ ---
2
+ description: "Save current session state for cross-session continuity."
3
+ ---
4
+
5
+ Use the `sk:save-session` skill to persist the current session state (branch, task, progress, findings, open questions) to `.claude/sessions/` for resumption in a future conversation. Essential for EPIC-scope multi-session workflows.
@@ -12,7 +12,7 @@ By default, this checks only files changed on the current branch. Use `--all` to
12
12
 
13
13
  ## Hard Rules
14
14
 
15
- - **Fix all in-scope findings** (files in `git diff main..HEAD --name-only`) immediately after the audit. auto-commit with `fix(security): resolve [severity] security findings`. Re-run the audit until 0 findings remain.
15
+ - **Fix all in-scope findings** (files in `git diff main..HEAD --name-only`) immediately after the audit. Re-run the audit until 0 findings remain. Once clean, make ONE squash commit: `fix(security): resolve security findings`.
16
16
  - **Pre-existing findings** (files outside the current branch diff): log to `tasks/tech-debt.md` using this format — do NOT fix inline:
17
17
  ```
18
18
  ### [YYYY-MM-DD] Found during: sk:security-check
@@ -20,7 +20,7 @@ By default, this checks only files changed on the current branch. Use `--all` to
20
20
  Issue: description of the vulnerability
21
21
  Severity: critical | high | medium | low
22
22
  ```
23
- - **Gates own their commits** — the fix-commit-rerun loop is fully internal. No manual commit step needed after this gate.
23
+ - **Squash gate commits** — collect all fixes for the pass, then one commit. Do not commit after each individual fix.
24
24
  - **DO NOT skip checks** because the project is small or simple. Production is production.
25
25
  - **Every finding must cite a specific file and line number.**
26
26
  - **Every finding must reference the standard it violates** (OWASP, CWE, NIST, etc.).
@@ -30,6 +30,10 @@ Valid profiles: `full-sail` · `quality` · `balanced` · `budget`
30
30
  | smart-commit, branch, update-task | haiku | haiku | haiku | haiku |
31
31
  | autopilot, team | opus | opus | sonnet | sonnet |
32
32
  | start | haiku | haiku | haiku | haiku |
33
+ | learn, context-budget, health | haiku | haiku | haiku | haiku |
34
+ | save-session, resume-session | haiku | haiku | haiku | haiku |
35
+ | safety-guard | haiku | haiku | haiku | haiku |
36
+ | eval | sonnet | sonnet | sonnet | haiku |
33
37
 
34
38
  Note: `opus` = inherit (uses the current session model). Switch to Opus 4.5 in your session to get the full benefit.
35
39
 
@@ -70,6 +74,10 @@ Model assignments for this project:
70
74
  smart-commit, branch, update-task → haiku
71
75
  autopilot, team → <model>
72
76
  start → haiku
77
+ learn, context-budget, health → haiku
78
+ save-session, resume-session → haiku
79
+ safety-guard → haiku
80
+ eval → <model>
73
81
 
74
82
  Run /sk:config to see all settings or make further changes.
75
83
  ```
@@ -1,25 +1,20 @@
1
1
  ---
2
- description: Show planning and workflow status at a glance.”
2
+ description: "Show planning and workflow status at a glance."
3
3
  ---
4
4
 
5
5
  <!-- Generated by /sk:setup-claude -->
6
6
 
7
7
  # /sk:status
8
8
 
9
- Read `tasks/todo.md` and `tasks/workflow-status.md`, then display a compact status summary.
9
+ Read `tasks/todo.md`, then display a compact status summary.
10
10
 
11
11
  ## What to show
12
12
 
13
- ### Workflow Status (from `tasks/workflow-status.md`)
14
- - Current step: show the step marked `>> next <<`
15
- - Completed steps: count of `done` steps vs total
16
- - Any steps marked `partial` or with notable Notes
17
- - If no workflow file exists, say “No active workflow”
18
-
19
13
  ### Task Status (from `tasks/todo.md`)
20
14
  - Total plan items vs completed plan items (checkbox count)
15
+ - Current git branch
21
16
  - Errors count (if the file has an Errors section/table)
22
17
  - Whether `tasks/findings.md` and `tasks/progress.md` exist
23
18
 
24
- Keep it brief: answer where am I?” and whats next?”.
19
+ Keep it brief: answer "where am I?" and "what's next?".
25
20
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kennethsolomon/shipkit",
3
- "version": "3.10.1",
3
+ "version": "3.11.0",
4
4
  "description": "A structured workflow toolkit for Claude Code.",
5
5
  "keywords": [
6
6
  "claude",
@@ -43,6 +43,8 @@ Run this skill:
43
43
  - Visible focus indicator on all interactive elements (not removed with `outline: none` without replacement)
44
44
  - Modal/dialog focus management: focus moves into modal on open, returns to trigger on close
45
45
  - Skip navigation link present for pages with repeated navigation
46
+ - Modals and multi-step flows must have a visible cancel/back affordance — no dead ends (WCAG 3.2.2)
47
+ - Do not override or intercept system/platform keyboard shortcuts (Tab, arrow keys, Escape, VoiceOver gestures)
46
48
 
47
49
  ### 3. ARIA & Semantics (WCAG 4.1.2, 1.3.1)
48
50
  - Semantic HTML first (`<button>`, `<nav>`, `<main>`, `<header>`) — ARIA only when HTML is insufficient
@@ -70,7 +72,14 @@ Run this skill:
70
72
  - All non-essential animations respect `prefers-reduced-motion` media query
71
73
  - Auto-playing animations can be paused, stopped, or hidden
72
74
 
73
- ### 7. Content & Structure (WCAG 1.3.1, 2.4.6, 2.4.2)
75
+ ### 7. iOS Dynamic Type (Apple HIG)
76
+ - UI must remain fully readable and usable when system font size is at the largest accessibility setting
77
+ - No text truncation at large sizes — prefer wrapping over ellipsis
78
+ - All layouts must reflow correctly without overlapping or clipping at Dynamic Type XXL
79
+ - Avoid fixed heights on elements that contain text — use dynamic sizing
80
+ - Test at: Settings → Accessibility → Display & Text Size → Larger Text (max slider)
81
+
82
+ ### 8. Content & Structure (WCAG 1.3.1, 2.4.6, 2.4.2)
74
83
  - Single `<h1>` per page; heading hierarchy is logical (no skipped levels)
75
84
  - Page has a descriptive `<title>`
76
85
  - Link text is descriptive standalone ("Read the docs" not "Click here")