← 教材一覧へ戻る

脱・属人プログラム / 学習ノート

定期実行の選び方

「毎日・毎回、自動でやってほしい」を叶える方法は1つではありません。OS標準のタイマーからクラウドのAI、GitHubの実行環境まで、どれを使えばいいかを1枚に整理しました。

まず結論(軸は「どこで動くか」)

定期実行は大きく4種類。選ぶ軸はシンプルで、①AIの判断が要るか②パソコンを切っても動かしたいか③PCの中のファイルを使うか——この3つで決まります。

※ ここは「どの道具を使うか」の話です。そもそも自分のPCとクラウドのどちらに置くべきか(権限とリスクの観点からの判断)は → ローカルとクラウドの適材適所

※「定期実行」=決めた時間・間隔になったら、自動で処理が動くこと。

4つの選択肢 早見表

やりたいこと 使うもの PCを切ってもOK? PC内のファイル 最短間隔 ひとこと
判断のいらない反復
(メモのバックアップ・同期・掃除)
OSのタスクスケジューラ
Windows標準/Mac=launchd
PCが必要 自由 AIを起動しない=無料で一番確実。今のメモ自動バックアップはこれ。
作業中にサッと見張る
(動画の書き出し終わった?)
/loop
Claude Codeのコマンド
×(開いた画面の間だけ) 1分 その場でAIを繰り返し動かす。7日で自動終了。自分のPCでの試運転向き。
PC内のファイルを使う定期AI処理
(毎朝ローカルの資料を要約)
Desktop定期タスク
Claude Codeデスクトップアプリ
×(PCが起きている間だけ) 1分 AIがPCの中のファイルやツールにアクセスできるのが強み。
PCを切っても回したい定期AI処理
(夜間PRレビュー・朝の要約をSlackへ)
/schedule(routine)
Anthropicのクラウドで実行
○(クラウド) ✗(クラウドで動く) 1時間 PC不要。時間・API・GitHubイベントで起動。Pro以上+Claude Code on webが必要(※機能拡充中)。

「PC内のファイル」=あなたのパソコンに保存されているファイル。クラウド実行の /schedule は、あなたのPCではなくクラウド上の環境で動くので、PCの中のファイルには手が届きません。

どれで作る? 判断フロー

上から順に答えるだけで、4つのうちどれを使えばいいかが1つに決まります。

質問 1AIの判断は要らない? バックアップ・同期・掃除など、毎回まったく同じ処理
はい
パソコン標準のタスクスケジューラ AIを起動しないので無料。PC内のファイルもそのまま使える
いいえ ↓ 次の質問へ
質問 2今の作業中だけ、一時的に見張りたい? 「動画の書き出し終わった?」など、いま動かしている処理
はい
/loop 開いている画面の中で、例えば5分おきに繰り返す。閉じると止まる
いいえ(毎日など、繰り返し動かしたい) ↓
質問 3パソコンの中のファイルを使う? PC内の資料を読む・ファイルを作る など
はい
Desktop 定期タスク 毎朝8時など決めた時刻にAIが自動起動。PCはつけたままが条件
いいえ(PC内のファイルは使わない) ↓
/schedule(クラウドで実行) 毎朝8時などで予約。PCを切っても動き、Notionなども操作できる

覚え方は「判断がいらない反復=OS/頭を使う反復=AI」。そのうえでAI側を、自分のPCの中で動かすか(/loop・Desktop定期タスク)/クラウドで動かすか(/schedule)で選びます。

質問3が一番の分かれ道(ここだけトレードオフ)

つい「PCを切っても動かしたいか」で選びたくなりますが、それだと全員が「はい」になって /schedule に流れてしまいます。実際に見るべきはPCの中のファイルを使うかどうか。使うならPCはつけたままが条件になり、切っても動かしたいならPCの中のファイルは諦める——この2つは同時に成立しません。先にどちらを取るか決めてしまうと迷いません。
なお質問1で「はい」に進んだ場合(タスクスケジューラ)も、PCの中のファイルはそのまま使えます。質問3はあくまで「AIに毎回考えさせる処理」の中での分かれ道です。

まぎらわしい:「終わるまで直し続けて」は /loop ではなく /goal

