create-einja-app 0.3.1 → 0.3.2
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 +1 -1
- package/dist/cli.js +32 -16
- package/dist/cli.js.map +1 -1
- package/package.json +1 -1
- package/templates/default/.claude/hooks/einja/plan-mode-skill-loader.sh +23 -0
- package/templates/default/.claude/settings.json +15 -1
- package/templates/default/.env.personal.example +6 -2
- package/templates/default/.envrc +5 -0
- package/templates/default/.github/workflows/deploy-pr-preview.yml +23 -24
- package/templates/default/.github/workflows/deploy-stable-branches.yml +55 -49
- package/templates/default/.mcp.json +2 -12
- package/templates/default/.serena/project.yml +7 -0
- package/templates/default/CLAUDE.md +28 -4
- package/templates/default/README.md +2 -2
- package/templates/default/apps/admin/package.json +1 -1
- package/templates/default/apps/admin/tsconfig.json +2 -1
- package/templates/default/apps/web/package.json +1 -1
- package/templates/default/apps/web/tsconfig.json +2 -1
- package/templates/default/docs/plans/.gitkeep +0 -0
- package/templates/default/docs/plans/ancient-greeting-flamingo-agent-a87e67c.md +221 -0
- package/templates/default/docs/plans/ancient-greeting-flamingo-agent-ab73a1c.md +107 -0
- package/templates/default/docs/plans/ancient-greeting-flamingo.md +120 -0
- package/templates/default/docs/plans/bright-stargazing-dawn.md +87 -0
- package/templates/default/docs/plans/calm-stirring-bonbon.md +196 -0
- package/templates/default/docs/plans/calm-watching-widget.md +111 -0
- package/templates/default/docs/plans/cheerful-wiggling-ullman.md +164 -0
- package/templates/default/docs/plans/compiled-humming-cherny.md +94 -0
- package/templates/default/docs/plans/dapper-launching-lynx.md +81 -0
- package/templates/default/docs/plans/effervescent-munching-kite-agent-ac08baf.md +672 -0
- package/templates/default/docs/plans/effervescent-munching-kite-agent-aecc373.md +442 -0
- package/templates/default/docs/plans/effervescent-munching-kite.md +263 -0
- package/templates/default/docs/plans/fix-orphan-cleaner-review.md +25 -0
- package/templates/default/docs/plans/fix-sync-template-variables.md +162 -0
- package/templates/default/docs/plans/glimmering-giggling-sedgewick.md +126 -0
- package/templates/default/docs/plans/glittery-swimming-bachman.md +78 -0
- package/templates/default/docs/plans/happy-watching-toast.md +56 -0
- package/templates/default/docs/plans/harmonic-strolling-nebula.md +210 -0
- package/templates/default/docs/plans/import-alias-refactor.md +75 -0
- package/templates/default/docs/plans/lazy-percolating-sloth-agent-abda679.md +346 -0
- package/templates/default/docs/plans/lazy-percolating-sloth.md +151 -0
- package/templates/default/docs/plans/linked-greeting-llama-agent-a7a6e5b.md +345 -0
- package/templates/default/docs/plans/linked-greeting-llama.md +467 -0
- package/templates/default/docs/plans/lovely-bubbling-rose.md +80 -0
- package/templates/default/docs/plans/optimized-watching-sprout.md +149 -0
- package/templates/default/docs/plans/peaceful-beaming-toast-agent-a292da6.md +288 -0
- package/templates/default/docs/plans/peaceful-beaming-toast-agent-a819699.md +366 -0
- package/templates/default/docs/plans/peaceful-beaming-toast-agent-ac11de2.md +474 -0
- package/templates/default/docs/plans/peaceful-beaming-toast.md +345 -0
- package/templates/default/docs/plans/purrfect-spinning-hickey-agent-ae6194c.md +300 -0
- package/templates/default/docs/plans/purrfect-spinning-hickey-agent-ae6900e.md +444 -0
- package/templates/default/docs/plans/purrfect-spinning-hickey.md +361 -0
- package/templates/default/docs/plans/recursive-kindling-lemon-agent-a42199e.md +186 -0
- package/templates/default/docs/plans/recursive-kindling-lemon.md +36 -0
- package/templates/default/docs/plans/seed-migration-tests.md +47 -0
- package/templates/default/docs/plans/sprightly-leaping-manatee.md +224 -0
- package/templates/default/docs/plans/stateful-wishing-lerdorf.md +161 -0
- package/templates/default/docs/plans/streamed-purring-wreath.md +40 -0
- package/templates/default/docs/plans/synthetic-percolating-pearl.md +101 -0
- package/templates/default/docs/plans/todo-fix-sync-template-variables.md +21 -0
- package/templates/default/docs/plans/todo-phase4-marker-update.md +39 -0
- package/templates/default/docs/plans/todo-skill-creator-sync.md +23 -0
- package/templates/default/docs/plans/typed-snuggling-parnas-agent-a6f6391.md +476 -0
- package/templates/default/docs/plans/typed-snuggling-parnas-agent-adb678b.md +144 -0
- package/templates/default/docs/plans/typed-snuggling-parnas.md +84 -0
- package/templates/default/docs/plans/warm-hopping-lighthouse-agent-a30aa4f.md +534 -0
- package/templates/default/docs/plans/warm-hopping-lighthouse-agent-a57a278.md +508 -0
- package/templates/default/docs/plans/warm-hopping-lighthouse-agent-a90b809.md +421 -0
- package/templates/default/docs/plans/warm-hopping-lighthouse.md +199 -0
- package/templates/default/docs/verification-test.md +2 -0
- package/templates/default/gitignore +4 -0
- package/templates/default/package.json +2 -2
- package/templates/default/packages/admin-ui/package.json +1 -1
- package/templates/default/packages/server-core/tsconfig.json +6 -1
- package/templates/default/pnpm-lock.yaml +276 -57
- package/templates/default/scripts/ensure-serena.sh +75 -0
- package/templates/default/scripts/lib/worktree-config.ts +64 -0
- package/templates/default/scripts/stop-serena.sh +25 -0
- package/templates/default/scripts/worktree/dev.ts +2 -2
- /package/templates/default/scripts/{cli-template-update.ts → _cli-template-update.ts} +0 -0
- /package/templates/default/scripts/{template-update.ts → _template-update.ts} +0 -0
|
@@ -0,0 +1,476 @@
|
|
|
1
|
+
# task-loop 関連の調査レポート
|
|
2
|
+
|
|
3
|
+
## 調査概要
|
|
4
|
+
リポジトリ全体で `task-loop` / `vibe-kanban` への参照を検索し、削除・変更されたドキュメントの内容を確認しました。
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 1. リポジトリ全体の参照状況
|
|
9
|
+
|
|
10
|
+
### task-loop / taskLoop 系の検索結果(15ファイル)
|
|
11
|
+
|
|
12
|
+
| ファイルパス | 状況 |
|
|
13
|
+
|-------------|------|
|
|
14
|
+
| `docs/einja/instructions/issue-exec-workflow.md` | ✅ 新規 - issue-exec への移行説明あり |
|
|
15
|
+
| `docs/plans/linked-greeting-llama.md` | ✅ 計画書 - issue-exec 移行プラン |
|
|
16
|
+
| `packages/cli/README.md` | ❌ 残存 - `task:loop` コマンド説明が残っている |
|
|
17
|
+
| `README.md` | ❌ 残存 - `pnpm task:loop` の記述あり |
|
|
18
|
+
| `docs/specs/issues/cli/issue101-vibe-kanban-mcp-update/*` | ⚠️ 旧Issue仕様書 - 参照のみ(削除不要) |
|
|
19
|
+
|
|
20
|
+
### vibe-kanban / vibeKanban 系の検索結果(29ファイル)
|
|
21
|
+
|
|
22
|
+
| カテゴリ | ファイル数 | 内容 |
|
|
23
|
+
|---------|-----------|------|
|
|
24
|
+
| **Plans** | 3件 | 計画書(`linked-greeting-llama.md`, `effervescent-munching-kite-agent-ac08baf.md` 等) |
|
|
25
|
+
| **設定ファイル** | 4件 | `.mcp.json`, `.claude/settings.json`, `.cursor/mcp.json`, `.gitignore` |
|
|
26
|
+
| **QA Tests** | 15件 | `docs/specs/issues/cli/issue101-vibe-kanban-mcp-update/qa-tests/**/*.md` |
|
|
27
|
+
| **パッケージ** | 2件 | `packages/cli/src/lib/mcp-config.test.ts`, `packages/create-einja-app/.templateignore` |
|
|
28
|
+
| **ドキュメント** | 1件 | `.cursor/commands/task-vibe-kanban-loop.md` |
|
|
29
|
+
| **他** | 4件 | qa-tests, issue21/22 の旧QAテストファイル |
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## 2. 削除済みドキュメントの内容確認
|
|
34
|
+
|
|
35
|
+
### `docs/einja/instructions/task-vibe-kanban-loop.md` (削除済み)
|
|
36
|
+
|
|
37
|
+
**内容**:
|
|
38
|
+
- `pnpm task:loop` コマンドの使用方法
|
|
39
|
+
- Vibe-Kanban を使用した親Issue/サブIssue 階層管理
|
|
40
|
+
- GitHub Issue からタスクを自動選定し、Vibe-Kanban に登録して連続実行
|
|
41
|
+
- Phase ごとに親Issue作成、タスクグループはサブIssueとして登録
|
|
42
|
+
- PR作成・マージを経て親IssueがDoneになる仕組み
|
|
43
|
+
|
|
44
|
+
**処理フロー**:
|
|
45
|
+
```
|
|
46
|
+
pnpm task:loop <issue-number>
|
|
47
|
+
↓
|
|
48
|
+
1. Issue取得・解析
|
|
49
|
+
2. ブランチ作成(issue/N, issue/N-phaseM)
|
|
50
|
+
3. Vibe-Kanban MCP 接続
|
|
51
|
+
4. Phase毎に親Issue作成
|
|
52
|
+
5. サブIssue作成・開始指示(parent_issue_id設定)
|
|
53
|
+
6. Claude Code 起動(Vibe-Kanban経由)
|
|
54
|
+
7. 15秒ポーリング → Done検知 → GitHub Issue更新
|
|
55
|
+
8. Phase全タスク完了 → Phase PR作成・マージ
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
**廃止理由**:
|
|
59
|
+
- Vibe-Kanban MCP への依存を排除
|
|
60
|
+
- Claude Code カスタムコマンド `einja:issue-exec` に移行(tmux + worktree)
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## 3. 変更されたドキュメントの確認
|
|
65
|
+
|
|
66
|
+
### `docs/einja/steering/README.md`
|
|
67
|
+
|
|
68
|
+
**変更内容**: task-loop への直接的な言及なし。ドキュメント構造の整理のみ。
|
|
69
|
+
|
|
70
|
+
**関連セクション**:
|
|
71
|
+
- 開発ワークフローへのリンクあり(`development-workflow.md`)
|
|
72
|
+
- タスク管理へのリンクあり(`task-management.md`)
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
### `docs/einja/steering/branch-strategy.md`
|
|
77
|
+
|
|
78
|
+
**変更内容**: ブランチ階層とWorktreeの関係を明記。
|
|
79
|
+
|
|
80
|
+
**重要な追加内容**:
|
|
81
|
+
```markdown
|
|
82
|
+
### ブランチと Worktree の関係
|
|
83
|
+
|
|
84
|
+
Gitブランチ階層:
|
|
85
|
+
IssueBranchBase → issue/123 → issue/123-phase1, issue/123-phase2
|
|
86
|
+
|
|
87
|
+
Worktree(einja:issue-exec管理):
|
|
88
|
+
- issue/123-phase1 → worktree: task-1.1, task-1.2
|
|
89
|
+
- issue/123-phase2 → worktree: task-2.1
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
**einja:issue-exec 実行時のブランチ運用**:
|
|
93
|
+
- Manager: Issue & Phase ブランチ + worktree
|
|
94
|
+
- Director: Phase worktree で tmux 起動
|
|
95
|
+
- Worker: Task worktree で `/einja:task-exec` 実行
|
|
96
|
+
|
|
97
|
+
**ブランチ CRUD タイミング**:
|
|
98
|
+
| 操作 | タイミング | 実行者 |
|
|
99
|
+
|-----|----------|--------|
|
|
100
|
+
| Create Issue ブランチ | コマンド起動時 | Manager |
|
|
101
|
+
| Create Phase ブランチ + worktree | コマンド起動時 | Manager |
|
|
102
|
+
| Create Task ブランチ + worktree | タスク開始時 | Director |
|
|
103
|
+
| Update Phase ブランチ | タスク PR マージ時 | GitHub |
|
|
104
|
+
| Delete Task worktree | タスク完了後 | Director |
|
|
105
|
+
| Delete Phase worktree | Phase 完了後 | Manager |
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
### `docs/einja/steering/development-workflow.md`
|
|
110
|
+
|
|
111
|
+
**変更内容**: Phase B(タスク実行)セクションが全面的に書き換えられた。
|
|
112
|
+
|
|
113
|
+
**変更前**: `pnpm task:loop` + Vibe-Kanban
|
|
114
|
+
**変更後**: `/einja:issue-exec` + `/einja:task-exec`
|
|
115
|
+
|
|
116
|
+
**新しいフロー(Phase B)**:
|
|
117
|
+
```markdown
|
|
118
|
+
## Phase B: タスク実行(/einja:issue-exec or /einja:task-exec)
|
|
119
|
+
|
|
120
|
+
/einja:issue-exec #123
|
|
121
|
+
↓
|
|
122
|
+
Manager: Issue パース、Phase 毎に Director を tmux で起動
|
|
123
|
+
↓
|
|
124
|
+
Director(Phase毎): タスクグループを依存順に Worker を起動
|
|
125
|
+
↓
|
|
126
|
+
Worker(/einja:task-exec を実行):
|
|
127
|
+
- task-executer: 実装
|
|
128
|
+
- task-reviewer: 設計との整合性チェック(自動)
|
|
129
|
+
- task-qa: 動作確認(Playwright/curl)(自動)
|
|
130
|
+
- commit & push → PR 自動作成
|
|
131
|
+
↓
|
|
132
|
+
GitHub で PR レビュー → マージモードに応じてマージ
|
|
133
|
+
↓
|
|
134
|
+
Director: PR マージ検知 → GitHub Issue チェックボックス更新
|
|
135
|
+
↓
|
|
136
|
+
Phase全タスク完了?
|
|
137
|
+
├─ Yes → Phase PR 作成 → マージモードに応じた処理
|
|
138
|
+
└─ No → 依存解除された次タスクの Worker を起動
|
|
139
|
+
↓
|
|
140
|
+
全 Phase 完了 → 最終 PR 作成
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
**使い分けの明記**:
|
|
144
|
+
| コマンド | 用途 | 対象 | 推奨シーン |
|
|
145
|
+
|---------|------|------|----------|
|
|
146
|
+
| `/einja:issue-exec` | Issue全体の並列実行 | 複数Phase・複数タスクグループ | 大規模機能実装 |
|
|
147
|
+
| `/einja:task-exec` | 単一タスクグループの確実な完了 | 1つのタスクグループ | 複雑な実装、品質重視 |
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
### `docs/einja/steering/task-management.md`
|
|
152
|
+
|
|
153
|
+
**変更内容**: Vibe-Kanbanへの言及削除、einja:issue-exec への言及追加。
|
|
154
|
+
|
|
155
|
+
**主要な変更箇所**:
|
|
156
|
+
|
|
157
|
+
1. **タスク管理の方法**セクション:
|
|
158
|
+
- Vibe-Kanbanの説明削除
|
|
159
|
+
- GitHub Issueによる管理に統一
|
|
160
|
+
|
|
161
|
+
2. **コマンドリファレンス**:
|
|
162
|
+
```markdown
|
|
163
|
+
### タスク実行関連コマンド
|
|
164
|
+
|
|
165
|
+
**Issue全体の並列実行**:
|
|
166
|
+
/einja:issue-exec #<issue番号>
|
|
167
|
+
/einja:issue-exec #<issue番号> --merge-mode auto # 全自動モード
|
|
168
|
+
/einja:issue-exec #<issue番号> --max-phase <番号> # 指定Phaseまで実行
|
|
169
|
+
|
|
170
|
+
**単一タスクグループ実行**:
|
|
171
|
+
/einja:task-exec #{issue_number} {タスクグループ番号}
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
3. **Vibe-Kanban関連削除**:
|
|
175
|
+
- 親Issue/サブIssue構造の説明削除(Vibe-Kanban固有)
|
|
176
|
+
- `pnpm task:loop` コマンドの説明削除
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## 4. 新規追加ファイルの確認
|
|
181
|
+
|
|
182
|
+
### `.claude/commands/einja/issue-exec.md`
|
|
183
|
+
|
|
184
|
+
**役割**: GitHub Issue全体のタスクを Manager → Director → Worker の3階層で並列実行する。
|
|
185
|
+
|
|
186
|
+
**責務**:
|
|
187
|
+
| 階層 | 責務 |
|
|
188
|
+
|------|------|
|
|
189
|
+
| **Manager** | Issue パース、ブランチ管理、worktree 管理、tmux 管理、Director 起動、Phase マージ、質問エスカレーション |
|
|
190
|
+
| **Director** | Phase 内のタスクグループ管理、Worker 起動、並列制御、PR マージ検知、変更伝播、質問対応 |
|
|
191
|
+
| **Worker** | task-exec 実行、Phase 変更取り込み、PR 作成、完了報告 |
|
|
192
|
+
|
|
193
|
+
**マージモード**:
|
|
194
|
+
| モード | タスクPR | Phase PR | 最終PR |
|
|
195
|
+
|--------|---------|---------|--------|
|
|
196
|
+
| `manual` | 人間マージ待ち | 人間マージ待ち | 人間マージ待ち |
|
|
197
|
+
| `task-group-auto` | CI通過後に自動マージ | 人間マージ待ち | 人間マージ待ち |
|
|
198
|
+
| `auto` | CI通過後に自動マージ | CI通過後に自動マージ | 人間マージ待ち(常に手動) |
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
### `docs/einja/instructions/issue-exec-workflow.md`
|
|
203
|
+
|
|
204
|
+
**役割**: `einja:issue-exec` コマンドの使用方法と3階層プロセスの詳細説明。
|
|
205
|
+
|
|
206
|
+
**重要な内容**:
|
|
207
|
+
- `task-vibe-kanban-loop.md` の代替ドキュメント
|
|
208
|
+
- **⚠️ 重要**: Vibe-Kanban(`pnpm task:loop`)は廃止され、`/einja:issue-exec` に移行
|
|
209
|
+
- tmux セッション構成、worktree 構成、ステータスファイル、質問エスカレーション
|
|
210
|
+
|
|
211
|
+
**tmux セッション構成**:
|
|
212
|
+
```
|
|
213
|
+
tmux session: einja-123
|
|
214
|
+
window 0: Manager
|
|
215
|
+
window 1: Director-Phase1
|
|
216
|
+
window 2: Worker-1.1
|
|
217
|
+
window 3: Worker-1.2
|
|
218
|
+
window 4: Director-Phase2
|
|
219
|
+
...
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
**ステータスファイル**:
|
|
223
|
+
```
|
|
224
|
+
~/.einja/sessions/issue-123/
|
|
225
|
+
session.json
|
|
226
|
+
phase-1/
|
|
227
|
+
status.json
|
|
228
|
+
task-1.1.json
|
|
229
|
+
questions/
|
|
230
|
+
q-{uuid}.json
|
|
231
|
+
events.jsonl
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
### `scripts/lib/worktree-config.ts`
|
|
237
|
+
|
|
238
|
+
**役割**: worktree用の設定ファイル読み込み(PostgreSQLポート、アプリポート割り当て等)。
|
|
239
|
+
|
|
240
|
+
**内容**:
|
|
241
|
+
```typescript
|
|
242
|
+
export interface WorktreeConfig {
|
|
243
|
+
schemaVersion: number;
|
|
244
|
+
postgres: PostgresConfig;
|
|
245
|
+
apps: AppConfig[];
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
// デフォルト設定
|
|
249
|
+
{
|
|
250
|
+
schemaVersion: 1,
|
|
251
|
+
postgres: { port: 25432, containerName: "einja-management-postgres" },
|
|
252
|
+
apps: [{ id: "web", portRangeStart: 3000, rangeSize: 1000 }]
|
|
253
|
+
}
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
**機能**:
|
|
257
|
+
- `worktree.config.json` を読み込み
|
|
258
|
+
- プロジェクトルートを自動検出(`package.json`ベース)
|
|
259
|
+
- 存在しない場合はデフォルト設定を返す
|
|
260
|
+
|
|
261
|
+
**task-loop との関係**: なし(worktree 管理の汎用ユーティリティ)
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
265
|
+
## 5. Plans ディレクトリの確認
|
|
266
|
+
|
|
267
|
+
### `linked-greeting-llama.md`
|
|
268
|
+
|
|
269
|
+
**内容**: `einja:issue-exec` への移行プラン。
|
|
270
|
+
|
|
271
|
+
**重要なポイント**:
|
|
272
|
+
- Agent Teams 評価結果(不採用)
|
|
273
|
+
- ネスト不可、cwd指定未サポート、セッション再開不可
|
|
274
|
+
- Worker 内部はサブエージェント(Task ツール)で実装
|
|
275
|
+
- 推奨アーキテクチャ: **tmux + サブエージェント**
|
|
276
|
+
- 質問エスカレーションチェーン(Worker → Director → Manager → Human)
|
|
277
|
+
- マージモード(manual / task-group-auto / auto)
|
|
278
|
+
|
|
279
|
+
**ファイル変更一覧**:
|
|
280
|
+
| ファイル | 状況 |
|
|
281
|
+
|---------|------|
|
|
282
|
+
| `.claude/commands/einja/issue-exec.md` | ✅ 新規作成 |
|
|
283
|
+
| `packages/cli/src/commands/issue-exec/` | ❌ **ディレクトリごと削除**(TypeScript CLI → Claude Code 移行) |
|
|
284
|
+
| `docs/einja/instructions/task-vibe-kanban-loop.md` | ❌ 削除(マネージドなので dev-cli 側で対応) |
|
|
285
|
+
|
|
286
|
+
---
|
|
287
|
+
|
|
288
|
+
### `effervescent-munching-kite-agent-ac08baf.md`
|
|
289
|
+
|
|
290
|
+
**内容**: Claude Code MCP サーバー共有方法の調査レポート。
|
|
291
|
+
|
|
292
|
+
**重要な発見**:
|
|
293
|
+
- 現在の `.mcp.json` で `vibe_kanban` は stdio で設定されている
|
|
294
|
+
- 各Claude Codeインスタンスで個別プロセスが起動される
|
|
295
|
+
- 中央Supergatewayサーバーで共有化する方法が提案されている
|
|
296
|
+
|
|
297
|
+
**Vibe-Kanban MCP 設定(現状)**:
|
|
298
|
+
```json
|
|
299
|
+
{
|
|
300
|
+
"mcpServers": {
|
|
301
|
+
"vibe_kanban": {
|
|
302
|
+
"command": "npx",
|
|
303
|
+
"args": ["-y", "vibe-kanban@latest", "--mcp"]
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
**task-loop との関係**: Vibe-Kanban MCP は `pnpm task:loop` で使用されていた。廃止により不要になった可能性あり。
|
|
310
|
+
|
|
311
|
+
---
|
|
312
|
+
|
|
313
|
+
## 6. 残存している参照(要対応)
|
|
314
|
+
|
|
315
|
+
### ❌ `packages/cli/README.md`
|
|
316
|
+
|
|
317
|
+
**該当箇所**:
|
|
318
|
+
```markdown
|
|
319
|
+
### `task:loop`
|
|
320
|
+
|
|
321
|
+
GitHub Issueのタスクを自動実行します(Claude Code経由)。
|
|
322
|
+
Phase毎に親Issueを作成し、タスクグループをサブIssueとして階層管理します。
|
|
323
|
+
|
|
324
|
+
pnpm task:loop 123
|
|
325
|
+
pnpm task:loop 123 --max-group 1.3
|
|
326
|
+
npx @einja/dev-cli task:loop 123
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
**対応**: このセクションを削除または `einja:issue-exec` への移行説明に置き換える。
|
|
330
|
+
|
|
331
|
+
---
|
|
332
|
+
|
|
333
|
+
### ❌ `README.md`
|
|
334
|
+
|
|
335
|
+
**該当箇所**:
|
|
336
|
+
```markdown
|
|
337
|
+
**追加されるnpm scripts:**
|
|
338
|
+
|
|
339
|
+
pnpm task:loop 123 # GitHub Issue #123のタスクを自動実行
|
|
340
|
+
pnpm einja:sync # テンプレートから最新設定を同期
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
**対応**: `pnpm task:loop` の記述を削除。
|
|
344
|
+
|
|
345
|
+
---
|
|
346
|
+
|
|
347
|
+
### ⚠️ 設定ファイル(`.mcp.json`, `.claude/settings.json`)
|
|
348
|
+
|
|
349
|
+
**該当箇所**:
|
|
350
|
+
```json
|
|
351
|
+
{
|
|
352
|
+
"mcpServers": {
|
|
353
|
+
"vibe_kanban": {
|
|
354
|
+
"command": "npx",
|
|
355
|
+
"args": ["-y", "vibe-kanban@latest", "--mcp"]
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
**対応**: Vibe-Kanban MCP は `task:loop` で使用されていた。`einja:issue-exec` では不要だが、他の用途で使用される可能性があるため、削除前に確認が必要。
|
|
362
|
+
|
|
363
|
+
---
|
|
364
|
+
|
|
365
|
+
### ⚠️ `package.json` scripts
|
|
366
|
+
|
|
367
|
+
**該当箇所**:
|
|
368
|
+
```json
|
|
369
|
+
{
|
|
370
|
+
"scripts": {
|
|
371
|
+
"task:loop": "npx @einja/dev-cli task:loop"
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
```
|
|
375
|
+
|
|
376
|
+
**対応**: `task:loop` スクリプトを削除(検索結果では表示されなかったが、存在する可能性あり)。
|
|
377
|
+
|
|
378
|
+
---
|
|
379
|
+
|
|
380
|
+
## 7. CLI コマンド実装の確認
|
|
381
|
+
|
|
382
|
+
### `packages/cli/src/commands/`
|
|
383
|
+
|
|
384
|
+
**現在の構成**:
|
|
385
|
+
```
|
|
386
|
+
packages/cli/src/commands/
|
|
387
|
+
├── init.ts
|
|
388
|
+
├── list.ts
|
|
389
|
+
├── sync.test.ts
|
|
390
|
+
└── sync.ts
|
|
391
|
+
```
|
|
392
|
+
|
|
393
|
+
**重要な発見**:
|
|
394
|
+
- ✅ `task-loop/` ディレクトリは既に削除済み
|
|
395
|
+
- ✅ CLI パッケージから TypeScript 実装は完全に削除されている
|
|
396
|
+
- ✅ Claude Code カスタムコマンド(`.claude/commands/einja/issue-exec.md`)に移行済み
|
|
397
|
+
|
|
398
|
+
**削除されたファイル(git status から)**:
|
|
399
|
+
```
|
|
400
|
+
D packages/cli/src/commands/task-loop/index.ts
|
|
401
|
+
D packages/cli/src/commands/task-loop/lib/__mocks__/README.md
|
|
402
|
+
D packages/cli/src/commands/task-loop/lib/__mocks__/child-process.mock.ts
|
|
403
|
+
D packages/cli/src/commands/task-loop/lib/__mocks__/sample-issues.ts
|
|
404
|
+
D packages/cli/src/commands/task-loop/lib/branch-manager.test.ts
|
|
405
|
+
D packages/cli/src/commands/task-loop/lib/branch-manager.ts
|
|
406
|
+
D packages/cli/src/commands/task-loop/lib/branch-selector.ts
|
|
407
|
+
D packages/cli/src/commands/task-loop/lib/conflict-handler.ts
|
|
408
|
+
D packages/cli/src/commands/task-loop/lib/dependency-resolver.test.ts
|
|
409
|
+
D packages/cli/src/commands/task-loop/lib/dependency-resolver.ts
|
|
410
|
+
D packages/cli/src/commands/task-loop/lib/gh-setup.ts
|
|
411
|
+
D packages/cli/src/commands/task-loop/lib/github-client.test.ts
|
|
412
|
+
D packages/cli/src/commands/task-loop/lib/github-client.ts
|
|
413
|
+
D packages/cli/src/commands/task-loop/lib/horizontal-split-detector.test.ts
|
|
414
|
+
D packages/cli/src/commands/task-loop/lib/horizontal-split-detector.ts
|
|
415
|
+
D packages/cli/src/commands/task-loop/lib/issue-parser.test.ts
|
|
416
|
+
D packages/cli/src/commands/task-loop/lib/issue-parser.ts
|
|
417
|
+
D packages/cli/src/commands/task-loop/lib/issue-validator.ts
|
|
418
|
+
D packages/cli/src/commands/task-loop/lib/project-selector.ts
|
|
419
|
+
D packages/cli/src/commands/task-loop/lib/pull-request-manager.ts
|
|
420
|
+
D packages/cli/src/commands/task-loop/lib/retry-utils.test.ts
|
|
421
|
+
D packages/cli/src/commands/task-loop/lib/retry-utils.ts
|
|
422
|
+
D packages/cli/src/commands/task-loop/lib/task-number-utils.test.ts
|
|
423
|
+
D packages/cli/src/commands/task-loop/lib/task-number-utils.ts
|
|
424
|
+
D packages/cli/src/commands/task-loop/lib/task-state-manager.test.ts
|
|
425
|
+
D packages/cli/src/commands/task-loop/lib/task-state-manager.ts
|
|
426
|
+
D packages/cli/src/commands/task-loop/lib/types.ts
|
|
427
|
+
D packages/cli/src/commands/task-loop/lib/vibe-kanban-client.test.ts
|
|
428
|
+
D packages/cli/src/commands/task-loop/lib/vibe-kanban-client.ts
|
|
429
|
+
D packages/cli/src/commands/task-loop/lib/vibe-kanban-rest-client.test.ts
|
|
430
|
+
D packages/cli/src/commands/task-loop/lib/vibe-kanban-rest-client.ts
|
|
431
|
+
D packages/cli/src/commands/task-loop/lib/worktree-utils.test.ts
|
|
432
|
+
D packages/cli/src/commands/task-loop/lib/worktree-utils.ts
|
|
433
|
+
```
|
|
434
|
+
|
|
435
|
+
---
|
|
436
|
+
|
|
437
|
+
## 8. まとめ
|
|
438
|
+
|
|
439
|
+
### 移行の状況
|
|
440
|
+
|
|
441
|
+
| カテゴリ | 状況 |
|
|
442
|
+
|---------|------|
|
|
443
|
+
| **CLI 実装** | ✅ 完全削除済み(`packages/cli/src/commands/task-loop/`) |
|
|
444
|
+
| **カスタムコマンド** | ✅ 新規作成済み(`.claude/commands/einja/issue-exec.md`) |
|
|
445
|
+
| **ドキュメント(マネージド)** | ✅ 移行済み(`issue-exec-workflow.md`, `development-workflow.md`, `task-management.md`) |
|
|
446
|
+
| **Plans** | ✅ 移行プラン作成済み(`linked-greeting-llama.md`) |
|
|
447
|
+
| **README(非マネージド)** | ❌ 残存(`packages/cli/README.md`, `README.md`) |
|
|
448
|
+
| **設定ファイル** | ⚠️ 確認必要(`.mcp.json` の vibe_kanban、`package.json` scripts) |
|
|
449
|
+
|
|
450
|
+
### 残存参照の対応優先度
|
|
451
|
+
|
|
452
|
+
| 優先度 | ファイル | 対応内容 |
|
|
453
|
+
|--------|---------|---------|
|
|
454
|
+
| 🔴 高 | `packages/cli/README.md` | `task:loop` セクションを削除または `einja:issue-exec` への移行説明に置き換え |
|
|
455
|
+
| 🔴 高 | `README.md` | `pnpm task:loop` の記述を削除 |
|
|
456
|
+
| 🟡 中 | `package.json` | `task:loop` スクリプトの確認・削除 |
|
|
457
|
+
| 🟡 中 | `.mcp.json`, `.claude/settings.json` | `vibe_kanban` MCP の削除可否確認(他の用途で使用されていないか) |
|
|
458
|
+
| 🟢 低 | `docs/specs/issues/cli/issue101-vibe-kanban-mcp-update/` | 旧Issue仕様書(参照のみ、削除不要) |
|
|
459
|
+
|
|
460
|
+
### 代替機能の確認
|
|
461
|
+
|
|
462
|
+
| 旧機能(task-loop) | 新機能(issue-exec) |
|
|
463
|
+
|--------------------|---------------------|
|
|
464
|
+
| TypeScript CLI | Claude Code カスタムコマンド |
|
|
465
|
+
| Vibe-Kanban MCP | tmux + worktree + ステータスファイル |
|
|
466
|
+
| 親Issue/サブIssue階層 | Manager → Director → Worker 階層 |
|
|
467
|
+
| 15秒ポーリング | ステータスファイル監視 |
|
|
468
|
+
| PR自動作成(Vibe-Kanban経由) | PR自動作成(Worker が `gh pr create`) |
|
|
469
|
+
| マージ検知(Vibe-Kanban) | マージ検知(Director が `gh pr list --state merged` ポーリング) |
|
|
470
|
+
|
|
471
|
+
---
|
|
472
|
+
|
|
473
|
+
## 調査完了
|
|
474
|
+
|
|
475
|
+
**調査日時**: 2026-03-03
|
|
476
|
+
**調査者**: Explore Agent
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
# task-loop コード復元計画のリスク分析
|
|
2
|
+
|
|
3
|
+
## 調査結果サマリー
|
|
4
|
+
|
|
5
|
+
### 依存関係
|
|
6
|
+
- **MCP SDK**: `@modelcontextprotocol/sdk` は `package.json` に含まれている ✅
|
|
7
|
+
- **vibe-kanban MCP**: 以下の2ファイルが MCP SDK を使用している
|
|
8
|
+
- `vibe-kanban-client.ts` (L11-12)
|
|
9
|
+
- `vibe-kanban-client.test.ts`
|
|
10
|
+
|
|
11
|
+
### ドキュメント変更状況
|
|
12
|
+
```
|
|
13
|
+
docs/einja/cli/preset.yaml | 12 +- (vibe-kanban MCP設定削除)
|
|
14
|
+
docs/einja/instructions/task-execute.md | 40 +- (issue-exec版に更新)
|
|
15
|
+
docs/einja/instructions/task-vibe-kanban-loop.md | 560 ------- (削除)
|
|
16
|
+
docs/einja/steering/README.md | 2 +-
|
|
17
|
+
docs/einja/steering/branch-strategy.md | 122 +++-- (issue-exec版に更新)
|
|
18
|
+
docs/einja/steering/development-workflow.md | 184 +++---- (issue-exec版に更新)
|
|
19
|
+
docs/einja/steering/task-management.md | 101 +--- (issue-exec版に更新)
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## 🚨 発見された重大なリスク
|
|
23
|
+
|
|
24
|
+
### 1. ランタイム MCP 接続失敗(Critical)
|
|
25
|
+
|
|
26
|
+
**問題**: `vibe-kanban-client.ts` が `.mcp.json` の `vibe_kanban` 設定に依存するが、計画では復元しない
|
|
27
|
+
|
|
28
|
+
**影響範囲**:
|
|
29
|
+
- `task-loop` コマンド実行時に vibe-kanban MCP サーバー接続が必須
|
|
30
|
+
- `.mcp.json` には設定が存在するが、`preset.yaml` から削除済み
|
|
31
|
+
- **CLI パッケージビルド時に `preset.yaml` から `.mcp.json` が生成される可能性**がある
|
|
32
|
+
- ビルドスクリプト: `prebuild` → `generate-template.mjs` + `copy-presets.mjs`
|
|
33
|
+
- この場合、配布版では vibe-kanban 設定が欠落する
|
|
34
|
+
|
|
35
|
+
**検証が必要**:
|
|
36
|
+
1. ビルドスクリプトが `.mcp.json` を生成するかどうか
|
|
37
|
+
2. 開発環境の `.mcp.json` とビルド成果物の関係
|
|
38
|
+
|
|
39
|
+
### 2. ドキュメント vs コードの不整合(High)
|
|
40
|
+
|
|
41
|
+
**問題**: steering ドキュメントが「issue-exec のみ」記載、コードは「task-loop と issue-exec 両方」存在
|
|
42
|
+
|
|
43
|
+
**具体的な影響**:
|
|
44
|
+
- `docs/einja/steering/development-workflow.md`: issue-exec の手順のみ記載
|
|
45
|
+
- `docs/einja/steering/task-management.md`: Vibe-Kanban 統合の説明が削除済み
|
|
46
|
+
- ユーザーが steering を読んでも `task:loop` の使い方が分からない
|
|
47
|
+
|
|
48
|
+
**このリスクは許容可能か?**
|
|
49
|
+
→ ユーザーが「コードのみ復元」を明示的に希望しているため、ドキュメント不整合は承知の上と思われる
|
|
50
|
+
|
|
51
|
+
### 3. npm パッケージ依存関係(Low)
|
|
52
|
+
|
|
53
|
+
**調査結果**: すべて package.json に含まれている ✅
|
|
54
|
+
- `@modelcontextprotocol/sdk`: ^1.0.0(存在)
|
|
55
|
+
- `commander`, `chalk`, `ora`, `fs-extra`, `glob` 等: すべて存在
|
|
56
|
+
|
|
57
|
+
### 4. preset.yaml vs .mcp.json の不整合(Medium)
|
|
58
|
+
|
|
59
|
+
**現状**:
|
|
60
|
+
- **ワーキングツリーの preset.yaml**: vibe-kanban MCP 設定なし
|
|
61
|
+
- **プロジェクトルートの .mcp.json**: vibe-kanban MCP 設定あり(L3-10)
|
|
62
|
+
|
|
63
|
+
**問題**:
|
|
64
|
+
- CLI init/sync 時に preset.yaml から設定が生成される場合、不整合が発生する
|
|
65
|
+
- ユーザーが手動で .mcp.json を編集している場合は問題ないが、自動生成の場合は要注意
|
|
66
|
+
|
|
67
|
+
## 推奨される対応
|
|
68
|
+
|
|
69
|
+
### 最小限の修正(計画の範囲内)
|
|
70
|
+
|
|
71
|
+
**現状の計画で進める場合の前提条件**:
|
|
72
|
+
1. `.mcp.json` が preset.yaml から自動生成されない(手動管理)
|
|
73
|
+
2. ユーザーは「task-loop は動かなくてもよい」と理解している
|
|
74
|
+
3. ドキュメント不整合は一時的なもの
|
|
75
|
+
|
|
76
|
+
**追加すべき検証手順**:
|
|
77
|
+
- [ ] ビルド後に `dist/` や `presets/` 配下の `.mcp.json` を確認
|
|
78
|
+
- [ ] `task:loop` コマンドを実際に実行して vibe-kanban 接続を確認
|
|
79
|
+
|
|
80
|
+
### 推奨:計画の拡張
|
|
81
|
+
|
|
82
|
+
以下のいずれかを計画に追加することを推奨:
|
|
83
|
+
|
|
84
|
+
#### オプションA: vibe-kanban 設定を復元(動作可能にする)
|
|
85
|
+
```yaml
|
|
86
|
+
# preset.yaml に追加
|
|
87
|
+
mcpServers:
|
|
88
|
+
- vibe-kanban # ← この行を追加
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
**メリット**:
|
|
92
|
+
- task-loop が実際に動作する
|
|
93
|
+
- 既存の .mcp.json と整合性が取れる
|
|
94
|
+
|
|
95
|
+
**デメリット**:
|
|
96
|
+
- 「コードのみ復元」という当初の方針から逸脱
|
|
97
|
+
|
|
98
|
+
#### オプションB: task-loop を非推奨にする
|
|
99
|
+
```typescript
|
|
100
|
+
// cli.ts
|
|
101
|
+
.command("task:loop [issue]")
|
|
102
|
+
.description("【非推奨】GitHub Issueのタスクを自動実行(代わりに einja:issue-exec を使用)")
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
**メリット**:
|
|
106
|
+
- ドキュメント(issue-exec推奨)とコード(両方存在)の整合性が向上
|
|
107
|
+
- ユーザーに移行を促せる
|
|
108
|
+
|
|
109
|
+
**デメリット**:
|
|
110
|
+
- 追加のコード変更が必要
|
|
111
|
+
|
|
112
|
+
#### オプションC: README 等で注記を追加
|
|
113
|
+
```markdown
|
|
114
|
+
## 注意事項
|
|
115
|
+
- `task:loop` コマンドは vibe-kanban MCP の設定が必要です
|
|
116
|
+
- 現在の推奨ワークフローは `einja:issue-exec` です
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
## 質問事項
|
|
120
|
+
|
|
121
|
+
計画を最終化する前に、以下を確認させてください:
|
|
122
|
+
|
|
123
|
+
1. **task-loop の動作**:
|
|
124
|
+
- 実際に動作させる必要がありますか?
|
|
125
|
+
- それとも「コードが残っていればよい」(動作不要)ですか?
|
|
126
|
+
|
|
127
|
+
2. **ビルドプロセス**:
|
|
128
|
+
- `preset.yaml` から `.mcp.json` が自動生成されますか?
|
|
129
|
+
- それとも `.mcp.json` は手動管理ですか?
|
|
130
|
+
|
|
131
|
+
3. **対応方針**:
|
|
132
|
+
- 上記オプション A/B/C のいずれかを採用しますか?
|
|
133
|
+
- それとも現状の計画のまま進めますか?
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## 現時点の推奨
|
|
138
|
+
|
|
139
|
+
**最も安全な選択肢**: オプションA(vibe-kanban 設定を復元)
|
|
140
|
+
|
|
141
|
+
**理由**:
|
|
142
|
+
- コードを復元する以上、動作可能な状態にすべき
|
|
143
|
+
- .mcp.json との整合性が保たれる
|
|
144
|
+
- 将来的に issue-exec に移行する場合でも、段階的に削除できる
|