gstack

Claude Code を「汎用アシスタント」から「必要に応じて呼べる専門家チーム」に変える 8 つのワークフロースキル。

1 — 概要

gstack は Claude Code 向けの意見表明型ワークフロースキル集。プラン検証・コードレビュー・ワンコマンドリリース・ブラウザ自動化・QA テスト・エンジニアリング振り返りを、スラッシュコマンドで切り替えられる。作成者は Y Combinator の Garry Tan。

8スキル
/browse永続ブラウザ
Bunサーバー
Conductor並列セッション

「計画はレビューではない。レビューはリリースではない」という前提で、認知モードを明示的に切り替える設計。一つの曖昧なモードではなく、ファウンダー視点・エンジニアリング厳密性・偏執的レビュー・リリース実行を用途に応じて選択する。

2 — スキル一覧
スキルモード役割
/plan-ceo-reviewFounder / CEO問題を捉え直し、リクエストの奥にある「10 スター製品」を探す。
/plan-eng-reviewEng manager / tech leadアーキテクチャ・データフロー・図・エッジケース・テストを固める。
/reviewParanoid staff engineerCI は通るが本番で爆発するバグを探す。Greptile レビューコメントのトリアージ。
/shipRelease engineermain 同期・テスト実行・Greptile 解消・push・PR オープン。ビルド内容の決定はしない。
/browseQA engineerエージェントに「目」を与える。ログイン・クリック・スクリーンショット・破綻検知。約 60 秒で QA パス。
/qaQA leaddiff 解析・影響ページの特定・テスト。フル探索・クイックスモーク・リグレッションモード。
/setup-browser-cookiesSession manager実ブラウザ(Comet, Chrome, Arc, Brave, Edge)の Cookie をヘッドレスセッションにインポート。
/retroEngineering managerチームを意識した振り返り。深掘り+貢献者ごとの称賛と成長機会。
3 — アーキテクチャ

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 で対象を指定する。

4 — インストール

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 済み。

5 — Cursor で利用する

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 の nameplan-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 を実行する形になる。
作者: Garry Tan(Y Combinator President & CEO)。「計画はレビューではない。レビューはリリースではない。ファウンダーのセンスはエンジニアリングの厳密さではない」という前提で、モードを明示的に切り替える OS として設計されている。