「CI でチェックした項目を PR description に出力すると、AI レビュアーへの有効なコンテキストになるか」を調査した記録。

TL;DR

  • 条件付き有益。ただし PR description への書き込みより copilot-instructions.md への記載の方が効果的
  • CI が通過済みの項目を明示することで「AI が CI カバー済みの問題を重複指摘する」無駄を防げる
  • PR description への書き込みは「競合リスク」があるため、専用 PR コメントへの投稿の方が安全

AIレビュアーが参照するコンテキスト

GitHub Copilot Code Review

Copilot のコードレビューが参照する情報源:

情報源参照可否備考
リポジトリ全体(diff 含む)セマンティック関連ファイルを選択的に取得
PR description(本文)読む。クリティカルな制約はここに書くと有効
.github/copilot-instructions.md最も効果的なカスタマイズ手段
PR コメント@github-copilot でタグ付けすれば対話可能
CI check status(GitHub Checks API)GitHub ホスト環境では外部 MCP ツール不可
Jira / Linear / Slack外部ツールは PR 環境から参照不可

重要な制約:Copilot の PR レビューは GitHub のホスト環境で動作し、外部 MCP サーバーへのアクセスがない。CI の check status API は読まない。

Devin

Devin は PR description・コメントを読みながらレビューするが、「CI が何を確認したか」を PR description から読み取ってコンテキストにする。

CodeRabbit

リポジトリ全体・PR description・diff を読む。さらに 40+ の静的解析ツールを自前で実行するため、CI 結果よりも「自前の解析」を優先する。


CI 結果を PR description に書くことの有効性

有益なケース

「AI が CI 済み問題を重複指摘する」のを防ぐ

例:CI がフォーマット・禁止ワード・ルール違反をすでにチェック済みなのに、Copilot が同じ観点でコメントする無駄が発生しうる。PR description または copilot-instructions.md に「以下は CI チェック済み」と明示することで防げる。

## CI チェック済み項目(AIレビュアーはスキップ可)
 
- ✅ 禁止ワードチェック(pre-commit)
- ✅ フォーマット(Prettier)
- ✅ CONTRIBUTING.md ルール準拠

構造化した PR description はレビュー時間を短縮する

AI コーディングエージェントの PR 説明を研究した論文(arxiv 2602.17084)によると、Markdown ヘッダー・リスト項目で構造化された PR description ほどレビュアーのレスポンス時間が短く、完了が早い傾向。

限定的・無益なケース

「チェック通過しました」の列挙だけでは意味が薄い

「✅ CI passed」という情報だけでは AI レビュアーへのコンテキストとして不十分。重要なのは「何を・なぜチェックしているか」の説明。

CodeRabbit には効果が薄い

CodeRabbit は自前で 40+ のツールを実行するため、「CI が通過済み」という情報は参考程度にしかならない。


より効果的なアプローチ:copilot-instructions.md に書く

PR description への書き込みより、リポジトリの .github/copilot-instructions.md に CI カバー範囲を記載する方が確実かつ永続的:

## CIが自動チェックする項目(コードレビューでの重複指摘は不要)
 
- フォーマット(Prettier)
- 禁止ワード(日本語チェック)
- ファイル命名規則(kebab-case)
- コードブロックの言語指定
  これらは pre-commit および GitHub Actions CI で自動検出・修正されます。

メリット

  • 全 PR に自動適用(毎回書く必要なし)
  • PR description を汚さない
  • Copilot の挙動を永続的にコントロールできる

PR description への書き込みのコスト・デメリット

デメリット詳細
競合リスク人間が手動編集した部分を GitHub Actions が上書きする可能性
description が長大化可読性が下がり、人間レビュアーが本質を見失う
メンテナンスコストGitHub Actions ワークフロー追加・管理が必要
陳腐化CI の内容が変わっても description は更新されない

実装パターン(もし書くなら)

パターン A:PR description の末尾に固定セクション

GitHub Actions で PR description の末尾に固定ブロックを追加:

- name: Update PR description with CI results
  uses: nefrob/pr-description@v1
  with:
    content: |
      ## CI チェック結果
      - ✅ 禁止ワードチェック: 通過
      - ✅ Prettier フォーマット: 通過
      - ✅ CONTRIBUTING.md ルール: 通過
    token: ${{ github.token }}
    append: true # 末尾追記(上書きしない)

パターン B:専用 PR コメントに投稿(推奨)

description を汚さず、コメントとして投稿:

- name: Post CI summary as PR comment
  uses: actions/github-script@v7
  with:
    script: |
      github.rest.issues.createComment({
        issue_number: context.issue.number,
        owner: context.repo.owner,
        repo: context.repo.repo,
        body: `## CI チェックサマリー\n- ✅ 禁止ワード\n- ✅ フォーマット\n- ✅ CONTRIBUTING.md ルール`
      })

結論:何をすべきか

やること優先度理由
copilot-instructions.md に CI カバー範囲を明記全 PR に永続的に適用。最も効果的
PR description への CI 結果書き込み競合リスクあり。コスト対効果が低い
CI 結果を専用コメントに投稿description を汚さず、AIが参照可能

このリポジトリへの推奨:まず .github/copilot-instructions.md を作成し、pre-commit が担うチェック項目(禁止ワード・フォーマット・CONTRIBUTING.md ルール)を「AI レビュー不要」として明示する。


参照元