結論
最初にやること:OSのターミナルでclaude -p "本日のCI失敗を調査し、修正案だけをJSONで返して" --bare --tools "Read,Bash" --max-turns 5 --max-budget-usd 1.50 --output-format json > report.jsonを実行します。
対話なしでClaude Codeを組み込む基本はclaude -pですが、本番運用では許可ツール、ターン数、予算、出力形式を同時に固定します。
決定的な変換は通常のシェルやPythonへ任せ、判断が必要な調査・修正だけをエージェントへ渡すと安定します。
ローカルcron、GitHub Actions、Desktop定期タスク、クラウドRoutinesは、必要な稼働場所と永続性で選び分けます。
実行場所:OSのターミナルで実行します。
#!/usr/bin/env bash
# Claude Codeの対話画面へ入力:作業条件または依頼内容を指定
set -euo pipefail
# ターミナルで実行:非対話モードで単発処理を実行
claude -p "本日のCI失敗を調査し、修正案だけをJSONで返して" --bare --tools "Read,Bash" --max-turns 5 --max-budget-usd 1.50 --output-format json > report.json
具体的な手順
--bareは再現性を高めますが、CLAUDE.md、Skills、Plugins、MCPも読み込まないため、必要な指示は明示的に渡します。
構造化された後続処理が必要なら--output-format jsonや--json-schemaを使い、自然言語の解析を避けます。
- 手動実行でプロンプトと終了コードを検証
--bareでユーザー固有のHooksやMCPを除外--allowedToolsまたは--toolsで能力を限定- 標準出力・標準エラー・費用を保存
- 成功時と失敗時の後続処理を分岐
実行場所:OSのターミナルで実行します。
# Claude Codeの対話画面へ入力:作業条件または依頼内容を指定
if ./run-claude.sh; then
# Claude Codeの対話画面へ入力:作業条件または依頼内容を指定
jq -e '.is_error == false' report.json
# Claude Codeの対話画面へ入力:作業条件または依頼内容を指定
else
# ターミナルで実行:指定内容をファイルまたは標準出力へ書き出す
echo "Claude Code failed" >&2
# Claude Codeの対話画面へ入力:作業条件または依頼内容を指定
exit 1
# Claude Codeの対話画面へ入力:作業条件または依頼内容を指定
fi
実践プロンプト
次のプロンプトをたたき台にし、対象範囲、禁止事項、完了条件を自分の環境へ合わせて具体化します。
入力場所:Claude Codeの対話画面へ貼り付けます。
CLI自動化を安全に自動化する計画を作成してください。
対象、必要権限、検証コマンド、停止条件を提示し、承認前には変更を実行しないでください。
注意点
CIで--bypassPermissionsを無条件に使うと、外部入力に埋め込まれた指示から破壊的コマンドが実行される危険があります。
第三者が編集できるIssue、PR本文、ログをプロンプトへ渡す場合は、書き込み権限を外し、信頼済みブランチだけを対象にしてください。
定期処理が同じ操作へ収束したら、AI呼び出しを残さず通常スクリプトへ置き換える方が安価で監査しやすくなります。