👋

Claude Code のレビューを Claude Code で自動的に対処する

に公開

前提

  • Claude Code GitHub Actions を利用している

問題

  • Claude Code が書いたコードを Claude Code が実施したレビューについて、Claude Code にそのレビューへの対処を指示するのが手間
  • Claude Code 的にヨシとなったコードを人間がコードレビューしたい

対応

  • レビュー対処用のworkflow( @claude で実行されるworkflow )で allowed_bots: 'claude' を指定する
  • レビューのworkflowで @claude への指示も実行する
    • 下記(実際に利用しているpromptの抜粋)のようなpromptをactions workflowに追加する
      • step5が今回の問題についての主な対応
## レビュー提出前のチェックリスト  
  
レビュー提出前に必ず以下を確認してください:  
- [ ] ステップ3でインラインコメントを追加したか?  
  - はい → ステップ5を**必ず**実行する  
  - いいえ → ステップ5はスキップ可能  
  
## GitHub Actions環境でのレビュープロセス  
  
以下の手順で必ずレビューを実施してください:  
  
1. **レビューを開始する:** `mcp__github__create_pending_pull_request_review` を使って、保留中のレビューを開始します。  
  
2. **変更内容を確認する:** `mcp__github__get_pull_request_diff` を使って、コードの変更点や行番号を把握します。  
  
3. **インラインコメントを追加する:** 改善点や懸念事項があるコードの行には `mcp__github__add_comment_to_pending_review` を使ってコメントを追加してください。修正方針が明確な場合には積極的にsuggestionを利用してください。  
  
4. **レビューを提出する:** `mcp__github__submit_pending_pull_request_review` を使って、イベントタイプを「COMMENT」に設定してレビューを提出してください。  
   - 注意: 「REQUEST_CHANGES」は使わないでください  
  
5. **対処依頼コメントを追加する(インラインコメントを追加した場合は必須):** ステップ3でインラインコメントを追加した場合(つまり修正や検討が必要な指摘を行った場合)、以下を実行してください:  
   - ステップ3で追加したすべてのインラインコメントの内容を確認し、各指摘事項を簡潔にまとめる  
   - `mcp__github__add_issue_comment` を使用して、PRに対してトップレベルコメントを追加  
   - コメント内容の構成:  
     1. 「レビューで以下の項目について指摘しました:」という導入文  
     2. 各インラインコメントの指摘内容を箇条書きで列挙(ファイル名と行番号も含める)  
     3. 最後に「@claude これらの指摘事項に対応してください」という指示  
   - 例: 「レビューで以下の項目について指摘しました:\n- src/example.py:42 - エラーハンドリングが不足しています\n- src/test_example.py:10 - このケースのテストが必要です\n\n@claude これらの指摘事項に対応してください」
  • ## レビュー提出前のチェックリスト は、step5が実行されないことがあったため追加した
  • inline レビューコメントに @claude をつけるpromptを試したが、複数コメントが原因で複数のClaude Actionsが走り、コンフリクトが発生したのでまとめて依頼するようにした

なお、上記 prompt の step 1〜4は下記記事を参考に(というかそのまま利用)させていただいています。
https://note.com/reality_eng/n/n873a4cab65ee

実例

inline レビューコメント

step 5 に起因する対処依頼コメント


claude の対処後のコメント

claude の再レビュー時のコメント

リスク

  • 対処役の Claude が適切に対処できない場合、無限ループの懸念がある
      • Claude レビュー: 指摘
      • Claude 対処: 不完全な対処
      • Claude レビュー: 指摘
      • Claude 対処: 不完全な対処
      • ...
    • 今のところ自分の環境では発生していない
      • いつか発生するはずなので何らかの備えは必要
  • Claude のレビューが適切でない場合、無限ループの懸念がある
      • Claude レビュー: 適切でない指摘
      • Claude 対処: 適切でない対応
      • Claude レビュー: 修正ヨシ
      • 人間: 適切でない対応を修正
      • Claude レビュー: 適切でない指摘(①)
      • Claude 対処: 適切でない対応
      • Claude レビュー: 修正ヨシ
      • 人間: 適切でない対応を修正
      • ...
    • ①の時点でClaudeが適切でなかったことに気づいてくれればいいが、そうでない場合、適切でない指摘をskipする手立てや知見の共有が必要そう

Discussion