Skip to content

Commit d7b7368

Browse files
Ship 1.3.0
Both manifests said 1.2.0 while main sat 22 commits ahead, so anyone installing from the marketplace got a version string that did not describe what they received. The release is the pre-launch audit: the installer now writes where Claude Code actually reads, bash users get the environment, /bootstrap works off this machine, uninstall reverses what it installed, the licensing describes the four origins it actually has, and CI runs on Linux, macOS, Windows and Alpine instead of Ubuntu twice.
1 parent 568321f commit d7b7368

3 files changed

Lines changed: 50 additions & 2 deletions

File tree

.claude-plugin/marketplace.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
"plugins": [
1111
{
1212
"name": "vstack",
13-
"version": "1.2.0",
13+
"version": "1.3.0",
1414
"source": "./claude",
1515
"description": "26 skills that fire without a slash command, 8 agents, 14 commands, and the session hook that routes situations to skills. Most skills are ported from pstack and Superpowers — see claude/skills/ATTRIBUTION.md for per-skill source and license.",
1616
"category": "workflow"

CHANGELOG.md

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,54 @@ Versions follow [semver](https://semver.org). The version lives in two manifests
66

77
## Unreleased
88

9+
## 1.3.0 — 2026-08-20
10+
11+
A pre-launch audit against two claims: that the repo and an installed machine agree both
12+
ways, and that a stranger with none of this machine's context can install any lane and get a
13+
working setup. The first largely held. The second did not, and most of this release is what
14+
that turned up.
15+
16+
**Installs where Claude Code actually looks.** `install.sh` hardcoded `~/.claude`, but Claude
17+
Code reads `$CLAUDE_CONFIG_DIR` when it is set. Anyone with it pointed elsewhere — containers,
18+
VMs, separate profiles — got all 26 skills and every hook written into a directory Claude Code
19+
never opens, with hook paths baked to match, and a success message. `install.sh`, `uninstall.sh`
20+
and `doctor` now resolve it, and `.claude.json` follows it.
21+
22+
**bash users get the environment.** The shell lane only ever wrote `.zshrc` and `.zshenv`, so a
23+
default Debian, Ubuntu or Alpine box — every cloud VM and nearly every container — installed
24+
cleanly and then ran without the 1h prompt cache, tool concurrency, streaming or task support.
25+
The `claude` wrapper is zsh and cannot travel; the environment can, and now does, and the
26+
installer says which half you are getting.
27+
28+
**`/bootstrap` worked on exactly one machine.** It called a script that is not in this repo and
29+
that no lane installs; it survived locally as a pre-vstack leftover. It now uses `overlay.sh`,
30+
and check 20 fails on any `~/.claude` or `~/.config/agents` path named in prose that no lane
31+
creates.
32+
33+
**`uninstall.sh` reverses everything it installed**, not just skills, and keeps any file you
34+
have edited since — naming what it kept rather than deleting quietly.
35+
36+
**The licensing was wrong.** `LICENSE` said every skill came from pstack; 8 of 26 do not. The
37+
Apache 2.0 text for `impeccable` and `agent-browser` is vendored with a `NOTICE`, and
38+
`ATTRIBUTION.md` now installs alongside `LICENSE.pstack`.
39+
40+
**CI stopped lying twice.** It had never validated the plugin manifests: the npm shim's native
41+
binary never downloaded, every `claude plugin validate` errored, and check 19 parsed output for
42+
a bullet character a non-TTY never prints, so it read the error as no findings. And it had never
43+
run on macOS at all. It now runs on Linux, macOS, Windows (Git Bash) and Alpine, all gating.
44+
45+
**`tests/install-matrix.sh`** installs into throwaway HOMEs and asserts the resulting tree
46+
across eleven environments, including an install over a home that already holds someone else's
47+
skills, settings and MCP servers, and the curl and marketplace lanes against the published repo.
48+
49+
**`doctor --drift`** reads `settings.json` keys back and reports files under the config dir the
50+
repo does not ship, separating "the repo dropped this and the delete never reached you" from
51+
"you wrote this" using git history.
52+
53+
Also: personal residue removed from a README-linked doc, `component-registry` added to the
54+
README roster it was missing from, and several doc counts corrected that had evaded the count
55+
check by being spelled out as words.
56+
957
- Native OS-level Bash sandboxing was evaluated end to end and rejected on live evidence:
1058
its write boundary is the session workspace, and this setup's daily pattern is cross-repo
1159
writes from Conductor workspaces (editing vstack from any workspace, `install.sh` from

claude/.claude-plugin/plugin.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "vstack",
3-
"version": "1.2.0",
3+
"version": "1.3.0",
44
"description": "Skills that fire on the situation instead of a slash command, plus the subagents, commands, and session hook that make them fire. Verification gates, parallel fan-out, code review, and writing discipline.",
55
"author": {
66
"name": "Vedant Kumar"

0 commit comments

Comments
 (0)