
Claude Codeの定期実行で毎朝バグを1件自動で直す
目次
toneの開発チームでは毎朝6時にClaude Codeがバグを1件直し、PRにしてくれています。人がやるのは直してほしいタスクにタグを付けることと、できたPRをレビューすることだけです。
この記事では、Claude Codeの定期実行でこの仕組みを作る手順を、実際に使っているプロンプトとあわせて紹介します。
毎朝6時にClaudeがバグを1件直している
直したい不具合や小さな改善は、気づいたときにtoneのタスクにしています。ただ数が多く、すべてにすぐには手を付けられません。
一方で簡単なものなら、要件を書き出せば最近のAIモデルは実装をほとんど間違えないと感じています。そこでAIに任せてよいタスクに「AIRUN」というタグを付けておき、毎朝Claude Codeに1件ずつ片付けてもらうことにしました。

人はタグを付けてPRをレビューするだけ。選ぶ・実装する・報告するはClaude Codeが進める
流れは次のとおりです。
- 人がAIに任せたいタスクにAIRUNタグを付ける
- 毎朝6時にClaude Codeがクラウドで起動する
- AIRUNタグのタスクから1件を選び、ステータスを 「進行中」 にする
- 実装してテストし、PRを作る
- PRをタスクに紐づけ、変更の概要をコメントする
- 人がPRをレビューしてマージする
Claude Codeの定期実行とは
Claude Codeには決めた時刻にClaudeを起動して仕事をさせる機能があります。以前は「ルーティン(Routines)」と呼ばれていて、いまの公式の名前は「スケジュールタスク(Scheduled tasks)」です。日本語の画面では「スケジュール済みタスク」と表示されます。
1つのスケジュールタスクに次のものをまとめて保存しておきます。
- プロンプト:毎回やってほしいこと
- リポジトリ:作業するGitHubのリポジトリ。プロンプトで指定しなければデフォルトブランチから作業を始める
- 環境:ネットワークの許可範囲や環境変数
- コネクタ:MCPでつなぐ外部のサービス
- トリガー:毎日・毎週などのスケジュール
スケジュールタスクはAnthropicのクラウドで動くので、パソコンを閉じていても実行されます。ここが手元で動かすClaude Codeとの違いです。手元の /loop やデスクトップアプリの定期タスクは、パソコンが起動していないと動きません。
2026年11月12日時点ではリサーチプレビューの機能で、Pro・Max・Ultra・Team・Enterpriseのプランで使えます。
仕組みの全体像
今回の仕組みでは各部品に次の役割を持たせています。
| 部品 | 役割 |
|---|---|
| tone | AIに任せるタスクを置く。AIRUNタグで目印を付ける |
| toneのコネクタ(MCP) | Claudeがタスクを探し、ステータスとコメントを書き込む |
| GitHubのリポジトリ | Claudeが実装し、ブランチを切ってPRを作る |
| プロンプト | タスクの選び方、実装の進め方、報告のしかたを決める |
タスク管理ツールはMCPでタスクを読み書きできれば、tone以外でも同じ仕組みを作れます。
設定手順
1. 任せるタスクに付けるタグを決める
まずAIに任せてよいタスクの目印になるタグを決めます。私たちは「AIRUN」にしました。ほかのタグと紛れない名前なら何でもかまいません。

AIRUNタグを付けたタスクが毎朝の候補になる
2. claude.aiにtoneのコネクタを追加する
スケジュールタスクはクラウドで動くので、手元の claude mcp add で追加したMCPサーバーはコネクタの一覧に出てきません。claude.aiのコネクタの設定(claude.ai/customize/connectors)でカスタムコネクタとしてtoneを追加します。
- URL:
https://api.tone-task.app/mcp
追加するとtoneのログイン画面が開くので、連携するワークスペースを選んで許可します。toneのMCPでできることは Claude Codeのタスク管理をMCPを使ってチームで共有する で紹介しているので、よければ読んでみてください。
3. スケジュールタスクを作る
claude.ai/code/routines を開いて新しいスケジュールタスクを作ります。toneの開発チームでは次のように設定しています。
| 項目 | 設定 |
|---|---|
| 名前 | 毎朝の不具合/AIRUN タスク自動実装 |
| モデル | Claude Opus 5.5 |
| リポジトリ | toneのリポジトリ |
| コネクタ | tone |
| トリガー | 毎日6:00(日本時間) |

