Skip to content

vstack v2: distillation (12 skills, no remote telemetry, no PR ceremony)#1

Merged
vedthebear merged 7 commits into
mainfrom
v2-distill
May 8, 2026
Merged

vstack v2: distillation (12 skills, no remote telemetry, no PR ceremony)#1
vedthebear merged 7 commits into
mainfrom
v2-distill

Conversation

@vedthebear
Copy link
Copy Markdown
Owner

@vedthebear vedthebear commented May 8, 2026

Summary

vstack v2 collapses the toolkit from 28 skills across three tiers to a single tier of 12. Drops every piece of remote infrastructure (telemetry sync, update checker, Supabase functions). Strips YC / recruitment / marketing prose from every surface. The browser runtime is unchanged.

Net: +3,293 / −32,570 across 106 files. Seven bisectable commits, three milestone tags.

Surface (12 skills)

Skill Status
/browse unchanged
/office-hours YC plea + Founder Signal Synthesis removed; Phase 6 collapsed to a one-paragraph handoff
/sketch new — McConnell PPP-level pseudocode, saves to ~/.vstack/projects/<slug>/sketches/
/investigate unchanged
/review unchanged
/qa unchanged
/design-audit new — drives /browse to capture configured flows × viewports, audits across 6 lenses (hierarchy, AI-template visual slop, interaction clarity, spacing, typography, visual a11y)
/quiz new — five questions to surface gaps in your mental model of the codebase
/simplify new — sweeping audit for yuck and dead code; removes only with proof, one bisectable commit at a time
/ship rewritten — direct push to main, no PR. 648→252 lines, allowed-tools 8→4
/connect-chrome unchanged
/retro unchanged

What's gone

  • 20 skills hard-deleted: /cso, /land-and-deploy, /canary, /benchmark, /codex, /careful, /freeze, /guard, /unfreeze, /setup-browser-cookies, /setup-deploy, /vstack-upgrade, /design-consultation, /design-review, /plan-design-review, /autoplan, /qa-only, /plan-ceo-review, /plan-eng-review, /document-release.
  • Remote telemetry plumbing: bin/vstack-update-check, vstack-telemetry-sync, vstack-telemetry-log, vstack-analytics, vstack-community-dashboard, the entire supabase/ directory.
  • Auto-update checking. v2 updates via git pull on your terms.
  • The first-run telemetry consent prompt and the telemetry: <tier> config key.
  • All YC / recruitment / marketing prose: "We're hiring" block, ycombinator.com/apply links, the three-tier "Garry's Personal Plea" block in /office-hours, the Founder Signal Synthesis phase, the YC-partner energy framing in the skill preamble Voice section, garryslist.org link in the Lake intro.

Phase structure (tags)

  • v2-subtract (commits 1–3): cut surface, remove plumbing, scrub voice.
  • v2-add (commits 4–6): four new skills + ship rewrite.
  • v2-ship (commit 7): doc pass, CHANGELOG, v0.13.0.0.

What still works

  • bun run gen:skill-docs: clean regen for all 12 skills.
  • bun run test:core: 418 pass, 0 fail. Down from ~741 — every E2E test that depended on a deleted skill was removed; the remaining suite is a faithful regression guard for the v2 surface.
  • config/skill-surface.sh: single-tier VSTACK_CORE_SKILLS array; transition/legacy arrays kept empty for setup-script compatibility.
  • setup script: syntax-check passes; --legacy flag is now a no-op.
  • The local invocation log at ~/.vstack/analytics/skill-usage.jsonl (consumed by /retro) is now written inline by every skill's preamble — no binary needed.

Test plan

  • Read the diff (especially scripts/resolvers/preamble.ts, the new simplify/, sketch/, design-audit/, quiz/ SKILL.md.tmpl files, and the rewritten ship/SKILL.md.tmpl).
  • Run bun run test:core locally and confirm 418/418 green.
  • Fresh-install verify: unlink ~/.claude/skills/vstack && rm -rf ~/.claude/skills/vstack && git clone --branch v2-distill https://github.com/vedthebear/vstack ~/.claude/skills/vstack && cd ~/.claude/skills/vstack && ./setup. Confirm install completes silently, no telemetry prompt, no update-check noise, all 12 skills install.
  • Light dogfood — run /sketch, /simplify --dry-run-style scope=branch diff, /quiz, and /design-audit against a real project for an evening or two.

🤖 Generated with Claude Code

