AIに「毎朝の仕事」を渡す
Claude Codeのルーティン(定期実行)の作り方
AIエージェントの使い方として、いちばん費用対効果が高いのは何か。コードを書かせることでも、資料を作らせることでもありませんでした。
毎朝・毎週、必ず発生する決まった作業を、まるごと渡してしまうことです。一回あたり15分の作業でも、毎朝やれば年間で90時間を超えます。しかもこの手の作業は「頭を使わないのに、やらないと詰む」種類のもので、いちばん人間の集中力を削ります。
Claude Codeには、この「毎朝の仕事」を任せるためのルーティン(スケジュールタスク)という仕組みがあります。私たちの手元では現在6本が動いていて、朝起きるとすでに終わっています。
ただし、最初からうまくいったわけではありません。設定したのに何週間も動いていなかったルーティンが1本ありました。しかもエラーは出ていない。ただ静かに、何も起きていなかった。原因はAIでもプログラムでもなく、もっと間抜けなところにありました。
この記事では、実際に動いているものと、その失敗の両方を書きます。
ルーティンとは何か ―「セッションの外」で動くAI
Claude Codeで繰り返しをやらせる方法はいくつかありますが、決定的な違いはセッションの中か、外かです。
| 動く場所 | 画面の前にいる必要 | 向いている仕事 | |
|---|---|---|---|
| チャットで頼む | セッションの中 | 必要 | その場の作業 |
| ループ実行 | セッションの中 | 開いておく必要あり | 状況が変わるのを待つ作業 |
| ルーティン | セッションの外 | 不要 | 毎朝・毎週の定型作業 |
チャットもループも、対話しているセッションが閉じれば終わります。ルーティンだけが、あなたが何もしていない時間に、勝手に始まって勝手に終わる。ここが本質的な差です。
指定はcron形式(分 時 日 月 曜日)で行います。
- 0 9 * * * → 毎日9時
- 0 13 * * 1,3,5 → 月・水・金の13時
- 0 8 * * 0,2,4 → 日・火・木の8時
「毎日9時」と日本語で頼めば、この式は自動で組み立てられます。cronの記法を覚える必要はありません。
実際に動いている6本
抽象論では伝わらないので、現在うちで稼働しているものを挙げます。
- 毎朝9時:AI関連ニュースを8本集め、日本語2行に要約してSlackへ投稿
- 毎朝10時:講座の予約状況を確認し、告知文を作ってSNSへ投稿
- 毎朝10時:3日先までの開催予定をチェックし、申込ゼロの回を整理してカレンダーと同期
- 日・火・木の8時:翌営業日ぶんの見込み客リストと連絡文面を用意
- 月・水・金の13時:前日用意した分を送信
- 毎日22時:自社サービスのSNSアカウントに、キャラクターの日常投稿を1本
見ていただきたいのは、4番目と5番目が分かれているところです。「調べて用意する」と「実際に外へ出す」を別の日・別の時刻に切り分けています。理由は後述しますが、これがルーティン設計の勘所です。
ルーティンの中身は「プロンプト1枚」
構えなくて大丈夫です。ルーティンの実体は、指示書が1ファイルあるだけです。冒頭に名前と説明、その下に「何をどうしてほしいか」を日本語で書く。それだけ。実際に動いているものは、こんな構成になっています。
- 1. 集める:どのサイトから、どう取ってくるか
- 2. 加工する:何行で要約するか、口調はどうするか
- 3. 組み立てる:出力の体裁(ここがいちばん細かい)
- 4. 出す:どのコマンドで、どこへ投稿するか
- 成功条件:どうなっていれば成功か
プログラムではなく、新人に渡す業務マニュアルを書く感覚に近い。実際、うまく動くルーティンほど、書いてあることが業務マニュアルそのものです。
作り方は3ステップ ― 手順書を先に書かない
「そんな指示書、書くのが大変なのでは」と思われるかもしれません。実際は逆で、手順書はAIに書かせます。
- 1. 一度、手作業で一緒に通す:いつもの作業を、AIに指示を出しながら最後までやってみる
- 2. 「これをルーティンにして」と言う:通し終えたら、その一言で十分です。AIが自分の作業をふりかえって手順書に起こします
- 3. 走らせる時刻を決める:「毎朝10時」「平日の13時」。あとは放っておくだけ
コツは1にあります。最初から完璧な手順書を書こうとしないこと。一度やらせて、詰まったところだけ追記する。この往復を2〜3回すれば、実用に耐えるものになります。
実例:講座の集客チェックを毎朝まるごと渡した
抽象論だと伝わりにくいので、私自身が実際に手放した仕事を書きます。オンライン講座を運営していると、毎朝こういう作業が発生します。
- 受講予約の確認:2つの申込サイトを開き、直近1週間の日程を全部見て、予約が何人入っているかを数える
- 要対応の切り分け:予約ゼロの日程を洗い出す。開催前日でゼロなら、中止するかどうかを判断する
- 告知文の作成:集客が必要な日程について、SNS用の文面をそれぞれ用意する
1回あたり20〜30分。頭は使わないが、やらないと確実に取りこぼす類の作業です。これを一度AIと一緒に通し、「ルーティンにして」と伝えました。今は毎朝10時に終わっていて、私は結果を読むだけです。
一度教えた仕事は、二度と自分でやらない
効くルーティンの書き方・5つの原則
1. 「成功条件」を最後に書く
これが最大のコツです。指示だけ書いて終わりにせず、「どうなっていれば成功か」を明記する。
成功条件:Slackに8通届き、日本語が文字化けしておらず、各通にURLがそのまま見えていて、装飾記号が混ざっていないこと
これがあると、AIは作業後に自分で答え合わせをします。無いと、「それらしいものを出して終了」になります。人に仕事を頼むときとまったく同じです。
2. 失敗したときの振る舞いを決めておく
自動リトライは一見親切ですが、無人で動く処理では同じ失敗を静かに繰り返すだけになりがちです。「1回落ちたら止まって、エラーをそのまま報告」のほうが、事故が浅くて済みます。どこまで進んで止まったかも一緒に報告させます。
3. 環境の「クセ」を指示書に書き込む
一度ハマったトラブルは、必ず指示書に残します。「このサイトはアクセスが弾かれるので使わない」「日本語をこの渡し方をすると文字化けするので、必ずファイル経由で渡すこと」といった具合です。
無人実行では、あなたが横から補正できません。過去の失敗を書き残しておくことが、そのまま品質になります。ルーティンは「育てるもの」で、書きっぱなしにするものではありません。
4. 前回との重複を防ぐ仕組みを入れる
毎日動くものは、放っておくと同じ内容を出し続けます。うちのニュース投稿では、投稿済みURLを記録したファイルを持たせ、直近7日と重複するものは選ばないようにしています。古い記録は自動で捨てます。
「毎日動く」と「毎日同じものが届く」は、紙一重です。
5. 承認が必要な操作を、ど真ん中に置かない
いちばん重要な原則です。無人で動いている最中に人間の承認を求める処理が挟まると、そこで止まります。あなたが気づくのは何時間も後です。
先ほどの4番目と5番目が分かれている理由がこれです。「調べる・下書きする」までは完全自動でよい。しかし「外へ送る」は性質が違う。公開・送信・購入・削除の4つは、ルーティンの中で完結させず、人間が最後にひと押しする形にしておくのが安全です。
どうしても承認が要るなら、承認待ちになった瞬間にスマホへ通知を飛ばすこと。これを入れるだけで、「気づいたら丸一日止まっていた」が消えます。
事例:朝に置いたルーティンが、静かに死んでいた話
冒頭で触れた「動いていなかった1本」の話をします。ルーティンで最も多いトラブルであり、原因はAIの側にはありません。
何が起きたか
営業まわりの準備を自動化しようと、朝8時にルーティンを組みました。設定は正しく、手で走らせればきちんと動く。にもかかわらず、成果物が出てこない日が続きました。エラー通知は来ません。失敗したのではなく、そもそも始まっていなかったからです。
- 朝8時、PCが起動していない。そもそも実行環境が生きていない
- 起動後に遅延実行される。間に合わなかったぶんは次にアプリを立ち上げたときに動く。完全に消えるわけではなく「動く日もある」から、余計に気づきにくい
- 遅れて動いた結果、承認待ちで止まる。その処理には外部への送信が含まれていた。無人前提で組んだのに、途中で人間の許可を求めて停止する
- 止まったことが誰にも通知されない。気づくのは何時間も後、あるいは翌日
つまり、時刻の問題と、承認の問題と、可視化の問題が三重に重なっていたわけです。どれか1つだけなら気づけたはずですが、重なると「なんとなく動いていない」という状態になり、原因の切り分けが難しくなります。
どう直したか
- 実行時刻を朝8時から13時へ移した(PCが確実に起きている時間帯)
- 承認待ちになったらスマホに通知が飛ぶようにした
これで安定しました。現在は月・水・金の13時に動いており、直近も予定どおり13時台に実行された記録が残っています。プロンプトの中身は1文字も変えていません。時刻と通知を直しただけです。
教訓:AIより先に、時計と電源を疑う
ルーティンには「クラウド側で動くので端末が落ちていても実行されるタイプ」と、「アプリが起動している間だけ発火するタイプ」があります。後者を使っているなら、時刻を決める基準はひとつしかありません。
その時刻、実行環境は確実に起きているか?
朝いちばんに結果が欲しい気持ちは分かります。ですが、確実に動く13時のほうが、動かない8時より価値があります。情報収集系なら朝でも実害は小さいですが、送信や登録など「その日のうちに終わっていないと困る」処理は、自分が確実にPCの前にいる時間帯に置くのが正解でした。
確認のしかた
ルーティンには「最後にいつ動いたか」「次にいつ動くか」の記録が残ります。「動いてない気がする」と思ったら、まずこの最終実行日時を見てください。
- 最終実行日時が古い → 時刻の問題(環境が起きていない)
- 最終実行日時は新しいのに成果が無い → 中身の問題(承認待ち・エラー)
この2つを切り分けるだけで、原因の当たりはほぼつきます。逆にこれを見ずにプロンプトを直しはじめると、うちがやったように何週間も溶かします。
なお、実行時刻には数分のゆらぎ(ジッター)が入る作りになっています。9時ちょうどに設定しても9時5分に動くのは正常な挙動です。分単位の精密さが要る用途には向きません。
まとめ ― 自動化すべきは「賢い仕事」ではない
AIの自動化というと、難しい判断を任せる方向を想像しがちです。でも実際に効くのは逆でした。判断は要らないが、毎日やらないと詰む作業。情報収集、状況確認、定型連絡、下書きの用意。この層をルーティンに渡すと、朝いちばんの30分が丸ごと空きます。
そして、実際に運用してみて分かったのは、難しいのはAIへの指示ではなかったということです。プロンプトは一度書けば、あとはそれなりに動きます。躓いたのは全部その手前——その時刻にPCは起きているか。途中で人間の許可を求めて止まらないか。止まったことに気づけるか。自動化の成否は、この3つでほぼ決まりました。
- 毎朝あなたが必ずやっている作業をひとつ選ぶ
- 手順を日本語で書き出し、最後に「どうなっていれば成功か」を書く
- 自分が確実にPCの前にいる時間帯を、実行時刻に指定する
最初の1本は、失敗しても誰も困らないもの(情報収集や下書きの用意)から。送信や公開が絡むものは、2本目以降で十分です。
そして数日後に必ず、最終実行日時を見に行ってください。静かに死んでいるかどうかは、そこにしか出ていません。