スケジュールタスクの画面。指示・繰り返し・実行環境がまとまっている
接続済みのコネクタは既定ですべてスケジュールタスクに含まれます。仕事に使わないものは外しておくと、Claudeが関係のないサービスを使う心配がなくなります。
画面で入力するほかに、Claude Codeとのチャットで作ってもらうこともできます。CLIで /schedule を使って「毎朝6時にAIRUNタグのタスクを1件実装してPRにするスケジュールタスクを作って」のように頼むと、プロンプトや設定を考えて作ってくれます。toneのスケジュールタスクもClaude Codeに頼んで作りました。
4. プロンプトを書く
プロンプトには、タスクの選び方から報告までの手順を書きます。実際に使っているものです。toneのリポジトリでしか使わないファイル名・コマンド・ツール名は省き、一般的な書き方にしています。
あなたは tone(タスク管理SaaS)リポジトリの定期実行エージェントです。
毎朝1回起動し、tone のタスクを1件だけ選んで実装し、PR を作るところまで進めます。
応答・PR・コメントはすべて日本語で書いてください。
## 1. タスクを選ぶ
- tone MCP(claude.ai の tone コネクタ)を使う。まずリポジトリにある tone の使い方のルールを読む。
- タグ「AIRUN」がついたタスクを取得する。
- 次のタスクは除外する: 完了・クローズ済み/すでに進行中/GitHub PR が紐づいている/
担当者が人間でいま作業中と読み取れるもの。
- 残りから1件だけ選ぶ。優先度が高いもの → 期限が近いもの → 作成が古いもの の順で選ぶ。
説明が足りず何を直すべきか判断できないタスクは飛ばし、そのタスクに
「自動実装に必要な情報(再現手順・期待する挙動など)が足りないので見送りました」と
コメントして次の候補へ進む。
- 対象が1件もなければ、何もせず「対象タスクなし」と報告して終了する。
## 2. 着手を記録する
- 選んだタスクのステータスを進行中にし、「定期実行エージェントが着手しました」と
コメントする(二重着手を防ぐため)。
## 3. 実装する
- リポジトリの CLAUDE.md と、作業領域に応じたルールを読む。
- 実装 → テスト → PR 作成 → コードレビュー → 指摘の修正 → 可能ならブラウザで
動作確認してスクショを PR 本文に貼る、まで進める。
- main へ直接 push しない。必ずブランチを切って PR にする。マージはしない。
- 実装するのは選んだ1件だけ。スコープを広げない。
## 4. 報告する
- PR をタスクに紐づけ、タスクに PR の URL と変更概要をコメントする。
ステータスはレビュー待ち相当にする(なければ進行中のまま)。
- 途中で実装が難しいと判断した場合は PR を作らず、タスクに調査結果と詰まった点を
コメントし、ステータスを元に戻して終了する。
- 最後に、選んだタスク・PR の URL・結果を短くまとめて出力する。
それぞれの部分には次のような狙いがあります。
- 1件だけ選ぶ:1回の実行で複数のタスクに手を広げると、レビューが重くなります。1日1件なら朝のうちに確認できます。
- 選ぶ順番を決めておく:優先度・期限・作成日の順にしておけば、人はtoneで優先度を変えるだけで翌朝に何をやってもらうかを変えられます。
- 情報が足りなければ見送る:何を直すか分からないまま実装させると見当違いのPRが届きます。見送った理由がタスクに残るので、説明を書き足せば翌朝の候補に戻せます。
- 着手をタスクに書く:ステータスを 「進行中」 にしてから作業するので、人やほかのエージェントが同じタスクに手を付けてしまうことを防げます。
- 動作確認の結果をPRに貼る:どう確かめたかとスクリーンショットがPRにあれば、コードを読む前に結果をつかめて確認が楽になります。動きのある変更なら動画を貼ってもらうのもよい方法です。
- マージはしない:PRを作るところまでを任せ、マージするかは人が決めます。
- 難しければ途中でやめてよい:無理に完成させるより、詰まった点をタスクに残してもらうほうが人は引き継ぎやすくなります。
5. 「今すぐ実行」で試す
保存したら翌朝を待たずに「今すぐ実行」で1回動かします。実行の記録(トランスクリプト)を開き、タスクを選ぶところから報告まで思ったとおりに進んだかを確かめます。
履歴で実行が成功になっていても、エラーなく終わったことを表すだけです。プロンプトに書いた作業が最後まで終わったかどうかは分かりません。最初の何回かは記録の中身まで読むのがおすすめです。
実際に動いた例
ある朝Claudeが選んだのは「ブログ、右にある目次が自動でスクロールに追従するようにする」というタスクでした。説明は空で、タイトル1行だけのタスクです。
Claudeはタスクを 「進行中」 にしてコメントを書き、実装を始めました。PRを作ったあとはコードレビューも行い、指摘された7件を直しています。最後にタスクへPRのURLと変更の概要をコメントしました。