vedthebear added 7 commits May 8, 2026 00:49
Deletes 20 skill directories per PLAN.md: cso, land-and-deploy, canary,
benchmark, codex, careful, freeze, guard, unfreeze, setup-browser-cookies,
setup-deploy, vstack-upgrade, design-consultation, design-review,
plan-design-review, autoplan, qa-only, plan-ceo-review, plan-eng-review,
document-release.

config/skill-surface.sh collapses to a single VSTACK_CORE_SKILLS list (8
surviving skills); transition and legacy arrays kept empty for setup-script
compatibility. AGENTS.md and CLAUDE.md prune the three-tier framing. Root
SKILL.md.tmpl proactive-suggestion list trimmed to surviving skills.

Removes dead E2E test files (cso, deploy, plan, design) and the
hook-scripts.test.ts file (only tested deleted bin scripts). Trims dead
references from gen-skill-docs.test.ts, skill-validation.test.ts,
analytics.test.ts, review-log.test.ts; updates skill-surface.test.ts and
setup-v2-surface.test.ts for the new single-tier shape.

24,264 lines removed. test:core: 462 pass, 0 fail.
The skill preamble previously did three things v2 doesn't want: poll
vstack-update-check, prompt the user to opt into remote telemetry, and
shell out to vstack-telemetry-log for remote sync. All three are gone.

What stays: the local invocation log at ~/.vstack/analytics/skill-usage.jsonl,
which /retro reads. Both the start-of-skill and end-of-skill writes now
inline an echo to that JSONL — no binary needed.

Removes binaries: vstack-update-check, vstack-telemetry-sync,
vstack-telemetry-log, vstack-analytics, vstack-community-dashboard.
Removes the entire supabase/ directory (telemetry-ingest, update-check,
community-pulse functions plus the two RLS migrations). Removes
test/telemetry.test.ts and test/audit-compliance.test.ts (both tested the
removed plumbing) and browse/test/gstack-update-check.test.ts.

scripts/resolvers/preamble.ts: drops generateUpgradeCheck + the inline
update-check call, drops generateTelemetryPrompt + the .telemetry-prompted
flag, simplifies the Telemetry epilogue to a "Skill log (run last)" block,
deletes the Plan Status Footer (referenced cut review skills).

test/gen-skill-docs.test.ts: replaces the telemetry describe block with a
"skill log" block that asserts the new shape and guards against the
removed binaries reappearing. test:core: 460 pass, 0 fail.
README rewrites to a one-paragraph "what this is" plus install instructions
pointing at github.com/vedthebear/vstack. Drops the "We're hiring" block,
parallel-sprints prose, and the v1 surface tables.

ETHOS.md keeps Boil the Lake and Search Before Building intact, drops the
"10K+ LOC/day" framing and the garryslist.org link in the Lake intro.

office-hours/SKILL.md.tmpl: deletes the entire "Beat 3: Garry's Personal
Plea" block (top/middle/base-tier YC apply CTAs and the Founder Signal
Synthesis phase that fed into it). Phase 6 collapses to a one-paragraph
handoff plus next-skill recs (/sketch, /investigate, /review). "YC office
hours partner" becomes "office hours partner"; "YC Product Diagnostic"
becomes "Product Diagnostic".

scripts/resolvers/preamble.ts Voice block strips the Garry Tan attribution
and the YC-partner energy framing, keeps the concrete rules.

connect-chrome/SKILL.md.tmpl: example URL no longer points at HN.
retro/SKILL.md.tmpl: example author renamed.

test/skill-validation.test.ts inverts the recruitment-voice assertions —
the suite now guards against Garry Tan / YC apply / Founder Signal
Synthesis returning. test:core: 455 pass, 0 fail.
/simplify is a sweeping audit for accidental complexity. It walks a chosen
scope (whole repo, branch diff, or path), categorizes findings as yuck
(bad names, redundant functions, unused imports, magic numbers,
inconsistent patterns) or dead code (unreachable branches, unreferenced
exports, speculative generality, abandoned scaffolding), writes the plan
to /tmp, asks for approval, then applies removals one logical commit at a
time and re-runs the test suite after each. Code is removed only with
proof — language tooling, not a single grep pass. Renames separate from
removals; reverts a commit if its tests break.

/sketch translates a feature description (free-form, an /office-hours
design doc, or interactive input) into McConnell's PPP-level pseudocode:
problem-domain language, one concept per statement, refined until the
next decomposition would be code. Writes to
~/.vstack/projects/<slug>/sketches/<name>.md (per-project layout, matches
existing review-log dirs). Critique loop with the user before any real
code is written.

