prep-major-release
SkillDev toolsPrepare the repo for a major release — review/update README.md so it stays compelling, and review the demo scenarios + screenshot scenes, proposing and applying any new/different/fewer screenshots (the maintainer captures them after).
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the prep-major-release skill
What this skill tells your AI
The instructions your AI receives, as published by brianwestphal/glassbox in .claude/skills/prep-major-release/SKILL.md and read by ahel’s review.
Prepare Glassbox for a major release. A lot has usually changed since the last release, so the public-facing story drifts: the README stops advertising the best features, and the demo screenshots stop matching the UI. This skill brings both back in line.
Two deliverables, in order:
- README.md — reviewed and updated so it stays compelling and advertises the most important and interesting features.
- Demo scenarios + screenshot scenes — reviewed, with any new / different / fewer screenshots proposed and the code changes applied, then handed off to the maintainer to capture. Do not capture screenshots yourself — capturing needs Chromium outside the command sandbox and the maintainer does it (they said so). Your job is to get the scenes ready to capture and tell them exactly what to run.
Step 0 — Orient (what's new since last time)
Before touching the README, build an accurate picture of the current feature set so you advertise what actually ships today, not what shipped a year ago:
- Read
docs/ai/requirements-summary.mdanddocs/ai/code-summary.md— the fastest synthesis of every feature and its status (Shipped / Partial / …). - Skim the requirements index in
CLAUDE.mdand any newer numbered docs indocs/that the README predates. git log --oneline -40(or since the last release tag:git log --oneline $(git describe --tags --abbrev=0 2>/dev/null)..HEAD) to see what landed.- Note features that are shipped but absent or undersold in the README, and
README claims that are stale (removed/renamed/changed). Consider spawning an
Agent(Explore) to diff "features in the docs/code" against "features in the README" if the gap is large.
Step 1 — Review & update README.md
README.md is the front door (also rendered on npm and GitHub). Read it in full,
then revise for:
- Compelling top-of-funnel. The hero tagline + first two paragraphs must make the value obvious in seconds: local, browser-based review of AI-generated code with structured feedback an AI tool can act on. Keep the "you, the diff, and a tight feedback loop" energy — punchy, not corporate.
- Advertise the most important & interesting features, with the strongest
ones highest. As of this writing the standouts worth leading with or featuring:
AI risk / narrative / guided review intelligence; AI-authored review notes
(
.pr-notes/); image & SVG comparison (difference/slice/side-by-side, the A/B single-side focus, doc 28); ground-truth image comparison with perceptual diff; direct path comparison (--diff) andgit difftoolintegration; attachments; themes; the Claude Code MCP channel; desktop app. Re-check this list against Step 0 — features get added; promote new ones, demote anything retired. - Accuracy. Every CLI flag, install step, provider, and capability claim must
match reality (
src/cli.tsfor flags/usage, the requirements docs for behavior). Fix anything stale. Don't invent features. - Screenshots resolve and still represent the feature. Each
<img src="assets/…">must point at a file that exists and shows what the surrounding prose claims. Build the authoritative list of referenced images:grep -oE 'assets/[A-Za-z0-9_.-]+\.(png|svg)' README.md | sort -u. Cross-check againstassets/and against the scene list in Step 2. Note (don't fix yet) any screenshot that should be re-shot because the UI moved — that feeds Step 2. - Structure & links. Headings scan well, the feature table/bullets are
current, internal links (
docs/…, anchors) and the releases/npm links work.
Apply the edits directly to README.md. Keep American-English spelling and the
project's no-emoji rule (see CLAUDE.md) — applies to README prose too.
Step 2 — Review the demo scenarios & screenshot scenes
The README's stills are generated from real app states. The pipeline:
- Demo scenarios —
src/demo.ts(DEMO_SCENARIOS, the--demo:Nlist + per-scenario setup) backed by canned data insrc/demo/fixtures.ts. Doc 12 (docs/12-demo-mode.md) is the spec. - Still capture —
scripts/demo/capture-stills.tsdefines aSCENARIOSarray; each entry boots--demo:N(or--ground-truth …), drives the UI into the showcased state, and writesassets/demo-<slug>.png(+ a standalone.svgunlesspngOnly). Run withnpm run demo:capture-stills(--only <slug1,slug2>to iterate on one). These are the README stills. - Animated hero —
assets/demo.svgis produced separately byscripts/demo/capture-demo.ts(npm run demo:capture). Out of scope unless the hero is clearly stale or thedomotion-svgversion changed (see Step 2b — a domotion bump means the hero must be re-captured too); if so, note it for the maintainer rather than rebuilding it here.
Review the set and decide what should change. Build the three-way map —
README <img> ↔ capture-stills.ts scene slug ↔ --demo:N scenario — and
look for:
- Missing coverage (new screenshot). A marquee feature added since the last
release with no still (e.g. a new comparison mode, a new AI surface). If it
deserves a screenshot, add a
SCENARIOSentry (and, if it needs a UI state the demo data doesn't yet produce, extendDEMO_SCENARIOSinsrc/demo.ts+src/demo/fixtures.tsso a real--demo:Nreaches that state). Then reference the newassets/demo-<slug>.pngfrom the README. - Stale screenshot (different). A scene whose UI moved enough that the still
misrepresents it. Fix the scene's
setup()so it captures the current, best-looking state. Keep captures deterministic and machine-independent (the script already isolatesGLASSBOX_CONFIG_DIRand uses--ai-service-test— preserve that). - Redundant screenshot (fewer). Two stills showing nearly the same thing, or
a feature no longer worth a dedicated image. Drop the weaker one from the README
and remove its
SCENARIOSentry so the set stays tight.
Apply the code changes (README.md, scripts/demo/capture-stills.ts,
src/demo.ts, src/demo/fixtures.ts) and keep docs in sync — if you add/retire a
--demo:N scenario, update docs/12-demo-mode.md and the AI summaries
(docs/ai/*) per CLAUDE.md. Do not run the capture — the maintainer does
that.
Step 2b — Upgrade domotion-svg if out of date (before any capture)
The demos — both the README stills and the animated hero — are generated by
domotion-svg, pinned to an exact
version in devDependencies. A domotion release can fix rendering,
frame-synchronization, or browser-compat bugs, so a major release should ship its
demos built on the latest domotion. Do this before the capture handoff so
the re-capture in Step 3 runs on the new version.
- Check for a newer version. Compare the latest published version against the
pin:
npm view domotion-svg version(latest) vs thedomotion-svgentry inpackage.json→devDependencies(may need to run outside the command sandbox if the registry isn't reachable). If they match, skip this step. - Bump the pin + install. Edit
package.jsonto the new exact version (keep it exact — no^; the exact pin is deliberate, so a domotion default-mode change can't silently alter the output), thennpm installto refreshpackage-lock.json. Confirm withgrep '"version"' node_modules/domotion-svg/package.json. - Update every place that names the pinned version. Find them all with
grep -rn '<old-version>' scripts/demo docs— currently that's the header comment inscripts/demo/capture-demo.ts, the requirements note inscripts/demo/README.md, and the pin note indocs/ai/code-summary.md. - Verify the API the scripts use didn't shift. A minor bump can change the
generation path. Run
npm run typecheck:scripts(the capture scripts must still compile against the new types); the animated-hero capture also asserts an@font-faceis embedded and fails loudly otherwise, so a clean capture in Step 3 is the final proof. Iftypecheck:scriptsfails, adapt the capture scripts to the new API before handing off. - A domotion bump forces a full re-capture. Because every demo frame is
re-rendered by domotion, both the stills and the animated hero must be
re-captured on the new version even if no UI changed — call this out explicitly
in the Step 3 handoff (
npm run demo:capture-stillsandnpm run demo:capture).
Apply the package.json / doc changes here (they're code, not a capture); the
maintainer still runs the actual re-capture in Step 3.
Step 3 — Hand off the capture checklist
Because the maintainer captures the screenshots, end with a clear, runnable handoff:
- What changed and why — the README revisions, any
domotion-svgupgrade (old → new version, from Step 2b), and per scene: added / re-shoot / removed, with the one-line reason. - Exact commands to capture — e.g.
npm run demo:capture-stills -- --only <slug1,slug2>for the changed scenes, ornpm run demo:capture-stillsfor a full refresh; note it MUST run outside the command sandbox (Chromium needs Mach ports/IPC). If the animated hero needs a redo, mentionnpm run demo:captureseparately. If Step 2b bumpeddomotion-svg, a full re-capture of both is required — hand offnpm run demo:capture-stillsandnpm run demo:captureregardless of which scenes changed. - What to verify after capture — the new
assets/demo-*.pngrender correctly and the README references them.
If a decision is genuinely the maintainer's (e.g. "should we drop the narrative
screenshot or keep both?") and you can't resolve it from the code/docs, ask via
the Hot Sheet FEEDBACK NEEDED: mechanism rather than guessing — see the
worklist. Otherwise pick the obvious option, state it, and proceed.
Guardrails
- Don't capture screenshots or run the demo servers — the maintainer does. Your output is committed code + a capture checklist.
- Don't
git push(and don'tgit commitunless asked) — follow the project's git conventions inCLAUDE.md. - Keep docs in sync in the same pass — README claims,
docs/12-demo-mode.md, and the AI summaries must all match what you changed. - American-English spelling, no emoji / decorative glyphs in any prose or UI string you touch.
- Typecheck if you touched TS (
npm run typecheck;npm run lint) so the capture script + demo changes still build before handoff.
Output
A short report: the README changes made; any domotion-svg upgrade (old → new
version, or "already current"); the screenshot-scene decisions (added / re-shot /
removed, each with a reason); the exact capture command(s) for the maintainer to
run; and anything left for them to decide.
Signals
- GitHub stars
- 34
- Forks
- 1
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
prep-major-release- Source
- github.com/brianwestphal/glassbox