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.
Files changed (3) hide show
  1. package/README.md +67 -19
  2. package/dist/index.js +1 -1
  3. 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使用状況をSlackに通知する。
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.2.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` | `opus` | `xhigh` | 60 | 0 | 1 |
332
- | `update-issue` | `/claude-task-worker:update-issue` | `sonnet` | `xhigh` | 60 | 0 | 1 |
333
- | `exec-issue` | `/claude-task-worker:exec-issue` | `sonnet` | `xhigh` | 60 | 0 | 1 |
334
- | `fix-review-point` | `/claude-task-worker:fix-review-point` | `sonnet` | `xhigh` | 60 | 0 | 1 |
335
- | `triage-created-issue` | `/claude-task-worker:triage-created-issue` | `sonnet` | `xhigh` | 60 | 0 | 1 |
336
- | `triage-pr` | `/claude-task-worker:triage-pr` | `sonnet` | `xhigh` | 60 | 0 | 1 |
337
- | `resolve-conflict` | `/claude-task-worker:resolve-pr-conflict` | `sonnet` | `xhigh` | 60 | 0 | 1 |
338
- | `check-dependabot` | `/claude-task-worker:check-dependabot` | `sonnet` | `xhigh` | 3600 | 0 | 1 |
339
- | `epic-issue` | `/claude-task-worker:create-epic-pr` | `sonnet` | `xhigh` | 300 | 0 | 1 |
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 # TypeScript dist/
391
- npm run dev # Watch mode (auto-rebuild)
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);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-task-worker",
3
- "version": "0.6.0",
3
+ "version": "0.10.0",
4
4
  "description": "CLI tool that polls GitHub Issues/PRs and delegates work to Claude CLI",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",