Wires both into config/skill-surface.sh (12 skills total now: 10 with
existing 8 + 2 new) and the root SKILL.md proactive list. test:core: 455
pass, 0 fail.
/design-audit reads design_audit_urls and design_audit_viewports from
CLAUDE.md (asks once and persists if missing), drives /browse to capture
each flow × viewport, then audits as a senior product designer across six
lenses: hierarchy, AI-template visual slop (gradient hero, 3-col feature
grids, uniform radius, glassmorphism), interaction clarity, spacing,
typography, and visual a11y. Findings are ranked by impact and written
to /tmp. Optional second pass applies high-impact fixes one atomic
commit at a time with before/after screenshots.

/quiz picks five high-leverage concepts from the codebase (data flow,
key invariants, subsystem ownership, lifecycle, cross-cutting concerns,
sharp edges) and asks them one at a time. Three response shapes per
answer: acknowledge, drill into hand-waving with one follow-up, or give
the answer with a file:line reference. Stateless. Five is the cap. Tone
is friendly senior code-review, not interrogation.

Wires both into config/skill-surface.sh (12 skills total — the v2
target) and the root SKILL.md proactive list. test:core: 455 pass.
The v1 ship was 1900 lines of ceremony — coverage gates with configurable
thresholds, plan completion audit, plan verification exec, test failure
ownership triage, review readiness dashboard, greptile pre-landing checks,
TODOS-format writeback, ADVERSARIAL_STEP, DESIGN_REVIEW_LITE, GitHub PR
creation, GitLab MR creation, ship metrics logging. v2 ship is six steps:

  Step 0  Detect base + current branch (abort on detached HEAD)
  Step 1  Run the test command from CLAUDE.md (ask once + persist if missing)
  Step 2  git status --short, flag suspicious untracked files
  Step 3  Fast-forward against origin/<base>; rebase if behind
  Step 4  git diff review, generate commit message, AskUserQuestion to edit
  Step 5  Push directly to base; from a feature branch, ff-merge then push
  Step 6  Print SHA + summary

No PR. No CHANGELOG/VERSION bump. No coverage gate. No third-party review.
No test bootstrap. No --no-verify. Stage by name. ship/SKILL.md.tmpl drops
from 648 to 252 lines; allowed-tools shrinks from 8 to 4.

test/gen-skill-docs.test.ts and test/skill-validation.test.ts: removes
v1-ceremony describe blocks (Coverage gate in ship, Ship metrics logging,
TEST_FAILURE_TRIAGE resolver, REVIEW_DASHBOARD resolver, Step 3.4 test
coverage audit, Test failure triage in ship, TEST_BOOTSTRAP integration)
and narrows shared TEST_COVERAGE_AUDIT / Greptile / GitLab tests to
review-only. Adds a ship-v2-structure block: asserts direct-push voice,
no PR commands, no v1 ceremony phrases, minimal allowed-tools list.
test:core: 418 pass, 0 fail.
CHANGELOG: new entry for v0.13.0.0 covering the full distillation —
the 12-skill surface (4 new + ship rewritten + 7 carried forward),
the 20 hard-deleted skills, the gutted remote-telemetry plumbing
(Supabase, update checker, telemetry sync), the YC voice scrub, the
collapsed single-tier skill surface, the test-suite changes for
contributors.

VERSION bumps to 0.13.0.0; package.json's version + description follow.
Description rewrites to "vstack — a small personal toolkit for AI
coding with Claude Code" — drops the "Ved's Stack ... entire AI
engineering workflow" framing.

Deletes docs/VSTACKV2.md and docs/skills.md — both described the v1
surface across three tiers (core/transition/legacy). The README now
covers what they did. Each skill's own SKILL.md is the deep-dive.

ARCHITECTURE.md: drops "Update check — calls vstack-update-check"
from the preamble bullet list. The four remaining items are session
tracking, local invocation log, AskUserQuestion format, and Search
Before Building.

BROWSER.md: /design-review reference becomes /design-audit;
/setup-browser-cookies block in the sidebar agent section becomes a
"log in manually in headed mode" instruction.

CONTRIBUTING.md: drops the "/codex skill | Included | Excluded"
table row.

TODOS.md: replaces the v1 punch list (691 lines, much of it referencing
deleted skills) with a clean v2 starter — format note plus an instruction
to keep the list short.

test:core: 418 pass.
@vedthebear vedthebear merged commit 1b0ab4b into main May 8, 2026
6 of 7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant