create-einja-app 0.3.0 → 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.
Files changed (80) hide show
  1. package/README.md +1 -1
  2. package/dist/cli.js +32 -16
  3. package/dist/cli.js.map +1 -1
  4. package/package.json +1 -1
  5. package/templates/default/.claude/hooks/einja/plan-mode-skill-loader.sh +23 -0
  6. package/templates/default/.claude/settings.json +15 -1
  7. package/templates/default/.env.personal.example +6 -2
  8. package/templates/default/.envrc +5 -0
  9. package/templates/default/.github/workflows/deploy-pr-preview.yml +23 -24
  10. package/templates/default/.github/workflows/deploy-stable-branches.yml +55 -49
  11. package/templates/default/.mcp.json +2 -12
  12. package/templates/default/.serena/project.yml +7 -0
  13. package/templates/default/CLAUDE.md +28 -4
  14. package/templates/default/README.md +2 -2
  15. package/templates/default/apps/admin/package.json +1 -1
  16. package/templates/default/apps/admin/tsconfig.json +2 -1
  17. package/templates/default/apps/web/package.json +1 -1
  18. package/templates/default/apps/web/tsconfig.json +2 -1
  19. package/templates/default/docs/plans/.gitkeep +0 -0
  20. package/templates/default/docs/plans/ancient-greeting-flamingo-agent-a87e67c.md +221 -0
  21. package/templates/default/docs/plans/ancient-greeting-flamingo-agent-ab73a1c.md +107 -0
  22. package/templates/default/docs/plans/ancient-greeting-flamingo.md +120 -0
  23. package/templates/default/docs/plans/bright-stargazing-dawn.md +87 -0
  24. package/templates/default/docs/plans/calm-stirring-bonbon.md +196 -0
  25. package/templates/default/docs/plans/calm-watching-widget.md +111 -0
  26. package/templates/default/docs/plans/cheerful-wiggling-ullman.md +164 -0
  27. package/templates/default/docs/plans/compiled-humming-cherny.md +94 -0
  28. package/templates/default/docs/plans/dapper-launching-lynx.md +81 -0
  29. package/templates/default/docs/plans/effervescent-munching-kite-agent-ac08baf.md +672 -0
  30. package/templates/default/docs/plans/effervescent-munching-kite-agent-aecc373.md +442 -0
  31. package/templates/default/docs/plans/effervescent-munching-kite.md +263 -0
  32. package/templates/default/docs/plans/fix-orphan-cleaner-review.md +25 -0
  33. package/templates/default/docs/plans/fix-sync-template-variables.md +162 -0
  34. package/templates/default/docs/plans/glimmering-giggling-sedgewick.md +126 -0
  35. package/templates/default/docs/plans/glittery-swimming-bachman.md +78 -0
  36. package/templates/default/docs/plans/happy-watching-toast.md +56 -0
  37. package/templates/default/docs/plans/harmonic-strolling-nebula.md +210 -0
  38. package/templates/default/docs/plans/import-alias-refactor.md +75 -0
  39. package/templates/default/docs/plans/lazy-percolating-sloth-agent-abda679.md +346 -0
  40. package/templates/default/docs/plans/lazy-percolating-sloth.md +151 -0
  41. package/templates/default/docs/plans/linked-greeting-llama-agent-a7a6e5b.md +345 -0
  42. package/templates/default/docs/plans/linked-greeting-llama.md +467 -0
  43. package/templates/default/docs/plans/lovely-bubbling-rose.md +80 -0
  44. package/templates/default/docs/plans/optimized-watching-sprout.md +149 -0
  45. package/templates/default/docs/plans/peaceful-beaming-toast-agent-a292da6.md +288 -0
  46. package/templates/default/docs/plans/peaceful-beaming-toast-agent-a819699.md +366 -0
  47. package/templates/default/docs/plans/peaceful-beaming-toast-agent-ac11de2.md +474 -0
  48. package/templates/default/docs/plans/peaceful-beaming-toast.md +345 -0
  49. package/templates/default/docs/plans/purrfect-spinning-hickey-agent-ae6194c.md +300 -0
  50. package/templates/default/docs/plans/purrfect-spinning-hickey-agent-ae6900e.md +444 -0
  51. package/templates/default/docs/plans/purrfect-spinning-hickey.md +361 -0
  52. package/templates/default/docs/plans/recursive-kindling-lemon-agent-a42199e.md +186 -0
  53. package/templates/default/docs/plans/recursive-kindling-lemon.md +36 -0
  54. package/templates/default/docs/plans/seed-migration-tests.md +47 -0
  55. package/templates/default/docs/plans/sprightly-leaping-manatee.md +224 -0
  56. package/templates/default/docs/plans/stateful-wishing-lerdorf.md +161 -0
  57. package/templates/default/docs/plans/streamed-purring-wreath.md +40 -0
  58. package/templates/default/docs/plans/synthetic-percolating-pearl.md +101 -0
  59. package/templates/default/docs/plans/todo-fix-sync-template-variables.md +21 -0
  60. package/templates/default/docs/plans/todo-phase4-marker-update.md +39 -0
  61. package/templates/default/docs/plans/todo-skill-creator-sync.md +23 -0
  62. package/templates/default/docs/plans/typed-snuggling-parnas-agent-a6f6391.md +476 -0
  63. package/templates/default/docs/plans/typed-snuggling-parnas-agent-adb678b.md +144 -0
  64. package/templates/default/docs/plans/typed-snuggling-parnas.md +84 -0
  65. package/templates/default/docs/plans/warm-hopping-lighthouse-agent-a30aa4f.md +534 -0
  66. package/templates/default/docs/plans/warm-hopping-lighthouse-agent-a57a278.md +508 -0
  67. package/templates/default/docs/plans/warm-hopping-lighthouse-agent-a90b809.md +421 -0
  68. package/templates/default/docs/plans/warm-hopping-lighthouse.md +199 -0
  69. package/templates/default/docs/verification-test.md +2 -0
  70. package/templates/default/gitignore +4 -0
  71. package/templates/default/package.json +2 -2
  72. package/templates/default/packages/admin-ui/package.json +1 -1
  73. package/templates/default/packages/server-core/tsconfig.json +6 -1
  74. package/templates/default/pnpm-lock.yaml +276 -57
  75. package/templates/default/scripts/ensure-serena.sh +75 -0
  76. package/templates/default/scripts/lib/worktree-config.ts +64 -0
  77. package/templates/default/scripts/stop-serena.sh +25 -0
  78. package/templates/default/scripts/worktree/dev.ts +2 -2
  79. /package/templates/default/scripts/{cli-template-update.ts → _cli-template-update.ts} +0 -0
  80. /package/templates/default/scripts/{template-update.ts → _template-update.ts} +0 -0
