Claude Code で一度うまくいった作業は、次に「これ、毎朝勝手に走らせられないか」と考えることになります。受注CSVの集計、在庫の閾値チェック、レビューの分類——手でやっている限り、担当者が休んだ日に止まるからです。
本記事では、Claude Code を定期実行に載せる手順を、当社が実際に平日毎朝動かしている在庫チェックを例にまとめます。技術的な設定の話より前に、決めておかないと事故になりやすい3つの論点から入ります。
(インストールや基本操作はClaude Code 使い方ガイドをご覧ください)
そもそも「自動実行」には2種類ある
ここが混ざっていると話が噛み合いません。
| 何をするか | 人がいるか | |
|---|---|---|
| 連続実行 | 「CSVを読んで、集計して、結果をExcelに出して」を1回の指示でまとめて走らせる | いる。結果を見て次を判断できる |
| 定期実行 | 毎朝7時など決まった時刻に、同じ処理を無人で走らせる | いない。誰も見ていない前提で組む |
多くの方が最初に欲しくなるのは連続実行のほうで、これは指示の書き方だけで実現できます。一方、本記事で扱う定期実行は「人が見ていない」という条件が付くため、設計の前提が変わります。この違いを踏まえずにいきなりスケジューラへ載せると、失敗に気づかないまま数週間放置される、という状態になりがちです。
定期実行にする前に決める3つのこと
1. どこまでをAIに判断させるか
定期実行するものは、毎回同じ入力に対して同じ出力が返る必要があります。数字が日によって揺れると、受け取る側が信用しなくなるためです。
当社の切り分けはこうしています。
| 工程 | 担当 | 理由 |
|---|---|---|
| 手順の設計・初回の作り込み | AI | ここは試行錯誤の場。AIが最も速い |
| 毎日の集計・閾値判定 | 固定したスクリプト | 同じ答えが返る必要がある |
| 例外が出たときの原因調査 | AI(人が呼ぶ) | 都度違うので固定できない |
つまり、Claude Code は「毎朝走る処理そのもの」ではなく、「毎朝走る処理を作る道具」として使うのが基本形です。判定ロジックまでAI任せにしたまま無人運転に入れると、出力のブレを誰も検知できません。
2. 失敗したときに誰がどう気づくか
無人実行で最も多い事故は、エラーが出ることではなく、エラーが出たまま誰も見ていないことです。
最低限これだけは決めてください。
- 成功したときも1行だけ通知する(沈黙=正常、にしない)
- 失敗したら別チャネルで通知する(メール・チャットなど)
- 実行ログを日付つきで残す
「成功時も通知する」は一見うるさいのですが、通知が来ない日=ジョブ自体が起動していない日だと分かるため、結果的に手間が減ります。
3. 入力ファイルが揃っていない日をどうするか
これが実務で一番引っかかります。モールからのCSVダウンロードが遅れる、ファイル名の日付がずれる、月初だけ形式が違う——入力が無い日に、古いファイルで計算してしまうのが最悪のパターンです。
処理の先頭で「今日の日付のファイルがあるか」を確認し、無ければ計算せずに終了して通知する。これを入れるかどうかで、出力の信頼性が変わります。
実際の手順(当社の在庫チェックの例)
当社では、モール別の受注CSVから在庫日数を計算し、閾値を下回ったSKUを一覧にする処理を平日毎朝走らせています。組み立ての順番は次の通りです。
ステップ1:まず手で1回、最後まで通す
いきなり自動化しません。Claude Code に対話で指示を出し、求める出力が実際に得られるところまで手で確認します。ここで詰まる点(文字コード・列名の違いなど)は、この段階で潰しておきます。よくある症状はエラー・文字化けの直し方にまとめました。
ステップ2:手順をスクリプトとして固定させる
通ったら、その手順を再実行できる形に落とすよう頼みます。
いま行った集計を、毎日実行できるスクリプトにしてください。入力ファイルのパスは引数で受け取り、当日のファイルが無い場合はエラー終了させてください。
前提条件はCLAUDE.mdに書いておくと、作り直すたびに説明せずに済みます。売上CSVの集計そのものの進め方は受注CSVの集計をご覧ください。
ステップ3:手動で3回動かす
この工程を飛ばさないでください。 スケジューラに載せる前に、違う日のファイルで3回動かします。1回目は成功しても、2回目に列が増えていた、3回目にファイルが無かった、というのが普通に起きます。
ステップ4:スケジューラに登録する
ここまで来て初めて、時刻起動の仕組みに載せます。macOS や Linux であれば cron、Windows ならタスクスケジューラが標準の選択肢です。サーバー側で動かす場合も考え方は同じです。
Claude Code 自体を無人で呼び出す場合は、対話モードではなく、指示を引数として渡して結果を標準出力に返す実行方法を使います。対話モードのまま登録すると、入力待ちで止まったまま気づかれません。また、無人実行では権限の確認プロンプトの扱いを決めておく必要があります。このあたりのオプションは更新が速いため、実行前に公式ドキュメントで現行の仕様を確認してください。
ステップ5:1週間、結果を毎日目で見る
自動化した直後の1週間は、出力を毎朝人が確認します。ここで検算しておかないと、間違った数字が自動で配られ続けることになります。当社では1SKUだけ電卓で突き合わせる確認を、この期間は毎日行っています。
つまずきやすい点
| 症状 | 原因として多いもの |
|---|---|
| 手では動くのに、スケジューラからだと動かない | 実行時の作業ディレクトリと環境変数が対話時と違う |
| 途中で止まったまま終わらない | 対話モードのまま登録している/確認プロンプト待ち |
| ある日から急に全件が空になる | 入力ファイルの列名がモール側で変更された |
| 認証エラーで止まる | トークンの期限切れ。期限と更新手順を運用メモに書いておく |
| 二重に実行される | 前回の処理が終わる前に次が起動している |
いずれも、成功・失敗の通知とログが出ていれば当日中に気づけるものです。逆に通知が無いと、月末の集計時に「先週から数字が更新されていない」と発覚します。
どこまで自動化すべきか
正直に書くと、すべての業務を定期実行に載せる必要はありません。 判断の目安は次の3点です。
- 頻度 — 週1回未満なら、手で動かしたほうが管理コストが低い
- 手順の安定度 — 毎月ルールが変わる業務は、固定した瞬間に古くなる
- 止まったときの影響 — 止まっても誰も困らない処理は、自動化しても価値が出にくい
当社が毎朝の在庫チェックを自動化しているのは、この3つがすべて当てはまるからです。逆に、月次の販売分析はいまも手で回しています。見る観点が毎月変わるためです。
まとめ
Claude Code の定期実行は、「毎朝走る処理をAIに作らせ、走らせるのは固定したスクリプト」という形が扱いやすい構成です。載せる前に、AIに判断させる範囲・失敗時の通知・入力欠損時の挙動の3点を決めてください。手順としては、手で1回通す → スクリプト化 → 手動で3回 → スケジューラ登録 → 1週間の目視確認、の順です。実行オプションの仕様は変更が入ることがあるため、公式ドキュメントで現行の内容をご確認ください。
当社では、この記事で触れた受注CSVの集計から在庫判定までを実際に動かしている様子を、工場・物流・EC の技術マップ上で動画にして公開しています。「自社のどの業務が自動化できるのか」を見て確かめたい方は、Arke Gallery(無料)をご覧ください。
自前でスクリプトを組んで運用するところまで手が回らない場合は、当社が開発・運営する EC在庫最適化システム S-wallet が、600SKU規模の在庫日数の判定から発注提案までを毎日自動で行う仕組みとして動いています。