/loop は「時間が来たら次を始める」仕組みです(5分おきに様子を見に行く、など)。これに対し/goal は「前のターンが終わったら次を始め、完了条件が満たされたら自分で止まる」コマンドで、時間ではなく"終わり方"で回します。「テストが全部通るまで直し続けて」のような使い方はこちらです。公式ドキュメントも「一定間隔ではなく条件が満たされるまで動かし続けたい場合は /goal を見よ」と案内しています。定期実行の話とは別枠なので、上の4つには入れていません。

/loop は「ずっと動き続ける」ものではない(止まる4つのタイミング)

/loop はその会話の中だけで生きる仕組みです。次のどれかで止まります。
Escを押す(次の待機中に押すとその場で終了)/② 画面・ターミナルを閉じる(Claude Codeが起動していて手が空いているときだけ発火するため)/③ 新しい会話を始める(その会話のタスクは全部消える)/④ 7日経過(最後に1回だけ動いてから、自分を削除する)。
④の7日は「作りっぱなしのループが延々動き続けるのを防ぐ」ために意図的に置かれた上限です。うっかり閉じてしまった場合は claude --resume で会話に戻れば、7日以内のものは復活します。本当にずっと回したいなら /schedule か Desktop定期タスクの出番、という住み分けになっています。

補足:routine(/schedule)の"届く範囲"を正しく理解する

「クラウドで動く=自分のNotionやカレンダーには触れない」と思われがちですが、そうではありません。自分のPCの中のファイルには届かない一方で、claude.ai の連携(コネクタ)=Notion・Googleカレンダー・Slack など「クラウド上のサービス」は読み書きできます。だから「毎朝カレンダーとNotionを見て、その日の段取りをNotionに書き込む」ような仕組みが、PCを切っていても回せます。

つまずきポイント①:書き込みは「✓許可」が必要

連携の書き込み系ツール(例:Notionの「Update page=ページ更新」)は、コネクタ設定で ✓許可(自動) にしておかないと、routineでは使えません。routineには実行中に「許可しますか?」と聞ける相手がいないため、✋確認🚫ブロックのままの道具は自動で外れます(=読み取りは動くのに、書き込みだけ失敗する)。必要な書き込みツールだけ✓にし、Create/Delete系はブロックのまま残すと最小権限で安全です。

つまずきポイント②:緑の✅=「成功」ではない

routineの実行結果が緑のチェック✅でも、依頼が成功したとは限りません(=インフラ的に落ちなかっただけ)。上の書き込み権限が抜けていると、"正常終了"の見た目のまま書き込みだけされていない、が起こります。うまく動かないときは実行(run)を開いて、ログの中身を最後まで確認する習慣をつけましょう。

もう一つの選択肢:n8n(アプリ連携が主役のとき)

上の4つとは別ジャンルとして、n8n(エヌ・エイト・エヌ)という自動化ツールもあります。これは「メール取得 → スプシ照合 → LINE通知」のように、たくさんのアプリを線でつないで動かすのが得意。途中にAIのステップを挟むこともできます。判断はAIに任せず“決めたレールの上”を走るタイプで、サーバー(またはクラウド)で動くのでPCを閉じても止まりません

/schedule と n8n の使い分け

分かれ目は「AIが本体か・連携が本体か」。要約や判断などAIの仕事が主役なら → /schedule(既存スキルをそのまま予約)。複数アプリのつなぎ込みが主役(RSS→選別→複数の宛先へ 等)なら → n8n。「n8n=AIを使わない」ではなく、手順を人が決めるか・AIがその場で決めるかが本当の違いです。

もう一つの選択肢:GitHub Actions(コードと重い処理が主役のとき)

n8nは万能に見えて、動画変換(FFmpeg)のような"重い処理"は動かせません。そこを無料で埋めるのが GitHub Actions。ひとことで言うと——コードを預けてある場所(GitHub)が、そのまま実行場所になる仕組みです。

GitHubは「保管庫」だと思われがちですが、実は同じ建物に作業場が最初から付いていて、追加契約なしで使えます。サーバーを借りる必要も、パソコンを起動しておく必要もありません。

