第2章 · レッスン 06 / 17

やる一周を完結する

変更を確認し、反映を決める

差分と Pull Request は、ていねいに見れば大丈夫です

  • 目安 15 分
  • 進捗 6/17

このレッスンのゴール

  • Pull Request を『変更の提案書』として説明できる
  • 差分で見るべきポイントを挙げられる
  • マージと差し戻しの判断基準を持つ
  • 開いた PR を見守る近道が `/autopilot` だと知る
マージがグレーのときマージボタンがグレーのときChecks が緑でも、承認・保護ルール・権限で止まることがあります。まず6つの原因を順に疑います。
マージボタンがグレーのときの6原因図。Checks が赤、behind、コンフリクト、必須レビュー未承認、ブランチ保護、マージ権限不足。Origin 上の保管庫では⑤は Rules and Protections。
図の内容をテキストで読む

コード側 · ①〜③

  1. Checks が赤 → pull-request-deep の CI 3択(再実行 / 調査だけ / 修正依頼)
  2. behind → Update branch(スマホでも可)
  3. コンフリクト → Agent に『main の最新を取り込んで解消して』と依頼

チーム側 · ④〜⑥

  1. 必須レビュー未承認 → レビュアーを足す(Request reviewers)
  2. ブランチ保護・必須チェック。Origin 上の保管庫なら Settings の Rules and Protections
  3. マージ権限なし・カスタムロール → 管理者に権限を確認

Checks が緑でもマージできないときは④⑤⑥を疑います。Origin 上の保管庫では⑤は Settings の Rules and Protections。auto-merge をオンにしても、条件が揃うまで反映は始まりません。

SVG をダウンロード

操作イメージ5 ステップ
Pull Request の確認イメージ。要約 → Files changed → チェックリスト → マージの流れ
  1. Conversation で Agent の要約を読む
  2. Files changed で意図しない変更がないか見る
  3. マージがグレーなら上の6原因図どおり。Checks が赤だけなら pull-request-deep の CI 3択図へ
  4. マージまで任せたいなら `/autopilot`、またはこのレッスンのマージまで任せるレシピ節を確認
  5. 問題なければ Merge(反映)
コードが読めなくても、要約・差分・チェックリストで判断できます。
第2章のレッスン一覧6 / 17
  1. 05開発は「依頼→変更→確認→反映」のループ8分
  2. 06変更を確認し、反映を決める15分
  3. 07指示したあと、何が起きる?10分
  4. 08追加指示とやり直し10分

Pull Request は提案書

Pull Request(よく PR と略します)は、「この変更を本番の流れに入れてよいですか?」という提案です。Agent が作業を終えると、この提案の形で返ってくることが多くあります。

まだマージしていなければ、main ブランチ(本番に近い本線)は変わっていません。安心して中身を読めます。

Origin 上で作った保管庫の PR は cursor.com/codebase の Pull Requests タブです。公式の画面は Activity(会話と状態)/ Commits / Checks / Files Changed の4つで、GitHub と同じ順で読めます。枝を Origin に送ったあと、保管庫の Code タブからも PR を開けます。GitHub から同期した保管庫なら、Cursor 上に出るのは GitHub の PR です。同期保管庫の origin/ で始まる枝は Origin 側だけに残り、GitHub の PR の先頭にはなりません(公式 Origin pull requests)。

Origin CLI で作る PR は既定が Draft です。確認できたら Ready にしてください。画面からも、Agent に『Ready にして』と頼んでもできます(公式 Origin CLI PR)。

Checks タブは先頭コミット向けです。push したのに古い結果のままなら、Agent に『PR を refresh して』と頼むか origin pr refresh です。通常は push で新しい版が作られるので、画面が追いついていないときだけ使います(公式 Origin CLI PR)。

はじめての方が見るチェックリスト

コードが読めなくても、次の点は確認できます。

  • 意図した画面・文言だけが変わっているか
  • 関係ないファイルまで大量に触っていないか
  • 秘密情報(鍵、パスワード、個人情報)が入っていないか
  • Agent の説明と、実際の差分の内容が一致しているか
  • 『なぜこの変更が入ったか』が分からなければ `/cursor-blame`(AI の変更と依頼文を調べる。公式 Agent Skills)
  • マージや push の前に先に読んでもらいたいなら `/review`(合うレビュー Agent を選ぶ。明示するなら `/review-bugbot` / `/review-security`。同じ差分のまま PR を出すと保管庫側は再実行を飛ばすことがある。Cursor 3.7+ / cursor.com/agents。CLI は公式では準備中)
  • Desktop で手元の変更だけ先に読むなら `/agent-review`(Agent Review。PR の Bugbot とは別。設定は Agents、Cursor 3.11 以降は Git & PRs。when-desktop)
  • 成果物(スクショ・動画・ログ)やプレビューがあれば、見た目と手順で確認する
  • 本線より遅れている(behind)表示が出ていないか → 出ていたら Update branch で取り込んでから判断(pull-request-deep の behind 節)
  • コンフリクト(競合)と表示されていないか → 出ていたら Agent に『main の最新を取り込んでコンフリクトを解消して』と依頼(自分で直すより安全なことが多い)
  • 成果物が無い/『確認できなかった』と書かれている → 仕事場(環境)不足のサインかもしれない(第4章)