着手とPRの報告がタスクのアクティビティに残る(開発環境で再現した画面です)
PRの本文には、変更内容と動作確認の結果がまとまっていました。動作確認では見出しが40個あるページを作り、本文を読み進めると目次がついてくるかを確かめてスクリーンショットをPRに貼っています。

Claudeが動作確認のために撮り、PRに貼ったスクリーンショット
動かすときのコツと注意点
環境変数とセットアップスクリプトは動かしながら整える
テストやビルドに環境変数が要るなら、スケジュールタスクが使う環境に設定します。依存関係のインストールのように作業の前に毎回済ませたい準備は、セットアップスクリプトに書いておけます。
何が足りないかは実際に動かしてみると分かります。失敗したときはClaudeが原因と直し方を提案してくれるので、それに沿って環境を直せば次の実行から通るようになります。
外部のサービスは接続先を許可する
クラウドの環境では、既定でネットワークの接続先が許可されたものに限られています。動作確認で外部のサービスに接続したい場合は、環境の設定で接続先のドメインを許可します。
cronで時刻を書くときはUTCになる
毎日・毎週などの選択肢から時刻を選ぶと、ローカルの時刻として扱われます。cronの式(0 21 * * * のような5つの値)で書くときはUTCになるので、日本時間の6時は 0 21 * * * です。
また実行は数分遅れることがあります。公式のドキュメントでは、毎時0分のようなちょうどの時刻を避けて9:07のように分をずらすことが勧められています。
PRは自分の名前で作られる
スケジュールタスクは作った人のclaude.aiのアカウントに紐づきます。PRやコミットは自分のGitHubアカウントの名前で作られ、toneへのコメントもコネクタをつないだ自分の名前で書き込まれます。実行するたびに自分のプランの使用量も消費します。
Claudeは既定で claude/ で始まるブランチにpushします。mainを守りたい場合は、プロンプトに書くだけでなくGitHubのブランチ保護も設定しておくと安心です。
AIRUNに向くタスク・向かないタスク
AIRUNタグを付けるのに向いているのは次のようなタスクです。
- やることがはっきりしている:「目次をスクロールに追従させる」「一覧の列の幅を狭める」のように、タイトルだけで完成形が想像できる
- 変更が小さい:1つのPRに収まり、レビューが数分で終わる
- 確かめ方がある:再現手順や期待する動きが書ける
反対に、仕様をこれから決めるタスクやデザインの判断が要るタスクには向きません。そういうタスクは人と相談しながらClaude Codeを使うほうが早く進みます。toneのタスクは マークダウン形式でコピー できるので、そのままClaude Codeに貼って相談を始められます。
迷ったらタスクの説明に「何が起きていて、どうなってほしいか」を2〜3行書いてからタグを付けると、見送られることが減ります。
おわりに
Claude Codeの定期実行で毎朝タスクを1件ずつPRにしてもらう仕組みを紹介しました。
直したいけれど後回しになっているタスクは、どのチームにもあると思います。タグを付けておけば翌朝にはPRになって届きます。
小さなバグの修正から、ぜひ試してみてください!


