はじめに
Claude Code利用者の皆さん、「複数のプロンプトを順番に実行したい」「夜間バッチでコード生成を自動化したい」「プロジェクトごとにプロンプトを管理したい」といった場面に遭遇したことはありませんか?
今回は、私が開発したPrompt Schedulerのv1.0.2で追加されたバッチ処理機能について、実際の開発シナリオを交えながら詳しく解説します。
免責事項
本記事で紹介するPrompt Schedulerは、私が個人的に開発したオープンソースツールです。Anthropic社のClaude、Claude Codeとは一切関係のない独立した個人開発プロジェクトであることを明記します。使用は自己責任でお願いいたします。
バッチ処理とは何か
Prompt Schedulerにおけるバッチ処理とは、複数のプロンプトを事前に定義し、指定した順序で自動実行する機能です。手動で一つずつプロンプトを入力する従来の方法と比べ、以下のメリットがあります:
- 作業の標準化: 毎回同じ手順を確実に実行
- 時間の有効活用: 夜間や離席中の自動実行
- ヒューマンエラー削減: 手動入力ミスの防止
- 進捗の可視化: 実行状況の一元管理
2つの実行モード:repeatとsequential
v1.0.2では、用途に応じて選択できる2つの実行モードを提供しています。
repeatモード(デフォルト)
tsx src/claude-schedule.ts run --mode repeat
# または単に
tsx src/claude-schedule.ts run
動作原理:
- tmuxのコマンド履歴(Up キー)を利用
- 前回のプロンプトを呼び出し、内容を上書き
- 既存のセッション履歴を活用
適用場面:
- 開発中のプロジェクトで継続的にプロンプト実行
- Claude Codeセッションに履歴が存在する場合
- 対話的な開発フローの自動化
sequentialモード
tsx src/claude-schedule.ts run --mode sequential
動作原理:
- tmux履歴に依存せず、プロンプトを直接送信
- より確実で予測可能な動作
- 新しいセッションでも安定動作
適用場面:
- 初回実行やクリーンな環境での処理
- 確実性を重視するバッチ処理
- CI/CDパイプラインでの自動化
時間制御機能による柔軟なスケジューリング
指定時刻での自動停止
# 午後5時に自動停止
tsx src/claude-schedule.ts run --stop-at 5pm
# 24時間形式での指定
tsx src/claude-schedule.ts run --stop-at 17:30
実用例:
# 業務時間内での実行制限
tsx src/claude-schedule.ts run --stop-at 6pm --mode sequential
実行時間の制限
# 3時間で自動停止
tsx src/claude-schedule.ts run --hours 3
# 30分で停止
tsx src/claude-schedule.ts run --hours 0.5
プロジェクト別管理:カスタムプロンプトファイル
複数プロジェクトの並行管理
# フロントエンド用プロンプトファイル
tsx src/claude-schedule.ts run --prompt-file ~/projects/frontend/prompts.jsonl
# バックエンド用プロンプトファイル
tsx src/claude-schedule.ts run --prompt-file ~/projects/backend/prompts.jsonl
# 状況確認も個別に可能
tsx src/claude-schedule.ts status --prompt-file ~/projects/frontend/prompts.jsonl
プロンプトファイルの実例
{"prompt": "APIエンドポイントの設計レビューを実施", "tmux_session": "/tmp/tmux-1000/default", "sent": "false", "sent_timestamp": null, "default_wait": "10m"}
{"prompt": "データベーススキーマの最適化提案", "tmux_session": "/tmp/tmux-1000/default", "sent": "false", "sent_timestamp": null, "default_wait": "15m"}
{"prompt": "セキュリティ脆弱性の検査実行", "tmux_session": "/tmp/tmux-1000/default", "sent": "false", "sent_timestamp": null, "default_wait": "20m"}
{"prompt": "パフォーマンステストの結果分析", "tmux_session": "/tmp/tmux-1000/default", "sent": "false", "sent_timestamp": null, "default_wait": "10m"}
スマート使用制限処理
制限メッセージの自動検知
Prompt Schedulerは以下の制限メッセージを自動検知します:
- "Approaching usage limit · resets at 10pm"
- "Claude usage limit reached. Your limit will reset at 1pm"
approaching制限の選択的無視
# "approaching"メッセージを無視し、"reached"のみで停止
tsx src/claude-schedule.ts run --ignore-approaching-limit
使い分けの指針:
- 通常実行: デフォルト(全ての制限で停止)
-
積極的実行:
--ignore-approaching-limit
使用 -
夜間バッチ:
--ignore-approaching-limit
+--hours
の組み合わせ
実際の開発シナリオ:Webアプリケーション開発
シナリオ:ECサイトの開発
{"prompt": "商品管理APIの設計と実装", "tmux_session": "/tmp/tmux-1000/default", "sent": "false", "sent_timestamp": null, "default_wait": "20m"}
{"prompt": "決済システムとの連携実装", "tmux_session": "/tmp/tmux-1000/default", "sent": "false", "sent_timestamp": null, "default_wait": "25m"}
{"prompt": "商品検索機能の最適化", "tmux_session": "/tmp/tmux-1000/default", "sent": "false", "sent_timestamp": null, "default_wait": "15m"}
{"prompt": "ユーザー認証システムの強化", "tmux_session": "/tmp/tmux-1000/default", "sent": "false", "sent_timestamp": null, "default_wait": "20m"}
{"prompt": "管理画面UIの改善提案", "tmux_session": "/tmp/tmux-1000/default", "sent": "false", "sent_timestamp": null, "default_wait": "15m"}
実行コマンド例
# 夜間バッチ(制限を無視して積極的実行)
tsx src/claude-schedule.ts run \
--prompt-file ~/projects/ec-site/prompts.jsonl \
--mode sequential \
--ignore-approaching-limit \
--hours 6
# 業務時間内の段階実行
tsx src/claude-schedule.ts run \
--prompt-file ~/projects/ec-site/prompts.jsonl \
--mode repeat \
--stop-at 6pm
進捗管理とモニタリング
状況確認
# 基本的な状況確認
npm run status
# カスタムファイルの状況確認
tsx src/claude-schedule.ts status --prompt-file ~/my-project/prompts.jsonl
実行結果の例
📊 PROMPT STATUS
📄 Using prompt file: ~/projects/ec-site/prompts.jsonl
1. ✅ SENT 商品管理APIの設計と実装 (2024-01-15 14:30:25)
2. ✅ SENT 決済システムとの連携実装 (2024-01-15 14:55:10)
3. ⏳ PENDING 商品検索機能の最適化 (N/A)
4. ⏳ PENDING ユーザー認証システムの強化 (N/A)
5. ⏳ PENDING 管理画面UIの改善提案 (N/A)
パフォーマンス最適化のコツ
1. 適切な待機時間設定
{"prompt": "軽量なリファクタリング", "default_wait": "5m"}
{"prompt": "複雑なアーキテクチャ設計", "default_wait": "30m"}
2. 実行モードの選択
-
安定性重視:
sequential
モード -
レスポンス重視:
repeat
モード
3. 時間制御の活用
# 短時間集中実行
tsx src/claude-schedule.ts run --hours 1 --mode sequential
# 長時間安定実行
tsx src/claude-schedule.ts run --ignore-approaching-limit --hours 8
まとめ
Prompt Scheduler v1.0.2のバッチ処理機能により、Claude Codeでの開発効率が劇的に向上しました。
重要なポイント:
- repeatとsequential:用途に応じた実行モードの選択
-
時間制御:
--stop-at
と--hours
による柔軟なスケジューリング -
プロジェクト管理:
--prompt-file
による複数プロジェクトの並行処理 -
制限処理:
--ignore-approaching-limit
による積極的実行
これらの機能を組み合わせることで、Claude Codeでの開発プロセスを大幅に自動化し、より生産的な開発環境を構築できます。
インストールと始め方
# ワンライナーインストール
curl -fsSL https://raw.githubusercontent.com/prompt-scheduler/cli/main/install.sh | bash
# 基本的な使用方法
npm run help
npm run status
皆さんも是非、バッチ処理機能を活用して、Claude Codeでの開発効率を向上させてみてください!
注意: 本ツールは個人開発プロジェクトです。使用は自己責任でお願いいたします。