2026年4月14日、GitHubが「Stacked PRs」のプライベートプレビューを発表しました。大きなPRを小さな単位に分割し、順序立ててレビュー・マージできる仕組みです。

「コードを書くのはもはやボトルネックではない。レビューこそがボトルネックだ」。GitHub開発チームのSameen Karim氏はそう語ります。AIエージェントがコードを大量生成する時代、レビューの効率化は避けて通れない課題です。

この記事でわかること

  • Stacked PRsの仕組みと使い方
  • 大規模PRが招くレビュー品質低下の実態
  • CLIツール gh-stack の基本操作

大きなPRはなぜ問題なのか

Microsoft Researchが70万件以上のコードレビューを分析した結果、明確な傾向が見えています。

  • 小規模PR : レビュアーがメソッドの7%にコメントする
  • 大規模PR : コメント率は2〜3%に低下する
  • 1,000行超のPR : 放棄率が大幅に上昇する

約400行を超えるとマージ確率が非線形に下がります。人間が一度に把握できるコンテキストには限界があり、PRが大きくなるほどレビューの質は急落します。

開発者は往々にして、レビュー待ちの間に次の機能を実装し続けます。結果として、依存関係のある変更が1つの巨大なPRに積み上がり、レビュアーの負担はさらに増大します。

Stacked PRsとは何か

Stacked PRsは、PRを前のPRの上に積み重ねて「スタック」を構成する機能です。

具体的には、同一リポジトリ内で以下の構造を作ります。

main ← PR#1(データモデル追加) ← PR#2(APIエンドポイント実装) ← PR#3(UI実装)

各PRは独立してレビューできます。ただし、マージは下から順番に行います。PR#1がマージされれば、PR#2のベースが自動的に更新されます。

主な特徴

  • スタックマップUI : PRページ上部にスタック全体が視覚化され、各PRの状態確認と移動が可能
  • 自動リベース : 下層のPRがマージされると、上層のPRが自動でリベースされる
  • ブランチ保護の継承 : マージ要件はスタック最下部のベースブランチ(通常 main)の保護ルールが適用される
  • 3種のマージ方式 : マージコミット、スカッシュマージ、リベースマージに対応

CLIなしでUI上だけでも作成・管理できます。

CLIツール「gh-stack」の使い方

GitHub CLIの拡張として提供される gh-stack を使うと、スタックの管理を効率化できます。

インストール

gh extension install github/gh-stack

基本ワークフロー

1. スタックを開始する

gh stack init

最初のブランチが作成され、チェックアウトされます。

2. コードを書いてコミットする

git add .
git commit -m "データモデルを追加"

3. 次のレイヤーを追加する

gh stack add api-endpoints

新しいブランチが作成され、前のブランチの上に積まれます。この操作を繰り返してスタックを構築します。

4. PRをまとめて作成する

gh stack submit

スタック内の全ブランチをリモートにプッシュし、PRを一括作成します。GitHub上でスタックとして自動的にリンクされます。

主要コマンド一覧

コマンド 説明
gh stack init スタックを開始する
gh stack add <名前> レイヤーを追加する
gh stack submit PRを一括作成・更新する
gh stack push ブランチのみプッシュする(PRは作成しない)
gh stack rebase スタック全体をカスケードリベースする
gh stack sync fetch・rebase・push・PR同期をまとめて実行する
gh stack up / down スタック内で上下に移動する
gh stack top / bottom スタックの最上部・最下部に移動する

gh stack push--force-with-lease を使用するため、他の人の変更を上書きするリスクを抑えられます。

歴史的背景|MetaやGoogleでは10年以上前から実践

スタック型のコードレビューは新しい概念ではありません。

  • 2007年 : Facebook(現Meta)のエンジニアEvan Priestley氏が「Differential」を開発。「コードレビュー待ちに多くの時間を費やしていた」ことが動機
  • 2011年 : DifferentialはPhabricatorの一部としてオープンソース化
  • 2017年 : Metaが「ghstack」をオープンソースとして公開

Google、Meta、Uberなどの大手テック企業は10年以上にわたり、社内ツールでスタック型レビューを運用してきました。GitHubのStacked PRsは、この手法をGitHubネイティブの体験として提供するものです。

注意点

Stacked PRsには考慮すべき点もあります。

  • リベース競合の連鎖 : 最下層のPRでコンフリクトが発生すると、上層すべてに波及する可能性がある
  • 事前の設計が必要 : 「3日間書いてから後でPRを分ける」やり方は通用しない。作業前に分割方針を決める必要がある
  • 習慣の変更 : レビュアーにとってもスタックの読み方を覚える学習コストがある

自動リベース機能がこれらの負担を軽減しますが、完全には解消できません。

現在のステータスと利用方法

Stacked PRsは現在プライベートプレビュー段階です。利用するにはウェイトリストへの登録が必要です。

  • ウェイトリスト: gh.io/stacksbeta
  • 公式ドキュメント: github.github.com/gh-stack

CLIやスタック機能は、リポジトリで機能が有効化されるまで使用できません。

まとめ

Stacked PRsは「大きなPRを出すしかない」という状況を根本から変える機能です。AIによるコード生成が加速する中、レビュー効率の改善は開発チーム全体の生産性に直結します。

プライベートプレビューの段階ではありますが、ウェイトリストに登録して早めに試す価値はあります。特に、モノレポで大規模なリファクタリングを頻繁に行うチームにとっては、レビューのボトルネック解消に大きく貢献するはずです。