GitHub Copilotアプリ、セッションとPRの積み重ねに対応

積み重ねの仕組み

前のPRのブランチを起点に分岐
文脈を引き継ぐ後続セッション
GitHub全体でPRスタック利用可

10年放置の刷新

React 15とLessの古い構成
一発での自動刷新は失敗
devブランチへの移植で救済

巨大PRの回避

スコープ膨張を分割で抑制
旧ライブラリの全面置換
詳細を読む

GitHubは7月30日、公式ブログでCopilotアプリのスタックセッションと積み重ね型のプルリクエスト(PR)を紹介しました。スタックとは、同じリポジトリ内で各PRが一つ下のPRのブランチを対象にし、順序付きの連鎖を作ってmainブランチに着地する仕組みです。同社のキャシディ・ウィリアムズ氏は、10年以上放置していた自作アプリの刷新でこの機能を使い、作業を分割しながら進めた過程を公開しました。

対象は2014年末ごろに作った個人用ダッシュボードで、React 15やLess、当時のreact-bootstrapが残る構成でした。同氏はPlanモードで刷新方針を練り、Claude Opus 4.8に計画を渡してGPT-5.5のレビューも受けたうえで一括実行を試みましたが、一発では通りませんでした

原因は本人の側にありました。過去に一部を近代化したdevブランチが実運用に使われており、mainから分岐した変更では必要な機能が欠けていたのです。依頼を出すとCopilotアプリは新しいセッションを作り、失敗したPRを閉じたうえで、決めたスタイル方針をdevブランチ向けの変更へ移植しました。

次に浮上したのが、react-bootstrapに残るfindDOMNodeなどの古い記述です。ライブラリごと入れ替えるか更新で済ませるかをPlanモードで検討した結果、全面置換が推奨されましたが、進行中の作業に混ぜるとスコープが膨らみます。そこで現行分をPRにまとめ、その作業から分岐する新しいセッションを立て、devへ順番にマージする二段構えにしました。

エージェントに任せられる範囲が広がるほど、一つのPRに何千行も詰め込みたくなる誘惑は強まります。スタック構造は、依存関係のある変更を順番どおりに保ちつつ、レビュー単位を小さく抑える現実的な答えになります。PRスタックはGitHub上でコードをコミットできる場所ならどこからでも、スタックセッションはCopilotアプリから利用できます。