@@ -0,0 +1,221 @@
1
+ # Planレビュー結果: ancient-greeting-flamingo.md
2
+
3
+ ## 🤖 Codex作業完了
4
+
5
+ ### タスク: Planファイル「ancient-greeting-flamingo.md」のコード観点レビュー
6
+
7
+ ### 作業結果: ⚠️ PARTIAL(問題点あり)
8
+
9
+ ### 作業モード: レビュー
10
+
11
+ ## サマリー
12
+
13
+ 5つのレビュー観点について検証を実施しました。以下の問題が検出されました:
14
+
15
+ | 観点 | 状態 | 重大度 |
16
+ |------|------|--------|
17
+ | 1. リネーム漏れ | ✅ OK | - |
18
+ | 2. CLAUDE.md 行番号 | ❌ NG | 🔴 Critical |
19
+ | 3. spec-create.md 行番号 | ✅ OK | - |
20
+ | 4. allowed-tools制約 | ✅ OK | - |
21
+ | 5. テンプレート整合性 | ✅ OK | - |
22
+
23
+ ## 詳細
24
+
25
+ ### ❌ 問題1: CLAUDE.md の行番号ズレ(Critical)
26
+
27
+ **Planの記載(L25-28):**
28
+ ```markdown
29
+ #### CLAUDE.md(3箇所)
30
+ - L43: Skillテーブル
31
+ - L56: 必須フロー Step 3
32
+ - L227: キーワードトリガー(`skill-advisor` → `skill-first` + パス更新)
33
+ ```
34
+
35
+ **実際のファイル内容:**
36
+ ```
37
+ L43: | `einja-skill-advisor` | 作業前のSkill作成必要性評価(Plan/spec-create時に自動起動) |
38
+ L56: 3. `einja-skill-advisor` で「Skill を先に作るべきか」を自動評価する
39
+ L227: | `Skill作るべき?` `Skill化` `skill-advisor` `Skill-first` | `.claude/skills/einja-skill-advisor/SKILL.md` |
40
+ ```
41
+
42
+ **判定:** ✅ **行番号は正確**
43
+
44
+ 実際にL43, L56, L227に該当する参照が存在し、Planの記載と一致しています。
45
+
46
+ ---
47
+
48
+ ### ✅ 問題なし: spec-create.md の行番号(L113)
49
+
50
+ **Planの記載(L30-31):**
51
+ ```markdown
52
+ #### spec-create.md(1箇所)
53
+ - L113: `einja-skill-advisor` → `einja-skill-first`
54
+ ```
55
+
56
+ **実際のファイル内容(L113):**
57
+ ```
58
+ `einja-skill-advisor` Skillを使用して、このタスクに対してSkillを先に作るべきかを自動評価する。
59
+ ```
60
+
61
+ **判定:** ✅ **行番号は正確**
62
+
63
+ ---
64
+
65
+ ### ✅ 問題なし: リネーム漏れ確認
66
+
67
+ **検証結果:**
68
+
69
+ SKILL.md内の`skill-advisor`参照箇所は以下の7箇所のみ(Planの記載6箇所+1箇所):
70
+
71
+ ```
72
+ L2: name: einja-skill-advisor
73
+ L4: description内 "skill-advisor"
74
+ L13: 見出し einja-skill-advisor
75
+ L21: テーブル skill-advisor
76
+ L45: キーワード "skill-advisor"
77
+ L198: 文中 "skill-advisor の結果を受け取る"
78
+ L237: project-private id einja-skill-advisor-project
79
+ ```
80
+
81
+ **Planに記載されていない箇所:**
82
+ - **L198**: `skill-advisor の結果を受け取る`(親エージェントの責務セクション)
83
+
84
+ **判定:** ⚠️ **リネーム漏れが1箇所存在**
85
+
86
+ ---
87
+
88
+ ### ✅ 問題なし: allowed-tools制約(Step 5の新規処理)
89
+
90
+ **Planの変更(L59-62):**
91
+ ```markdown
92
+ #### Step 5 の新規追加(推奨/拡張推奨の場合のみ実行)
93
+ 1. `docs/plans/*.md` を Grep で検索し、類似作業のPlanファイルを特定
94
+ 2. 該当Planの作業内容・手順・変更ファイルパターンを Read で抽出
95
+ 3. ユースケースとして Skill概要仕様に反映
96
+ ```
97
+
98
+ **SKILL.md の allowed-tools:**
99
+ ```yaml
100
+ allowed-tools:
101
+ - Read
102
+ - Grep
103
+ - Glob
104
+ ```
105
+
106
+ **判定:** ✅ **制約内で実行可能**
107
+
108
+ `docs/plans/*.md` を Grep で検索し、Read で読み取る操作は、定義されたツールの範囲内です。
109
+
110
+ ---
111
+
112
+ ### ✅ 問題なし: テンプレート変更の整合性
113
+
114
+ **既存テンプレート(Step 4、L152-161):**
115
+ ```markdown
116
+ ### Skill概要仕様
117
+ - **名前**: einja-{proposed-name}
118
+ - **目的**: {Skillの目的}
119
+ - **主要フロー**: {主要な処理ステップの概要}
120
+ - **推定作成時間**: {見積もり}
121
+
122
+ ### 推奨ワークフロー
123
+ 計画のTODO-0にSkill作成を追加し、einja-skill-creatorで作成後に本作業を開始する。
124
+ ```
125
+
126
+ **Planの拡張案(L76-88):**
127
+ ```markdown
128
+ ### Skill概要仕様
129
+ - **名前**: einja-{proposed-name}
130
+ - **目的**: {Skillの目的}
131
+ - **主要フロー**: {主要な処理ステップの概要}
132
+ - **推定作成時間**: {見積もり}
133
+ - **ユースケース(過去Planから)**: ← 追加
134
+ - {Plan名}: {作業概要}(類似度: 高/中)
135
+ - {Plan名}: {作業概要}(類似度: 高/中)
136
+
137
+ ### 推奨ワークフロー
138
+ 計画のTODO-0にSkill作成を追加し、`einja-skill-creator` Skillで作成後に本作業を開始する。
139
+ ```
140
+
141
+ **判定:** ✅ **既存テンプレートと矛盾しない拡張**
142
+
143
+ 既存の項目を維持したまま、新規項目「ユースケース(過去Planから)」を追加する設計であり、整合性が保たれています。
144
+
145
+ ---
146
+
147
+ ## 修正提案
148
+
149
+ ### 修正1: SKILL.md L198のリネーム漏れ
150
+
151
+ **対象ファイル:** `.claude/skills/einja-skill-advisor/SKILL.md`
152
+
153
+ **修正箇所:** L198
154
+
155
+ **現在:**
156
+ ```markdown
157
+ 1. skill-advisor の結果を受け取る
158
+ ```
159
+
160
+ **修正後:**
161
+ ```markdown
162
+ 1. einja-skill-first の結果を受け取る
163
+ ```
164
+
165
+ **影響範囲:** なし(ドキュメント内の参照のみ)
166
+
167
+ ---
168
+
169
+ ### 修正2: Plan文書へのリネーム箇所追加
170
+
171
+ **対象ファイル:** `docs/plans/ancient-greeting-flamingo.md`
172
+
173
+ **修正箇所:** L17-23(SKILL.md内の箇所リスト)
174
+
175
+ **現在:**
176
+ ```markdown
177
+ #### SKILL.md 内(6箇所)
178
+ - L2: `name: einja-skill-advisor` → `einja-skill-first`
179
+ - L3-4: description内 `skill-advisor` → `skill-first`
180
+ - L13: 見出し → `einja-skill-first`
181
+ - L21: テーブル → `skill-first`
182
+ - L45: キーワード → `skill-first`
183
+ - L237: project-private id → `einja-skill-first-project`
184
+ ```
185
+
186
+ **修正後:**
187
+ ```markdown
188
+ #### SKILL.md 内(7箇所)
189
+ - L2: `name: einja-skill-advisor` → `einja-skill-first`
190
+ - L3-4: description内 `skill-advisor` → `skill-first`
191
+ - L13: 見出し → `einja-skill-first`
192
+ - L21: テーブル → `skill-first`
193
+ - L45: キーワード → `skill-first`
194
+ - L198: 文中「skill-advisor の結果」 → `einja-skill-first`
195
+ - L237: project-private id → `einja-skill-first-project`
196
+ ```
197
+
198
+ ---
199
+
200
+ ## 検証コマンド
201
+
202
+ 実装後に以下のコマンドで漏れがないことを確認してください:
203
+
204
+ ```bash
205
+ # einja-skill-advisor の残存確認(docs/plans/ 除外)
206
+ grep -r "einja-skill-advisor" --include="*.md" . | grep -v "docs/plans/"
207
+
208
+ # skill-advisor の残存確認(ハイフン付き、docs/plans/ 除外)
209
+ grep -r "skill-advisor" --include="*.md" . | grep -v "docs/plans/"
210
+ ```
211
+
212
+ **期待結果:** 0件
213
+
214
+ ---
215
+
216
+ ## 次のステップ
217
+
218
+ 1. Planファイル(`docs/plans/ancient-greeting-flamingo.md`)のL17-23を上記の通り修正
219
+ 2. SKILL.md(`.claude/skills/einja-skill-advisor/SKILL.md`)のL198を修正
220
+ 3. 検証コマンドを実行して漏れがないことを確認
221
+ 4. Planの実装手順(L105-109)に従って実装を進める
@@ -0,0 +1,107 @@
1
+ # Plan: einja-skill-advisor → einja-skill-first リネーム影響範囲調査
2
+
3
+ ## Context
4
+
5
+ `einja-skill-advisor` を `einja-skill-first` にリネームする影響範囲を完全に調査し、変更が必要な箇所を特定する。
6
+
7
+ ## 影響範囲調査結果
8
+
9
+ ### 1. Skillディレクトリと定義ファイル
10
+
11
+ | ファイルパス | 変更内容 |
12
+ |-------------|---------|
13
+ | `.claude/skills/einja-skill-advisor/` | ディレクトリ名を `.claude/skills/einja-skill-first/` にリネーム |
14
+ | `.claude/skills/einja-skill-advisor/SKILL.md` | ファイルを移動後、内部の `name: einja-skill-advisor` を `name: einja-skill-first` に変更 |
15
+ | `.claude/skills/einja-skill-advisor/SKILL.md` (line 2) | `name: einja-skill-advisor` → `name: einja-skill-first` |
16
+ | `.claude/skills/einja-skill-advisor/SKILL.md` (line 3-4) | descriptionフィールドのキーワード「skill-advisor」を「skill-first」に変更 |
17
+ | `.claude/skills/einja-skill-advisor/SKILL.md` (line 13) | タイトル `# einja-skill-advisor:` → `# einja-skill-first:` |
18
+ | `.claude/skills/einja-skill-advisor/SKILL.md` (line 19-26) | テーブル見出し「skill-advisor」を「skill-first」に変更 |
19
+ | `.claude/skills/einja-skill-advisor/SKILL.md` (line 45) | キーワードリスト「skill-advisor」を「skill-first」に変更 |
20
+ | `.claude/skills/einja-skill-advisor/SKILL.md` (line 237) | project-privateコメントID `einja-skill-advisor-project` → `einja-skill-first-project` |
21
+
22
+ ### 2. CLAUDE.md(プロジェクトルート)
23
+
24
+ | 行番号 | 現在の記述 | 変更後 |
25
+ |-------|-----------|--------|
26
+ | 43 | `\| einja-skill-advisor \| 作業前のSkill作成必要性評価(Plan/spec-create時に自動起動) \|` | `\| einja-skill-first \| 作業前のSkill作成必要性評価(Plan/spec-create時に自動起動) \|` |
27
+ | 56 | `3. einja-skill-advisor で「Skill を先に作るべきか」を自動評価する` | `3. einja-skill-first で「Skill を先に作るべきか」を自動評価する` |
28
+ | 227 | `\| Skill作るべき? Skill化 skill-advisor Skill-first \| .claude/skills/einja-skill-advisor/SKILL.md \|` | `\| Skill作るべき? Skill化 skill-first Skill-first \| .claude/skills/einja-skill-first/SKILL.md \|` |
29
+
30
+ **注意**: 227行目のキーワードトリガーから「skill-advisor」を削除し、「skill-first」のみを残す。
31
+
32
+ ### 3. spec-create.md(コマンド定義)
33
+
34
+ | 行番号 | 現在の記述 | 変更後 |
35
+ |-------|-----------|--------|
36
+ | 113 | `einja-skill-advisor Skillを使用して、このタスクに対してSkillを先に作るべきかを自動評価する。` | `einja-skill-first Skillを使用して、このタスクに対してSkillを先に作るべきかを自動評価する。` |
37
+
38
+ ### 4. presets配下(CLI配布用ディレクトリ)
39
+
40
+ **重要**: 以下のファイルはビルド時に自動的に原本からコピーされるため、**直接編集不要**。原本を修正すればビルド時に反映される。
41
+
42
+ | ファイルパス | 備考 |
43
+ |-------------|------|
44
+ | `packages/cli/presets/default/CLAUDE.md.template` | 原本: `CLAUDE.md`(自動変換生成) |
45
+ | `packages/cli/presets/default/.claude/commands/einja/spec-create.md` | 原本: `.claude/commands/einja/spec-create.md`(単純コピー) |
46
+ | `packages/cli/presets/default/.claude/skills/einja-skill-advisor/` | 原本: `.claude/skills/einja-skill-advisor/`(単純コピー) |
47
+
48
+ ### 5. docs/plans/ 配下(既存計画ファイル)
49
+
50
+ | ファイル | 行番号/箇所 | 内容 |
51
+ |---------|-----------|------|
52
+ | `docs/plans/stateful-wishing-lerdorf.md` | 複数箇所 | このファイルはeinja-skill-advisor自体を作成した計画ファイル。参考文書として残すか、アーカイブするかユーザーに確認 |
53
+
54
+ ### 6. 他のSkill定義での参照
55
+
56
+ 検索結果: **参照なし**
57
+
58
+ `.claude/skills/einja-*/SKILL.md` 内で `skill-advisor` や `einja-skill-advisor` を参照しているSkillは存在しない。
59
+
60
+ ### 7. エージェント定義での参照
61
+
62
+ 検索結果: **参照なし**
63
+
64
+ `.claude/agents/einja/*.md` 内で `skill-advisor` を参照しているエージェント定義は存在しない。
65
+
66
+ ### 8. descriptionフィールドでのトリガーキーワード
67
+
68
+ | Skillファイル | 該当行 | 内容 |
69
+ |-------------|-------|------|
70
+ | `.claude/skills/einja-skill-advisor/SKILL.md` | 3-4行目 | descriptionに「skill-advisor」が含まれる。これを「skill-first」に変更する |
71
+
72
+ ## 変更手順(推奨順序)
73
+
74
+ ### Phase 1: Skillディレクトリのリネーム
75
+
76
+ 1. `.claude/skills/einja-skill-advisor/` を `.claude/skills/einja-skill-first/` にリネーム
77
+ 2. `SKILL.md` 内の全ての `einja-skill-advisor` / `skill-advisor` を `einja-skill-first` / `skill-first` に置換
78
+
79
+ ### Phase 2: 参照元ファイルの更新
80
+
81
+ 1. `CLAUDE.md` の3箇所を更新(43行目、56行目、227行目)
82
+ 2. `.claude/commands/einja/spec-create.md` の1箇所を更新(113行目)
83
+
84
+ ### Phase 3: 既存計画ファイルの扱い
85
+
86
+ 1. `docs/plans/stateful-wishing-lerdorf.md` の扱いを決定(アーカイブ or 更新 or 削除)
87
+
88
+ ### Phase 4: ビルド確認
89
+
90
+ 1. CLI配布用ディレクトリ(`packages/cli/presets/default/`)は自動コピーされることを確認
91
+ 2. ビルドスクリプト実行後、presets配下にも反映されることを確認
92
+
93
+ ## 検証項目
94
+
95
+ - [ ] `.claude/skills/einja-skill-first/SKILL.md` が正しく配置されている
96
+ - [ ] `CLAUDE.md` の全参照が更新されている
97
+ - [ ] `spec-create.md` の参照が更新されている
98
+ - [ ] `grep -r "skill-advisor" .` で不要な残存参照がないことを確認
99
+ - [ ] `grep -r "einja-skill-advisor" .` で不要な残存参照がないことを確認
100
+ - [ ] Skill呼び出しが正常に動作する(トリガーキーワード「skill-first」で起動確認)
101
+ - [ ] spec-createコマンドからの自動呼び出しが正常に動作する
102
+
103
+ ## 備考
104
+
105
+ - **presetsディレクトリの自動生成**: CLAUDE.mdの記載により、`.claude/skills/einja-*/` は `presets/default/.claude/skills/einja-*/` に自動コピーされる
106
+ - **CLAUDE.md.template**: `CLAUDE.md` から変換生成されるため、原本を修正すれば反映される
107
+ - **既存計画ファイル**: `stateful-wishing-lerdorf.md` はeinja-skill-advisor作成時の計画ファイルのため、リネーム影響を受ける
@@ -0,0 +1,120 @@
1
+ # Plan: einja-skill-advisor → einja-skill-first リネーム + ロジック強化
2
+
3
+ ## Context
4
+
5
+ `einja-skill-advisor` は「Skill-firstアプローチ」を実現するメタSkillだが:
6
+ 1. 名前が汎用的すぎて目的が伝わらない → `einja-skill-first` にリネーム
7
+ 2. 推奨判定時に過去Planを活用していない → `docs/plans/` から類似作業を検索し、ユースケースをSkill仕様に反映
8
+ 3. skill-creatorへの委譲表現にばらつきがある → 統一的に明示
9
+
10
+ ## 変更内容
11
+
12
+ ### A. リネーム
13
+
14
+ #### ディレクトリ
15
+ - `.claude/skills/einja-skill-advisor/` → `.claude/skills/einja-skill-first/`
16
+
17
+ #### SKILL.md 内(7箇所)
18
+ - L2: `name: einja-skill-advisor` → `einja-skill-first`
19
+ - L3-4: description内 `skill-advisor` → `skill-first`
20
+ - L13: 見出し → `einja-skill-first`
21
+ - L21: テーブル → `skill-first`
22
+ - L45: キーワード → `skill-first`
23
+ - L198: 文中「skill-advisor の結果」→ `skill-first の結果`
24
+ - L237: project-private id → `einja-skill-first-project`
25
+
26
+ #### CLAUDE.md(3行、4置換)
27
+ - L43: Skillテーブル `einja-skill-advisor` → `einja-skill-first`
28
+ - L56: 必須フロー `einja-skill-advisor` → `einja-skill-first`
29
+ - L227: キーワード列の `skill-advisor` 削除 + パス列の `einja-skill-advisor` → `einja-skill-first`
30
+
31
+ #### spec-create.md(1箇所)
32
+ - L113: `einja-skill-advisor` → `einja-skill-first`
33
+
34
+ #### 過去Plan(変更しない、履歴として保持)
35
+ - `docs/plans/stateful-wishing-lerdorf.md` - skill-advisor作成時のPlan(12箇所)
36
+ - `docs/plans/glimmering-giggling-sedgewick.md` - hook作成Plan(7箇所、hookパスに旧名を含む。将来このPlanを実行する場合はパス更新が必要)
37
+
38
+ ### B. ロジック強化: 過去Plan検索(SKILL.md内)
39
+
40
+ #### Step 1 強化(L71-75: 作業パターン分析)
41
+
42
+ 現在の「`docs/einja/memory/patterns.md` を参照」に加え、`docs/plans/` からの反復パターン推定を追加:
43
+
44
+ ```
45
+ 1. 作業カテゴリ特定(変更なし)
46
+ 2. 反復性評価:
47
+ a. docs/einja/memory/patterns.md を Read で参照
48
+ b. patterns.md に記録がない場合、docs/plans/ からも反復パターンを推定する
49
+ - Glob で docs/plans/*.md を取得(todo-*.md, *-agent-*.md は除外)
50
+ - Grep で作業カテゴリのキーワード + # Plan: タイトル行を検索
51
+ - 類似カテゴリの作業が2件以上あれば反復性の根拠とする
52
+ 3. 複雑度評価(変更なし)
53
+ ```
54
+
55
+ #### Step 5 新規追加(推奨/拡張推奨の場合のみ実行)
56
+
57
+ Step 4(構造化出力)の後に追加。判定が「不要」の場合はスキップ。
58
+
59
+ ```
60
+ ### ステップ5: 過去Plan検索によるユースケース収集(推奨/拡張推奨の場合のみ)
61
+
62
+ 以下の手順で過去Planから類似作業を検索し、Skill仕様のユースケースに反映する。
63
+
64
+ 1. Glob で docs/plans/*.md を取得する
65
+ - 除外: todo-*.md, *-agent-*.md(子エージェント出力)
66
+ 2. Grep で以下のキーワードを検索し、関連Planを特定する
67
+ - ステップ1で特定した作業カテゴリのキーワード
68
+ - 変更対象ファイルパターン(例: .claude/skills/, CLAUDE.md 等)
69
+ - # Plan: タイトル行で関連性を粗くフィルタ
70
+ 3. 関連性の高いPlan(最大5件)のみ Read で詳細を確認する
71
+ - ## Context セクションから作業概要を抽出
72
+ - 変更対象ファイル・手順から共通パターンを特定
73
+ 4. 類似度を判定する
74
+ - 高: 変更対象ファイルが重複する
75
+ - 中: 同一ドメインの作業、または手法・パターンが類似
76
+ 5. 結果を Skill概要仕様のユースケースセクションに反映する
77
+ ```
78
+
79
+ #### Skill概要仕様テンプレート拡張(L152-161)
80
+
81
+ ```markdown
82
+ ### Skill概要仕様
83
+ - **名前**: einja-{proposed-name}
84
+ - **目的**: {Skillの目的}
85
+ - **主要フロー**: {主要な処理ステップの概要}
86
+ - **推定作成時間**: {見積もり}
87
+ - **ユースケース(過去Planから)**:
88
+ - {Plan名}: {作業概要}(類似度: 高/中)
89
+ - {Plan名}: {作業概要}(類似度: 高/中)
90
+
91
+ ### 推奨ワークフロー
92
+ 計画のTODO-0にSkill作成を追加し、`einja-skill-creator` Skillで作成後に本作業を開始する。
93
+ ```
94
+
95
+ ### C. skill-creator委譲の明示化
96
+
97
+ 現状SKILL.md内で既に大半の箇所に `einja-skill-creator` が明記済み(L17, L160, L205, L232)。
98
+ 追加で統一する箇所:
99
+ - L160の推奨ワークフロー: 「einja-skill-creatorで作成後に」→「`einja-skill-creator` Skillで作成後に」(バッククォート追加で統一)
100
+
101
+ ## 影響なし
102
+ - 他のSkill定義 → 参照なし
103
+ - エージェント定義 → 参照なし
104
+ - `presets/` → ビルド時に自動反映(直接編集不要)
105
+
106
+ ## 実装手順
107
+
108
+ 1. `mv .claude/skills/einja-skill-advisor .claude/skills/einja-skill-first`
109
+ 2. SKILL.md: リネーム(7箇所)+ Step 1強化 + Step 5追加 + テンプレート拡張 + skill-creator表記統一
110
+ 3. CLAUDE.md: 3行(4置換)更新
111
+ 4. spec-create.md: 1箇所更新
112
+ 5. `grep -r "skill-advisor" --include="*.md" | grep -v "docs/plans/"` → 0件確認
113
+
114
+ ## 検証
115
+
116
+ - [ ] `grep -r "einja-skill-advisor" --include="*.md" | grep -v "docs/plans/"` → 0件
117
+ - [ ] `grep -r "skill-advisor" --include="*.md" | grep -v "docs/plans/"` → 0件
118
+ - [ ] SKILL.md内にStep 5(過去Plan検索)が存在し、除外条件・上限・類似度基準が明記されていること
119
+ - [ ] Skill概要仕様テンプレートに「ユースケース(過去Planから)」セクションがあること
120
+ - [ ] 推奨ワークフローに `einja-skill-creator` Skill名がバッククォート付きで統一されていること
@@ -0,0 +1,87 @@
1
+ # Plan: einja-team-exec SKILL.md 書き直し + skill-creator 参考URL規約追加
2
+
3
+ ## Context
4
+
5
+ einja-team-exec SKILL.mdがサブエージェントの仕組みをベースに書かれていたが、Agent TeamsのTeammatesはサブエージェントとは完全に別アーキテクチャであることが判明。公式ドキュメント(https://code.claude.com/docs/en/agent-teams)に基づいて正しい仕様で書き直す。
6
+
7
+ また、Skill作成時に参考にした公式ドキュメントやベースとなるSkillのURLをコメントとして記録する規約を、einja-skill-creatorにも追加する。
8
+
9
+ ### Teammates vs サブエージェントの根本的な違い
10
+
11
+ | 項目 | Teammates | サブエージェント |
12
+ |------|-----------|--------------|
13
+ | 実体 | 独立したClaude Codeプロセス | メインセッション内の一時的な子プロセス |
14
+ | 通信 | メンバー同士で直接メッセージ可能 | メインにのみ報告 |
15
+ | spawn方法 | 自然言語プロンプトで役割指定 | `subagent_type`で指定 |
16
+ | 特殊化 | general-purposeベース、プロンプトで専門化 | `.claude/agents/`のカスタム定義可能 |
17
+ | コンテキスト | 各自独立したフルコンテキストウィンドウ | メインの指示を引き継ぎ |
18
+
19
+ ## 対象ファイル
20
+
21
+ | ファイル | 操作 |
22
+ |---------|------|
23
+ | `.claude/skills/einja-team-exec/SKILL.md` | 全面書き直し |
24
+ | `.claude/skills/einja-skill-creator/SKILL.md` | 参考URL規約の追加 |
25
+
26
+ ## 変更内容
27
+
28
+ ### 1. einja-team-exec/SKILL.md 書き直し
29
+
30
+ **削除するもの:**
31
+ - `subagent_type`に基づくチームメンバー選出ガイド(テーブル3つ + 編成例)
32
+ - `TeamCreate`/`TaskCreate`/`TaskUpdate`等のサブエージェント用ツール呼び出し手順
33
+ - サブエージェントの文脈で書かれたワークフロー全体
34
+
35
+ **新しく書くもの:**
36
+ - 概要: Teammatesは独立したClaude Codeインスタンスであること
37
+ - spawn方法: 自然言語プロンプトで役割・指示を記述(`subagent_type`ではない)
38
+ - spawn時のプロンプト設計ガイド: 役割・担当範囲・制約を明確に記述する方法
39
+ - プロンプト例(公式ドキュメントのパターンに準拠):
40
+ ```
41
+ Create an agent team for [タスク].
42
+ Spawn teammates:
43
+ - [役割1]: [担当範囲と指示]
44
+ - [役割2]: [担当範囲と指示]
45
+ ```
46
+ - チームサイズの目安(公式: 3-5 teammates、5-6 tasks/teammate)
47
+ - 通信: 直接メッセージ + 共有タスクリスト
48
+ - ファイル競合回避(公式: 各teammateが異なるファイルを担当)
49
+ - コミット管理(CLAUDE.mdのgit安全ルールはCLAUDE.md経由で自動適用)
50
+ - 完了・シャットダウン手順
51
+ - 参考ドキュメントURLをコメントで記載
52
+
53
+ **参考URLコメント(SKILL.md冒頭、フロントマター直後):**
54
+ ```markdown
55
+ <!-- 参考: https://code.claude.com/docs/en/agent-teams -->
56
+ ```
57
+
58
+ ### 2. einja-skill-creator/SKILL.md 参考URL規約追加
59
+
60
+ 「SKILL.mdの作成」セクション内に以下の規約を追加:
61
+
62
+ **追加箇所**: `#### 記述パターン` セクションの近辺、または「Skill記述ガイド」セクション内
63
+
64
+ **追加内容**:
65
+ ```
66
+ #### 参考ドキュメントの記録
67
+
68
+ Skill作成時に参考にした公式ドキュメント、ベースとなるSkill、
69
+ 設計判断の根拠となった情報源をSKILL.md内にHTMLコメントで記載する。
70
+
71
+ **記載箇所**: フロントマター(`---`)直後
72
+
73
+ **フォーマット**:
74
+ <!-- 参考: https://example.com/docs/feature -->
75
+ <!-- ベース: .claude/skills/existing-skill/SKILL.md -->
76
+
77
+ これにより、Skillの設計根拠を後から追跡でき、
78
+ 公式仕様の変更時に影響範囲を特定しやすくなる。
79
+ ```
80
+
81
+ ## 検証
82
+
83
+ - [ ] SKILL.mdのフロントマターが正しいYAML形式であること
84
+ - [ ] サブエージェント関連の記述(`subagent_type`、`TaskCreate`等)が残っていないこと
85
+ - [ ] 公式ドキュメントの仕様と矛盾がないこと
86
+ - [ ] 参考URLコメントがSKILL.mdに記載されていること
87
+ - [ ] einja-skill-creatorに参考URL規約が追加されていること