【結論】定期実行はclaude -pと最小権限で構成する
CronやCIで定期実行する場合は対話ModeではなくPrint modeのclaude -pを使い、入力、出力形式、許可Tool、Timeoutを固定します。
DesktopのScheduled tasksが利用できる環境では、GUI管理も選択肢です。
# ターミナルで実行:読み取り専用の日次レポートを生成
claude -p "git log --since='24 hours ago' を要約してください" \
--allowedTools "Bash(git log *),Read,Grep,Glob" \
--output-format json > daily-report.json具体的な手順・設定方法
- 専用Service accountまたは短期Credentialを用意し、個人の長期API KeyをCronへ直書きしません。
- Commandを手動実行してExit code、JSON output、Timeout、Retryを確認してからSchedulerへ登録します。
- CIではNetwork、File system、Tool permissionを最小化し、ArtifactとAudit logを保存します。
実践プロンプト / 活用テクニック
定期Security review用Promptです。
# CIで実行
claude -p "直近24時間の差分を読み、重大なSecurity問題だけをJSONで報告してください。コードは変更しないでください" \
--allowedTools "Bash(git diff *),Read,Grep,Glob" \
--output-format json機械処理しやすい出力形式を固定します。
注意点・よくあるエラーと対処法
Cron環境はPATHやHome directoryが対話Shellと異なるため、実行File pathとWorking directoryを明示します。
自動修正やDeployまで行わせる場合は別Jobに分け、人間承認とProtected environmentを挟みます。
失敗時の無限RetryはCostとRate limitを悪化させるため、回数上限とBackoffを設定します。