【検証】 Claude Code GitHub Actionsは、どのブランチの CLAUDE.mdを参照するのか?

【検証】 Claude Code GitHub Actionsは、どのブランチの CLAUDE.mdを参照するのか?

Claude Code GitHub Actionsを導入する際の重要な疑問「PRコメントでの指示時に、どのブランチのCLAUDE.mdが参照されるのか」を実際に検証しました。メインブランチとPRブランチで異なる内容のCLAUDE.mdを作成し、それぞれでClaudeの動作を確認しました。改善サイクルを回しやすい結果になっていると思います。
Clock Icon2025.06.11

こんちは。リテールアプリ共創部 エンハンスチームの塚本です。

Claude Code GitHub Actions を使い始めました。

元々ローカルで Claude Code を使っておりましたが、この精度であれば GitHub 上で動かしても実用可能なクオリティだと感じ、導入に至りました。

悩ましいのが、Claudeのルール CLAUDE.md をどのように更新していくか』 という点です。

Claudeがメインブランチのルールしか参照しないとなると、毎回メインブランチのルールを変更してからClaudeの動作を確認する必要が出てきます。これにより、試行錯誤が難しくなります。

komaru

PRコメントで指示を出したら、そのPRブランチの CLAUDE.md を見てくれると助かりそうです。

riso

これであれば、ルール変更して動作を検証する試行錯誤が捗りそうですよね。

そこで今回は、Claude Code Action がどのブランチのルールを確認しているのか、動作を検証します。

Claude Code GitHub Actions とは

Claude Codeを GitHub Actions 経由で動かせるものです。

https://docs.anthropic.com/ja/docs/claude-code/github-actions

IssueやPRのコメントで @claude とメンションして指示を出すことで、コードレビューや実装を依頼できます。

検証

検証手順

  1. mainブランチに CLAUDE.md を作成
  2. PRを作成し、PRのブランチで CLAUDE.md を修正
  3. PRのコメントで どちらのルールに従うかを確認する

事前準備

https://docs.anthropic.com/ja/docs/claude-code/github-actions#クイックスタート

ローカルで Claude Code を開き、 /install-github-app を実行します。以下の手順をガイドしてくれるので、従いながら設定をします。

  • 対象リポジトリに ClaudeのGitHubアプリをインストール
  • API Keyを取得
  • API Keyをシークレットに保存
  • GitHub Actions workflow のPR作成

mainブランチの CLAUDE.md を検証

以下の内容のみ記載した CLAUDE.md を作成します。

このルールを読んだら、「メインブランチのCLAUDE.mdを読んだよ!!」という文章を、必ず返信コメントに含めてください。

Issueコメントで、 @claude をつけたコメントをします。

claude-comment-1

実際にルールを読んでくれているのが分かりました。

PRを作成し、PRコメントの返信を確認

続いて、 CLAUDE.md を変更するPRを作成します。以下のように修正します。

このルールを読んだら、「claude-comment-2のCLAUDE.mdを読んだよ!!」という文章を、必ず返信コメントに含めてください。

このPRコメントで、 @claude をつけたコメントをします。

claude-comment-2

Claudeのログを見てみると、以下の記載がありました。対象ブランチのルールを正しく読み込んでいることが確認できます。

Looking at the CLAUDE.md file content, 
it says: "このルールを読んだら、「claude-comment-2のCLAUDE.mdを読んだよ!!」という文章を、必ず返信コメントに含めてください。"

検証結果

riso

⭐ PRコメントでは、そのブランチの CLAUDE.md を読んでくれる!

なぜこの挙動なのか?

検証結果は出ましたが、なぜこのような挙動になるのでしょうか?

GitHub Actions の挙動に関係しているので、詳しく見ていきましょう。

actions/checkout について

Claudeが自動生成する GitHub Actions のワークフローファイルは以下のようになっています。

name: Claude Code

on:
  issue_comment:
    types: [created]
  pull_request_review_comment:
    types: [created]
  issues:
    types: [opened, assigned]
  pull_request_review:
    types: [submitted]

jobs:
  claude:
    if: |
      (github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
      (github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||
      (github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) ||
      (github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))
    runs-on: ubuntu-latest
    permissions:
      contents: read
      pull-requests: read
      issues: read
      id-token: write
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4
        with:
          fetch-depth: 1

      - name: Run Claude Code
        id: claude
        uses: anthropics/claude-code-action@beta
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}

この中で、 actions/checkout@v4 は対象リポジトリをチェックアウトするアクションですが、このチェックアウト対象のブランチはトリガーごとに変わってきます。

Only a single commit is fetched by default, for the ref/SHA that triggered the workflow. Set fetch-depth: 0 to fetch all history for all branches and tags. Refer here to learn which commit $GITHUB_SHA points to for different events.

デフォルトでは、ワークフローをトリガーしたref/SHAのコミットが1つだけ取得されます。

ref/SHAのコミットをチェックアウトしているので、対象ブランチの CLAUDE.md が読み込まれます。

ref/SHAについて

トリガーごとに、この値は変わってきます。

例えば、 pull_request_review_comment のトリガーでは、 refs/pull/PULL_REQUEST_NUMBER/merge が対象になります。

https://docs.github.com/ja/actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows#pull_request_review_comment

このように、GitHub Actions上で特定のコミットをチェックアウトするため、対象の CLAUDE.md が読み込まれるということです。

まとめ

  • Claude Code GitHub ActionsのPRコメントでは、そのPRブランチの CLAUDE.md が参照される
  • GitHub Actionsの actions/checkout がトリガーされたref/SHAのコミットを取得するため、ブランチ固有のルールファイルが読み込まれる
  • これにより、メインブランチを変更することなく、PRブランチで CLAUDE.md の試行錯誤が可能になる

ありがとうございました!

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.