claude-task-worker 0.6.0 → 0.10.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 +67 -19
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -48,7 +48,7 @@ GitHub Issues/PRを定期ポーリングし、Claude Codeに処理を委譲す
|
|
|
48
48
|
| `fix-review-point` | `cc-fix-onetime` | `/claude-task-worker:fix-review-point` | 1分 |
|
|
49
49
|
| `triage-created-issue` | `cc-issue-created` + `cc-triage-scope` (Issue) | `/claude-task-worker:triage-created-issue` | 1分 |
|
|
50
50
|
| `triage-pr` | `cc-triage-scope` (PR) | `/claude-task-worker:triage-pr` | 1分 |
|
|
51
|
-
| `resolve-conflict` | `cc-resolve-conflict` (PR) | `/claude-task-worker:resolve-conflict` | 1分 |
|
|
51
|
+
| `resolve-conflict` | `cc-resolve-conflict` (PR) | `/claude-task-worker:resolve-pr-conflict` | 1分 |
|
|
52
52
|
| `check-dependabot` | `dependencies` (PR) | `/claude-task-worker:check-dependabot` | 1時間 |
|
|
53
53
|
| `epic-issue` | `cc-epic-issue` (Issue, sub-issues が全て Close) | `/claude-task-worker:create-epic-pr` | 5分 |
|
|
54
54
|
|
|
@@ -60,14 +60,58 @@ GitHub Issues/PRを定期ポーリングし、Claude Codeに処理を委譲す
|
|
|
60
60
|
|
|
61
61
|
`epic-issue` ワーカーは、`cc-epic-issue` ラベル付きの親Issueに紐づくサブIssueがすべて Close されたタイミングで `/claude-task-worker:create-epic-pr` を起動し、エピックブランチからまとめてPRを作成する。
|
|
62
62
|
|
|
63
|
+
## 必要なライブラリ
|
|
64
|
+
|
|
65
|
+
### 実行時に必要なもの
|
|
66
|
+
|
|
67
|
+
CLI 本体に npm の実行時依存パッケージはない(ビルド時に esbuild で単一ファイル `dist/index.js` にバンドルされ、Node.js 標準モジュールのみで動作する)。代わりに以下の外部ツールが必要。
|
|
68
|
+
|
|
69
|
+
| 名前 | バージョン | 用途 |
|
|
70
|
+
|---|---|---|
|
|
71
|
+
| [Node.js](https://nodejs.org/) | >= 20 | CLI の実行ランタイム |
|
|
72
|
+
| [GitHub CLI (`gh`)](https://cli.github.com/) | - | Issue/PR の取得・ラベル操作など全GitHub操作(認証済みであること) |
|
|
73
|
+
| [Claude Code (`claude`)](https://docs.anthropic.com/en/docs/claude-code) | - | タスク実行エンジン。各ワーカーが Claude CLI プロセスとして起動する |
|
|
74
|
+
| [Git (`git`)](https://git-scm.com/) | - | worktree の作成・ブランチ操作 |
|
|
75
|
+
| [jq](https://jqlang.org/) | - | プラグインスキル内でのJSON加工(`check-dependabot` / `edit-pencil-design` スキルなどで使用) |
|
|
76
|
+
| [Pencil CLI (`pencil`)](https://docs.pencil.dev/for-developers/pencil-cli) | - | `.pen` デザインファイルの編集・参照・コンフリクト解消(`edit-pencil-design` / `inspect-pencil-node` / `resolve-pencil-conflict` スキルで使用) |
|
|
77
|
+
| `claude-task-worker` プラグイン | - | 各ワーカーが呼び出すスキル群(本リポジトリの `plugin/`) |
|
|
78
|
+
|
|
79
|
+
Slack通知(任意)を使う場合は Slack Incoming Webhook URL が必要。Claude API使用状況の取得には、macOSでは `security` コマンド(Keychain)を使用し、それ以外の環境では `~/.claude/.credentials.json` にフォールバックする。
|
|
80
|
+
|
|
81
|
+
### 開発時に必要なライブラリ(devDependencies)
|
|
82
|
+
|
|
83
|
+
| パッケージ | バージョン | 用途 |
|
|
84
|
+
|---|---|---|
|
|
85
|
+
| `typescript` | ^5.7.0 | 型チェック(`tsc --noEmit`) |
|
|
86
|
+
| `esbuild` | ^0.27.4 | `dist/index.js` へのバンドル |
|
|
87
|
+
| `@types/node` | ^22.0.0 | Node.js の型定義 |
|
|
88
|
+
| `eslint` | ^10.3.0 | Lint |
|
|
89
|
+
| `@eslint/js` | ^10.0.1 | ESLint 推奨設定 |
|
|
90
|
+
| `typescript-eslint` | ^8.59.1 | TypeScript 対応の ESLint ルール |
|
|
91
|
+
| `eslint-config-prettier` | ^10.1.8 | ESLint と Prettier の競合ルール無効化 |
|
|
92
|
+
| `prettier` | ^3.8.3 | コードフォーマッタ |
|
|
93
|
+
|
|
94
|
+
### プラグインが利用する MCP サーバー
|
|
95
|
+
|
|
96
|
+
`claude-task-worker` プラグイン(`plugin/.mcp.json`)は以下の MCP サーバーを定義しており、プラグイン有効化時に Claude Code から自動的に利用される。
|
|
97
|
+
|
|
98
|
+
| サーバー | 接続方法 | 用途 |
|
|
99
|
+
|---|---|---|
|
|
100
|
+
| `context7` | HTTP(`https://mcp.context7.com/mcp`) | ライブラリの最新ドキュメント取得 |
|
|
101
|
+
| `next-devtools` | `npx -y next-devtools-mcp@latest` | Next.js 開発支援 |
|
|
102
|
+
| `shadcn` | `npx shadcn@latest mcp` | shadcn/ui コンポーネント情報の取得 |
|
|
103
|
+
|
|
63
104
|
## セットアップ
|
|
64
105
|
|
|
65
106
|
### 前提条件
|
|
66
107
|
|
|
108
|
+
- [Node.js](https://nodejs.org/) v20 以上がインストール済みであること
|
|
67
109
|
- [GitHub CLI (`gh`)](https://cli.github.com/) がインストール・認証済みであること
|
|
68
110
|
- [Claude Code (`claude`)](https://docs.anthropic.com/en/docs/claude-code) がインストール済みであること
|
|
69
111
|
- `claude-task-worker` プラグインがインストール済みであること(下記インストール手順を参照)
|
|
70
112
|
|
|
113
|
+
詳細は上記「[必要なライブラリ](#必要なライブラリ)」を参照。
|
|
114
|
+
|
|
71
115
|
### インストール
|
|
72
116
|
|
|
73
117
|
#### 推奨手順(一発セットアップ)
|
|
@@ -153,7 +197,7 @@ claude-task-worker init --force # 既存ファイルを強制上書き
|
|
|
153
197
|
|
|
154
198
|
- `.github/ISSUE_TEMPLATE/cc-triage-scope.yml` — `cc-triage-scope` ラベル付きIssue作成用テンプレート
|
|
155
199
|
- `.github/workflows/assign-creator-on-cc-triage-scope.yml` — Issue作成者を自動アサインするワークフロー
|
|
156
|
-
- `claude-task-worker.json` —
|
|
200
|
+
- `claude-task-worker.json` — 設定ファイル(コマンド実行ディレクトリ直下。全ワーカーのデフォルト設定が書き込まれた状態で作成される)
|
|
157
201
|
|
|
158
202
|
## コマンド
|
|
159
203
|
|
|
@@ -202,6 +246,7 @@ claude-task-worker yolo --epic 100 --epic 200 --label priority-high
|
|
|
202
246
|
`cc-fix-onetime` ラベルが付いたPRを定期取得し、Claude Codeで修正を実行する。(1分間隔)
|
|
203
247
|
|
|
204
248
|
- CI完了済みで `cc-in-progress` がないPRが対象
|
|
249
|
+
- 完了後、`cc-fix-onetime` ラベルを除去
|
|
205
250
|
- 完了後、設定ファイルに `fixReviewPointCallbackCommentMessage` が設定されていればPRにコメント投稿
|
|
206
251
|
|
|
207
252
|
### create-issue
|
|
@@ -210,7 +255,8 @@ claude-task-worker yolo --epic 100 --epic 200 --label priority-high
|
|
|
210
255
|
|
|
211
256
|
`init` コマンドで作成されるIssueテンプレートを使えば、`cc-triage-scope` ラベル付与と作成者アサインが自動で行われる。ブロック中の依存 Issue が残っている間はワーカーが拾わず、依存がすべて Close された時点で処理が開始される。
|
|
212
257
|
|
|
213
|
-
除外ラベル: `cc-issue-created` / `cc-pr-created` / `cc-update-issue` / `cc-answer-issue-questions` / `cc-exec-issue` のいずれかが付いている Issue
|
|
258
|
+
- 除外ラベル: `cc-issue-created` / `cc-pr-created` / `cc-update-issue` / `cc-answer-issue-questions` / `cc-exec-issue` のいずれかが付いている Issue は対象外
|
|
259
|
+
- 完了後、`cc-issue-created` ラベルを付与して triage-created-issue ワーカーに引き継ぎ
|
|
214
260
|
|
|
215
261
|
### update-issue
|
|
216
262
|
|
|
@@ -240,7 +286,7 @@ claude-task-worker yolo --epic 100 --epic 200 --label priority-high
|
|
|
240
286
|
|
|
241
287
|
### resolve-conflict
|
|
242
288
|
|
|
243
|
-
`cc-resolve-conflict` ラベルが付いたPRを定期取得し、`/claude-task-worker:resolve-conflict` を実行してコンフリクト解消を行う。(1分間隔)
|
|
289
|
+
`cc-resolve-conflict` ラベルが付いたPRを定期取得し、`/claude-task-worker:resolve-pr-conflict` を実行してコンフリクト解消を行う。(1分間隔)
|
|
244
290
|
|
|
245
291
|
- 完了後、`cc-resolve-conflict` ラベルを除去
|
|
246
292
|
|
|
@@ -270,7 +316,7 @@ claude-task-worker yolo --epic 100 --epic 200 --label priority-high
|
|
|
270
316
|
|
|
271
317
|
### usage
|
|
272
318
|
|
|
273
|
-
現在のClaude API
|
|
319
|
+
現在のClaude API使用状況(5時間/7日間の利用率とリセット時刻)を標準出力に表示し、Slack Webhookが設定されていればSlackにも通知する。
|
|
274
320
|
|
|
275
321
|
### install
|
|
276
322
|
|
|
@@ -310,7 +356,7 @@ claude-task-worker --version
|
|
|
310
356
|
claude-task-worker -v
|
|
311
357
|
```
|
|
312
358
|
|
|
313
|
-
`package.json` の `version` を出力する(例: `0.
|
|
359
|
+
`package.json` の `version` を出力する(例: `0.6.0`)。
|
|
314
360
|
|
|
315
361
|
## 設定ファイル
|
|
316
362
|
|
|
@@ -328,15 +374,15 @@ claude-task-worker -v
|
|
|
328
374
|
| ワーカー名 | デフォルト `skill` | デフォルト `model` | デフォルト `effort` | デフォルト `pollingIntervalSeconds` | デフォルト `cooldownSeconds` | デフォルト `maxConcurrentTasks` |
|
|
329
375
|
|---|---|---|---|---|---|---|
|
|
330
376
|
| `answer-issue-questions` | `/claude-task-worker:answer-issue-questions` | `opus` | `xhigh` | 60 | 0 | 1 |
|
|
331
|
-
| `create-issue` | `/claude-task-worker:create-issue-from-issue-number` | `
|
|
332
|
-
| `update-issue` | `/claude-task-worker:update-issue` | `sonnet` | `
|
|
333
|
-
| `exec-issue` | `/claude-task-worker:exec-issue` | `sonnet` | `
|
|
334
|
-
| `fix-review-point` | `/claude-task-worker:fix-review-point` | `sonnet` | `
|
|
335
|
-
| `triage-created-issue` | `/claude-task-worker:triage-created-issue` | `sonnet` | `
|
|
336
|
-
| `triage-pr` | `/claude-task-worker:triage-pr` | `sonnet` | `
|
|
337
|
-
| `resolve-conflict` | `/claude-task-worker:resolve-pr-conflict` | `sonnet` | `
|
|
338
|
-
| `check-dependabot` | `/claude-task-worker:check-dependabot` | `sonnet` | `
|
|
339
|
-
| `epic-issue` | `/claude-task-worker:create-epic-pr` | `sonnet` | `
|
|
377
|
+
| `create-issue` | `/claude-task-worker:create-issue-from-issue-number` | `sonnet` | `xhigh` | 60 | 0 | 1 |
|
|
378
|
+
| `update-issue` | `/claude-task-worker:update-issue` | `sonnet` | `high` | 60 | 0 | 1 |
|
|
379
|
+
| `exec-issue` | `/claude-task-worker:exec-issue` | `sonnet` | `high` | 60 | 0 | 1 |
|
|
380
|
+
| `fix-review-point` | `/claude-task-worker:fix-review-point` | `sonnet` | `high` | 60 | 0 | 1 |
|
|
381
|
+
| `triage-created-issue` | `/claude-task-worker:triage-created-issue` | `sonnet` | `high` | 60 | 0 | 1 |
|
|
382
|
+
| `triage-pr` | `/claude-task-worker:triage-pr` | `sonnet` | `high` | 60 | 0 | 1 |
|
|
383
|
+
| `resolve-conflict` | `/claude-task-worker:resolve-pr-conflict` | `sonnet` | `high` | 60 | 0 | 1 |
|
|
384
|
+
| `check-dependabot` | `/claude-task-worker:check-dependabot` | `sonnet` | `high` | 3600 | 0 | 1 |
|
|
385
|
+
| `epic-issue` | `/claude-task-worker:create-epic-pr` | `sonnet` | `high` | 300 | 0 | 1 |
|
|
340
386
|
|
|
341
387
|
各フィールドの値:
|
|
342
388
|
|
|
@@ -362,8 +408,6 @@ claude-task-worker -v
|
|
|
362
408
|
}
|
|
363
409
|
```
|
|
364
410
|
|
|
365
|
-
> 💡 **推奨:** 重い実装タスク(`exec-issue`, `fix-review-point`)では `/advisor` を有効にすることを推奨する。事前/事後に強力なレビューモデルへ相談することで、アプローチの誤りや見落としを早期に検出でき、完了率と品質が向上する。各ワーカーが呼び出すスキルのプロンプト内で `advisor` ツールを活用する運用を推奨。
|
|
366
|
-
|
|
367
411
|
## Slack通知
|
|
368
412
|
|
|
369
413
|
環境変数 `CLAUDE_TASK_WORKER_SLACK_WEBHOOK_URL` にSlack Incoming Webhook URLを設定すると、各ワーカーのタスク完了時・失敗時にSlackへ通知が送信される。
|
|
@@ -387,8 +431,12 @@ claude-task-worker all
|
|
|
387
431
|
|
|
388
432
|
```bash
|
|
389
433
|
npm install
|
|
390
|
-
npm run build
|
|
391
|
-
npm run dev
|
|
434
|
+
npm run build # 型チェック(tsc --noEmit)+ esbuild で dist/index.js にバンドル
|
|
435
|
+
npm run dev # 型チェックの watch モード
|
|
436
|
+
npm run lint # ESLint
|
|
437
|
+
npm run lint:fix # ESLint(自動修正)
|
|
438
|
+
npm run format # Prettier で整形
|
|
439
|
+
npm run format:check # Prettier のチェックのみ
|
|
392
440
|
```
|
|
393
441
|
|
|
394
442
|
コントリビューションを歓迎します。開発環境のセットアップ・PRの出し方は [CONTRIBUTING.md](./CONTRIBUTING.md) を参照してください。バグ報告・機能要望は [Issue テンプレート](https://github.com/getty104/claude-task-worker/issues/new/choose) から作成してください。
|
package/dist/index.js
CHANGED
|
@@ -1175,7 +1175,7 @@ function getWorktreePath(worktreeId) {
|
|
|
1175
1175
|
}
|
|
1176
1176
|
async function createWorktreeFromBranch(worktreeId, baseBranch) {
|
|
1177
1177
|
const worktreePath = getWorktreePath(worktreeId);
|
|
1178
|
-
await execFileAsync2("git", ["worktree", "add", "-B", worktreeId, worktreePath, `origin/${baseBranch}`]);
|
|
1178
|
+
await execFileAsync2("git", ["worktree", "add", "--track", "-B", worktreeId, worktreePath, `origin/${baseBranch}`]);
|
|
1179
1179
|
}
|
|
1180
1180
|
async function removeWorktree(worktreeId) {
|
|
1181
1181
|
const worktreePath = getWorktreePath(worktreeId);
|