【結論】非対話処理はclaude -pと標準入力を使う
Claude Code CLIは対話モードだけでなく、「-p」または「--print」でプロンプトを実行して結果を標準出力へ返せます。
ログやgit diffをパイプする場合も「claude -p」を使い、渡すデータ量をtail、grep、ファイル指定で事前に絞ります。
自動化では自由文だけでなく、出力形式、最大ターン数、許可ツール、失敗時の扱いを明示してください。
tail -n 200 error.log | claude -p "根本原因、該当箇所、確認コマンドを簡潔に返してください"
git diff --cached | claude -p "Conventional Commits形式のコミットメッセージを1件だけ返してください"
具体的な手順・設定方法
-
単発の質問は「claude -p」で実行し、必要なら結果をファイルへリダイレクトします。
機密情報が含まれるログは先にマスクしてください。
claude -p "package.jsonの主要スクリプトを説明して" > scripts_report.txt -
直前の会話を継続する場合は「-c」、名前またはIDで再開する場合は「-r」を使います。
CIでは意図せず古い会話を引き継がないよう、新規セッションを基本にしてください。
claude -c -p "型エラーを再確認して" claude -r "auth-refactor" "残りのテストを実行して"
実践プロンプト / 活用テクニック
git diffを渡すだけではリポジトリ全体の文脈が不足するため、レビュー基準と変更目的もプロンプトへ加えてください。
次の標準入力はアプリケーションのエラーログです。
秘密情報らしき値は出力へ再掲しないでください。
回答はJSONで、keysは root_cause、evidence、affected_files、safe_checks、confidence のみとしてください。
証拠が不足する場合は推測でファイルを変更せず、追加で必要なログ行またはコマンドをsafe_checksへ入れてください。
注意点・よくあるエラーと対処法
-
数百MBのログをそのままパイプすると、コンテキスト上限、遅延、利用量増加の原因になります。
直近行、エラー周辺、特定リクエストIDへ絞ってください。
grep -n "ERROR" app.log | tail -n 100 -
非対話モードでもツール実行や課金が発生する場合があります。
cronや無限ループへ入れる場合は回数、タイムアウト、予算、同時実行数へ上限を設けてください。