gstack
Claude Code を「汎用アシスタント」から「必要に応じて呼べる専門家チーム」に変える 8 つのワークフロースキル。
gstack は Claude Code 向けの意見表明型ワークフロースキル集。プラン検証・コードレビュー・ワンコマンドリリース・ブラウザ自動化・QA テスト・エンジニアリング振り返りを、スラッシュコマンドで切り替えられる。作成者は Y Combinator の Garry Tan。
「計画はレビューではない。レビューはリリースではない」という前提で、認知モードを明示的に切り替える設計。一つの曖昧なモードではなく、ファウンダー視点・エンジニアリング厳密性・偏執的レビュー・リリース実行を用途に応じて選択する。
| スキル | モード | 役割 |
|---|---|---|
/plan-ceo-review | Founder / CEO | 問題を捉え直し、リクエストの奥にある「10 スター製品」を探す。 |
/plan-eng-review | Eng manager / tech lead | アーキテクチャ・データフロー・図・エッジケース・テストを固める。 |
/review | Paranoid staff engineer | CI は通るが本番で爆発するバグを探す。Greptile レビューコメントのトリアージ。 |
/ship | Release engineer | main 同期・テスト実行・Greptile 解消・push・PR オープン。ビルド内容の決定はしない。 |
/browse | QA engineer | エージェントに「目」を与える。ログイン・クリック・スクリーンショット・破綻検知。約 60 秒で QA パス。 |
/qa | QA lead | diff 解析・影響ページの特定・テスト。フル探索・クイックスモーク・リグレッションモード。 |
/setup-browser-cookies | Session manager | 実ブラウザ(Comet, Chrome, Arc, Brave, Edge)の Cookie をヘッドレスセッションにインポート。 |
/retro | Engineering manager | チームを意識した振り返り。深掘り+貢献者ごとの称賛と成長機会。 |
gstack の核は 永続ブラウザ と Markdown スキル。ブラウザ連携が技術的に重い部分で、サブ秒レイテンシと永続状態を実現するため、Bun サーバーが localhost HTTP で CLI と通信し、長時間動作する Chromium デーモンと CDP でやり取りする。
CLI(コンパイル済みバイナリ): 状態ファイル読み取り、localhost のサーバーへ POST。サーバー(Bun.serve): コマンド振り分け・Chromium との対話・プレーンテキスト返却。Chromium(ヘッドレス): 永続タブ・Cookie 維持・30 分アイドルで終了。初回起動は約 3 秒、以降のコマンドは約 100–200 ms。
状態は .gstack/browse.json(PID・ポート・トークン・開始時刻・バイナリバージョン)に書き出され、CLI はここからサーバーを特定。Bearer トークンで認証し、localhost のみバインド。Cookie は Keychain 許可のうえでメモリ内復号、ディスクには平文で書かない。
エージェントが CSS セレクタや XPath を書かずに要素を指定するため、Ref(@e1, @e2, @c1)を利用する。snapshot で accessibility tree を取得し、要素に Ref を付与。click / type などのコマンドは Ref で対象を指定する。
Claude Code、Git、Bun v1.0+ が必要。/browse はネイティブバイナリをビルドする(macOS / Linux, x64 および arm64 対応)。
マシンにインストール
git clone https://github.com/garrytan/gstack.git ~/.claude/skills/gstack
cd ~/.claude/skills/gstack && ./setup
続いて CLAUDE.md に gstack セクションを追加し、Web 閲覧は gstack の /browse を使い mcp__claude-in-chrome__* は使わない旨、および利用可能なスキル一覧を記載する。
リポジトリに追加(チーム共有)
cp -Rf ~/.claude/skills/gstack .claude/skills/gstack
rm -rf .claude/skills/gstack/.git
cd .claude/skills/gstack && ./setup
実ファイルをコミットする(サブモジュールではない)ため、git clone 後は各メンバーが cd .claude/skills/gstack && ./setup を一度実行すればよい。バイナリと node_modules は gitignore 済み。
gstack は Cursor でも利用可能。スキルは Markdown + シェル実行のため、Claude Code 用のパスを Cursor 用に読み替えればよい。
Cursor ではスキルを .cursor/skills/ に置く。gstack をクローンしたあと、SKILL.md 内の ~/.claude/skills/gstack および .claude/skills/gstack を ~/.cursor/skills/gstack またはリポジトリの .cursor/skills/gstack に合わせて置き換える。clone と ./setup のあとにパス置換スクリプトを実行する(下記「Cursor 用パス置換」参照)。
マシンにインストール(Cursor のみ)
git clone https://github.com/garrytan/gstack.git ~/.cursor/skills/gstack
cd ~/.cursor/skills/gstack && ./setup
Cursor 用パス置換
setup のあと、SKILL.md や bin スクリプト内のパスを Cursor 用に置き換える。以下を ~/.cursor/skills/gstack(またはリポジトリの .cursor/skills/gstack)で実行する。
# 置換対象のファイルを検索し、.claude → .cursor に一括置換(macOS / Linux 共通)
find . -type f ! -path "./.git/*" -exec grep -l 'claude/skills/gstack' {} \; 2>/dev/null | while read -r f; do
perl -i -pe 's|\$HOME/\.claude/skills/gstack|\$HOME/.cursor/skills/gstack|g;
s|~/.claude/skills/gstack|~/.cursor/skills/gstack|g;
s|\.claude/skills/gstack|.cursor/skills/gstack|g' "$f"
done
これで Preamble の gstack-update-check / gstack-config や、/browse の $B 解決が ~/.cursor/skills/gstack を参照する。gstack を上書き更新(git pull など)した場合は、再度この置換を実行する。
パス置換の確認
置換後に、まだ .claude/skills/gstack を参照しているファイルがないか確認する。同じディレクトリで実行する。
# 置換漏れがあれば一覧表示し、exit 1 で終了
left=$(find . -type f ! -path "./.git/*" -exec grep -l 'claude/skills/gstack' {} \; 2>/dev/null)
if [ -n "$left" ]; then
echo "まだ .claude/skills/gstack を参照しているファイル:"
echo "$left"
exit 1
else
echo "OK: すべてのファイルが .cursor 用パスに置換されています"
fi
リポジトリに追加(チーム共有・Cursor)
cp -Rf ~/.cursor/skills/gstack .cursor/skills/gstack
rm -rf .cursor/skills/gstack/.git
cd .cursor/skills/gstack && ./setup
続いて上記の「Cursor 用パス置換」を .cursor/skills/gstack で実行し、「パス置換の確認」で置換漏れがないことを確認する。問題なければ置換後のファイルをコミットすればよい。gstack 本体を更新したときは、再度 clone または pull のうえ ./setup と置換・確認をやり直す。
- スラッシュコマンド: Cursor のエージェントチャットでは
/のあとにスキル名を入力するとスラッシュコマンドのように起動できる(例:/plan-ceo-review)。gstack の各ワークフローを Cursor 用スキルとして置き、フォルダ名・frontmatter のnameをplan-ceo-reviewなどに揃えれば、Claude Code と同様に/plan-ceo-reviewで呼び出せる。明示起動のみにしたい場合はスキルにdisable-model-invocation: trueを指定する。 - AskUserQuestion: gstack のスキルは「ユーザーに質問する」ために AskUserQuestion を指定している。Cursor ではエージェントがチャットで質問し、ユーザーが返答する形で同等のやりとりができる。
- ブラウザ:
/browse相当は gstack のバイナリ(Bun サーバー + Chromium)を Bash から$Bで叩く。Cursor には cursor-ide-browser MCP もあるが、gstack の Ref システム・サブ秒レイテンシ・永続セッションは gstack バイナリ利用時のみ。Cursor で gstack をそのまま使う場合は、スキルに従ってターミナルからbrowseを実行する形になる。
- GitHub: garrytan/gstack — 本体リポジトリ
- Claude Code ドキュメント — Anthropic 公式
- Conductor — 複数 Claude Code セッションの並列実行(10 セッション同時など)