create-einja-app 0.3.1 → 0.3.3

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 (120) hide show
  1. package/README.md +34 -1
  2. package/dist/cli.js +92 -80
  3. package/dist/cli.js.map +1 -1
  4. package/package.json +1 -1
  5. package/templates/default/.changeset/config.json +11 -0
  6. package/templates/default/.claude/hooks/einja/plan-mode-skill-loader.sh +27 -0
  7. package/templates/default/.claude/settings.json +29 -1
  8. package/templates/default/.claude/skills/cli-package-specs/SKILL.md +247 -0
  9. package/templates/default/.einja-sync.json +1 -1
  10. package/templates/default/.env.personal.example +6 -2
  11. package/templates/default/.envrc +5 -0
  12. package/templates/default/.github/release.yml +10 -0
  13. package/templates/default/.github/workflows/changeset-status.yml +60 -0
  14. package/templates/default/.github/workflows/deploy-pr-preview.yml +23 -24
  15. package/templates/default/.github/workflows/deploy-stable-branches.yml +336 -100
  16. package/templates/default/.mcp.json +2 -12
  17. package/templates/default/.serena/project.yml +7 -0
  18. package/templates/default/CLAUDE.md +61 -10
  19. package/templates/default/README.md +22 -10
  20. package/templates/default/apps/admin/package.json +1 -1
  21. package/templates/default/apps/admin/tsconfig.json +2 -1
  22. package/templates/default/apps/web/package.json +1 -1
  23. package/templates/default/apps/web/tsconfig.json +2 -1
  24. package/templates/default/docs/plans/.gitkeep +0 -0
  25. package/templates/default/docs/plans/agile-munching-knuth.md +161 -0
  26. package/templates/default/docs/plans/agile-riding-nova.md +158 -0
  27. package/templates/default/docs/plans/agile-wibbling-dusk.md +91 -0
  28. package/templates/default/docs/plans/ancient-greeting-flamingo-agent-a87e67c.md +221 -0
  29. package/templates/default/docs/plans/ancient-greeting-flamingo-agent-ab73a1c.md +107 -0
  30. package/templates/default/docs/plans/ancient-greeting-flamingo.md +120 -0
  31. package/templates/default/docs/plans/ancient-watching-otter.md +152 -0
  32. package/templates/default/docs/plans/bright-sauteeing-bumblebee.md +30 -0
  33. package/templates/default/docs/plans/bright-stargazing-dawn.md +87 -0
  34. package/templates/default/docs/plans/calm-stirring-bonbon.md +196 -0
  35. package/templates/default/docs/plans/calm-watching-widget.md +111 -0
  36. package/templates/default/docs/plans/cheerful-wiggling-ullman.md +164 -0
  37. package/templates/default/docs/plans/compiled-humming-cherny.md +94 -0
  38. package/templates/default/docs/plans/composed-doodling-mountain.md +362 -0
  39. package/templates/default/docs/plans/dapper-launching-lynx.md +81 -0
  40. package/templates/default/docs/plans/dazzling-foraging-cascade.md +32 -0
  41. package/templates/default/docs/plans/effervescent-munching-kite-agent-ac08baf.md +672 -0
  42. package/templates/default/docs/plans/effervescent-munching-kite-agent-aecc373.md +442 -0
  43. package/templates/default/docs/plans/effervescent-munching-kite.md +263 -0
  44. package/templates/default/docs/plans/enchanted-wiggling-ember-agent-a5befd57d0ca4c7c7.md +177 -0
  45. package/templates/default/docs/plans/enchanted-wiggling-ember.md +170 -0
  46. package/templates/default/docs/plans/federated-questing-kahan.md +47 -0
  47. package/templates/default/docs/plans/fix-orphan-cleaner-review.md +25 -0
  48. package/templates/default/docs/plans/fix-sync-template-variables.md +162 -0
  49. package/templates/default/docs/plans/flickering-pondering-hearth.md +26 -0
  50. package/templates/default/docs/plans/fluttering-snuggling-sprout.md +172 -0
  51. package/templates/default/docs/plans/generic-sleeping-snowglobe-agent-a41d8da.md +179 -0
  52. package/templates/default/docs/plans/generic-sleeping-snowglobe.md +108 -0
  53. package/templates/default/docs/plans/generic-snuggling-pudding.md +57 -0
  54. package/templates/default/docs/plans/glimmering-giggling-sedgewick.md +126 -0
  55. package/templates/default/docs/plans/glittery-swimming-bachman.md +78 -0
  56. package/templates/default/docs/plans/happy-watching-toast.md +56 -0
  57. package/templates/default/docs/plans/harmonic-strolling-nebula.md +210 -0
  58. package/templates/default/docs/plans/idempotent-wiggling-cherny.md +122 -0
  59. package/templates/default/docs/plans/import-alias-refactor.md +75 -0
  60. package/templates/default/docs/plans/lazy-percolating-sloth-agent-abda679.md +346 -0
  61. package/templates/default/docs/plans/lazy-percolating-sloth.md +151 -0
  62. package/templates/default/docs/plans/linked-greeting-llama-agent-a7a6e5b.md +345 -0
  63. package/templates/default/docs/plans/linked-greeting-llama.md +467 -0
  64. package/templates/default/docs/plans/lovely-bubbling-rose.md +80 -0
  65. package/templates/default/docs/plans/optimized-watching-sprout.md +149 -0
  66. package/templates/default/docs/plans/peaceful-beaming-toast-agent-a292da6.md +288 -0
  67. package/templates/default/docs/plans/peaceful-beaming-toast-agent-a819699.md +366 -0
  68. package/templates/default/docs/plans/peaceful-beaming-toast-agent-ac11de2.md +474 -0
  69. package/templates/default/docs/plans/peaceful-beaming-toast.md +345 -0
  70. package/templates/default/docs/plans/purrfect-spinning-hickey-agent-ae6194c.md +300 -0
  71. package/templates/default/docs/plans/purrfect-spinning-hickey-agent-ae6900e.md +444 -0
  72. package/templates/default/docs/plans/purrfect-spinning-hickey.md +361 -0
  73. package/templates/default/docs/plans/recursive-fluttering-mitten.md +176 -0
  74. package/templates/default/docs/plans/recursive-kindling-lemon-agent-a42199e.md +186 -0
  75. package/templates/default/docs/plans/recursive-kindling-lemon.md +36 -0
  76. package/templates/default/docs/plans/seed-migration-tests.md +47 -0
  77. package/templates/default/docs/plans/sprightly-leaping-manatee.md +224 -0
  78. package/templates/default/docs/plans/stateful-wishing-lerdorf.md +161 -0
  79. package/templates/default/docs/plans/streamed-purring-wreath.md +40 -0
  80. package/templates/default/docs/plans/synthetic-percolating-pearl.md +101 -0
  81. package/templates/default/docs/plans/todo-create-einja-app-ux-fix.md +16 -0
  82. package/templates/default/docs/plans/todo-direnv-hang-fix.md +12 -0
  83. package/templates/default/docs/plans/todo-fix-sync-template-variables.md +21 -0
  84. package/templates/default/docs/plans/todo-github-actions-release-workflow.md +34 -0
  85. package/templates/default/docs/plans/todo-issue-spec-rename.md +24 -0
  86. package/templates/default/docs/plans/todo-phase4-marker-update.md +39 -0
  87. package/templates/default/docs/plans/todo-skill-creator-sync.md +23 -0
  88. package/templates/default/docs/plans/todo-skill-creator-upgrade.md +18 -0
  89. package/templates/default/docs/plans/typed-snuggling-parnas-agent-a6f6391.md +476 -0
  90. package/templates/default/docs/plans/typed-snuggling-parnas-agent-adb678b.md +144 -0
  91. package/templates/default/docs/plans/typed-snuggling-parnas.md +84 -0
  92. package/templates/default/docs/plans/velvety-chasing-spark.md +28 -0
  93. package/templates/default/docs/plans/warm-hopping-lighthouse-agent-a30aa4f.md +534 -0
  94. package/templates/default/docs/plans/warm-hopping-lighthouse-agent-a57a278.md +508 -0
  95. package/templates/default/docs/plans/warm-hopping-lighthouse-agent-a90b809.md +421 -0
  96. package/templates/default/docs/plans/warm-hopping-lighthouse.md +199 -0
  97. package/templates/default/docs/plans/wondrous-strolling-crystal-agent-a0615fc.md +215 -0
  98. package/templates/default/docs/plans/wondrous-strolling-crystal.md +182 -0
  99. package/templates/default/docs/plans/zesty-roaming-steele.md +74 -0
  100. package/templates/default/docs/verification-test.md +2 -0
  101. package/templates/default/gitignore +9 -1
  102. package/templates/default/package.json +6 -2
  103. package/templates/default/packages/admin-ui/package.json +1 -1
  104. package/templates/default/packages/server-core/tsconfig.json +6 -1
  105. package/templates/default/pnpm-lock.yaml +823 -57
  106. package/templates/default/scripts/ensure-serena.sh +75 -0
  107. package/templates/default/scripts/env-rotate-secrets.ts +66 -6
  108. package/templates/default/scripts/init-github.ts +363 -0
  109. package/templates/default/scripts/init.sh +11 -5
  110. package/templates/default/scripts/lib/worktree-config.ts +64 -0
  111. package/templates/default/scripts/setup-dev.ts +16 -1
  112. package/templates/default/scripts/stop-serena.sh +25 -0
  113. package/templates/default/scripts/worktree/dev.ts +2 -2
  114. package/templates/default/.claude/skills/create-einja-app-release/SKILL.md +0 -186
  115. package/templates/default/.claude/skills/dev-cli-release/SKILL.md +0 -173
  116. package/templates/default/.cursor/commands/spec-create.md +0 -227
  117. package/templates/default/.cursor/commands/task-exec.md +0 -287
  118. package/templates/default/.cursor/commands/update-docs-by-task-specs.md +0 -448
  119. /package/templates/default/scripts/{cli-template-update.ts → _cli-template-update.ts} +0 -0
  120. /package/templates/default/scripts/{template-update.ts → _template-update.ts} +0 -0