毎朝7時に、実際に何が起きているか

① 時間になると、GitHubがまっさらなパソコンを1台その場で用意する(毎回新品)→ ② そこにリポジトリの中身をまるごとコピー → ③ 置いてある手順書(.github/workflows/◯◯.yml)を上から順に実行 → ④ 終わったらそのパソコンは消える。ログだけが残ります。
課金の単位は「そのパソコンを借りていた分数」。だからプライベートなリポジトリで月2,000分まで無料(GitHub Freeプラン)。1回3分の処理を毎日回しても月90分で、枠にはかなり余裕があります。

VPSとの違い(なぜ「置き場所が実行場所」だと嬉しいのか)

VPSは「倉庫(手元PC)」と「作業場(借りたサーバー)」が別の場所にあるので、コードを直すたびに両方を合わせる作業が発生します。GitHub Actionsは同じ建物なので、pushした瞬間に実行できる状態になっている。これが「置き場所が実行場所を兼ねる」の意味です。

⚠️ 「毎回まっさら」は、安全面では"両刃"

実行環境が使い捨てなので、そこが汚染されても次回は新品に戻るのは強みです。一方で毎回インストールし直す=毎回そのとき最新のものを取りに行くため、汚染されたバージョンをうっかり拾う可能性は手元PCより高くなります。対策はバージョンを固定すること——package-lock.json をリポジトリに入れて npm ci で入れる、使う部品(action)はバージョンを指定する。
もう一つ、投稿用の鍵はGitHub側に預けます。つまり守るべき対象がパソコンからGitHubアカウントに移ります。2要素認証は必須と考えてください。

⚠️ 作る前に、必ず「最新の公式」を確認

Claude Codeは進化が速く、上の機能名や条件も変わります。AIの知識は少し前で止まっているので、仕組みを作る/直す前に、AIに最新の公式ドキュメントを確認させるのが鉄則です(調べ役=claude-code-guide/公式の全ページ索引=llms.txt)。「その機能は無い」を鵜呑みにしないこと。

用語ミニ辞典

定期実行(cron)クーロン
「毎朝9時に」「5分ごとに」のように、決めた時間・間隔で自動的に処理を動かす仕組みの総称。
OSのタスクスケジューラ
パソコンに元から付いている"予約実行"機能(Windows=タスクスケジューラ/Mac=launchd)。AIを使わず、決まったスクリプトを走らせる。無料で確実。
/loopループ
Claude Codeのコマンド。開いている画面の中で、AIに同じ指示を一定間隔で繰り返させる。画面を閉じると止まり、7日で自動終了する。間隔を書かずに使うと、AIが次までの待ち時間を毎回決める(作業が終わったと判断すれば自分で止まることもある)。
/goalゴール
Claude Codeのコマンド。完了条件を伝えると、条件が満たされるまでAIがターンを回し続ける。時間で動く /loop とは別物で、「〇〇が終わるまで直し続けて」はこちら。定期実行ではないので上の早見表には含まれない。
Desktop定期タスク
Claude Codeのデスクトップアプリの機能。決めた時刻にAIを自動で起動し、PCの中のファイルを使った処理をさせる。PCが起きている間だけ動く。
/schedule(routine)スケジュール/ルーティン
Claude Codeのコマンド。Anthropicのクラウドで定期実行を予約する。PCを切っても動くが、PCの中のファイルは触れない。
n8nエヌ・エイト・エヌ
アプリ同士の連携を線でつないで組み立てる自動化ツール。途中にAIを挟める。連携の数が多い定型処理に向く。サーバー/クラウドで動くのでPCを閉じても止まらない。
GitHub Actionsギットハブ・アクションズ
コードの保管場所であるGitHubに最初から付いている実行機能。決めた時刻やpushをきっかけに、まっさらなパソコンを用意して手順書どおりに処理を走らせ、終わったら消す。AIを起動しないのでトークン課金がなく、プライベートなリポジトリで月2,000分まで無料。動画変換のような重い処理も動く。
YAMLヤムル
設定を書くための、字下げで構造を表すファイル形式。GitHub Actionsの手順書(.github/workflows/)はこの形式で書く。

この教材の元ネタ(もっと詳しく)