soloship 0.1.0 → 0.1.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 CHANGED
@@ -2,33 +2,55 @@
2
2
 
3
3
  > Ship solo, safely.
4
4
 
5
- Soloship is guardrails for non-coders building software through AI agents. It's a Claude Code plugin that gives you three things a traditional engineering team would: **mechanical enforcement** that fires automatically (9 hooks, 4 rules, CI checks — no judgment calls required), **19 workflow skills** that guide you through the steps a professional would take (each with enforcement gates and anti-rationalization tables so the agent can't cut corners), and **a one-command setup** that detects your stack and wires everything into the project.
5
+ Soloship is guardrails for non-coders building software through AI agents. It's a Claude Code plugin that gives you three things a traditional engineering team would: **mechanical enforcement** that fires automatically (9 hooks, 4 rules, CI checks — no judgment calls required), **15 Soloship-native workflow skills + 36 vendored skills from five best-in-class plugins** that guide you through the steps a professional would take (each with enforcement gates and anti-rationalization tables so the agent can't cut corners), and **a one-command setup** that detects your stack and wires everything into the project.
6
6
 
7
7
  **Quick reference:** [aifoundationlevels.com/soloship-cheatsheet](https://aifoundationlevels.com/soloship-cheatsheet)
8
8
 
9
9
  ## Install
10
10
 
11
- Soloship is a [Claude Code](https://claude.com/claude-code) plugin. If you don't have Claude Code installed yet, install it first — then come back here.
11
+ ### Prerequisites
12
12
 
13
- Inside any Claude Code session, run these two commands **one at a time** — run the first, wait for it to finish, then run the second:
13
+ You need two things before you start:
14
14
 
15
- **1. Add the marketplace:**
15
+ 1. **[Claude Code](https://claude.com/claude-code)** — install it if you haven't yet. Soloship runs inside it.
16
+ 2. **Node.js 18 or newer** — `npx` ships with Node and is how Soloship's CLI runs. Check by running `node -v` in a terminal. If you don't have it, install from [nodejs.org](https://nodejs.org).
17
+
18
+ You don't need to install anything from npm by hand. `npx` downloads `soloship` on demand and caches it. Soloship is [live on npm](https://www.npmjs.com/package/soloship) — you can verify with `npm view soloship`.
19
+
20
+ ### How Soloship is structured
21
+
22
+ Soloship has two parts that work together:
23
+
24
+ | Part | What it gives you | How it's installed | When it runs |
25
+ |------|-------------------|--------------------|--------------|
26
+ | **Plugin** (`thedigitalorganizer/soloship`) | The `/soloship:*` slash commands (audit, bootstrap, brainstorm, plan, etc.) | Claude Code plugin marketplace | Once per machine |
27
+ | **npm CLI** (`soloship` on npm) | The `init` / `upgrade` / `doctor` / `rollback` commands that install hooks, rules, CI, and `CLAUDE.md` into a project | Auto-downloaded by `npx` (no manual install) | Once per project, then `upgrade` whenever a new version ships |
28
+
29
+ You need both for the full experience. The plugin gives you the slash commands. The npm CLI installs the project-level guardrails. The plugin's `/soloship:bootstrap` calls `npx soloship init` for you, so in practice you only ever type slash commands.
30
+
31
+ ### Step 1 — Install the plugin (once per machine)
32
+
33
+ Inside any Claude Code session, run these two slash commands **one at a time** — run the first, wait for it to finish, then run the second.
34
+
35
+ **1a. Add the marketplace:**
16
36
 
17
37
  ```
18
38
  /plugin marketplace add thedigitalorganizer/soloship
19
39
  ```
20
40
 
21
- **2. Install the plugin:**
41
+ This points Claude Code at the Soloship marketplace on GitHub. Nothing is installed yet — this just registers where to find the plugin.
42
+
43
+ **1b. Install the plugin:**
22
44
 
23
45
  ```
24
46
  /plugin install soloship@soloship
25
47
  ```
26
48
 
27
- That's it. The plugin installs globally, so you only do this once on your machine. All 19 Soloship commands are now available as `/soloship:*` slash commands in every project you open.
49
+ The syntax is `<plugin-name>@<marketplace-name>` both happen to be `soloship`, which is why it reads twice. Once this finishes, every `/soloship:*` slash command is available in every project you open in Claude Code.
28
50
 
29
- ### Using Soloship in a project
51
+ ### Step 2 Set up a project (once per project)
30
52
 
31
- Open the project you want to use Soloship in — a brand-new empty folder or an existing codebase, either works — then run one of these in Claude Code:
53
+ Open the project you want to use Soloship in — a brand-new empty folder or an existing codebase, either works — then run one of these in Claude Code. **You don't need to open a terminal.** The bootstrap skill calls `npx soloship init` for you.
32
54
 
33
55
  **Brand-new project (no code yet):**
34
56
 
@@ -49,6 +71,18 @@ Bootstrap asks four questions about your project, then sets up the guardrails (h
49
71
 
50
72
  After bootstrap, the daily loop is `/soloship:brainstorm` → `/soloship:plan` → `/soloship:implement` → `/soloship:shipthorough`.
51
73
 
74
+ ### Keeping Soloship up to date
75
+
76
+ After install, every Claude Code session checks once a day whether a new Soloship version has been published. When one is, you'll see a single line at the top of the session:
77
+
78
+ ```
79
+ Soloship update available: 0.1.0 → 0.1.2. Run: npx soloship upgrade
80
+ ```
81
+
82
+ Run that command from your project root whenever you see it. It refreshes hooks, rules, and CI, then re-stamps the version. Your project docs (`CLAUDE.md`, `AGENTS.md`, `CHANGELOG.md`) are preserved.
83
+
84
+ To update the plugin itself (the slash commands), Claude Code handles it via `/plugin update soloship@soloship`.
85
+
52
86
  ## How we got here
53
87
 
54
88
  Soloship didn't start as a project. It started as a frustration.
@@ -93,7 +127,8 @@ Others are routers — Soloship adds enforcement and routing logic, then dispatc
93
127
  | Skill | Routes to | What Soloship adds |
94
128
  |-------|-----------|-------------------|
95
129
  | `/brainstorm` | `office-hours` (product) / `superpowers:brainstorming` (technical) | Product-vs-technical routing, mandatory design-first nudge |
96
- | `/plan` | `superpowers:writing-plans` / `plan-eng-review` | Solution search before planning, 7-point enforcement gate, artifact contracts |
130
+ | `/grill-me` | (self-contained, adapted from Matt Pocock's `grill-me`) | Pre-plan interview that refuses to write a plan until user + agent share a complete mental model. Walks the design tree exhaustively. |
131
+ | `/plan` | `superpowers:writing-plans` / `plan-eng-review` | Solution search before planning, 7-point enforcement gate, artifact contracts, checks for `/grill-me` rationale on non-trivial work |
97
132
  | `/implement` | `superpowers:subagent-driven-development` / `superpowers:dispatching-parallel-agents` | Plan-first enforcement, execution strategy routing |
98
133
  | `/debug` | `superpowers:systematic-debugging` | Solution search for prior art, root-cause iron law |
99
134
  | `/learn` | `compound-engineering:workflows:compound` (Step 1) | Solution doc via CE, then own protocols: JSONL logging, registry audit, AGENTS.md propagation + creation |
@@ -122,38 +157,36 @@ Run bootstrap once per project. For existing code, run `/soloship:audit` first s
122
157
 
123
158
  ### The skills
124
159
 
125
- 19 Claude Code skills invoked as `/soloship:*` slash commands:
160
+ **15 Soloship-native workflow skills** invoked as `/soloship:*` slash commands. Each one handles orchestration, enforcement, and artifact contracts; the heavy lifting is often delegated to a vendored skill (see the next section).
126
161
 
127
162
  **Setup & orientation**
128
163
 
129
164
  - `/soloship:audit` — Deep 2-phase codebase investigation. Phase 1 launches 4 parallel agents to map architecture, conventions, decisions, and infrastructure. Phase 2 launches 6 more to assess quality, entanglement, security, dependencies, gaps, and leverage points. Human checkpoint between phases prevents building assessment on wrong assumptions. Produces `docs/audit/AUDIT-YYYY-MM-DD.md` + `audit-findings.json`.
130
165
  - `/soloship:bootstrap` — Configures governance from audit findings or interactive questions. Creates CLAUDE.md, AGENTS.md files (3+ source file threshold), installs 4 core rules, and wires up hooks. Never overwrites existing files. Anti-rationalization table blocks "I'll set up governance later."
131
166
  - `/soloship:onboard` — Reads CLAUDE.md, AGENTS.md, audit reports, and recent git history to produce a 7-section orientation briefing. Flags stale audit reports. No external routing — fully self-contained.
132
- - `/soloship:checkpoint` — Saves working state (git status, decisions, remaining work) so any future session can resume cleanly. Routes to gstack `checkpoint`. Pairs with `/soloship:onboard` for `/clear` recovery.
133
167
 
134
168
  **Daily work**
135
169
 
136
- - `/soloship:brainstorm` — Detects whether the question is product (demand, audience, wedge) or technical (approaches, trade-offs) and routes accordingly: `office-hours` for product questions, `superpowers:brainstorming` for technical ones. Ends with a mandatory design-first nudge — sketch before you plan.
170
+ - `/soloship:brainstorm` — Detects whether the question is demand-validation (should this exist?) or feature-shaping (what should this do?) and routes accordingly: `gs-office-hours` for demand, `ce-brainstorm` for feature. Ends with a mandatory design-first nudge — sketch before you plan.
171
+ - `/soloship:grill-me` — Relentless pre-plan interview that walks every branch of the design tree until user and agent share a complete mental model. Refuses to produce a plan or any code until alignment is explicit. Triggered explicitly ("grill me", "interview me") or by `/soloship:plan` on medium-to-large work. Adapted from Matt Pocock's `grill-me` (MIT).
137
172
  - `/soloship:spec` — Writes formal specifications with numbered acceptance criteria, data models, API contracts, user flows (including error states), and explicit out-of-scope boundaries. 8-point verification checklist. Fully self-contained.
138
- - `/soloship:plan` — Searches `docs/solutions/` for prior art, reads architecture context, then routes to `superpowers:writing-plans` for standard features or `plan-eng-review` for architectural work. 7-point enforcement gate validates: Why lines, Key Decisions, Execution Strategy, Handoff section, no unaddressed pitfalls.
139
- - `/soloship:implement` — Finds the most recent plan in `docs/plans/`, assesses the execution strategy, and routes to `superpowers:subagent-driven-development` (sequential tasks) or `superpowers:dispatching-parallel-agents` (independent modules). Freshness check warns on stale plans.
140
- - `/soloship:debug` — Iron law: no fixes without root cause investigation. Searches solutions for prior art first, then routes to `superpowers:systematic-debugging` for 4-phase discipline (Investigate → Analyze → Hypothesize → Implement). Nudges `/learn` for non-obvious fixes.
141
- - `/soloship:learn` — Captures knowledge from non-obvious work. Step 1 routes to `compound-engineering:workflows:compound` for solution doc creation. Steps 2-3 are Soloship's own protocols: JSONL logging for cross-session search and architecture registry drift checking. Steps 4-5 adapt the distributed AGENTS.md concept — propagating pitfalls into existing AGENTS.md files and creating new ones for directories above the 3-file governance threshold. Anti-rationalization table blocks "this fix was straightforward, not worth documenting."
142
- - `/soloship:cleanup` — Knowledge system maintenance. Launches 5 parallel audit agents (solution health, overlap detection, plan lifecycle, AGENTS.md staleness, index sync), presents findings interactively, then executes approved changes in a single atomic commit. Merge candidates require 2-of-3 signal threshold. Each merge dispatched as an independent subagent to prevent context bloat.
173
+ - `/soloship:plan` — Searches `docs/solutions/` for prior art, reads architecture context, then invokes `ce-plan` to produce the plan. 7-point enforcement gate validates: Why lines, Key Decisions, Execution Strategy, Handoff section, no unaddressed pitfalls, and that non-trivial work was preceded by `/soloship:grill-me`. Review is separate — handled by `/soloship:review`.
174
+ - `/soloship:implement` — Finds the most recent plan in `docs/plans/`, invokes `ce-work` for execution with branching and QC. Freshness check warns on stale plans.
175
+ - `/soloship:debug` — Iron law: no fixes without root cause investigation. Searches solutions for prior art first, then invokes `sp-systematic-debugging` for 4-phase discipline (Investigate → Analyze → Hypothesize → Implement). Nudges `/learn` for non-obvious fixes.
176
+ - `/soloship:learn` — Captures knowledge from non-obvious work. Invokes `ce-compound` for solution doc creation. Adds Soloship protocols: JSONL logging for cross-session search, architecture registry drift checking, and distributed AGENTS.md propagation (pitfalls into existing AGENTS.md files, new ones for directories above the 3-file governance threshold). Anti-rationalization table blocks "this fix was straightforward, not worth documenting."
177
+ - `/soloship:cleanup` — Knowledge system maintenance. Launches 5 parallel audit agents (solution health, overlap detection, plan lifecycle, AGENTS.md staleness, index sync), presents findings interactively, then executes approved changes in a single atomic commit. Merge candidates require 2-of-3 signal threshold.
143
178
 
144
179
  **Shipping**
145
180
 
146
181
  - `/soloship:shipfast` — Emergency deploy pipeline. Lint (with auto-fix tolerance), test (pre-existing failures allowed), build (must pass), commit, push, deploy. Auto-detects platform. Minimum viable safety, maximum speed.
147
- - `/soloship:shipthorough` — Full due diligence: preflight checks, base branch merge, lint, test, coverage audit, 3-pass code review (via `/review`), registry update, CHANGELOG enforcement, plan lifecycle cleanup, bisectable commits, PR with structured body, verification gate, deploy. 12-point checklist.
182
+ - `/soloship:shipthorough` — Full due diligence: preflight checks, base branch merge, lint, test, inline quality gate (TypeScript + linter + dead code + shellcheck), coverage audit, 3-pass code review (via `/review`), registry update, CHANGELOG enforcement, plan lifecycle cleanup, bisectable commits, PR with structured body, verification gate, deploy.
148
183
 
149
184
  **Quality**
150
185
 
151
- - `/soloship:review` — Detects whether the target is a plan or code. Plans route to `plan-eng-review`, `plan-ceo-review`, or `plan-design-review`. Code gets a 3-pass parallel review: structural (SQL safety, auth, types, tests), adversarial (load, bad input, state transitions), and design-lite (a11y, responsive, AI slop only if frontend changed). Severity classification with file:line references.
152
- - `/soloship:qa` — Routes to gstack `qa` (test and fix) or `qa-only` (report only). Uses accessibility checklist as baseline.
153
- - `/soloship:security` — Routes to gstack `cso` for infrastructure-first security scanning: OWASP Top 10, STRIDE threat modeling, secrets archaeology, dependency supply chain, npm audit.
154
- - `/soloship:design-review` Two-pass visual audit. Pass 1 routes to gstack `design-review` for spacing, hierarchy, and consistency. Pass 2 is Soloship's own AI slop detection flags generic gradients, default shadows, "Welcome to" copy, 3-column feature grids, and other patterns that mark AI-generated design. Each fix committed atomically with before/after screenshots.
155
- - `/soloship:health` — Routes to gstack `health` for a composite 0-10 codebase quality score (type check, lint, tests, dead code) with trend tracking across runs. Intended as a pre-ship gate inside `/soloship:shipthorough`.
156
- - `/soloship:autoplan` — Routes to gstack `autoplan` to run the full plan-review gauntlet (CEO, design, engineering, DX) in a single pass with auto-decisions. Use when you want every review lens applied without stepping through them individually.
186
+ - `/soloship:review` — Detects whether the target is a plan or code. **Plans** route to `gs-plan-eng-review`, `gs-plan-ceo-review`, `gs-plan-design-review` individually, or `gs-autoplan` for all four (adds DX review) in one auto-decided pass. **Code** routes to `ce-review` for PR-scale multi-agent analysis, or runs three inline passes (structural, adversarial, design slop lens) for quick local checks.
187
+ - `/soloship:design-review` — Two-pass visual audit. Pass 1 invokes `gs-design-review` for spacing, hierarchy, and consistency. Pass 2 is Soloship's own AI slop detection (inspired by Impeccable) flags generic gradients, default shadows, "Welcome to" copy, 3-column feature grids, and other patterns that mark AI-generated design. Each fix committed atomically with before/after screenshots.
188
+
189
+ **Note:** Skills that were previously thin wrappers over vendored gstack skills (`/soloship:qa`, `/soloship:security`, `/soloship:checkpoint`, `/soloship:autoplan`, `/soloship:health`) have been removed. Use the vendored originals directly: `/gs-qa`, `/gs-cso`, `/gs-context-save` / `/gs-context-restore`, `/gs-autoplan`. Health has no replacement its core checks were inlined into `/soloship:shipthorough`'s quality gate.
157
190
 
158
191
  ## Quick start
159
192
 
@@ -174,15 +207,18 @@ See the [Install](#install) section above for the two commands to install the pl
174
207
  /soloship:plan → /soloship:implement → /soloship:shipthorough
175
208
  ```
176
209
 
177
- ### Prefer an npm installer?
210
+ ### Running the npm CLI directly
178
211
 
179
- If you'd rather set up the project scaffolding outside Claude Code (for example, in a scripted environment or CI), the npm CLI does the same thing bootstrap does:
212
+ `/soloship:bootstrap` calls `npx soloship init` under the hood, so you don't usually need to think about the npm CLI. But it's there if you want to script setup, run it in CI, or skip the slash command entirely. Run any of these from your project root:
180
213
 
181
214
  ```bash
182
- npx soloship init
215
+ npx soloship init # initial setup — creates docs, hooks, rules, CI, CLAUDE.md
216
+ npx soloship upgrade # refresh hooks, rules, CI, and the .soloship/version stamp
217
+ npx soloship doctor # check Claude Code environment for missing companions
218
+ npx soloship rollback # restore the last safety snapshot
183
219
  ```
184
220
 
185
- Most people should use `/soloship:bootstrap` it's the supported path and it can tailor setup to audit findings.
221
+ `npx` auto-downloads the latest Soloship from npm the first time you run it, and caches it after that. There's no separate `npm install -g` step.
186
222
 
187
223
  ## Design decisions
188
224
 
@@ -202,23 +238,29 @@ Most people should use `/soloship:bootstrap` — it's the supported path and it
202
238
  | 7 | Not started | Safety floor hardening, surface simplification, CLAUDE.md governance |
203
239
  | 8 | Not started | Graduation system, methodology documentation |
204
240
 
205
- Phases 1-6 are shipped and usable today. Phases 7-8 were restructured after a 3-round adversarial review that identified rationalization traps in the original design. Phase 7 adds mechanical safety enforcement (Semgrep scanning, automated rollback, phone-a-friend triggers) and consolidates the 19 skills into 3-4 meta-workflows. Phase 8 adds a graduation system with calibrated thresholds that tell you when your project has outgrown solo mode.
241
+ Phases 1-6 are shipped and usable today. Phases 7-8 were restructured after a 3-round adversarial review that identified rationalization traps in the original design. Phase 7 adds mechanical safety enforcement (Semgrep scanning, automated rollback, phone-a-friend triggers) and consolidates the native skills into 3-4 meta-workflows. Phase 8 adds a graduation system with calibrated thresholds that tell you when your project has outgrown solo mode.
242
+
243
+ ## Built on the shoulders of
244
+
245
+ Soloship curates and vendors skills from five outstanding Claude Code plugins. One plugin install for the user; full credit and install links for the authors. Full attribution and version pins live in [`THIRD_PARTY_NOTICES.md`](THIRD_PARTY_NOTICES.md).
206
246
 
207
- ## Prior art & influences
247
+ [**Compound Engineering**](https://github.com/EveryInc/compound-engineering-plugin) Kieran Klaassen (Every). The brainstorm → plan → work → compound loop is the spine of how Soloship thinks about engineering. Also: `/review` inherits CE's multi-agent review pattern.
208
248
 
209
- Soloship builds on top of four Claude Code skill ecosystems rather than replacing them:
249
+ [**Superpowers**](https://github.com/obra/superpowers) Jesse Vincent. The discipline skills: `systematic-debugging`'s "no fixes without root cause," `verification-before-completion`'s "evidence before claims," `test-driven-development`, `writing-plans`, `executing-plans`, `subagent-driven-development`, `dispatching-parallel-agents` (via `using-git-worktrees`), `finishing-a-development-branch`, `brainstorming`. Nine skills total.
210
250
 
211
- [Compound Engineering](https://github.com/EveryInc/compound-engineering-plugin) — `/learn` uses CE's `workflows:compound` to create solution documents with structured frontmatter. The multi-agent pattern in CE informs how `/audit` and `/review` dispatch parallel investigation agents.
251
+ [**Impeccable**](https://impeccable.style) — Paul Bakaus (extending Anthropic's original `frontend-design`). Design vocabulary and steering commands that let non-coders ship work that doesn't look AI-generated. Soloship vendors `frontend-design` and five `/i-*` commands; 12 more are in the full plugin.
212
252
 
213
- [Superpowers](https://github.com/anthropics/superpowers) — `/brainstorm` routes to `superpowers:brainstorming` for technical exploration. `/plan` routes to `superpowers:writing-plans`. `/implement` routes to `superpowers:subagent-driven-development` or `superpowers:dispatching-parallel-agents`. `/debug` routes to `superpowers:systematic-debugging`.
253
+ [**ui-ux-pro-max**](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill) — nextlevelbuilder. The design reference library: styles, palettes, font pairings, UX guidelines, chart patterns, across every stack the agent might target.
214
254
 
215
- [gstack](https://github.com/garrytan/gstack) — `/qa` routes to gstack's QA skill. `/security` routes to `cso`. `/design-review` routes to gstack's design-review checklist. `/brainstorm` routes to `office-hours` for product questions. `/plan` routes to `plan-eng-review` for architectural work. `/review` routes to `plan-eng-review`, `plan-ceo-review`, and `plan-design-review` for plan reviews.
255
+ [**gstack**](https://github.com/garrytan/gstack) — Garry Tan (YC). The solo builder toolkit. Soloship vendors 12 of the most non-coder-friendly skills — `autoplan` (chains CEO + design + eng + DX reviews), `context-save` / `context-restore` (the checkpoint pair), `browse` (headless browser daemon, re-vendored from gstack v1.31.1.0 with Soloship-native paths so it works standalone), `qa`, `design-review`, the four plan-review skills (eng, ceo, design, devex), `office-hours`, `cso`. Full gstack has ~25 more.
216
256
 
217
- [intent-layer](https://github.com/crafter-station/skills/tree/main/context-engineering/intent-layer) (crafter-station/skills, built on [The Intent Layer](https://www.intent-systems.com/learn/intent-layer) by Tyler Brandt) `/learn` Steps 4-5 adapt the concept of distributed per-directory `AGENTS.md` files for codebase navigation. Soloship's version is continuous (updates on every `/learn` pass, not one-shot), threshold-gated (3+ source files before creating), append-only with dated attribution, and scoped to solution-doc evidence rather than speculative. `/bootstrap` and `/cleanup` also maintain the AGENTS.md network.
257
+ If any of these are useful to you, please install the full upstream plugin each `THIRD_PARTY_NOTICES.md` section has the one-line install command, and you'll get everything the author built, not just Soloship's selection.
218
258
 
219
- [Impeccable](https://github.com/pbakaus/impeccable) `/design-review` adds an AI slop detection pass inspired by Impeccable's design quality philosophy, checking for generic AI-generated visual, content, and layout patterns.
259
+ Also influential but not vendored:
220
260
 
221
- [Serena](https://github.com/oraios/serena) — symbol-level LSP code navigation. Optional. Worth adding once a codebase outgrows file-level tools; see Serena's README for install instructions.
261
+ [**intent-layer**](https://github.com/crafter-station/skills/tree/main/context-engineering/intent-layer) (crafter-station/skills, built on [The Intent Layer](https://www.intent-systems.com/learn/intent-layer) by Tyler Brandt) `/learn` Steps 4-5 adapt the concept of distributed per-directory `AGENTS.md` files for codebase navigation. Soloship's version is continuous (updates on every `/learn` pass, not one-shot), threshold-gated (3+ source files before creating), append-only with dated attribution, and scoped to solution-doc evidence rather than speculative. `/bootstrap` and `/cleanup` also maintain the AGENTS.md network.
262
+
263
+ [**Serena**](https://github.com/oraios/serena) — symbol-level LSP code navigation. Optional. Worth adding once a codebase outgrows file-level tools; see Serena's README for install instructions.
222
264
 
223
265
  The broader design traces back to a research pass across: Ousterhout on strategic vs tactical programming (you are the architect, the agent implements), Hickey on simple vs easy, Metz on dependency awareness and sizing rules, Meadows on leverage points in systems, the BCG "AI Brain Fry" finding that productivity drops past three tools, Kathy Sierra on the collapse zone (only automated process survives when things break), and the Codified Context paper that validated the CLAUDE.md + AGENTS.md + docs/ three-tier pattern.
224
266
 
@@ -237,10 +279,22 @@ src/ # TypeScript source for the installer
237
279
  ci.ts # GitHub Actions + architecture fitness
238
280
  templates.ts # CLAUDE.md / AGENTS.md / CHANGELOG / SOLUTION_GUIDE generators
239
281
  skills/ # Claude Code skills shipped by the plugin
240
- audit/ autoplan/ bootstrap/ brainstorm/ checkpoint/ cleanup/
241
- debug/ design-review/ health/ implement/ learn/ onboard/
242
- plan/ qa/ review/ security/ shipfast/ shipthorough/ spec/
282
+ # 15 Soloship-native workflows:
283
+ audit/ bootstrap/ brainstorm/ cleanup/ debug/ design-review/
284
+ grill-me/ implement/ learn/ onboard/ plan/ review/
285
+ shipfast/ shipthorough/ spec/
286
+
287
+ # 36 vendored skills (full attribution in THIRD_PARTY_NOTICES.md):
288
+ ce-* # 8 from Compound Engineering (Kieran Klaassen, MIT)
289
+ sp-* # 9 from Superpowers (Jesse Vincent, MIT)
290
+ im-* # 6 from Impeccable (Paul Bakaus, Apache 2.0)
291
+ uiux-* # 1 from ui-ux-pro-max (nextlevelbuilder, MIT)
292
+ gs-* # 12 from gstack (Garry Tan, MIT) — includes the gs-browse
293
+ # headless browser daemon, re-vendored at v1.31.1.0 with
294
+ # Soloship-native paths so it works without gstack installed
295
+
243
296
  references/ # Shared checklists (a11y, code review, perf, security, testing)
297
+ vendored/ # Per-source LICENSE / NOTICE / VERSION / README (attribution archive)
244
298
  ```
245
299
 
246
300
  ## License
package/dist/cli.js CHANGED
@@ -3,11 +3,13 @@ import chalk from "chalk";
3
3
  import { runInit } from "./init.js";
4
4
  import { runRollback } from "./rollback.js";
5
5
  import { runDoctor } from "./doctor.js";
6
+ import { runUpgrade } from "./upgrade.js";
7
+ import { getVersion } from "./pkg.js";
6
8
  const program = new Command();
7
9
  program
8
10
  .name("soloship")
9
11
  .description("Ship solo, safely — guardrails for AI-assisted development")
10
- .version("0.1.0");
12
+ .version(getVersion());
11
13
  program
12
14
  .command("init")
13
15
  .description("Initialize Soloship in the current project")
@@ -32,6 +34,22 @@ program
32
34
  process.exit(1);
33
35
  }
34
36
  });
37
+ program
38
+ .command("upgrade")
39
+ .description("Refresh hooks, rules, and CI to the version of Soloship being run via npx")
40
+ .action(async () => {
41
+ console.log("");
42
+ console.log(chalk.bold("Soloship Upgrade"));
43
+ console.log(chalk.dim("Refreshing project hooks, rules, and CI. Project docs are preserved."));
44
+ console.log("");
45
+ try {
46
+ await runUpgrade();
47
+ }
48
+ catch (err) {
49
+ console.error(chalk.red("Upgrade failed:"), err);
50
+ process.exit(1);
51
+ }
52
+ });
35
53
  program
36
54
  .command("rollback")
37
55
  .description("Roll back to the last Soloship safety snapshot")
package/dist/hooks.js CHANGED
@@ -99,7 +99,7 @@ export async function installHooks(root, project) {
99
99
  },
100
100
  ];
101
101
  results.push("Stop: plan validation + workflow navigator + handoff reminder");
102
- // SessionStart: Checkpoint commit + context injection
102
+ // SessionStart: Checkpoint commit + Soloship update check
103
103
  hooks.SessionStart = [
104
104
  {
105
105
  matcher: "",
@@ -116,14 +116,14 @@ export async function installHooks(root, project) {
116
116
  hooks: [
117
117
  {
118
118
  type: "command",
119
- command: buildSessionStartScript(),
120
- timeout: 10000,
119
+ command: buildUpgradeCheckScript(),
120
+ timeout: 5000,
121
121
  },
122
122
  ],
123
123
  },
124
124
  ];
125
125
  results.push("SessionStart: checkpoint commit before agent session");
126
- results.push("SessionStart: context injection");
126
+ results.push("SessionStart: daily check for Soloship updates on npm");
127
127
  // Merge hooks into settings (don't overwrite other settings)
128
128
  settings.hooks = hooks;
129
129
  writeFileSync(settingsPath, JSON.stringify(settings, null, 2));
@@ -295,9 +295,44 @@ else
295
295
  fi
296
296
  '`;
297
297
  }
298
- function buildSessionStartScript() {
298
+ function buildUpgradeCheckScript() {
299
+ // Once-per-day check for newer Soloship npm releases. Silent if up-to-date,
300
+ // network unavailable, or no version stamp exists. Cached to avoid hammering
301
+ // the npm registry on every session start.
299
302
  return `bash -c '
300
- # Dependency graph injection removed.
303
+ SOLOSHIP_DIR=".soloship"
304
+ VERSION_FILE="$SOLOSHIP_DIR/version"
305
+ CACHE_FILE="$SOLOSHIP_DIR/.last-update-check"
306
+
307
+ [ -f "$VERSION_FILE" ] || exit 0
308
+ INSTALLED=$(cat "$VERSION_FILE" 2>/dev/null | head -n1 | tr -d "[:space:]")
309
+ [ -z "$INSTALLED" ] && exit 0
310
+
311
+ NOW=$(date +%s)
312
+ LATEST=""
313
+ if [ -f "$CACHE_FILE" ]; then
314
+ CACHED_TS=$(sed -n 1p "$CACHE_FILE" 2>/dev/null)
315
+ CACHED_VER=$(sed -n 2p "$CACHE_FILE" 2>/dev/null)
316
+ if [ -n "$CACHED_TS" ] && [ $((NOW - CACHED_TS)) -lt 86400 ]; then
317
+ LATEST="$CACHED_VER"
318
+ fi
319
+ fi
320
+
321
+ if [ -z "$LATEST" ]; then
322
+ LATEST=$(timeout 3 npm view soloship version 2>/dev/null | tr -d "[:space:]")
323
+ [ -z "$LATEST" ] && exit 0
324
+ mkdir -p "$SOLOSHIP_DIR"
325
+ printf "%s\\n%s\\n" "$NOW" "$LATEST" > "$CACHE_FILE" 2>/dev/null
326
+ fi
327
+
328
+ if [ "$INSTALLED" != "$LATEST" ]; then
329
+ NEWEST=$(printf "%s\\n%s\\n" "$INSTALLED" "$LATEST" | sort -V | tail -n1)
330
+ if [ "$NEWEST" = "$LATEST" ]; then
331
+ echo "{\\"systemMessage\\": \\"Soloship update available: $INSTALLED → $LATEST. Run: npx soloship upgrade\\"}"
332
+ fi
333
+ fi
334
+
335
+ exit 0
301
336
  '`;
302
337
  }
303
338
  function buildPhoneAFriendScript() {
package/dist/manifest.js CHANGED
@@ -58,12 +58,6 @@ export const SOLOSHIP_MANIFEST = {
58
58
  },
59
59
  ],
60
60
  skills: [
61
- {
62
- name: "gstack",
63
- severity: "recommended",
64
- purpose: "Command bundle that provides office-hours, plan reviews (eng/CEO/design), QA, CSO, design-review, retro, and others. Soloship skills delegate to gstack for review and QA workflows.",
65
- install: "gstack has its own install path — check its README. It typically deploys as a directory under ~/.claude/skills/gstack plus individual symlinked skills (office-hours, plan-eng-review, qa, cso, etc.).",
66
- },
67
61
  {
68
62
  name: "log",
69
63
  severity: "recommended",
package/dist/rules.d.ts CHANGED
@@ -1 +1,3 @@
1
- export declare function installRules(root: string): Promise<string[]>;
1
+ export declare function installRules(root: string, options?: {
2
+ force?: boolean;
3
+ }): Promise<string[]>;
package/dist/rules.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { existsSync, mkdirSync, writeFileSync } from "node:fs";
2
2
  import { join } from "node:path";
3
- export async function installRules(root) {
3
+ export async function installRules(root, options = {}) {
4
4
  const results = [];
5
5
  const rulesDir = join(root, ".claude", "rules");
6
6
  if (!existsSync(rulesDir)) {
@@ -18,6 +18,10 @@ export async function installRules(root) {
18
18
  writeFileSync(path, content);
19
19
  results.push(filename);
20
20
  }
21
+ else if (options.force) {
22
+ writeFileSync(path, content);
23
+ results.push(`${filename} (refreshed)`);
24
+ }
21
25
  else {
22
26
  results.push(`${filename} (exists, skipped)`);
23
27
  }
@@ -4,4 +4,5 @@ interface ScaffoldResult {
4
4
  action: "created" | "exists" | "updated";
5
5
  }
6
6
  export declare function scaffoldDocs(root: string, project: ProjectInfo): Promise<ScaffoldResult[]>;
7
+ export declare function writeVersionStamp(root: string): ScaffoldResult[];
7
8
  export {};
package/dist/scaffold.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { existsSync, mkdirSync, writeFileSync } from "node:fs";
2
2
  import { join } from "node:path";
3
+ import { getVersion } from "./pkg.js";
3
4
  import { generateClaudeMd, generateAgentsMd, generateSolutionGuide, generateChangelog, } from "./templates.js";
4
5
  export async function scaffoldDocs(root, project) {
5
6
  const results = [];
@@ -67,6 +68,31 @@ export async function scaffoldDocs(root, project) {
67
68
  else {
68
69
  results.push({ path: ".semgrep.yml", action: "exists" });
69
70
  }
71
+ // Soloship version stamp + per-clone cache directory
72
+ const stampResults = writeVersionStamp(root);
73
+ results.push(...stampResults);
74
+ return results;
75
+ }
76
+ export function writeVersionStamp(root) {
77
+ const results = [];
78
+ const soloshipDir = join(root, ".soloship");
79
+ if (!existsSync(soloshipDir)) {
80
+ mkdirSync(soloshipDir, { recursive: true });
81
+ }
82
+ const versionPath = join(soloshipDir, "version");
83
+ const exists = existsSync(versionPath);
84
+ writeFileSync(versionPath, getVersion() + "\n");
85
+ results.push({
86
+ path: ".soloship/version",
87
+ action: exists ? "updated" : "created",
88
+ });
89
+ // Local-only cache file is gitignored; the version stamp itself is committed
90
+ // so collaborators see the same pinned version.
91
+ const gitignorePath = join(soloshipDir, ".gitignore");
92
+ if (!existsSync(gitignorePath)) {
93
+ writeFileSync(gitignorePath, ".last-update-check\n");
94
+ results.push({ path: ".soloship/.gitignore", action: "created" });
95
+ }
70
96
  return results;
71
97
  }
72
98
  function generateSemgrepConfig() {
package/dist/templates.js CHANGED
@@ -16,6 +16,10 @@ export function generateClaudeMd(project) {
16
16
  **${project.name}**${project.description ? ` — ${project.description}` : ""}
17
17
 
18
18
  ${stackLine ? `**Stack:** ${stackLine}\n` : ""}
19
+ > **Audience note:** The maintainer of this project may not be a traditional coder — Soloship is built for people who ship software through AI agents. When explaining anything technical (architecture, protocols, tooling, tradeoffs), lead with a plain-English analogy before introducing jargon. Define a technical term once with its meaning, then use it freely. Default to recommendations with tradeoffs, not term-paper breakdowns.
20
+ >
21
+ > If the maintainer signals they want the technical version ("go deeper," "show me the code"), switch registers. Otherwise, keep it concrete.
22
+
19
23
  ## Related Documentation
20
24
 
21
25
  | Document | Location | Purpose |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "soloship",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "Systematic programming methodology for AI-assisted development",
5
5
  "type": "module",
6
6
  "bin": {
@@ -10,7 +10,8 @@
10
10
  "build": "tsc",
11
11
  "dev": "tsc --watch",
12
12
  "start": "node dist/cli.js",
13
- "prepare": "tsc"
13
+ "prepare": "tsc",
14
+ "prepublishOnly": "node scripts/check-version.js"
14
15
  },
15
16
  "keywords": [
16
17
  "claude-code",