claude-task-worker 0.26.1 → 0.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +39 -8
- package/dist/index.js +715 -297
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -250,18 +250,19 @@ claude-task-worker yolo --epic 100 --epic 200 --label priority-high
|
|
|
250
250
|
|
|
251
251
|
### `--project <name>` オプション
|
|
252
252
|
|
|
253
|
-
指定したプロジェクト(またはプロジェクトグループ、`all`)に対して、[herdr](https://herdr.dev) 経由でコマンドをディスパッチする。指定すると、CLIはワーカーをその場で実行する代わりにディスパッチャーとして動作し、対象プロジェクトごとに独立したherdr
|
|
253
|
+
指定したプロジェクト(またはプロジェクトグループ、`all`)に対して、[herdr](https://herdr.dev) 経由でコマンドをディスパッチする。指定すると、CLIはワーカーをその場で実行する代わりにディスパッチャーとして動作し、対象プロジェクトごとに独立したherdrワークスペースを作ってコマンドを実行する。
|
|
254
254
|
|
|
255
255
|
プロジェクト名・グループ名・`all` のいずれかを指定できる。
|
|
256
256
|
|
|
257
|
-
- プロジェクト名: `
|
|
258
|
-
- グループ名: `
|
|
259
|
-
- `all`: `
|
|
257
|
+
- プロジェクト名: `config.json` の `projects` に登録された個別プロジェクト名
|
|
258
|
+
- グループ名: `config.json` の `projectGroups` に登録された、複数プロジェクト名をまとめたグループ名
|
|
259
|
+
- `all`: `config.json` の `projects` に登録された全プロジェクトが対象になる予約語(`projects` / `projectGroups` のキーとして使用不可)
|
|
260
260
|
|
|
261
|
-
`
|
|
261
|
+
`config.json` は `$XDG_CONFIG_HOME/claude-task-worker/config.json`(`XDG_CONFIG_HOME` 未設定の場合は `~/.config/claude-task-worker/config.json`)に配置する。`projects` にプロジェクト名から絶対パスへのマッピングを、`projectGroups` にグループ名からプロジェクト名配列へのマッピングを記述する(`projectGroups` は省略可)。
|
|
262
262
|
|
|
263
263
|
```json
|
|
264
264
|
{
|
|
265
|
+
"mode": "default",
|
|
265
266
|
"projects": {
|
|
266
267
|
"app-a": "/Users/me/repos/app-a",
|
|
267
268
|
"app-b": "/Users/me/repos/app-b",
|
|
@@ -273,15 +274,17 @@ claude-task-worker yolo --epic 100 --epic 200 --label priority-high
|
|
|
273
274
|
}
|
|
274
275
|
```
|
|
275
276
|
|
|
277
|
+
`mode` については [`mode`(タスクの実行形態)](#modeタスクの実行形態) を参照。
|
|
278
|
+
|
|
276
279
|
`--project` は繰り返し指定可能で、複数指定した場合は解決後のプロジェクト集合の和集合が対象になる(重複は一意化される)。`--epic` / `--label` と併用でき、ディスパッチ先の各プロジェクトで実行されるコマンドにそのまま引き継がれる。
|
|
277
280
|
|
|
278
281
|
以下のコマンドは `--project` と併用できない: `init` / `install` / `update` / `usage` / `version`
|
|
279
282
|
|
|
280
283
|
ディスパッチャーは以下の3つの機能を持つ。
|
|
281
284
|
|
|
282
|
-
- **一斉起動**: 対象プロジェクトごとにherdr
|
|
283
|
-
- **稼働一覧**:
|
|
284
|
-
- **一括停止**: SIGTERM/SIGINTを受けると、稼働中の全セッションへ ctrl-c を送信して各プロジェクトのコマンドを終了させ、終了を待ってからherdr
|
|
285
|
+
- **一斉起動**: 対象プロジェクトごとに `ctw:<プロジェクト名>` ラベルのherdrワークスペースを作成し、そのプロジェクトのディレクトリで(`--project` を除いた)同じコマンドを非同期実行する
|
|
286
|
+
- **稼働一覧**: 各セッションのプロジェクト名・ワークスペースID・ペインID・ステータス・稼働時間をステータステーブルとして定期的に画面へ描画し、対象プロセスが終了したセッションは自動的に一覧から除去する
|
|
287
|
+
- **一括停止**: SIGTERM/SIGINTを受けると、稼働中の全セッションへ ctrl-c を送信して各プロジェクトのコマンドを終了させ、終了を待ってからherdrワークスペースを閉じる(`mode: "herdr"` でワーカーが作ったタスクタブもワークスペースごと片付く)
|
|
285
288
|
|
|
286
289
|
```bash
|
|
287
290
|
claude-task-worker all --project all
|
|
@@ -291,6 +294,34 @@ claude-task-worker all --project app-a --project app-c # app-a と app-c の
|
|
|
291
294
|
claude-task-worker exec-issue --project app-a --epic 100 --label priority-high
|
|
292
295
|
```
|
|
293
296
|
|
|
297
|
+
### `mode`(タスクの実行形態)
|
|
298
|
+
|
|
299
|
+
`config.json` のトップレベルに `mode` を書くと、ワーカーが各タスク(Issue/PR ごとの claude 実行)をどう起動するかを切り替えられる。プロジェクト単位の指定はできず、全ワーカー・全プロジェクトに一括で適用される。
|
|
300
|
+
|
|
301
|
+
| `mode` | 挙動 |
|
|
302
|
+
|--------|------|
|
|
303
|
+
| `"default"`(既定) | タスクを `claude -p`(非対話 print モード)の子プロセスとして実行する |
|
|
304
|
+
| `"herdr"` | タスクを herdr のタブ内で TUI セッションとして実行する。実行中の様子をherdrで覗ける |
|
|
305
|
+
|
|
306
|
+
```json
|
|
307
|
+
{
|
|
308
|
+
"mode": "herdr",
|
|
309
|
+
"projects": { "app-a": "/Users/me/repos/app-a" }
|
|
310
|
+
}
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
`mode: "herdr"` のときの1タスクの流れ:
|
|
314
|
+
|
|
315
|
+
1. worktree を作成し、`ctw:<プロジェクト名>:#<Issue/PR番号>` ラベルのタブで claude を TUI 起動する(`HERDR_DISABLE_SOUND=1` を設定するため通知音は鳴らない)
|
|
316
|
+
2. herdr が持つ agent ステータスを監視し、`working` → `idle` の遷移をタスク完了とみなす
|
|
317
|
+
3. 完了したらペインの内容を回収して通知に使い、タブを閉じてラベル・worktree を後片付けする
|
|
318
|
+
|
|
319
|
+
補足:
|
|
320
|
+
|
|
321
|
+
- タブは `--project` で起動した場合そのプロジェクトのワークスペース内に作られる(herdrが各ペインへ注入する `HERDR_WORKSPACE_ID` を利用する)
|
|
322
|
+
- `blocked`(claudeが入力待ち)になってもタスクは自動失敗にせず待機し続ける。ステータステーブルに `running:blocked` と表示されるので、herdrのタブを開いて直接対応できる
|
|
323
|
+
- `mode: "herdr"` でherdrが未インストール・未起動の場合、ワーカーは起動時にエラー終了する(`"default"` へ勝手にフォールバックしない)
|
|
324
|
+
|
|
294
325
|
### exec-issue
|
|
295
326
|
|
|
296
327
|
`cc-exec-issue` ラベルが付いた自分にアサインされたIssueを定期取得し、Claude Codeで処理を実行する。(デフォルト1分間隔)
|