コピペ用:PR 確認メモ

確認のたびにゼロから考えなくて大丈夫です。次の型をメモや PR コメントに貼り、カッコ内だけ埋めてみてください。

  • 意図どおり: (はい / いいえ)。ずれている点: ()
  • 触ってほしくない範囲は無事か: (はい / 要確認)
  • 秘密情報・個人情報が写っていないか: (はい / 怪しい)
  • 成果物 or プレビューで見たこと: ()
  • behind / コンフリクト: (なし / Update branch 済 / Agent に解消依頼)
  • 次の一手: (マージ / 追加指示 / 人に相談)

成果物とリモートデスクトップ

Cloud Agent は、マージしやすい PR に加えて、デモ用の成果物(artifacts)としてスクリーンショット、動画、ログを残せます。公式では成果物は PR に紐づけられ、手元にブランチを落とさなくても検証しやすくなります。文言や見た目の確認なら、差分より先に成果物を見る方が早いことが多いです。

成果物がアップロードされると、ダッシュボードの実行イベントに `artifact_created` と出ます(environments-and-secrets の実行イベント節)。イベントが無いのに『確認した』と書かれているときは、環境不足やネットワーク制限を疑いましょう。

GitHub の PR 説明文に画像を自動で埋め込みたいときは、別設定の Allow posting artifacts to GitHub が必要です(このレッスン後半の成果物を PR 本文に載せる設定節)。Agent 画面や PR に紐づく成果物は見えているのに、GitHub 本文だけ空、というときはここを疑います。

Agent が動いているクラウド上のデスクトップを一時的に操作して、自分で画面を触って試す機能(remote desktop control)もあります。手元にブランチを落とさなくても、『動いたか』を体感で確かめられます。試し終わったら操作を返し、Agent に続きを任せます。

反映のしかた

問題なければ Merge(反映)します。チームによっては Approve(承認)が先に必要なこともあります。だめなら Close したり、追加コメントで Agent に修正させたりします。

スマホの Cursor アプリからも、差分確認やマージ操作が行えます。通勤中に確認し、大きな判断だけデスクで行う、といった使い方が現実的です。

auto-merge と Subscriptions の使い分け

PR を出したあと、毎回『CI が緑になったら続けて』と書く代わりに、道具を組み合わせられます。混同しやすいので、役割だけ先に固定しましょう。

  • `/autopilot`(最初から入っている Skill): 開いた PR の指摘・コンフリクト・赤い Checks・残り仕事を見守って直す。マージまで任せたいときの最短入口(公式 Agent Skills)
  • auto-merge(GitHub / スマホ): あなたがオンにすると、Checks・承認・behind なし・コンフリクトなしなどの条件が揃ったタイミングで自動反映される。Agent は動かない。Origin 上の PR では同じ役割が『条件が揃ったらマージ』(origin pr merge --auto / Agent に『条件が揃ったらマージして』)
  • Subscriptions(Agent): レビューコメント・CI 結果・Slack 返信などを待って、同じ会話で Agent が自動再開し、直し続けられる。公式例: open a PR and keep it green until merge。GitHub の CI 待ちは Checks が全部終わるまで1つの結果で、pending の Check が1つでも全体が届かない。公式は action_required(要対応)で完了させる(follow-up-loop)
  • `@cursor autofix`(Agent 作成 PR): GitHub Actions の失敗だけを自動追従する別機能。Subscriptions より狭い範囲

マージまで任せるレシピ(/autopilot と3道具)

道具は別物ですが、組み合わせると『PR を出してからマージまで』をほぼ任せられます。いちばん簡単な入口は `/autopilot` です。

  • ① いちばん簡単: チャットで `/autopilot`。開いた PR の指摘・コンフリクト・Checks を見守って直す(公式 Agent Skills)
  • ② 起動時: この PR だけを待つ Subscriptions 付きで依頼(上のコピペ用、または `/subscribe`)。保管庫全体の待ちは通知が多くなりやすいので、マージ任せでは②は1 PR に絞る
  • ③ PR 作成後: GitHub またはスマホで auto-merge をオン
  • ④ 必要なときだけ: Agent 作成 PR で CI が赤いとき `@cursor autofix on`(Teams)

マージボタンがグレーのとき

Merge(反映)ボタンが押せない・グレー表示のときは、だいたい次のどれかです。Checks が赤、behind 表示、コンフリクト、必須レビュー未承認、ブランチ保護ルール、あなたにマージ権限がない。

このレッスン冒頭の図は、6つの原因を一覧にしたものです。Checks が緑でも、④⑤⑥(承認・保護・権限)で止まることがよくあります。auto-merge をオンにしても、条件が揃うまで反映は始まりません。

behind なら Update branch(pull-request-deep の behind 節)。コンフリクトなら Agent に解消依頼。CI 赤なら pull-request-deep の CI 3択図どおり。承認が足りないときはレビュアーを足すか、詳しい人に相談しましょう。Origin 上の PR でもコンフリクトは画面に出ます(公式 Origin pull requests)。