@@ -0,0 +1,345 @@
1
+ # Claude Code Agent Teams 技術調査レポート
2
+
3
+ ## 調査概要
4
+
5
+ **日付**: 2026-02-27
6
+ **調査目的**: Worker プロセスでの Agent Teams 実装に向けて、`claude -p` (pipe/headless) モードでの Agent Teams 動作を調査
7
+
8
+ ---
9
+
10
+ ## 🔍 調査結果サマリー
11
+
12
+ | 調査項目 | 結果 | 影響度 |
13
+ |---------|------|--------|
14
+ | `-p` モードで Agent Teams は動作するか | ❌ **動作しない** | **高(致命的)** |
15
+ | Teammate の起動方法 | tmux/iTerm2 split panes または in-process | 中 |
16
+ | `-p` モードでの AskUserQuestion | ⚠️ **制限あり** | 中 |
17
+ | Worker 推奨実行モード | 対話モード必須 | 高 |
18
+
19
+ ---
20
+
21
+ ## 1. Agent Teams は `claude -p` モードで動作するか?
22
+
23
+ ### 結論: ❌ **動作しない**
24
+
25
+ Agent Teams は**対話モードでのみ動作**します。`-p`(headless/pipe)モードでは使用できません。
26
+
27
+ ### 根拠
28
+
29
+ 公式ドキュメントから以下が明確です:
30
+
31
+ 1. **Teammate の起動には tmux または iTerm2 が必要**
32
+ - 公式ドキュメント: *"Agent teams support two display modes: In-process (all teammates run inside your main terminal) and Split panes (each teammate gets its own pane, requires tmux or iTerm2)"*
33
+ - Split panes: tmux session または iTerm2 の split panes で Teammates を表示
34
+ - In-process: 同一ターミナル内で動作、Shift+Down で切り替え
35
+
36
+ 2. **Teammate との対話が前提**
37
+ - *"Use Shift+Down to cycle through teammates and type to message them directly"*
38
+ - *"After the last teammate, Shift+Down wraps back to the lead"*
39
+ - *"You can message any teammate directly to give additional instructions"*
40
+ - これらはすべて**対話型インターフェース**を前提としている
41
+
42
+ 3. **`-p` モードは非対話的**
43
+ - `-p` の説明: *"Print response and exit (useful for pipes)"*
44
+ - *"The workspace trust dialog is skipped when Claude is run with the -p mode"*
45
+ - stdin/stdout を通じた単発実行のみで、継続的な対話は不可能
46
+
47
+ ### 技術的詳細
48
+
49
+ Agent Teams のアーキテクチャは以下の要素で構成されています:
50
+
51
+ | コンポーネント | 役割 |
52
+ |-------------|------|
53
+ | Team lead | メインセッション(チーム作成・Teammate spawn・調整) |
54
+ | Teammates | 独立した Claude Code インスタンス(タスク実行) |
55
+ | Task list | 共有タスクリスト(`~/.claude/tasks/{team-name}/`) |
56
+ | Mailbox | エージェント間メッセージングシステム |
57
+
58
+ **Teammate の spawn 方法**:
59
+ - **Split panes モード**: tmux session または iTerm2 split panes で新しいペインとして起動
60
+ - **In-process モード**: 同一プロセス内で動作、UI レイヤーで切り替え
61
+ - いずれも**対話型ターミナルセッション**が必須
62
+
63
+ **`-p` モードの動作**:
64
+ ```bash
65
+ claude -p "タスク" --output-format json
66
+ # → 結果を出力して終了(継続的なセッションなし)
67
+ ```
68
+
69
+ この単発実行モデルでは:
70
+ - Teammate の spawn・管理ができない
71
+ - 継続的な対話・メッセージングが不可能
72
+ - タスクリストの共有・更新ができない
73
+
74
+ ---
75
+
76
+ ## 2. Teammate の起動方法
77
+
78
+ ### Split panes モード(推奨)
79
+
80
+ **tmux の場合**:
81
+ ```bash
82
+ # Lead が Teammate を spawn すると...
83
+ # 新しい tmux pane が自動作成される
84
+ tmux new-session -s team-name
85
+ # Teammate それぞれが独立した pane で動作
86
+ ```
87
+
88
+ **iTerm2 の場合**:
89
+ - `it2` CLI と Python API が必要
90
+ - iTerm2 の Native panes として表示
91
+ - より統合されたユーザー体験
92
+
93
+ **設定**:
94
+ ```json
95
+ // settings.json
96
+ {
97
+ "teammateMode": "tmux" // or "in-process" or "auto"
98
+ }
99
+ ```
100
+
101
+ ### In-process モード(フォールバック)
102
+
103
+ - すべての Teammate が同一ターミナルプロセス内で動作
104
+ - Shift+Down で Teammate 間を切り替え
105
+ - tmux/iTerm2 不要(任意のターミナルで動作)
106
+ - 可視性が低い(一度に一つの Teammate しか見えない)
107
+
108
+ ---
109
+
110
+ ## 3. `claude -p` で AskUserQuestion が発生した場合の挙動
111
+
112
+ ### 結論: ⚠️ **制限あり(完全なサポートなし)**
113
+
114
+ ### 現状の動作
115
+
116
+ 公式ドキュメントと GitHub Issue から:
117
+
118
+ 1. **標準的な stdin/stdout は機能する**
119
+ - `cat file.txt | claude -p "要約して"` のような基本的なパイプ処理は可能
120
+
121
+ 2. **AskUserQuestion は非対話環境で制約がある**
122
+ - GitHub Issue #16712: *"When resuming a session that ends with a tool_use (e.g., AskUserQuestion) using --input-format stream-json, the CLI should wait for stdin input before injecting any synthetic messages"*
123
+ - 現状: AskUserQuestion が発生すると、CLI が**合成レスポンス**を自動注入する
124
+ - 外部からの tool_result 提供方法がない
125
+
126
+ 3. **Feature Request として未解決**
127
+ - `--no-synthetic-response` フラグの追加が要望されているが未実装
128
+
129
+ ### Worker での影響
130
+
131
+ Worker プロセスが `-p` モードで動作する場合:
132
+ - AskUserQuestion をファイル経由でエスカレーションする設計は困難
133
+ - 質問が発生すると合成レスポンスで処理が進んでしまう
134
+ - 人間の判断を必要とする場面で停止できない
135
+
136
+ ---
137
+
138
+ ## 4. Worker プロセスの推奨実行モード
139
+
140
+ ### 結論: **対話モード必須**
141
+
142
+ Worker プロセスの要件:
143
+ - Agent Teams の Lead として動作する
144
+ - Lead 内で複数の Teammate を spawn
145
+ - Teammate が並列にタスクを実装
146
+
147
+ この構成で `-p` モードは使用できません。
148
+
149
+ ### 推奨アーキテクチャ
150
+
151
+ #### パターン A: 対話モード Worker(フル機能)
152
+
153
+ ```
154
+ Human
155
+
156
+ Main Agent (対話モード)
157
+
158
+ Worker Agent (対話モード) ← Agent Teams Lead
159
+
160
+ ├─ Teammate 1 (in-process or tmux pane)
161
+ ├─ Teammate 2 (in-process or tmux pane)
162
+ └─ Teammate N (in-process or tmux pane)
163
+ ```
164
+
165
+ **メリット**:
166
+ - Agent Teams のフル機能が使える
167
+ - Teammate 間の直接メッセージング
168
+ - 共有タスクリストによる自律的な調整
169
+
170
+ **デメリット**:
171
+ - tmux または iTerm2 が必須(split panes モードの場合)
172
+ - CI/CD での自動実行が困難
173
+
174
+ #### パターン B: Subagents(軽量)
175
+
176
+ ```
177
+ Human
178
+
179
+ Main Agent (対話モード)
180
+
181
+ Worker Agent (対話モード)
182
+
183
+ ├─ Subagent 1 (Worker のコンテキスト内)
184
+ ├─ Subagent 2 (Worker のコンテキスト内)
185
+ └─ Subagent N (Worker のコンテキスト内)
186
+ ```
187
+
188
+ **メリット**:
189
+ - 追加の依存関係不要
190
+ - Worker プロセスだけで完結
191
+ - `-p` モードでも動作する
192
+
193
+ **デメリット**:
194
+ - Subagent 間の直接通信不可
195
+ - すべて Worker 経由で調整する必要がある
196
+ - トークンコストが Worker に集中
197
+
198
+ ### 比較表
199
+
200
+ | 特性 | Agent Teams | Subagents |
201
+ |------|------------|----------|
202
+ | コンテキスト | 各 Teammate が独立したコンテキスト | Worker のコンテキスト内 |
203
+ | 通信 | Teammate 同士が直接メッセージング | Worker 経由でのみ通信 |
204
+ | 調整 | 共有タスクリストで自律的に調整 | Worker が全体を管理 |
205
+ | 適用場面 | 議論・協力が必要な複雑な作業 | 結果のみが重要な集中タスク |
206
+ | トークンコスト | 高(各 Teammate が独立) | 低(結果のみ Worker に返る) |
207
+ | `-p` モード | ❌ 不可 | ✅ 可能 |
208
+
209
+ ---
210
+
211
+ ## 5. CI/CD・自動化での Agent Teams 利用
212
+
213
+ ### 結論: **直接利用は不可能**
214
+
215
+ Agent Teams は対話モードが必須のため、CI/CD パイプラインでの直接利用はできません。
216
+
217
+ ### 代替アプローチ
218
+
219
+ #### オプション 1: Subagents を使う
220
+
221
+ ```bash
222
+ # CI/CD で実行可能
223
+ claude -p "コードレビューを実行。Security/Performance/Test Coverage の3つの観点から並列で分析" \
224
+ --allowedTools "Read,Grep,Bash(git *)" \
225
+ --output-format json
226
+ ```
227
+
228
+ - Worker が内部で Subagents を spawn
229
+ - 結果を統合して JSON で返す
230
+
231
+ #### オプション 2: Agent SDK(Python/TypeScript)
232
+
233
+ ```python
234
+ # Python Agent SDK
235
+ from anthropic import Anthropic
236
+
237
+ client = Anthropic()
238
+ response = client.messages.create(
239
+ model="claude-sonnet-4-6",
240
+ messages=[{"role": "user", "content": "コードレビュー"}],
241
+ tools=[...], # Bash, Read, Edit etc.
242
+ )
243
+ ```
244
+
245
+ - フル制御が可能
246
+ - カスタムの並列実行ロジックを実装
247
+ - Agent Teams の機能は含まれない
248
+
249
+ #### オプション 3: 複数の `-p` セッションを並列実行
250
+
251
+ ```bash
252
+ # 並列実行(shell レベル)
253
+ claude -p "Security 観点でレビュー" --output-format json > security.json &
254
+ claude -p "Performance 観点でレビュー" --output-format json > performance.json &
255
+ claude -p "Test Coverage 観点でレビュー" --output-format json > test.json &
256
+ wait
257
+
258
+ # 結果を統合
259
+ jq -s '.' security.json performance.json test.json
260
+ ```
261
+
262
+ - 最もシンプル
263
+ - セッション間の通信・調整はなし
264
+ - 結果の統合は外部で実施
265
+
266
+ ---
267
+
268
+ ## 📋 調査結論
269
+
270
+ ### Worker プロセスでの Agent Teams 利用について
271
+
272
+ **結論**: `claude -p` モードでは Agent Teams は使用できません。
273
+
274
+ ### 推奨する実装戦略
275
+
276
+ #### ケース 1: Worker に Agent Teams が必須の場合
277
+
278
+ **対話モードで Worker を実行する**:
279
+ - Worker を通常の `claude` セッションとして起動
280
+ - Worker 内で TeamCreate/SendMessage ツールを使用
281
+ - Teammates を spawn して並列実装
282
+
283
+ **制約**:
284
+ - CI/CD での完全自動化は不可
285
+ - tmux または iTerm2 が必要(split panes モードの場合)
286
+ - 人間が Worker セッションを起動・監視する必要がある
287
+
288
+ #### ケース 2: CI/CD での自動化が必須の場合
289
+
290
+ **Subagents を使用する**:
291
+ - Worker を `-p` モードで実行可能
292
+ - Worker が内部で Subagents を spawn
293
+ - Subagents 間の調整は Worker が担当
294
+
295
+ **制約**:
296
+ - Subagent 間の直接通信はない
297
+ - トークンコストが Worker に集中
298
+ - Agent Teams の協調機能は使えない
299
+
300
+ #### ケース 3: 最大限の並列性が必要な場合
301
+
302
+ **複数の `-p` セッションを並列実行**:
303
+ - Shell レベルで複数の `claude -p` を並列実行
304
+ - セッション間の調整なし
305
+ - 結果を外部で統合
306
+
307
+ **制約**:
308
+ - セッション間の情報共有なし
309
+ - 重複作業の可能性
310
+ - 統合ロジックを自前で実装
311
+
312
+ ---
313
+
314
+ ## 🎯 次のアクション
315
+
316
+ 以下の判断が必要です:
317
+
318
+ 1. **Worker の実行モードを決定**
319
+ - 対話モード + Agent Teams(協調機能フル)
320
+ - `-p` モード + Subagents(自動化優先)
321
+ - 複数の `-p` セッション並列実行(シンプル)
322
+
323
+ 2. **AskUserQuestion のエスカレーション戦略**
324
+ - 対話モードの場合: 通常の質問フローで対応可能
325
+ - `-p` モードの場合: 質問が必要な設計を避ける
326
+
327
+ 3. **CI/CD での利用シナリオ**
328
+ - 完全自動化が必須か
329
+ - 人間の承認フローが許容されるか
330
+
331
+ ---
332
+
333
+ ## 📚 参考資料
334
+
335
+ - [Orchestrate teams of Claude Code sessions - Claude Code Docs](https://code.claude.com/docs/en/agent-teams)
336
+ - [Run Claude Code programmatically - Claude Code Docs](https://code.claude.com/docs/en/headless)
337
+ - [Claude Code Agent Teams: The Complete Guide 2026](https://claudefa.st/blog/guide/agents/agent-teams)
338
+ - [Agent Teams with Claude Code and Claude Agent SDK | Medium](https://kargarisaac.medium.com/agent-teams-with-claude-code-and-claude-agent-sdk-e7de4e0cb03e)
339
+ - [How to Set Up and Use Claude Code Agent Teams | Medium](https://darasoba.medium.com/how-to-set-up-and-use-claude-code-agent-teams-and-actually-get-great-results-9a34f8648f6d)
340
+ - [Feature Request: tool_result via stdin (GitHub Issue #16712)](https://github.com/anthropics/claude-code/issues/16712)
341
+
342
+ ---
343
+
344
+ **調査完了日**: 2026-02-27
345
+ **調査者**: Claude (Sonnet 4.5)