Task Runner
フォルダ型のタスクチケットを1回に1件ずつ拾って実行し、結果をチケットに書き戻し、看板ボードを更新するスキル。
API不要 Python 3 定期実行
スキルパッケージをダウンロード (.skill) GitHubでソースを見る
1. 概要
タスクは tasks/ フォルダに置いた1つの Markdown ファイルです。ファイルがどのフォルダにあるかが、そのままステータスになります。Claude は実行のたびに todo/ から期日の来た最も古いタスクを取り、計画カードを書き、作業し、完了条件を確かめてから done/ か blocked/ へ移します。毎回 tasks/dashboard.html の看板ボードも作り直すので、全タスクの状況を1枚で確認できます。
Cowork のスケジュール実行などから、1時間ごとに呼ぶ想定のスキルです。1回に処理するのは1件だけで、迷ったら止まります。人が1分ほどで判断して戻せる状態で渡すことを重視しています。
2. 使う場面
- 集計、要約、下書きなどの定型作業を、チケット単位で裏で進めてほしいとき
- メール送信など外部に触れる操作は、人が承認してから実行させたいとき
- 未着手、実行中、要確認、完了の状況を1枚で見たいとき
「タスクを1件処理して」「tasksフォルダをチェックして」「タスク管理の初期設定」「タスクの状況を見せて」「看板ボード」といった依頼で動きます。
3. 前提条件
- APIキーは不要です。
scripts/build_dashboard.pyに Python 3 を使います。Python がない環境では、Claude が同じ構成の HTML を直接書きます。- Claude を定期的に呼べる仕組みが必要です。例は Cowork のスケジュール実行です。PC がスリープ中やアプリ終了中は、定期実行が動かないことがあります。
4. クイックスタート
- スキルをインストールします。
- 作業フォルダで「task-runnerの初期設定をして」と依頼します。
tasks/フォルダ、設定ファイル、チケットのひな形、サンプルタスク3件ができます。モードは最初dry-runです。 - 「task-runnerでタスクを1件処理して」を3回実行します。
dry-runでは、各タスクに計画カードが書かれ、タスクはtodo/に戻ります。 tasks/_config.mdのmodeをliveに変え、もう3回実行します。サンプルのうち2件はdone/に移ります。報告メールのサンプルは外部操作が許可されていないため、blocked/に移ります。- 「task-runnerスキルで tasks フォルダのタスクを1件処理して」を、1時間ごとのスケジュール実行に登録します。
tasks/dashboard.htmlをブラウザで開きます。
5. フォルダ構成
tasks/
_config.md # mode: dry-run または live
_template.md # 新規チケットのひな形
log.md # 1回の実行につき1行
dashboard.html # 毎回再生成される。手で編集しない
todo/ # 未着手
doing/ # 実行中。ロックの役割も持つ
blocked/ # 人の対応待ち。承認、情報不足、失敗
done/YYYY-MM/ # 完了。月別
output/ # 成果物の既定の置き場
ステータスはフォルダだけで表します。チケットにステータス欄を持たないので、両者が食い違うことはありません。
| フォルダ | 人がやること |
|---|---|
todo/ |
タスクを置く |
doing/ |
基本は触らない |
blocked/ |
理由を読んで対応し、todo/ に戻す |
done/YYYY-MM/ |
結果を確認する |
6. チケットの書き方
ファイル名は YYYYMMDD_優先度_件名.md です。例は 20260923_1_請求書チェック.md です。日付が今日以前のチケットだけが実行対象になり、処理はファイル名の昇順なので、同じ日付なら優先度1が2より先になります。10 は 2 より先に並ぶため、優先度は1〜9の1桁にしてください。_ で始まるファイルは無視します。
ひな形の項目は次のとおりです。
| 項目 | 意味 |
|---|---|
| 目的 | 何のためのタスクか |
| 入力 | 使うファイルや情報 |
| 手順メモ | やり方の指定があれば書く |
| 完了条件 | 終わったと確かめられる具体的な状態。曖昧だと判定できない |
| 出力先 | 成果物の置き場。既定は tasks/output/ |
| 外部操作 | 既定は 不可。許可 のときだけ、メール送信、削除、外部システムへの書き込みを行う |
| 計画確認 | 要 なら作業前に計画の承認を待つ。空欄なら 外部操作: 許可 のときだけ待つ。不要 なら待たない |
「〇〇のタスクを追加して」と頼めば、Claude がひな形からファイルを作ります。
7. 1回の実行の流れ
- ロック確認:
doing/にチケットが1件でもあれば、skipと記録してダッシュボードを更新し、次のチケットを始めずに終わります。60分超、または開始日時が欠落・不正・未来時刻の場合は「停止の疑い」と表示しますが、doing/に残します。前回の実行が終了したことと外部操作・成果物の状態を人が確認してから、その指示でblocked/に移します。 - 選択:
todo/からファイル名順で、期日の来た最初のチケットを選びます。なければidleと記録して静かに終わります。 - 計画カード:作業の前に、チケットへ
## 計画カードを書きます。中身は、できあがるもの、タグ付きの3〜7手順、外部に触れることと触れないこと、AI が自分で決めた前提、人に確認してほしいこと最大3つ、チェック欄にした終わりの条件です。 - モードと承認の確認:次の順に判定します。
dry-runでは、計画カードを書いたところで止め、成果物の作成も外部操作もせずにチケットをtodo/に戻します。計画の承認が要るチケットでも同じで、その場合は結果の1行に「live では計画の確認待ちになる」と添えます。liveで計画の承認が要るのに計画承認:の行がなければ、## 結果の1行目を計画の確認待ちにしてblocked/へ移します。「未返信メールの下書き作成 OK」のように件名を添えて伝えると、次の回に実行されます。 - 作業:それ以外の場合、
liveモードでは計画どおりに作業します。計画を変える必要が出たとき、情報が足りないとき、外部操作が許可されていないときは、理由と人がやることを書いてblocked/へ移します。 - 完了判定:実際の成果物で完了条件を確かめてから、
done/YYYY-MM/へ移します。 - ログとダッシュボード:
tasks/log.mdに1行追記し、ダッシュボードを作り直します。idleやskipの回も同じです。
Claude がチケットに書き込むのは、開始・完了の日時、計画カード、結果、実行ログ、人からの承認と追加指示だけです。結果は1行目が常に今の状態を表すよう毎回置き換え、実行ログは追記します。人が書いた部分は書き換えません。
8. ダッシュボード
tasks/dashboard.html は外部 CDN を使わない単一の HTML で、ライトとダークの両方に対応しています。
- 列は未着手、実行中、要確認、完了の4つです。完了は直近14日分を表示します。
- 上部に件数のサマリーと現在のモードを表示します。
- カードには、予定、停止の疑い、外部操作あり、計画の確認待ち、要確認の件数がバッジで付きます。停止の疑いは、実行中のまま60分を超えたもの、または開始日時が不明・未来時刻のものです。
- 要確認のカードには、止まった理由が赤字で出ます。
- カードを押すと計画カードが開きます。手順は流れ図で表示され、外部に触れる手順は赤枠になります。
- 検索欄と、
log.mdの直近8件があります。
手動で作り直す場合は次のとおりです。
python3 scripts/build_dashboard.py tasks
python3 scripts/build_dashboard.py tasks --done-days 30 --out ~/Desktop/board.html
スクリプトはタスクファイルを読むだけで、書き換えません。
9. リソース
SKILL.md:実行手順、計画カードの書式、ダッシュボード、初期設定、依頼への対応README.md:利用者向けの導入ガイドscripts/build_dashboard.py:看板ボードの生成assets/config.md、assets/task_template.md:初期設定でtasks/にコピーされるassets/samples/:サンプルチケット3件とサンプルデータ