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,366 @@
|
|
|
1
|
+
# プランレビュー結果: peaceful-beaming-toast.md
|
|
2
|
+
|
|
3
|
+
## 📋 レビュー概要
|
|
4
|
+
|
|
5
|
+
プランファイル `/Users/kzp/code/GitHub/einja-inc/einja-management-template/docs/plans/peaceful-beaming-toast.md` の技術的正確性、実装可能性、および改善点を検証しました。
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## ✅ 全体評価
|
|
10
|
+
|
|
11
|
+
| 項目 | 評価 | 備考 |
|
|
12
|
+
|------|------|------|
|
|
13
|
+
| Part 1: ドキュメント追記 | **合格** | mermaidシーケンス図は技術的に正確 |
|
|
14
|
+
| Part 2: init/syncギャップ修正 | **要修正** | 複数の技術的課題あり |
|
|
15
|
+
| 対象ファイル一覧 | **不足あり** | 新規作成ファイルが不足 |
|
|
16
|
+
| 検証計画 | **妥当** | 適切な検証手順 |
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## 🔍 詳細レビュー
|
|
21
|
+
|
|
22
|
+
### Part 1: ドキュメント追記(mermaidシーケンス図)
|
|
23
|
+
|
|
24
|
+
#### ✅ 正確性
|
|
25
|
+
|
|
26
|
+
**シーケンス図の技術的正確性**: 合格
|
|
27
|
+
|
|
28
|
+
各シナリオのシーケンス図は以下の点で正確です:
|
|
29
|
+
|
|
30
|
+
1. **シナリオ1(ゼロから新規プロジェクト作成)**
|
|
31
|
+
- create-einja-app → dev-cli init の委譲フローは正確
|
|
32
|
+
- `--force --no-backup` フラグの使用は妥当(create-einja-app内部で初回init)
|
|
33
|
+
- コピー対象(.claude/, docs/einja/, CLAUDE.md, .mcp.json, symlinks, 依存関係)は網羅的
|
|
34
|
+
|
|
35
|
+
2. **シナリオ2(テンプレート更新の取り込み)**
|
|
36
|
+
- create-einja-app sync と dev-cli sync の独立性が明確
|
|
37
|
+
- 管轄分離(アプリ設定 vs AI環境)が正確
|
|
38
|
+
|
|
39
|
+
3. **シナリオ3(既存プロジェクトに新規導入)**
|
|
40
|
+
- dev-cli init → create-einja-app sync --categories の順序は実用的
|
|
41
|
+
- 部分導入のユースケースは正確
|
|
42
|
+
|
|
43
|
+
#### ⚠️ 懸念点
|
|
44
|
+
|
|
45
|
+
**追記位置の妥当性**: 要確認
|
|
46
|
+
|
|
47
|
+
プランでは「31行目の `> **ポイント**: ...` の直後」に追記とありますが、README.mdの構造上、以下の配置も検討すべきです:
|
|
48
|
+
|
|
49
|
+
```markdown
|
|
50
|
+
### init vs sync vs create-einja-app の違い
|
|
51
|
+
[既存のテーブル]
|
|
52
|
+
|
|
53
|
+
> **ポイント**: 設定を更新したいだけなら`sync`を使ってください。
|
|
54
|
+
|
|
55
|
+
### 利用シーンのフロー ← **新規セクション**
|
|
56
|
+
[mermaid図4つ]
|
|
57
|
+
|
|
58
|
+
## インストール ← 既存セクション
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
**推奨**: セクション追加が適切か、それとも別ドキュメントへのリンクにすべきか検討する。
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
### Part 2: init/syncギャップ修正
|
|
66
|
+
|
|
67
|
+
#### ❌ 重大な問題
|
|
68
|
+
|
|
69
|
+
##### 2-1. `init.ts` への不足コピーステップ追加
|
|
70
|
+
|
|
71
|
+
**問題1: `merger.ts` の関数設計が不適切**
|
|
72
|
+
|
|
73
|
+
プランでは `copyPresetSubdir(targetDir, subPath)` と `copyPresetFile(targetDir, subPath)` を追加するとありますが、現在の `merger.ts` の設計と整合しません:
|
|
74
|
+
|
|
75
|
+
- `merger.ts` は **presetName** を引数に取る設計(例: `generateClaudeDirectory(targetPath, presetConfig)`)
|
|
76
|
+
- `getPresetPath()` はファイルシステム層(`file-system.ts`)の関数
|
|
77
|
+
- 提案されている関数は **プリセット名を受け取らない** ため、プリセットパスの解決ができない
|
|
78
|
+
|
|
79
|
+
**正しいシグネチャ(推奨)**:
|
|
80
|
+
|
|
81
|
+
```typescript
|
|
82
|
+
// merger.ts に追加
|
|
83
|
+
export async function copyPresetDirectory(
|
|
84
|
+
targetDir: string,
|
|
85
|
+
presetRelativePath: string,
|
|
86
|
+
presetName: string = "default"
|
|
87
|
+
): Promise<void> {
|
|
88
|
+
const presetPath = getPresetPath(presetName);
|
|
89
|
+
const srcPath = path.join(presetPath, presetRelativePath);
|
|
90
|
+
const destPath = path.join(targetDir, presetRelativePath);
|
|
91
|
+
|
|
92
|
+
if (await fs.pathExists(srcPath)) {
|
|
93
|
+
await fs.ensureDir(path.dirname(destPath));
|
|
94
|
+
await fs.copy(srcPath, destPath);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
export async function copyPresetFile(
|
|
99
|
+
targetFilePath: string,
|
|
100
|
+
presetRelativePath: string,
|
|
101
|
+
presetName: string = "default"
|
|
102
|
+
): Promise<void> {
|
|
103
|
+
const presetPath = getPresetPath(presetName);
|
|
104
|
+
const srcPath = path.join(presetPath, presetRelativePath);
|
|
105
|
+
|
|
106
|
+
if (await fs.pathExists(srcPath)) {
|
|
107
|
+
await fs.ensureDir(path.dirname(targetFilePath));
|
|
108
|
+
await fs.copy(srcPath, targetFilePath);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
**問題2: init.ts でのコピー順序**
|
|
114
|
+
|
|
115
|
+
プランには「どのステップ番号の後にコピーを追加するか」の記載がありません。現在の `init.ts` の構造は以下です:
|
|
116
|
+
|
|
117
|
+
```
|
|
118
|
+
1-3: プリセット読み込み・ドライラン・既存確認
|
|
119
|
+
4: .claude 生成
|
|
120
|
+
5: ドキュメントテンプレート(templates/)
|
|
121
|
+
6: ステアリングドキュメント(steering/)
|
|
122
|
+
7: CLAUDE.md 生成
|
|
123
|
+
8: シンボリックリンク
|
|
124
|
+
9: .mcp.json
|
|
125
|
+
10: 依存関係
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
**推奨追加位置**:
|
|
129
|
+
|
|
130
|
+
- **scripts/**: ステップ5.5(docs/einja/ と .claude/ の後)
|
|
131
|
+
- **instructions/, example/**: ステップ6.5(steering/ の直後)
|
|
132
|
+
- **.envrc**: ステップ9.5(.mcp.json の直後)
|
|
133
|
+
- **.vscode/**: ステップ9.6(.envrc の直後)
|
|
134
|
+
|
|
135
|
+
##### 2-2. `file-filter.ts` への scripts カテゴリ追加
|
|
136
|
+
|
|
137
|
+
**⚠️ 影響範囲の分析不足**
|
|
138
|
+
|
|
139
|
+
`CATEGORY_MAPPING` への `scripts: "scripts"` 追加は、以下の影響があります:
|
|
140
|
+
|
|
141
|
+
1. **sync コマンドでの同期対象化**: `einja sync --only scripts` が動作可能になる
|
|
142
|
+
2. **einja-prefix フィルタリング**: `EINJA_PREFIX_CATEGORIES` に追加しないため、scripts/ 配下すべてが対象
|
|
143
|
+
3. **orphan cleaner への影響**: scripts/ 配下の孤立ファイル削除ロジックが適用される
|
|
144
|
+
|
|
145
|
+
**検証必要事項**:
|
|
146
|
+
|
|
147
|
+
- scripts/ には einja-prefix 以外のファイル(worktree/, lib/)が含まれるが、すべて同期対象でよいか?
|
|
148
|
+
- テンプレート側に存在しないローカルのスクリプト(プロジェクト固有)は削除されるべきか?
|
|
149
|
+
|
|
150
|
+
**推奨**: scripts/ を同期対象にする場合、以下のルールを明示すべき:
|
|
151
|
+
|
|
152
|
+
```typescript
|
|
153
|
+
// scripts/lib/, scripts/worktree/ はプリセット管理対象
|
|
154
|
+
// それ以外のscripts/ 直下のプロジェクト固有ファイルはorphan cleanerの除外対象
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
##### 2-3. `scripts/worktree/dev.ts` の packages/config 依存除去
|
|
158
|
+
|
|
159
|
+
**❌ 重大な設計ミス**
|
|
160
|
+
|
|
161
|
+
プランでは「`scripts/lib/worktree-config.ts` を新規作成し、型定義+ローダーをインライン化(zod非依存)」とありますが、以下の問題があります:
|
|
162
|
+
|
|
163
|
+
**問題1: packages/config の役割の誤解**
|
|
164
|
+
|
|
165
|
+
`packages/config` は **zodベースのバリデーション** を提供するために存在します:
|
|
166
|
+
|
|
167
|
+
```typescript
|
|
168
|
+
// packages/config/src/worktree-config.ts
|
|
169
|
+
export const appConfigSchema = z.object({
|
|
170
|
+
id: z.string().min(1).regex(/^[a-z][a-z0-9_]*$/),
|
|
171
|
+
portRangeStart: z.number().int().min(1024).max(65535),
|
|
172
|
+
rangeSize: z.number().int().min(1).max(10000).default(1000),
|
|
173
|
+
});
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
**zod非依存のローダー** では以下の機能が失われます:
|
|
177
|
+
|
|
178
|
+
- IDフォーマット検証(正規表現)
|
|
179
|
+
- ポート番号範囲チェック
|
|
180
|
+
- デフォルト値の自動適用
|
|
181
|
+
- 型安全性
|
|
182
|
+
|
|
183
|
+
**問題2: 重複コードの発生**
|
|
184
|
+
|
|
185
|
+
`scripts/lib/worktree-config.ts` に型定義をインライン化すると、`packages/config` との二重管理になります:
|
|
186
|
+
|
|
187
|
+
| ファイル | 役割 | バリデーション |
|
|
188
|
+
|---------|------|-------------|
|
|
189
|
+
| `packages/config/src/worktree-config.ts` | 型定義+zodスキーマ | あり |
|
|
190
|
+
| `scripts/lib/worktree-config.ts` | 型定義のみ | **なし**(zod非依存) |
|
|
191
|
+
|
|
192
|
+
今後の変更(例: 新規アプリ追加、設定項目追加)時に **両方のファイルを修正** する必要が生じます。
|
|
193
|
+
|
|
194
|
+
**問題3: scripts/ は init/sync でコピーされる = packages/config も必要**
|
|
195
|
+
|
|
196
|
+
プラン 2-1 で scripts/ を init/sync でコピーする方針なのに、scripts/worktree/dev.ts から packages/config 依存を除去するのは矛盾しています。
|
|
197
|
+
|
|
198
|
+
**理由**: プリセットテンプレートから scripts/ をコピーする場合、scripts/worktree/dev.ts も含まれる。しかし、ターゲットプロジェクトに packages/config が存在しない(モノレポではない)場合、import エラーになる。
|
|
199
|
+
|
|
200
|
+
**正しい解決策(3択)**:
|
|
201
|
+
|
|
202
|
+
#### ✅ 推奨案A: packages/config を peer dependencies にする
|
|
203
|
+
|
|
204
|
+
```json
|
|
205
|
+
// packages/cli/package.json
|
|
206
|
+
{
|
|
207
|
+
"peerDependencies": {
|
|
208
|
+
"@your-org/config": "workspace:*"
|
|
209
|
+
},
|
|
210
|
+
"peerDependenciesMeta": {
|
|
211
|
+
"@your-org/config": {
|
|
212
|
+
"optional": true
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
- scripts/worktree/dev.ts 内で `packages/config` の存在を動的チェック
|
|
219
|
+
- 存在しない場合はデフォルト設定で動作
|
|
220
|
+
|
|
221
|
+
```typescript
|
|
222
|
+
// scripts/worktree/dev.ts
|
|
223
|
+
let loadWorktreeConfig: typeof import("../../packages/config/src/worktree-config-loader.js").loadWorktreeConfig;
|
|
224
|
+
|
|
225
|
+
try {
|
|
226
|
+
const module = await import("../../packages/config/src/worktree-config-loader.js");
|
|
227
|
+
loadWorktreeConfig = module.loadWorktreeConfig;
|
|
228
|
+
} catch {
|
|
229
|
+
// fallback: JSONを直接読む(バリデーションなし)
|
|
230
|
+
loadWorktreeConfig = () => defaultWorktreeConfig;
|
|
231
|
+
}
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
#### 案B: scripts/lib/ に最小限のローダーを配置(バリデーション放棄)
|
|
235
|
+
|
|
236
|
+
- zod依存を除去し、JSONを素直に読むだけ
|
|
237
|
+
- **デメリット**: 設定ミス時のエラー検出が不可能
|
|
238
|
+
|
|
239
|
+
#### 案C: scripts/ を init/sync のコピー対象から除外
|
|
240
|
+
|
|
241
|
+
- scripts/ はプロジェクト固有のツールと割り切る
|
|
242
|
+
- **デメリット**: worktree開発フローが新規プロジェクトで使えない
|
|
243
|
+
|
|
244
|
+
**推奨**: **案A**(packages/config を optional peer dependency にして、動的読み込み+fallback)
|
|
245
|
+
|
|
246
|
+
---
|
|
247
|
+
|
|
248
|
+
#### 📝 対象ファイル一覧の不足
|
|
249
|
+
|
|
250
|
+
プランの「対象ファイル」セクションに以下が不足しています:
|
|
251
|
+
|
|
252
|
+
| 不足ファイル | 理由 |
|
|
253
|
+
|------------|------|
|
|
254
|
+
| `packages/cli/src/lib/file-system.ts` | `getPresetPath()` が既に存在するか確認が必要 |
|
|
255
|
+
| `scripts/lib/worktree-config.ts` | **新規** として明記されているが、実装の詳細仕様が不明 |
|
|
256
|
+
| `.claude/skills/*/SKILL.md` | scripts/ の同期影響を受ける可能性 |
|
|
257
|
+
|
|
258
|
+
---
|
|
259
|
+
|
|
260
|
+
#### ✅ 検証計画の妥当性
|
|
261
|
+
|
|
262
|
+
プランの検証項目は網羅的です:
|
|
263
|
+
|
|
264
|
+
1. ビルド成功 → 型チェック・lint
|
|
265
|
+
2. mermaid レンダリング → GitHub UI確認
|
|
266
|
+
3. init コマンド動作確認 → 実環境テスト
|
|
267
|
+
4. sync --only scripts 動作確認 → カテゴリフィルタリング
|
|
268
|
+
5. worktree dev.ts 動作確認 → packages/config なしでの動作
|
|
269
|
+
6. テスト通過 → 既存機能の非破壊確認
|
|
270
|
+
|
|
271
|
+
**追加推奨**:
|
|
272
|
+
|
|
273
|
+
- `einja sync --only scripts` 実行後に、プロジェクト固有の scripts/ ファイルが削除されないことを確認
|
|
274
|
+
- init 後の .envrc の内容が正しいことを確認(direnv でロード可能か)
|
|
275
|
+
- .vscode/settings.json が既存設定とマージされることを確認(上書きされない)
|
|
276
|
+
|
|
277
|
+
---
|
|
278
|
+
|
|
279
|
+
## 📌 修正推奨事項まとめ
|
|
280
|
+
|
|
281
|
+
### 🔴 必須修正
|
|
282
|
+
|
|
283
|
+
| 項目 | 問題 | 推奨対応 |
|
|
284
|
+
|------|------|---------|
|
|
285
|
+
| 1 | `merger.ts` の関数シグネチャ不足 | `presetName` 引数を追加し、`getPresetPath()` を使用する設計に変更 |
|
|
286
|
+
| 2 | init.ts へのコピー追加位置が不明 | ステップ番号を明示(例: 5.5, 6.5, 9.5, 9.6) |
|
|
287
|
+
| 3 | packages/config 依存除去の方針が矛盾 | **案A**: optional peer dependency + 動的読み込み を採用 |
|
|
288
|
+
| 4 | scripts/ の同期ルールが曖昧 | プロジェクト固有ファイルの扱いを明示 |
|
|
289
|
+
|
|
290
|
+
### 🟡 推奨修正
|
|
291
|
+
|
|
292
|
+
| 項目 | 問題 | 推奨対応 |
|
|
293
|
+
|------|------|---------|
|
|
294
|
+
| 5 | README.md へのmermaid図追加位置 | 新規セクションとして追加すべきか確認 |
|
|
295
|
+
| 6 | 対象ファイル一覧の不足 | `packages/cli/src/lib/file-system.ts` を追加 |
|
|
296
|
+
| 7 | .vscode/settings.json のマージ方法 | JSON merge の仕様を明示(深いマージか、シャローマージか) |
|
|
297
|
+
|
|
298
|
+
### 🟢 補足検証
|
|
299
|
+
|
|
300
|
+
| 項目 | 検証内容 |
|
|
301
|
+
|------|---------|
|
|
302
|
+
| 8 | scripts/ の einja-prefix フィルタリング不要性 | worktree/, lib/ が sync 対象になる影響 |
|
|
303
|
+
| 9 | .envrc のコピータイミング | .mcp.json の後で妥当か(依存関係なし) |
|
|
304
|
+
|
|
305
|
+
---
|
|
306
|
+
|
|
307
|
+
## 🎯 次のアクション
|
|
308
|
+
|
|
309
|
+
1. **ユーザーに確認**:
|
|
310
|
+
- packages/config 依存の解消方針(案A/B/C)
|
|
311
|
+
- scripts/ の同期対象範囲(全体 or einja-prefix のみ)
|
|
312
|
+
- README.md への mermaid 図の追加位置
|
|
313
|
+
|
|
314
|
+
2. **プラン修正**:
|
|
315
|
+
- merger.ts の関数仕様を詳細化
|
|
316
|
+
- init.ts のステップ番号を明示
|
|
317
|
+
- worktree-config.ts の実装仕様を追加
|
|
318
|
+
- 対象ファイル一覧を補完
|
|
319
|
+
|
|
320
|
+
3. **実装開始条件**:
|
|
321
|
+
- 上記の必須修正(1-4)がすべて解決
|
|
322
|
+
- ユーザー確認事項(1)への回答完了
|
|
323
|
+
|
|
324
|
+
---
|
|
325
|
+
|
|
326
|
+
## 📚 参考情報
|
|
327
|
+
|
|
328
|
+
### 現在の file-filter.ts のカテゴリ一覧
|
|
329
|
+
|
|
330
|
+
```typescript
|
|
331
|
+
const CATEGORY_MAPPING: Record<string, string> = {
|
|
332
|
+
commands: ".claude/commands/einja",
|
|
333
|
+
agents: ".claude/agents/einja",
|
|
334
|
+
skills: ".claude/skills", // einja-prefix フィルタリングあり
|
|
335
|
+
hooks: ".claude/hooks",
|
|
336
|
+
docs: "docs/einja",
|
|
337
|
+
env: ".", // .envrc のみ
|
|
338
|
+
tools: ".vscode", // .vscode/settings.json のみ
|
|
339
|
+
// scripts: "scripts", // ← 追加予定
|
|
340
|
+
};
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
### presets/default/ の構造
|
|
344
|
+
|
|
345
|
+
```
|
|
346
|
+
presets/default/
|
|
347
|
+
├── .claude/
|
|
348
|
+
├── .envrc ← init で未コピー
|
|
349
|
+
├── .mcp.json
|
|
350
|
+
├── .vscode/settings.json ← init で未コピー
|
|
351
|
+
├── CLAUDE.md.template
|
|
352
|
+
├── docs/einja/
|
|
353
|
+
│ ├── instructions/ ← init で未コピー
|
|
354
|
+
│ ├── example/ ← init で未コピー
|
|
355
|
+
│ ├── steering/
|
|
356
|
+
│ └── templates/
|
|
357
|
+
├── preset.yaml
|
|
358
|
+
├── scripts/ ← init で未コピー
|
|
359
|
+
│ ├── lib/
|
|
360
|
+
│ └── worktree/
|
|
361
|
+
└── symlinks.json
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
---
|
|
365
|
+
|
|
366
|
+
**レビュー完了**: 上記の修正を反映後、実装可能と判断します。
|