@kennethsolomon/shipkit 3.8.0 → 3.9.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/README.md CHANGED
@@ -4,10 +4,8 @@
4
4
 
5
5
  **A structured, quality-gated workflow system for Claude Code.**
6
6
 
7
- Stop winging it. Ship features with TDD, auto-detecting linters, security audits,<br>
8
- and AI-powered code review — all wired into a single repeatable workflow.
9
-
10
- **Every gate must pass. Quality isn't optional — it's structural.**
7
+ Ship features with TDD, security audits, and AI-powered code review —<br>
8
+ all wired into a single repeatable workflow.
11
9
 
12
10
  [![npm](https://img.shields.io/npm/v/@kennethsolomon%2Fshipkit)](https://www.npmjs.com/package/@kennethsolomon/shipkit)
13
11
  [![license](https://img.shields.io/badge/license-MIT-blue)](LICENSE)
@@ -17,339 +15,260 @@ and AI-powered code review — all wired into a single repeatable workflow.
17
15
  npm install -g @kennethsolomon/shipkit && shipkit
18
16
  ```
19
17
 
20
- Works on Mac, Linux, and Windows.
21
-
22
- </div>
23
-
24
- <div align="center">
25
-
26
- ![ShipKit terminal demo](assets/shipkit-terminal.png)
27
-
28
18
  </div>
29
19
 
30
20
  ---
31
21
 
32
- <div align="center">
22
+ ## What is ShipKit?
33
23
 
34
- *"Ran `/sk:review` on what I thought was done. It found 3 things I would have caught in production. Now it's in every merge."*
24
+ ShipKit turns Claude Code into a disciplined development partner. Instead of "write some code," every feature goes through:
35
25
 
36
- *"Every other Claude workflow I tried was either too rigid or too vague. ShipKit is the first one that actually ships."*
26
+ **Plan** **Build (TDD)** **Quality Gates** **Ship**
37
27
 
38
- *"The gates feel annoying until the day they catch something real. Now I don't merge without them."*
28
+ Each gate must pass before the next step. Lint fails? Fix it. Tests don't cover new code? Write them. Security issues? They block the PR. Quality is structural, not optional.
39
29
 
40
- </div>
30
+ ShipKit auto-detects your stack — linters, test runners, frameworks, package managers. No configuration needed.
41
31
 
42
32
  ---
43
33
 
44
34
  ## Quick Start
45
35
 
46
36
  ```bash
47
- # 1. Install ShipKit globally
37
+ # 1. Install
48
38
  npm install -g @kennethsolomon/shipkit && shipkit
49
39
 
50
- # 2. Bootstrap your project (run inside your project directory)
40
+ # 2. Bootstrap your project (run once)
51
41
  /sk:setup-claude
52
42
 
53
- # 3. Start your first feature
43
+ # 3. Start building
54
44
  /sk:brainstorm
55
45
  ```
56
46
 
57
- `/sk:setup-claude` creates `tasks/todo.md`, `tasks/lessons.md`, and a project-specific `CLAUDE.md` with the full workflow baked in. Run it once per project.
47
+ That's it. `/sk:setup-claude` creates your project scaffolding: planning files, lifecycle hooks, path-scoped coding rules, and a persistent statusline all auto-configured for your stack.
58
48
 
59
49
  ---
60
50
 
61
- ## How It Works
62
-
63
- ShipKit installs slash commands and skills into `~/.claude/`. Each command is a focused instruction set that Claude follows — no magic, just structured prompts that enforce quality gates.
51
+ ## Pick Your Flow
64
52
 
65
- The workflow is linear: **Read Explore Design Accessibility → Plan → Branch → Migrate → Write Tests → Implement → Lint → Verify Tests → Security → Performance → Review → E2E Tests → Finish → Sync Features**
53
+ | I want to... | Run this | What happens |
54
+ |--------------|----------|-------------|
55
+ | **Build a new feature** | `/sk:brainstorm` | Full workflow: plan → TDD → 6 quality gates → PR |
56
+ | **Make a small change** | `/sk:fast-track` | Skip planning, keep all quality gates |
57
+ | **Fix a bug** | `/sk:debug` | Investigate → regression test → fix → gates → PR |
58
+ | **Fix a production emergency** | `/sk:hotfix` | Skip TDD, but quality gates still enforced |
59
+ | **Handle a requirement change** | `/sk:change` | Assess scope, re-enter workflow at the right step |
66
60
 
67
- Every gate must pass before the next step. If lint fails, fix it. If tests don't cover new code, write them. Security issues block the PR. This isn't optional — it's the whole point.
61
+ ---
68
62
 
69
- **Requirements change mid-workflow?** Run `/sk:change`. It assesses the scope and tells you exactly where to re-enter — no guessing, no skipping steps.
63
+ ## Workflows
64
+
65
+ ### Feature Flow — full planning + TDD + all gates
66
+
67
+ > Start with: `/sk:brainstorm`
68
+
69
+ | Step | Command | What it does | Phase |
70
+ |------|---------|-------------|-------|
71
+ | 1 | `/sk:brainstorm` | Explore requirements, propose approaches | Think |
72
+ | 2 | `/sk:frontend-design` | *Optional* — UI mockup (`--pencil` for visual) | Think |
73
+ | 3 | `/sk:api-design` | *Optional* — API contracts | Think |
74
+ | 4 | `/sk:accessibility` | *Optional* — WCAG 2.1 AA audit on design | Think |
75
+ | 5 | `/sk:write-plan` | Write decision-complete plan | Think |
76
+ | 6 | `/sk:branch` | Create feature branch | Build |
77
+ | 7 | `/sk:schema-migrate` | *Optional* — auto-skips if no migrations | Build |
78
+ | 8 | `/sk:write-tests` | TDD red — write failing tests | Build |
79
+ | 9 | `/sk:execute-plan` | TDD green — make tests pass | Build |
80
+ | 10 | `/sk:smart-commit` | Conventional commit | Build |
81
+ | 11 | `/sk:gates` | All 6 quality gates (parallel) | Verify |
82
+ | 12 | `/sk:update-task` | Mark done | Ship |
83
+ | 13 | `/sk:finish-feature` | Changelog + PR | Ship |
84
+ | 14 | `/sk:features` | Sync feature specs | Ship |
85
+ | 15 | `/sk:release` | *Optional* — version bump + tag | Ship |
70
86
 
71
87
  ---
72
88
 
73
- ## Workflow
89
+ ### Fast-Track Flow — skip planning, keep all gates
74
90
 
75
- ### Feature Flow
91
+ > Start with: `/sk:fast-track`
76
92
 
77
- ```
78
- Brainstorm → Plan → Branch → [Schema] → Write Tests → Implement → Commit
79
- Lint Test Security ✓ → Review ✓ → E2E ✓ → Update Task → Finish → Sync Features
80
- ```
93
+ | Step | Command | What it does | Phase |
94
+ |------|---------|-------------|-------|
95
+ | ~~1~~ | ~~/sk:brainstorm~~ | **Skipped** | |
96
+ | ~~2~~ | ~~/sk:write-plan~~ | **Skipped** | — |
97
+ | ~~3~~ | ~~/sk:write-tests~~ | **Skipped** | — |
98
+ | 4 | `/sk:branch` | Create feature branch | Build |
99
+ | 5 | implement directly | No TDD — write code | Build |
100
+ | 6 | `/sk:smart-commit` | Conventional commit | Build |
101
+ | 7 | `/sk:gates` | All 6 quality gates (parallel) | Verify |
102
+ | 8 | `/sk:finish-feature` | Changelog + PR | Ship |
81
103
 
82
- | # | Command | Purpose |
83
- |---|---------|---------|
84
- | 1 | read `tasks/todo.md` | Pick the next task |
85
- | 2 | read `tasks/lessons.md` | Review past corrections |
86
- | 3 | `/sk:brainstorm` | Clarify requirements — no code |
87
- | 4 | `/sk:frontend-design` or `/sk:api-design` | Design spec *(skip if not needed)*. Frontend: add `--pencil` for Pencil visual mockup. API: REST/GraphQL contracts. |
88
- | 5 | `/sk:accessibility` | WCAG 2.1 AA audit on design *(skip if no frontend)* |
89
- | 6 | `/sk:write-plan` | Write plan to `tasks/todo.md` |
90
- | 7 | `/sk:branch` | Create branch from current task |
91
- | 8 | `/sk:schema-migrate` | Schema change analysis *(skip if no DB changes)* |
92
- | 9 | `/sk:write-tests` | TDD red: write failing tests first |
93
- | 10 | `/sk:execute-plan` | TDD green: make tests pass |
94
- | 11 | `/sk:smart-commit` | Conventional commit |
95
- | 12 | **`/sk:lint`** | **GATE** — Lint + Dep Audit — all linters must pass |
96
- | 13 | **`/sk:test`** | **GATE** — 100% coverage on new code |
97
- | 14 | **`/sk:security-check`** | **GATE** — 0 issues |
98
- | 15 | **`/sk:perf`** | **GATE** *(optional)* — critical/high findings = 0 |
99
- | 16 | **`/sk:review`** | **GATE** — Review + Simplify + Blast Radius — 0 issues including nitpicks |
100
- | 17 | **`/sk:e2e`** | **GATE** — E2E Tests — prefers Playwright CLI when config detected, falls back to agent-browser; all scenarios must pass |
101
- | 18 | `/sk:update-task` | Mark done, log completion |
102
- | 19 | `/sk:finish-feature` | Changelog + PR |
103
- | 20 | `/sk:features` | Sync Features — update docs/features/ specs *(required)* |
104
- | 21 | `/sk:release` | Version bump + tag *(optional)* |
105
-
106
- > **Fix & Retest Protocol:** All code-producing gates (Lint, Test, Security, Performance, Review, E2E) apply the Fix & Retest Protocol: logic changes require updating unit tests before committing the fix. Fix immediately, then re-run — never ask the user to re-run.
107
-
108
- ### Bug Fix Flow
104
+ Guard rails: warns if diff > 300 lines or > 5 new files.
109
105
 
110
- ```
111
- Debug → Plan → Branch → Write Tests → Implement → Lint ✓ → Test ✓ → Security ✓ → Review ✓ → Finish
112
- ```
106
+ ---
113
107
 
114
- | # | Command | Purpose |
115
- |---|---------|---------|
116
- | 1 | `/sk:debug` | Root-cause analysis |
117
- | 2 | `/sk:write-plan` | Fix plan |
118
- | 3 | `/sk:branch` | Create branch |
119
- | 4 | `/sk:write-tests` | Reproduce the bug in a test |
120
- | 5 | `/sk:execute-plan` | Fix — make the test pass |
121
- | 6–10 | `/sk:lint` → `/sk:test` → `/sk:security-check` → `/sk:review` → `/sk:e2e` | Quality gates |
122
- | 11 | `/sk:finish-feature` | Changelog + PR |
108
+ ### Bug Fix Flow investigate first, then fix
123
109
 
124
- ### Hotfix Flow
110
+ > Start with: `/sk:debug`
125
111
 
126
- For production issues that need to ship immediately. Skips brainstorm, design, and TDD. **Quality gates are non-negotiable even in a hotfix.**
112
+ | Step | Command | What it does | Phase |
113
+ |------|---------|-------------|-------|
114
+ | ~~1~~ | ~~/sk:brainstorm~~ | **Skipped** | — |
115
+ | ~~2~~ | ~~/sk:write-plan~~ | **Skipped** | — |
116
+ | 3 | `/sk:debug` | Reproduce, isolate, hypothesize, verify | Think |
117
+ | 4 | `/sk:branch` | Create fix branch | Build |
118
+ | 5 | `/sk:write-tests` | Regression test that reproduces the bug | Build |
119
+ | 6 | implement the fix | Make regression test pass | Build |
120
+ | 7 | `/sk:smart-commit` | Commit fix + test | Build |
121
+ | 8 | `/sk:gates` | All 6 quality gates (parallel) | Verify |
122
+ | 9 | `/sk:finish-feature` | Changelog + PR | Ship |
127
123
 
128
- ```
129
- Debug → Branch → Fix → Smoke Test → Lint ✓ → Test ✓ → Security ✓ → Review ✓ → Finish
130
- ```
124
+ ---
131
125
 
132
- | # | Command | Purpose |
133
- |---|---------|---------|
134
- | 1 | `/sk:debug` | Root-cause analysis — understand before touching code |
135
- | 2 | `/sk:branch` | Auto-named from the bug description |
136
- | 3 | implement directly | No write-tests phase — go straight to the fix |
137
- | 4 | run existing tests | Existing tests MUST still pass |
138
- | 5 | `/sk:smart-commit` | Commit the fix |
139
- | 6 | **`/sk:lint`** | **GATE** |
140
- | 7 | **`/sk:test`** | **GATE** |
141
- | 8 | **`/sk:security-check`** | **GATE** |
142
- | 9 | **`/sk:review`** | **GATE** |
143
- | 10 | `/sk:update-task` | Mark done |
144
- | 11 | `/sk:finish-feature` | Changelog + PR — mark as hotfix |
126
+ ### Hotfix Flow production emergency
145
127
 
146
- After merging: add a regression test and a lesson to `tasks/lessons.md`.
128
+ > Start with: `/sk:hotfix`
147
129
 
148
- ### Requirement Change Flow
130
+ | Step | Command | What it does | Phase |
131
+ |------|---------|-------------|-------|
132
+ | ~~1~~ | ~~/sk:brainstorm~~ | **Skipped** | — |
133
+ | ~~2~~ | ~~/sk:write-plan~~ | **Skipped** | — |
134
+ | ~~3~~ | ~~/sk:write-tests~~ | **Skipped** | — |
135
+ | 4 | `/sk:debug` | Root-cause analysis | Think |
136
+ | 5 | `/sk:branch` | Create hotfix branch | Build |
137
+ | 6 | implement directly | Fix the issue | Build |
138
+ | 7 | run existing tests | Must still pass | Build |
139
+ | 8 | `/sk:smart-commit` | Commit the fix | Build |
140
+ | 9 | `/sk:gates` | All 6 quality gates (parallel) | Verify |
141
+ | 10 | `/sk:finish-feature` | Changelog + PR (marked as hotfix) | Ship |
149
142
 
150
- Requirements change mid-workflow all the time. Run `/sk:change` whenever something shifts it classifies the scope and routes you back to the right step automatically.
143
+ After merging: add regression test + lesson to `tasks/lessons.md`.
151
144
 
152
- ```
153
- Requirement changes → /sk:change → re-enter at correct step
154
- ```
145
+ ---
155
146
 
156
- | Tier | What changed | Re-entry point |
157
- |------|-------------|----------------|
158
- | **Tier 1** — Behavior Tweak | Logic changes, scope stays the same *(e.g. delete all → delete users only)* | `/sk:write-tests` |
159
- | **Tier 2** — New Requirements | New scope, new constraints, new acceptance criteria | `/sk:write-plan` |
160
- | **Tier 3** — Scope Shift | Fundamental rethinking of approach or architecture | `/sk:brainstorm` |
147
+ ### Requirement Change mid-workflow pivot
161
148
 
162
- `/sk:change` logs the change to `tasks/todo.md` and `tasks/progress.md`, marks invalidated tasks, and tells you exactly what to carry forward.
149
+ > Run: `/sk:change` it classifies scope and re-enters at the right step
150
+
151
+ | Tier | What changed | Example | Re-entry point |
152
+ |------|-------------|---------|----------------|
153
+ | **Tier 1** | Behavior tweak (same scope) | "Delete all" → "Delete users only" | `/sk:write-tests` |
154
+ | **Tier 2** | New requirements (new scope) | "Also add export to CSV" | `/sk:write-plan` |
155
+ | **Tier 3** | Scope shift (rethink) | "Different approach entirely" | `/sk:brainstorm` |
163
156
 
164
157
  ---
165
158
 
166
- ## Commands
167
-
168
- ### Planning & Design
169
-
170
- | Command | Description |
171
- |---------|-------------|
172
- | `/sk:brainstorm` | Explore requirements and design before writing any code |
173
- | `/sk:frontend-design` | Create UI design specs and mockups. After the design summary, it asks if you want a Pencil visual mockup. Use `--pencil` flag to jump directly to the Pencil phase *(requires Pencil app + MCP)* |
174
- | `/sk:api-design` | Design REST or GraphQL API contracts |
175
- | `/sk:accessibility` | WCAG 2.1 AA audit on design or existing frontend |
176
- | `/sk:write-plan` | Write a decision-complete plan to `tasks/todo.md` |
177
- | `/sk:plan` | Create or refresh task planning files |
178
- | `/sk:setup-claude` | Bootstrap project scaffolding (CLAUDE.md + tasks/) |
179
- | `/sk:setup-optimizer` | Enrich CLAUDE.md by scanning the codebase |
180
- | `/sk:reverse-doc` | Generate architecture/design docs from existing code |
181
-
182
- ### Development
183
-
184
- | Command | Description |
185
- |---------|-------------|
186
- | `/sk:branch` | Create a feature branch from the current task |
187
- | `/sk:schema-migrate` | Analyze pending schema changes (Prisma, Drizzle, Eloquent, SQLAlchemy, ActiveRecord) |
188
- | `/sk:write-tests` | TDD: write failing tests before implementation |
189
- | `/sk:execute-plan` | Implement the plan in small batches |
190
- | `/sk:change` | Handle a mid-workflow requirement change — assess scope and re-enter at the right step |
191
- | `/sk:debug` | Structured bug investigation: reproduce → isolate → fix |
192
- | `/sk:hotfix` | Emergency fix workflow — skips design and TDD |
193
- | `/sk:fast-track` | Abbreviated workflow for small changes — skip planning, keep all gates |
194
-
195
- ### Prototyping
196
-
197
- | Command | Description |
198
- |---------|-------------|
199
- | `/sk:mvp` | Generate a complete MVP from a single idea prompt — landing page with waitlist + working app with fake data. Supports Next.js, Nuxt, Laravel, React+Vite. Optional Pencil MCP design phase and Playwright MCP visual validation. |
200
-
201
- ### Quality Gates
202
-
203
- | Command | Description |
204
- |---------|-------------|
205
- | `/sk:lint` | Auto-detect and run all linters (Pint, ESLint, PHPStan, Prettier…) |
206
- | `/sk:test` | Auto-detect and run all test suites, verify 100% coverage on new code |
207
- | `/sk:security-check` | OWASP security audit across changed code |
208
- | `/sk:perf` | Performance audit: bundle size, N+1 queries, Core Web Vitals |
209
- | `/sk:seo-audit` | SEO audit — dual-mode (source templates + dev server), ask-before-fix, checklist output to `tasks/seo-findings.md` |
210
- | `/sk:review` | Blast-radius-aware self-review across 7 dimensions + cross-file impact analysis |
211
- | `/sk:gates` | Run all quality gates in optimized parallel batches |
212
- | `/sk:scope-check` | Compare implementation against plan, detect scope creep |
213
-
214
- ### Shipping
215
-
216
- | Command | Description |
217
- |---------|-------------|
218
- | `/sk:smart-commit` | Generate conventional commit messages with approval |
219
- | `/sk:update-task` | Mark current task done, log completion |
220
- | `/sk:finish-feature` | Write changelog entry + create PR |
221
- | `/sk:release` | Version bump + CHANGELOG + git tag + push |
222
- | `/sk:features` | Sync docs/features/ specs with the codebase |
223
- | `/sk:retro` | Post-ship retrospective: velocity, blockers, action items |
224
-
225
- ### Laravel
226
-
227
- | Command | Description |
228
- |---------|-------------|
229
- | `/sk:laravel-new` | Scaffold a fresh Laravel app with production-ready conventions |
230
- | `/sk:laravel-init` | Configure an existing Laravel project |
231
-
232
- ### Configuration
233
-
234
- | Command | Description |
235
- |---------|-------------|
236
- | `/sk:config` | View and edit project config (`.shipkit/config.json`) |
237
- | `/sk:set-profile` | Switch model routing profile for this project |
238
-
239
- ### Meta
240
-
241
- | Command | Description |
242
- |---------|-------------|
243
- | `/sk:help` | Show all commands and workflow overview |
244
- | `/sk:status` | Show workflow and task status at a glance |
245
- | `/sk:dashboard` | Read-only workflow Kanban board — localhost server, multi-worktree |
246
- | `/sk:context` | Load all context files + output session brief for fast session start |
247
- | `/sk:skill-creator` | Create or improve ShipKit skills |
159
+ ## Quality Gates (`/sk:gates`)
248
160
 
249
- ---
161
+ One command runs all 6 gates in parallel batches:
250
162
 
251
- ## Model Routing Profiles
163
+ | Batch | Gates | Why this order |
164
+ |-------|-------|---------------|
165
+ | **1** (parallel) | lint + security + perf | Independent — run simultaneously |
166
+ | **2** | tests | Needs lint fixes first |
167
+ | **3** | code review | Needs deep understanding |
168
+ | **4** | E2E Tests | Needs review fixes |
252
169
 
253
- ShipKit routes each skill to the right model automatically. Set it once per project:
170
+ Each gate auto-fixes, auto-commits, and re-runs until clean. If a gate fails 3 times, it stops and asks for help.
254
171
 
255
- ```bash
256
- /sk:set-profile balanced # default
257
- /sk:set-profile quality # most projects
258
- /sk:set-profile full-sail # high-stakes / client work
259
- /sk:set-profile budget # side projects / exploration
260
- ```
172
+ Pre-existing issues are logged to `tasks/tech-debt.md` — not fixed inline.
261
173
 
262
- | Profile | Philosophy | Best for |
263
- |---------|-----------|---------|
264
- | `full-sail` | Opus on everything that matters | High-stakes work, client projects |
265
- | `quality` | Opus for planning + review, Sonnet for implementation | Most professional projects |
266
- | `balanced` | Sonnet across the board *(default)* | Day-to-day development |
267
- | `budget` | Haiku where possible, Sonnet for gates | Side projects, prototyping |
268
-
269
- | Skill group | full-sail | quality | balanced | budget |
270
- |-------------|-----------|---------|----------|--------|
271
- | brainstorm, write-plan, debug, execute-plan, review | opus | opus | sonnet | sonnet |
272
- | write-tests, frontend-design, api-design, security-check | opus | sonnet | sonnet | sonnet |
273
- | change | opus | sonnet | sonnet | sonnet |
274
- | perf, schema-migrate, accessibility | opus | sonnet | sonnet | haiku |
275
- | lint, test | sonnet | sonnet | haiku | haiku |
276
- | smart-commit, branch, update-task | haiku | haiku | haiku | haiku |
277
-
278
- `opus` = inherit (uses your current session model). Config lives in `.shipkit/config.json` — per project, gitignored by default.
279
-
280
- ### Config Reference
281
-
282
- ```json
283
- {
284
- "profile": "balanced",
285
- "auto_commit": true,
286
- "skip_gates": [],
287
- "coverage_threshold": 100,
288
- "branch_pattern": "feature/{slug}",
289
- "model_overrides": { "sk:review": "opus" }
290
- }
291
- ```
174
+ ---
175
+
176
+ ## On-Demand Tools
292
177
 
293
- | Setting | Default | Description |
294
- |---------|---------|-------------|
295
- | `profile` | `balanced` | Model routing profile |
296
- | `auto_commit` | `true` | Auto-commit after each gate passes |
297
- | `skip_gates` | `[]` | Gates to skip e.g. `["perf","accessibility"]` for backend-only projects |
298
- | `coverage_threshold` | `100` | Minimum test coverage % on new code |
299
- | `branch_pattern` | `feature/{slug}` | Branch naming convention |
300
- | `model_overrides` | `{}` | Per-skill model overrides that take precedence over profile |
178
+ Use these anytime they're not part of any workflow.
179
+
180
+ | Command | When to use |
181
+ |---------|------------|
182
+ | `/sk:scope-check` | Mid-implementation detect scope creep (On Track / Minor / Significant / Out of Control) |
183
+ | `/sk:retro` | After shipping analyze velocity, blockers, patterns, generate action items |
184
+ | `/sk:reverse-doc` | Inherited codebase — generate architecture/design docs from existing code |
185
+ | `/sk:status` | Quick view of workflow and task status |
186
+ | `/sk:dashboard` | Visual Kanban board across all git worktrees |
187
+ | `/sk:mvp` | Generate a complete MVP app from a single idea prompt |
188
+ | `/sk:seo-audit` | SEO audit for web projects |
301
189
 
302
190
  ---
303
191
 
304
192
  ## Stack Support
305
193
 
306
- ShipKit auto-detects your stack — no configuration needed.
307
-
308
194
  | Area | Supported |
309
195
  |------|-----------|
310
- | **Linters** | Pint, ESLint, PHPStan, Rector, Prettier, Biome, Stylelint |
311
- | **Test runners** | Pest, PHPUnit, Jest, Vitest, Playwright |
312
- | **Schema / ORM** | Prisma, Drizzle, Eloquent, SQLAlchemy + Alembic, ActiveRecord |
313
196
  | **Frameworks** | Laravel, Next.js, Nuxt, React, Vue, Node.js |
197
+ | **Linters** | Pint, ESLint, PHPStan, Rector, Prettier, Biome |
198
+ | **Test runners** | Pest, PHPUnit, Jest, Vitest, Playwright |
199
+ | **Schema / ORM** | Prisma, Drizzle, Eloquent, SQLAlchemy, ActiveRecord |
314
200
  | **Release** | npm, Composer, iOS (App Store), Android (Play Store) |
315
201
 
316
202
  ---
317
203
 
318
- ## Security
319
-
320
- ShipKit instructs Claude to audit your code — but Claude also has access to your filesystem. Protect sensitive files by adding a deny list to `.claude/settings.json` in your project:
321
-
322
- ```json
323
- {
324
- "permissions": {
325
- "deny": [
326
- "Read(.env)",
327
- "Read(.env.*)",
328
- "Read(**/*.pem)",
329
- "Read(**/*.key)",
330
- "Read(**/*.p12)",
331
- "Read(**/credentials*)"
332
- ]
333
- }
334
- }
335
- ```
336
-
337
- This prevents Claude from reading secrets even if a prompt tries to access them. Pair this with your `.gitignore` — never commit `.env` files.
338
-
339
- If you discover a security issue in ShipKit itself, please open a [GitHub issue](https://github.com/kennethsolomon/shipkit/issues) or email directly rather than posting publicly.
204
+ ## All Commands
205
+
206
+ <details>
207
+ <summary><strong>35 commands</strong> — click to expand</summary>
208
+
209
+ | Command | Purpose |
210
+ |---------|---------|
211
+ | `/sk:accessibility` | WCAG 2.1 AA audit |
212
+ | `/sk:api-design` | Design API contracts before implementation |
213
+ | `/sk:brainstorm` | Explore requirements and design |
214
+ | `/sk:branch` | Create feature branch from current task |
215
+ | `/sk:change` | Handle mid-workflow requirement changes |
216
+ | `/sk:config` | View/edit project config |
217
+ | `/sk:context` | Load project context (automatic via hooks) |
218
+ | `/sk:dashboard` | Live Kanban board — sk:dashboard across worktrees |
219
+ | `/sk:debug` | Structured bug investigation |
220
+ | `/sk:e2e` | E2E Tests — behavioral verification |
221
+ | `/sk:execute-plan` | Execute plan checkboxes in batches |
222
+ | `/sk:fast-track` | Small changes — skip planning, keep gates |
223
+ | `/sk:features` | Sync feature specs with codebase |
224
+ | `/sk:finish-feature` | Changelog + PR |
225
+ | `/sk:frontend-design` | UI mockup + optional Pencil visual design |
226
+ | `/sk:gates` | All quality gates in parallel batches |
227
+ | `/sk:help` | Show all commands |
228
+ | `/sk:hotfix` | Emergency fix workflow |
229
+ | `/sk:laravel-init` | Configure existing Laravel project |
230
+ | `/sk:laravel-new` | Scaffold fresh Laravel app |
231
+ | `/sk:lint` | Auto-detect and run all linters |
232
+ | `/sk:mvp` | Generate MVP app from a prompt |
233
+ | `/sk:perf` | Performance audit |
234
+ | `/sk:plan` | Create/refresh planning files |
235
+ | `/sk:release` | Version bump + tag (`--android` / `--ios` for store audit) |
236
+ | `/sk:retro` | Post-ship retrospective |
237
+ | `/sk:reverse-doc` | Generate docs from existing code |
238
+ | `/sk:review` | 7-dimension code review |
239
+ | `/sk:schema-migrate` | Database schema change analysis |
240
+ | `/sk:scope-check` | Detect scope creep mid-implementation |
241
+ | `/sk:security-check` | OWASP security audit |
242
+ | `/sk:seo-audit` | sk:seo-audit for web projects |
243
+ | `/sk:set-profile` | Switch model routing profile |
244
+ | `/sk:setup-claude` | Bootstrap project scaffolding |
245
+ | `/sk:smart-commit` | Conventional commit with approval |
246
+ | `/sk:status` | Show workflow + task status |
247
+ | `/sk:test` | Run all test suites |
248
+ | `/sk:update-task` | Mark task done |
249
+ | `/sk:write-plan` | Write plan to `tasks/todo.md` |
250
+ | `/sk:write-tests` | TDD: write failing tests first |
251
+
252
+ </details>
340
253
 
341
254
  ---
342
255
 
343
- ## License
256
+ ## Learn More
344
257
 
345
- MIT see [LICENSE](LICENSE) for details.
346
-
347
- Built by [Kenneth Solomon](https://github.com/kennethsolomon).
258
+ | Topic | Where |
259
+ |-------|-------|
260
+ | Detailed workflow steps (21-step table) | [DOCUMENTATION.md](.claude/docs/DOCUMENTATION.md) |
261
+ | Feature specifications | [docs/FEATURES.md](docs/FEATURES.md) |
262
+ | Model routing profiles & config | [DOCUMENTATION.md — Config](.claude/docs/DOCUMENTATION.md#config-reference) |
263
+ | Infrastructure (hooks, agents, rules) | [DOCUMENTATION.md — Setup](.claude/docs/DOCUMENTATION.md#what-gets-created) |
264
+ | Security & permissions | [DOCUMENTATION.md — Security](.claude/docs/DOCUMENTATION.md#security) |
348
265
 
349
266
  ---
350
267
 
351
268
  <div align="center">
352
269
 
270
+ MIT License — Built by [Kenneth Solomon](https://github.com/kennethsolomon)
271
+
353
272
  **Claude Code is powerful. ShipKit makes it reliable.**
354
273
 
355
274
  </div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kennethsolomon/shipkit",
3
- "version": "3.8.0",
3
+ "version": "3.9.0",
4
4
  "description": "A structured workflow toolkit for Claude Code.",
5
5
  "keywords": [
6
6
  "claude",
@@ -27,6 +27,7 @@ After bootstrapping a project, the recommended workflow becomes:
27
27
  - `tasks/progress.md` — chronological work log + test results
28
28
  - `tasks/lessons.md` — durable “don’t repeat mistakes” log (**never overwrite**)
29
29
  - `tasks/security-findings.md` — security audit results from `/sk:security-check` (**never overwrite**)
30
+ - `tasks/cross-platform.md` — changes that need replication in companion codebase (web <-> mobile) (**never overwrite**)
30
31
 
31
32
  ### Project Commands (in `.claude/commands/`)
32
33
  - `brainstorm.md` — invokes the global `brainstorming` skill
@@ -88,6 +89,7 @@ Never overwrite `tasks/lessons.md` — always append.
88
89
  - `tasks/progress.md`
89
90
  - `tasks/lessons.md`
90
91
  - `tasks/security-findings.md`
92
+ - `tasks/cross-platform.md`
91
93
  - `CHANGELOG.md`
92
94
  - custom `CLAUDE.md` (anything not marked `<!-- Generated by /sk:setup-claude -->`)
93
95
 
@@ -443,6 +443,7 @@ def apply(
443
443
  add("templates/tasks/lessons.md.template", "tasks/lessons.md", "missing")
444
444
  add("templates/tasks/security-findings.md.template", "tasks/security-findings.md", "missing")
445
445
  add("templates/tasks/workflow-status.md.template", "tasks/workflow-status.md", "missing")
446
+ add("templates/tasks/cross-platform.md.template", "tasks/cross-platform.md", "missing")
446
447
 
447
448
  # commands (update if generated)
448
449
  add("templates/commands/brainstorm.md.template", ".claude/commands/brainstorm.md", "generated")
@@ -272,6 +272,21 @@ Use `run_in_background: true` for tasks that don't block your next step:
272
272
  ```
273
273
  <!-- END:sub-agent-patterns -->
274
274
 
275
+ ## Cross-Platform Tracking
276
+
277
+ This project may have a companion codebase (web <-> mobile). During implementation, **log every change that affects the other platform** to `tasks/cross-platform.md`.
278
+
279
+ **When to log:**
280
+ - API contract changes (new/modified endpoints, payload shapes, auth)
281
+ - Data model changes (new fields, type changes, validation rules)
282
+ - Business logic that must behave identically on both platforms
283
+ - UI/UX flows that should have parity
284
+ - Platform-specific deviations (intentional differences)
285
+
286
+ **How to log:** Append a new section using the template in `tasks/cross-platform.md`. Include enough context that a developer in the other codebase can implement without guessing.
287
+
288
+ **When to review:** At the start of every task, check `tasks/cross-platform.md` for pending items targeting this codebase.
289
+
275
290
  ## Project Memory
276
291
 
277
292
  Read these files at the start of every task:
@@ -279,12 +294,14 @@ Read these files at the start of every task:
279
294
  - `tasks/lessons.md` — past mistakes and how to avoid them
280
295
  - `tasks/todo.md` — current plan
281
296
  - `tasks/tech-debt.md` — known shortcuts, deferred work, and areas to revisit
297
+ - `tasks/cross-platform.md` — pending changes from the other codebase
282
298
 
283
299
  Write to these files continuously:
284
300
  - `tasks/progress.md` — every attempt, error, and resolution
285
301
  - `tasks/findings.md` — anything important discovered mid-task
302
+ - `tasks/cross-platform.md` — any change that impacts the other platform
286
303
 
287
- **Never overwrite** `tasks/lessons.md` or `tasks/security-findings.md`.
304
+ **Never overwrite** `tasks/lessons.md`, `tasks/security-findings.md`, or `tasks/cross-platform.md`.
288
305
 
289
306
  ## Lessons Capture
290
307
 
@@ -0,0 +1,31 @@
1
+ # Cross-Platform Changes
2
+
3
+ Track changes that need to be replicated in the other codebase (web <-> mobile).
4
+
5
+ <!--
6
+ Format: One section per feature/task.
7
+ Each entry should have enough context for a developer (or Claude session)
8
+ in the other codebase to implement without guessing.
9
+ -->
10
+
11
+ <!-- TEMPLATE — copy this block for each new feature:
12
+
13
+ ## [Feature Name] (YYYY-MM-DD)
14
+ Source: [web|mobile] — the codebase where this was implemented first
15
+
16
+ ### API Changes
17
+ - [ ] Description of endpoint/payload/auth changes
18
+
19
+ ### Data Model Changes
20
+ - [ ] New fields, renamed fields, type changes, validation rules
21
+
22
+ ### Behavior Changes
23
+ - [ ] Business logic that must match across platforms
24
+
25
+ ### UI/UX Parity
26
+ - [ ] Screens, flows, or interactions that should match
27
+
28
+ ### Platform-Specific Notes
29
+ - [ ] Anything that differs intentionally between web and mobile
30
+
31
+ -->
@@ -39,7 +39,7 @@ The single command to keep your CLAUDE.md current. Diagnoses problems, updates t
39
39
 
40
40
  Before making any changes, runs a diagnostic pass on the existing CLAUDE.md:
41
41
 
42
- - **Missing sections** — checks for essential sections (Workflow, Sub-Agent Patterns, Project Memory, Lessons Capture, Testing, Commands, etc.)
42
+ - **Missing sections** — checks for essential sections (Workflow, Sub-Agent Patterns, Cross-Platform Tracking, Project Memory, Lessons Capture, Testing, Commands, etc.)
43
43
  - **Stale content** — detects outdated info (stale model/route counts, removed dependencies, old command names like `/laravel-lint` instead of `/sk:lint`)
44
44
  - **Inconsistencies** — compares documented vs actual project state (directories, scripts, workflows)
45
45
  - **Section completeness** — flags sections that exist but are empty or have only placeholder text
@@ -63,6 +63,7 @@ Read → Explore → Design → Accessibility → Plan → Branch → Migrate
63
63
  - Step completion summary rule (NON-NEGOTIABLE)
64
64
  - Bug fix flow section
65
65
  - Sub-Agent Patterns section (if missing)
66
+ - Cross-Platform Tracking section (if missing)
66
67
  - Project Memory section (if missing)
67
68
  - Lessons Capture section (if missing)
68
69
  - Testing TDD section (if missing)