vstack v2: distillation (12 skills, no remote telemetry, no PR ceremony)#1
Merged
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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)
/browse/office-hours/sketch~/.vstack/projects/<slug>/sketches//investigate/review/qa/design-audit/browseto capture configured flows × viewports, audits across 6 lenses (hierarchy, AI-template visual slop, interaction clarity, spacing, typography, visual a11y)/quiz/simplify/ship/connect-chrome/retroWhat's gone
/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.bin/vstack-update-check,vstack-telemetry-sync,vstack-telemetry-log,vstack-analytics,vstack-community-dashboard, the entiresupabase/directory.git pullon your terms.telemetry: <tier>config key.ycombinator.com/applylinks, 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.orglink 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-tierVSTACK_CORE_SKILLSarray; transition/legacy arrays kept empty for setup-script compatibility.setupscript: syntax-check passes;--legacyflag is now a no-op.~/.vstack/analytics/skill-usage.jsonl(consumed by/retro) is now written inline by every skill's preamble — no binary needed.Test plan
scripts/resolvers/preamble.ts, the newsimplify/,sketch/,design-audit/,quiz/SKILL.md.tmpl files, and the rewrittenship/SKILL.md.tmpl).bun run test:corelocally and confirm 418/418 green.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./sketch,/simplify --dry-run-style scope=branch diff,/quiz, and/design-auditagainst a real project for an evening or two.🤖 Generated with Claude Code