scheduler について
schedulerは、Claude Codeのタスクを予約・管理するスキルです。自然言語をcron式に変換し、OS標準のスケジューラーで単発または定期タスクを実行します。コード変更タスクはGit worktreeで分離できます。
主な機能
- 01自然言語をcron式に変換
- 02単発および定期タスクの作成
- 03OS標準スケジューラーで実行
- 04Git worktreeでタスクを分離
- 05タスク状態と実行ログの確認
活用シーン
- 01平日のコードレビューを予約
- 02依存関係とセキュリティを週次監査
- 03テストスイートを定期実行
- 04分離ブランチでコード変更を実施
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ jshchnz/ claude-code-scheduler --skill schedulerインストール後、Claude Code で/schedulerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
CRON_REFERENCE.mdPLATFORM_SETUP.mdscripts/parse-cron.pysetup-crontab.shsetup-launchd.shsetup-schtasks.ps1詳細
スケジュール設定アシスタント
Claude Code タスクのスケジュール設定と管理をユーザーに案内します。次のことができます。
- 自然言語を cron 式に変換する(「平日の毎朝9時」→「0 9 * * 1-5」)
- cron の構文とスケジュールの概念を説明する
- OS のネイティブスケジューラー(launchd、cron、Task Scheduler)を設定する
- スケジュール設定の問題をトラブルシューティングする
- よくあるワークフロー向けに自動化パターンを提案する
クイックスタート
スケジュールされたタスクを作成するには:
/scheduler:schedule-add
スケジュールされたすべてのタスクを表示するには:
/scheduler:schedule-list
1回限りのタスクと繰り返しタスク
スケジューラーは、1回限りのタスクと繰り返しタスクの両方に対応しています。
1回限りのタスク
特定の時刻に1回だけ実行するタスクです。
- 「今日の午後3時に実行」
- 「明日の正午」
- 「来週火曜日の午後2時」
1回限りのタスクは、実行後に自動的にクリーンアップされます。
繰り返しタスク
スケジュールに従って繰り返し実行するタスクです。
- 「毎朝9時」
- 「毎日午後6時」
- 「平日の午前10時」
0 9 * * 1-5のような cron 式
判定ルール:「毎回」「毎日」「毎週」などの繰り返しを示すキーワードが含まれていない場合、タスクは1回限りとして扱われます。
Git ワークツリーモード(ブランチを分離)
変更を加えるタスクでは、ワークツリーモードを使うとタスクを分離して実行できます。
You: Every night at 2am, refactor deprecated API calls and push for review
Claude: Should this run in an isolated git worktree?
→ Yes, create branch and push changes
→ No, run in main working directory
You: Yes
Claude: ✓ Task created with worktree isolation
Branch prefix: claude-task/
Remote: origin
仕組み:
- タスクが実行されると、新しいブランチを持つ新しいワークツリーが作成されます
- Claude はワークツリー内で実行されます(メインから分離されています)
- 変更がコミットされ、リモートにプッシュされます
- プッシュが成功すると、ワークツリーがクリーンアップされます
- 都合のよいタイミングで PR をレビューできます
設定オプション:
| オプション | デフォルト | 説明 |
|---|---|---|
worktree.enabled | false | ワークツリーによる分離を有効にします |
worktree.branchPrefix | "claude-task/" | ブランチ名のプレフィックス |
worktree.remoteName | "origin" | プッシュ先のリモート |
プッシュに失敗した場合、手動でレビューできるようワークツリーは保持されます。
cron クイックリファレンス
* * * * *
| | | | |
| | | | +-- Day of week (0-6, Sun=0)
| | | +---- Month (1-12)
| | +------ Day of month (1-31)
| +-------- Hour (0-23)
+---------- Minute (0-59)
よく使われるパターン:
| パターン | 説明 |
|---|---|
0 9 * * * | 毎日午前9時 |
0 9 * * 1-5 | 平日の午前9時 |
*/15 * * * * | 15分ごと |
0 */2 * * * | 2時間ごと |
0 9 1 * * | 毎月1日の午前9時 |
0 9 * * 1 | 毎週月曜日の午前9時 |
構文の詳細については、CRON_REFERENCE.md を参照してください。
プラットフォームの設定
タスクは OS のネイティブスケジューラーによって実行されます。
- macOS: launchd(LaunchAgents)
- Linux: crontab
- Windows: Task Scheduler
プラットフォーム固有の詳細については、PLATFORM_SETUP.md を参照してください。
よくある使用例
毎日のコードレビュー
Schedule: 0 9 * * 1-5 (weekdays at 9am)
Command: /review-code --scope=yesterday
毎週の依存関係監査
Schedule: 0 10 * * 1 (Mondays at 10am)
Command: Check for outdated dependencies and security vulnerabilities
自動テスト
Schedule: 0 */4 * * * (every 4 hours)
Command: Run test suite and report failures
トラブルシューティング
タスクが実行されませんか?
/scheduler:schedule-statusで状態を確認します- タスクが有効になっていることを確認します:
/scheduler:schedule-list - ログを確認します:
/scheduler:schedule-logs <task-id> - スケジューラーの PATH に
claudeCLI が含まれていることを確認します
よくある問題:
- スケジューラー環境で PATH が正しく設定されていない
- 作業ディレクトリが存在しない
- コマンド構文に誤りがある
- スケーラーデーモンが実行されていない
ヘルパースクリプト
cron 式を検証するには:
python scripts/parse-cron.py "0 9 * * 1-5"
利用可能なコマンド
| コマンド | 説明 |
|---|---|
/scheduler:schedule-add | 新しいスケジュールタスクを作成します |
/scheduler:schedule-list | スケジュールされたすべてのタスクを表示します |
/scheduler:schedule-remove <id> | スケジュールされたタスクを削除します |
/scheduler:schedule-status | スケジューラーの状態を確認します |
/scheduler:schedule-run <id> | タスクを手動で実行します |
/scheduler:schedule-logs <id> | 実行ログを表示します |
コメント
Markdown 対応