公式の GitHub 連携では、Cursor アプリがブランチ保護や必須チェックのルールを読み、マージ可能かどうかを判断します。表示が想定と違うときは、カスタムリポジトリロールの影響も accounts-setup で確認できます。Origin 上で作った保管庫では、同じ役割が Settings の Rules and Protections(マージ時・push 時の ruleset)です。GitHub 同期の保管庫は GitHub 側のブランチ保護のままです(公式 Origin settings)。

CI が赤くなったとき(Agent 作成 PR)

Cloud Agent が作った PR では、GitHub Actions の失敗を Agent が自動で直しにいくことがあります(いまは Teams 向け。個人プランは追従予定)。

自動追従(autofix)が走らない典型例は、公式 capabilities では次のとおりです。

  • 人が後から push した
  • あなたが追加メッセージ(follow-up)を送った
  • 同じ Check が取り込み先(base)でも既に赤い
  • 同じ PR で CI 失敗の自動修正が10回に達した

コミットの Verified(署名)

Cloud Agent が付けたコミットには、Cursor 側の署名が自動で付きます。GitHub / GitLab では Verified バッジとして見えます。はじめて見ると『誰かが特別な鍵を入れた?』と不安になることがありますが、正規の Cloud Agent 実行なら想定どおりです。

チームがブランチ保護で『署名付きコミット必須』にしていても、Agent の PR はそのまま条件を満たせます。追加の設定は不要です。

成果物を PR 本文に載せる設定

スクショなどの成果物は Agent 画面で見る以外に、GitHub の PR 説明文へ埋め込む設定もあります(Cloud Agents ダッシュボードの Allow posting artifacts to GitHub)。レビュー担当が GitHub だけ見て判断するチーム向けです。

埋め込まれた画像は、長い推測しにくい URL の公開リンクになります(GitHub の画像表示の仕組み上、認証なしで見られる形です)。画面に秘密情報や個人情報を映していないか、埋め込み前にもう一度確認しましょう。

理解チェック

  • PR が『まだ本番に入っていない提案』だと説明できる
  • Origin 上の PR は Activity / Commits / Checks / Files Changed の4タブだと知っている
  • Origin CLI の PR は既定が Draft で、確認後に Ready にすると知っている
  • Origin 上の PR で Checks が古いままなら refresh を疑える
  • Origin 上の PR がマージできないときは Rules and Protections を疑える
  • Origin 上の PR でも条件が揃ったらマージ(GitHub の auto-merge と同じ役割)があると知っている
  • マージ前に見る観点を3つ以上言える
  • 『なぜこの変更が入ったか』は `/cursor-blame` で調べられると知っている
  • 成果物(スクショ/動画)を確認の手がかりに使える
  • 成果物は PR に紐づくが、GitHub 説明文への埋め込みは Allow posting が別設定だと知っている
  • PR に埋め込んだ成果物が公開 URL になりうることを知っている
  • Agent のコミットに Verified が付くのは署名コミットだと説明できる
  • PR 確認メモの型で、次の一手(マージ / 追加指示 / 相談)を選べる
  • Squash merge が『変更を1つにまとめて反映する』方式だとざっくり説明できる
  • auto-merge と Subscriptions と `@cursor autofix` の役割の違いを説明できる
  • `/autopilot` が開いた PR を見守って直す近道だと知っている
  • Subscriptions と auto-merge を組み合わせてマージまで任せる手順を説明できる
  • マージボタンがグレーのとき、behind・コンフリクト・CI・承認・権限のどれを疑うか分かる
  • Checks が緑でも、承認・保護・権限でマージできないことがあると知っている
  • コンフリクト表示のとき Agent に解消を依頼できると知っている
  • Agent 作成 PR の CI 自動修正を `@cursor autofix off` / on で切り替えられると知っている
  • Bugbot Autofix(指摘を直す)と `@cursor autofix`(CI を直す)は別だと知っている
  • `/review-bugbot` した同じ差分の PR では、保管庫側の Bugbot が再実行を飛ばすことがあると知っている
  • Desktop の手元変更を読む `/agent-review` は、PR の Bugbot とは別だと知っている
  • Dashboard → Cloud Agents → My Settings の Automatically fix CI Failures で autofix 全体を止められると知っている
  • Teams 以外では autofix の自動追従が使えないことがあり、Subscriptions や明示依頼が代替だと知っている
  • autofix が自動追従しない4条件(人の push・追加メッセージ・base でも赤・10回上限)を説明できる

開いただけでは「済」になりません。チェックできたら押してください。

実践(ぜひやってみましょう)

実在する PR(Agent が作ったものか、過去のチームの PR)を1つ開き、コピペ用の確認メモを埋めてみてください。behind やコンフリクト表示があれば、Update branch か Agent への解消依頼を試してみましょう。マージまではしなくて大丈夫です。

このレッスンで出てくる用語

全部覚える必要はありません。気になる言葉だけ開いてみてください。

用語集を全部見る →

いま身についている開発者スキル

コードレビュー / リリース判断