Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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
Expand Down
9 changes: 6 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand Down Expand Up @@ -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?

Expand Down Expand Up @@ -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
Expand Down
6 changes: 6 additions & 0 deletions TODOS.md
Original file line number Diff line number Diff line change
Expand Up @@ -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())
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.16.2.0
0.16.2.2
9 changes: 9 additions & 0 deletions browse/scripts/build-node-server.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down