diff --git a/CHANGELOG.md b/CHANGELOG.md index eed40968c9..b8ca47718f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,19 @@ # Changelog +## [0.16.2.2] - 2026-04-10 + +### Added +- **`/health` and `/checkpoint` are now in the README.** Both skills have been working for a while, but new users had no way to discover them — they were missing from the install command skill list, the CLAUDE.md example skill list, and the big skill table. Now all three places mention them. `/health` is "Quality Engineer": it wraps your project's type checker, linter, test runner, dead code detector, and shell linter into one weighted 0-10 composite score and tracks trends over time. Say "how healthy is the codebase" and you get a number plus a per-tool breakdown. `/checkpoint` is "Session Bookmark": it saves and resumes working state mid-sprint by capturing git state, decisions made, and what's left to do. Say "where was I" or "pick up where I left off" and it reads the latest checkpoint — even across Conductor workspace handoffs or after a long break. + +## [0.16.2.1] - 2026-04-10 + +### Fixed +- **`./setup` no longer prints a Node server bundle build error.** When `/pair-agent` landed, it added `@ngrok/ngrok` for remote tunneling. Ngrok ships prebuilt native binaries (darwin-universal, darwin-arm64, win32-x64). During the Windows Node.js fallback bundle step, bun tried to inline all of those `.node` binaries as separate asset files and failed with "cannot write multiple output files without an output directory." The rest of setup still worked, but every install printed the ugly error. Now `@ngrok/ngrok` is marked as external, same way we already handle playwright. Windows Node users who want `/pair-agent` tunneling install `@ngrok/ngrok` separately, same as playwright. +- **README skill lists are consistent and complete.** The install command block and the CLAUDE.md example block now list the same 34 skills in the same order. Added `/pair-agent` to the install block (was missing), added `/plan-devex-review` and `/devex-review` to the CLAUDE.md example block (were missing), and swapped the legacy `/connect-chrome` reference for the canonical `/open-gstack-browser`. If you paste either block into a new project's CLAUDE.md, you now get every skill that `./setup` actually installs. + +### For contributors +- Captured a follow-up TODO: `/checkpoint` and `/health` exist on disk and get registered by `./setup`, but are still missing from the README in three places (install block, CLAUDE.md example, skill table). Left for a narrow-scope follow-up PR since the fix requires new table rows, not just list entries. + ## [0.16.2.0] - 2026-04-09 ### Added diff --git a/README.md b/README.md index 71c63cf5cf..b77b7cbd3b 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ Fork it. Improve it. Make it yours. And if you want to hate on free open source Open Claude Code and paste this. Claude does the rest. -> Install gstack: run **`git clone --single-branch --depth 1 https://github.com/garrytan/gstack.git ~/.claude/skills/gstack && cd ~/.claude/skills/gstack && ./setup`** then add a "gstack" section to CLAUDE.md that says to use the /browse skill from gstack for all web browsing, never use mcp\_\_claude-in-chrome\_\_\* tools, and lists the available skills: /office-hours, /plan-ceo-review, /plan-eng-review, /plan-design-review, /design-consultation, /design-shotgun, /design-html, /review, /ship, /land-and-deploy, /canary, /benchmark, /browse, /connect-chrome, /qa, /qa-only, /design-review, /setup-browser-cookies, /setup-deploy, /retro, /investigate, /document-release, /codex, /cso, /autoplan, /plan-devex-review, /devex-review, /careful, /freeze, /guard, /unfreeze, /gstack-upgrade, /learn. Then ask the user if they also want to add gstack to the current project so teammates get it. +> Install gstack: run **`git clone --single-branch --depth 1 https://github.com/garrytan/gstack.git ~/.claude/skills/gstack && cd ~/.claude/skills/gstack && ./setup`** then add a "gstack" section to CLAUDE.md that says to use the /browse skill from gstack for all web browsing, never use mcp\_\_claude-in-chrome\_\_\* tools, and lists the available skills: /office-hours, /plan-ceo-review, /plan-eng-review, /plan-design-review, /design-consultation, /design-shotgun, /design-html, /review, /ship, /land-and-deploy, /canary, /benchmark, /health, /browse, /open-gstack-browser, /qa, /qa-only, /design-review, /setup-browser-cookies, /setup-deploy, /retro, /investigate, /document-release, /codex, /cso, /autoplan, /plan-devex-review, /devex-review, /pair-agent, /careful, /freeze, /guard, /unfreeze, /gstack-upgrade, /learn, /checkpoint. Then ask the user if they also want to add gstack to the current project so teammates get it. ### Step 2: Team mode — auto-update for shared repos (recommended) @@ -205,12 +205,14 @@ Each skill feeds into the next. `/office-hours` writes a design doc that `/plan- | `/land-and-deploy` | **Release Engineer** | Merge the PR, wait for CI and deploy, verify production health. One command from "approved" to "verified in production." | | `/canary` | **SRE** | Post-deploy monitoring loop. Watches for console errors, performance regressions, and page failures. | | `/benchmark` | **Performance Engineer** | Baseline page load times, Core Web Vitals, and resource sizes. Compare before/after on every PR. | +| `/health` | **Quality Engineer** | Wraps your project's type checker, linter, test runner, dead code detector, and shell linter into one weighted 0-10 composite score. Tracks trends over time so you see whether the codebase is improving or rotting. Say "how healthy is the codebase" and you get one number plus a per-tool breakdown. | | `/document-release` | **Technical Writer** | Update all project docs to match what you just shipped. Catches stale READMEs automatically. | | `/retro` | **Eng Manager** | Team-aware weekly retro. Per-person breakdowns, shipping streaks, test health trends, growth opportunities. `/retro global` runs across all your projects and AI tools (Claude Code, Codex, Gemini). | | `/browse` | **QA Engineer** | Give the agent eyes. Real Chromium browser, real clicks, real screenshots. ~100ms per command. `/open-gstack-browser` launches GStack Browser with sidebar, anti-bot stealth, and auto model routing. | | `/setup-browser-cookies` | **Session Manager** | Import cookies from your real browser (Chrome, Arc, Brave, Edge) into the headless session. Test authenticated pages. | | `/autoplan` | **Review Pipeline** | One command, fully reviewed plan. Runs CEO → design → eng review automatically with encoded decision principles. Surfaces only taste decisions for your approval. | | `/learn` | **Memory** | Manage what gstack learned across sessions. Review, search, prune, and export project-specific patterns, pitfalls, and preferences. Learnings compound across sessions so gstack gets smarter on your codebase over time. | +| `/checkpoint` | **Session Bookmark** | Save and resume working state mid-sprint. Captures git state, decisions made, and what's left to do so you can pick up exactly where you left off, even across Conductor workspace handoffs or after a long break. Say "where was I" or "pick up where I left off" and it reads the latest checkpoint. | ### Which review should I use? @@ -395,9 +397,10 @@ Data is stored in [Supabase](https://supabase.com) (open source Firebase alterna Use /browse from gstack for all web browsing. Never use mcp__claude-in-chrome__* tools. Available skills: /office-hours, /plan-ceo-review, /plan-eng-review, /plan-design-review, /design-consultation, /design-shotgun, /design-html, /review, /ship, /land-and-deploy, -/canary, /benchmark, /browse, /open-gstack-browser, /qa, /qa-only, /design-review, +/canary, /benchmark, /health, /browse, /open-gstack-browser, /qa, /qa-only, /design-review, /setup-browser-cookies, /setup-deploy, /retro, /investigate, /document-release, /codex, -/cso, /autoplan, /pair-agent, /careful, /freeze, /guard, /unfreeze, /gstack-upgrade, /learn. +/cso, /autoplan, /plan-devex-review, /devex-review, /pair-agent, /careful, /freeze, +/guard, /unfreeze, /gstack-upgrade, /learn, /checkpoint. ``` ## License diff --git a/TODOS.md b/TODOS.md index 0e3ac93279..cfc69803ac 100644 --- a/TODOS.md +++ b/TODOS.md @@ -824,6 +824,12 @@ Shipped in v0.6.5. TemplateContext in gen-skill-docs.ts bakes skill name into pr ## Completed +### Add /checkpoint and /health to README (v0.16.2.2) +- Added two rows to the big skill table: `/health` as "Quality Engineer" (right after `/benchmark`), `/checkpoint` as "Session Bookmark" (right after `/learn`). +- Updated both skill-list blocks (install command + CLAUDE.md example) to include `/health` and `/checkpoint`. Both blocks now list the same 36 skills in the same order. +- Both skills were already on disk and registered by `./setup` — the gap was purely documentation. New users can now discover them via the README. +**Completed:** v0.16.2.2 + ### CI eval pipeline (v0.9.9.0) - GitHub Actions eval upload on Ubicloud runners ($0.006/run) - Within-file test concurrency (test() → testConcurrentIfSelected()) diff --git a/VERSION b/VERSION index 73c8950921..1d797c1874 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.16.2.0 +0.16.2.2 diff --git a/browse/scripts/build-node-server.sh b/browse/scripts/build-node-server.sh index 539e391c81..104d6a2fed 100755 --- a/browse/scripts/build-node-server.sh +++ b/browse/scripts/build-node-server.sh @@ -14,12 +14,21 @@ DIST_DIR="$GSTACK_DIR/browse/dist" echo "Building Node-compatible server bundle..." # Step 1: Transpile server.ts to a single .mjs bundle (externalize runtime deps) +# +# @ngrok/ngrok must be external: it ships prebuilt native .node binaries +# (darwin-universal, darwin-arm64, win32-x64, etc.) which bun cannot inline +# into a single JS bundle. Without --external, bun tries to emit the native +# binaries as separate asset files and fails with +# "cannot write multiple output files without an output directory". +# Pair-agent users on Windows Node runtime install @ngrok/ngrok separately, +# matching how we already handle playwright and playwright-core. bun build "$SRC_DIR/server.ts" \ --target=node \ --outfile "$DIST_DIR/server-node.mjs" \ --external playwright \ --external playwright-core \ --external diff \ + --external "@ngrok/ngrok" \ --external "bun:sqlite" # Step 2: Post-process