ClaudeCodeで“リリース前チェック”を自動化する:権限・秘密情報・差分レビューを事故らせない

ワンポイント画像

この記事でわかること

  • ClaudeCodeに任せる“リリース前チェック”の範囲の決め方(権限と秘密が先)
  • 差分レビューの観点をテンプレ化して、24時間以内に返せる形にする方法
  • 「やらないこと」を決めて、誤検知と責任の押し付けを避けるコツ

リリース前チェック、毎回ちょいちょい同じ事故が起きます。

「権限が足りず見えない」「秘密情報が混ざる」「差分の見落としで再リリース」あたりが、地味に効いてくるやつです。

そこでClaudeCodeに“チェックだけ”寄せて、最終判断は人がやる形に寄せました。

筆者の一言:自動化って気持ちいいけど、権限で詰まると一気に冷めます。

まずここで詰まる(よくある勘違い)

最初の勘違いは「AIにリポジトリ全部読ませればOK」です。

実際は、社内だとリポジトリが分かれていたり、サブモジュールや設定ファイルに機密が混ざってたりします。

たとえば、.env相当の値がPRに入ってたら、その時点でアウトです(しかもレビュー以前の問題)。

なので“読む範囲”を先に決めます。

私の現場だと、対象は「変更ファイル+依存関係の宣言(package/Podfile相当)+リリース手順書(該当箇所だけ)」に固定しました。

数字で言うと、PRあたり最大40ファイルまで、差分は最大2,000行までを目安にしています(それ超えると人間のレビューも落ちがち)。

現場あるある:「AIに全部見せたのに漏れた」が発生すると、だいたい“見せてない前提”が後から出てきます。

自分がやらかした話(小さくてOK)

一回やりました。

「差分の安全確認」だけのつもりでClaudeCodeに投げたら、ログ出力にトークンっぽい文字列が残ってるのを見落としたまま、レビューOKを出しかけました。

原因は単純で、私が“秘密情報チェック”を差分の観点に入れてなかったことです。

回避策として、チェックの最初に「秘密情報っぽい文字列(APIキー形式、JWTっぽい3分割、長いBase64)」を機械的に洗い出すステップを入れました。

あと、もう一つ。権限が弱いトークンで実行してたせいで、一部ディレクトリが読めず、ClaudeCodeの回答が「見えないけどたぶんOK」っぽい空気になったことがあります。

ここ、正直迷ったのですが、結局は“読めないならNG(要人手確認)”に倒しました。

会話っぽい一言を置くとこんな感じです。

「そこ見えてないなら、OKって言わないで…」

現場の判断基準(ここは会社で割れる)

判断基準は3段階に分けると揉めにくいです。

1つ目は「ブロック(絶対止める)」で、秘密情報の混入や権限不足のままのレビューはここに入れます。

2つ目は「警告(人が判断)」で、たとえばタイムアウト周りの変更、リトライ回数を3→10に上げた、みたいな運用影響が読める変更です。

3つ目は「記録だけ」で、命名揺れや軽微なLintの指摘などです。

数字の例だと、リトライは最大3回、タイムアウトは30秒、みたいに“会社の標準値”があるなら、それを超えたら警告に寄せると運用が平和になります。

逆に、やらないことも決めました。

「一括更新の可否」みたいな業務判断は、ClaudeCodeに決めさせないです(責任が曖昧になるので)。

筆者の一言:自動で止める線引き、強すぎると現場が回らないので“止めどころ”だけ固定しました。

表:チェックリスト or 比較(※TABLE HERE)

観点 ClaudeCodeにやらせる 人が判断する メモ(数値例)
秘密情報混入 パターン検出して列挙 本当に秘密か最終確認 JWT/32桁キー/ENV名を検知
権限不足 読めないファイルを報告 権限付与 or 手動確認 読めない=ブロック扱い
差分の危険箇所 認証/権限/外部通信を抽出 仕様と照合してOK判断 外部通信追加は警告
運用影響 タイムアウト/リトライの変更検出 監視・手順書更新判断 30秒/3回を超えたら要確認
リリース手順 手順書の該当箇所を差分確認 当日オペの可否判断 手順が2工程増なら再確認

この表をそのまま“PRテンプレのチェック欄”に持っていくと、レビューの往復が減ります。

私は「レビュー依頼から24時間以内に一次回答」を目標にして、ClaudeCodeの結果を先に貼ってから人が追記する形にしました。

FAQ(質問が飛んできがちなやつ)

Q. ClaudeCodeに秘密情報が見えたらどうする?

A. まずPRを止めて、該当キーをローテーションします(消して終わりにしない)。

Q. 権限が足りないトークンで回しても意味ある?

A. “見えてる範囲だけ”のチェックになるので、少なくとも読めない一覧を出す用途に限定します。

Q. AIの指摘が外れたら、誰が責任取るの?

A. そこを曖昧にしないために「ブロック条件だけ固定」「最終OKは人」に寄せます。

まとめ(次にやること1つ)

リリース前チェックは、機能より先に「権限」「秘密情報」「差分観点」を固定すると安定します。

まずは“ブロック条件”を2つだけ決めるのが早いです(秘密情報混入、権限不足)。

次に、差分の抽出観点を表の形でテンプレにして、毎回同じ入口にします。

次に読むおすすめ

  • CodexでIssueテンプレを運用に落とす:再現手順・期待値・ログ・影響範囲を「書かせる」仕組み
  • Pleasanterの日付が1899/12/30で入ってくる問題:更新トリガーを汚さない弾き方(サーバースクリプト)

コメント

タイトルとURLをコピーしました