gstack’s new Claude Code hooks pick the right skill and check it finished
2 hours ago
gstack adds two opt-in Claude Code hooks: one names the gstack skill your prompt fits, the other blocks once when a skill ends without its required outputs. Also: a slimmer /investigate, a lite skill set for Claude Opus 5.5, one browser tab per parallel agent, phone touch testing in /qa, review-bot triage beyond Greptile, secrets kept out of the lean /autoplan reviewer, and /ship reusing a green CI run. Covers gstack 1.92.78.0 to 1.94.14.0 (64 releases, 2026-11-02 to 2026-11-03), for Claude Code users. Changelog: https://github.com/garrytan/gstack/blob/main/CHANGELOG.md Skill routing and contracts: https://github.com/garrytan/gstack/blob/main/docs/skill-routing-and-contracts.md Pregate and CI carry: https://github.com/garrytan/gstack/blob/main/docs/pregate.md gstack: https://github.com/garrytan/gstack
Ask about this presentation
Chapters
0:00Skill routing
0:12Skill contracts
0:27/investigate
0:39Lite loadout
0:5502 The browser
0:56Tab per agent
1:07Phone QA
1:1803 Reviews
1:20Review bots
1:31PR type
1:45Right diff
1:5804 Security
1:59Lean review secrets
2:13Public PR bodies
2:2505 Shipping
2:27CI carry
2:39Flaky tests
2:52Smaller changes
3:09Where to start
Show transcriptHide transcript
A new gstack hook points Claude Code at the right skill. It scores each prompt against every skill's triggers, with no model call, and names the one that fits. It is off by default.
A second hook runs when Claude Code stops. If a skill ends without the outputs its contract requires, like a test after the last edit, it blocks once. This one is off by default too.
/investigate loses its five-phase procedure, which Opus 5.5 never followed. It keeps its Iron Law, scope lock and debug report, and shrinks by about a third.
Opus 5.5 now gets a lite copy of every skill, minus ten coaching sections. Capy sessions pick it themselves, and Claude Code can opt in at setup. Every other model keeps the full skills.
The browser.
When several agents drive gstack's browser at once, each one now gets its own tab and stays on it. Each tab is separate, while cookies and storage stay shared.
/qa can now make a tab act like an iPhone 15 and send real taps, swipes and pinches. It is Chromium emulating a phone, so Safari still needs a real device.
Reviews.
/review and /ship used to triage only Greptile's comments. Now they triage every review bot you list, so CodeRabbit and Macroscope get the same treatment.
/review now names the kind of pull request first, so a CI or script change gets checks that fit it. It also flags a script that doesn't fit the repo, like a Windows batch file in a bash project.
On a pull request clone, /ship could compare your branch with itself, find zero changes and pass. Now it refuses. A stale local main also stops standing in for the real base.
Security.
On Capy, a feature plan gets one lean reviewer that reads your draft code and sends it to an outside model. That draft now leaves out every env and credentials file, and redacts keys in ordinary files.
On a public repo, /ship used to paste the owner's exact words into the pull request, where GitHub keeps every edit for good. Now it writes one line: approved, with a record id.
Shipping.
When CI already passed on the exact same clean tree, /ship now uses that run instead of running your tests again. The repo has to map its lanes first, and fork runs never count.
A flaky test can now go into quarantine for a week, with an owner. It still runs every time and never counts as a pass. With the owner's grant, named flakes outside your change can clear the pregate.
The new gstack-clean command trims old scratch files and browse logs, and changes nothing until you pass apply. QA in ship and review stops writing reports into your repo. And Codex reviews now print their token usage.
If you use gstack with Claude Code, I would turn on skill routing first. It costs no model call and sends every prompt to the right skill. Every change is in the gstack changelog.
Up next
1:37gstack’s /autoplan now runs a CEO review that asks you nothing
@gstack · 1 day ago
1:59gstack now installs into Gemini CLI, and draws mockups with Gemini
@gstack · 2 days ago
2:43gstack merge trains now land pull requests in any repo
@gstack · 2 days ago
1:37gstack’s /ship stops re-reviewing your whole diff on every pass
@gstack · 1 week ago
1:56gstack now auto-runs only four skills, so it stops colliding with other skill packs
@gstack · 1 week ago
0:55gstack's unattended /ship stops handing the parent agent a stale receipt
@gstack · 1 week ago
1:05gstack's /careful stops asking about words in your commit messages
@gstack · 1 week ago
0:50gstack's /ship and /review now see your Python tests
@gstack · 1 week ago
0:59gstack 1.91.206.0 lets pregate clear CI lanes your machine can run
@gstack · 1 week ago
1:05gstack’s /ship can now re-review only your fixes
@gstack · 1 week ago
0:54gstack now fixes a bug you have already diagnosed without opening /investigate
@gstack · 1 week ago
0:43gstack’s /ship and /plan-eng-review now rank every finding CRITICAL or INFORMATIONAL
@gstack · 1 week ago