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,84 @@
1
+ # Plan: issue-exec コマンドの入力を自然言語解析 + AskUserQuestion 対話型に変更
2
+
3
+ ## Context
4
+
5
+ `issue-exec.md` の「入力の解析」セクションで `--merge-mode` 等のオプション引数を使っているが、ユーザーが覚えきれない。`$ARGUMENTS` を自然言語として解析し、読み取れなかった項目だけ `AskUserQuestion` で対話的に聞くように変更する。
6
+
7
+ ## 対象ファイル
8
+
9
+ - `.claude/commands/einja/issue-exec.md`
10
+ - L2: `description` を自然言語入力対応に更新
11
+ - L12-22: 「入力の解析」セクションを全面書き換え
12
+
13
+ ## 変更内容
14
+
15
+ ### 1. description(L2)更新
16
+
17
+ ```
18
+ description: "GitHub Issueの全タスクを階層的に並列実行するコマンド。Manager→Director→Workerの3階層でtmux+worktreeを使用。ARGUMENTS: 自然言語でIssue番号や実行オプションを指定(例: '#123 autoで全部やって', '45番 phase2まで')"
19
+ ```
20
+
21
+ ### 2. 「入力の解析」セクション(L12-22)を以下に置換
22
+
23
+ ```markdown
24
+ ## 入力の解析
25
+
26
+ ### Step A: $ARGUMENTS を自然言語として解析
27
+
28
+ $ARGUMENTS をLLMとして自然言語解析し、以下の情報を抽出する:
29
+
30
+ | 項目 | 抽出例 |
31
+ |------|--------|
32
+ | Issue番号 | `#123`, `123`, `Issue 45`, `45番` → 数値を抽出 |
33
+ | マージモード | `autoで`, `自動マージ`, `全部自動` → auto / `タスクだけ自動` → task-group-auto / `手動で確認`, `慎重に` → manual |
34
+ | 実行範囲 | `phase2まで`, `フェーズ1だけ`, `全部` → max-phase 数値 or null |
35
+ | ベースブランチ | `developから`, `mainベース` → ブランチ名 |
36
+ | セッション復旧 | `再開`, `resume`, `続きから` → resume フラグ |
37
+
38
+ 解析できなかった項目は「未指定」とする。曖昧な場合も無理に推測せず「未指定」とする。
39
+
40
+ ### Step B: resume が検出された場合
41
+ セッション復旧フローへ直接進む(Step 0 の復旧処理)。以降の質問はスキップ。
42
+
43
+ ### Step C: 未指定項目を AskUserQuestion で確認
44
+
45
+ **Issue番号** が未指定の場合、まず Issue番号を質問する。
46
+
47
+ 残りの未指定オプションを **1回の AskUserQuestion** でまとめて質問する(指定済みの項目はスキップ):
48
+
49
+ #### Q1: マージモード(未指定時のみ)
50
+ - header: "Merge mode"
51
+ - multiSelect: false
52
+ - options:
53
+ 1. label: "manual(推奨)"
54
+ description: "タスクPR・Phase PRとも人間がマージ。変更内容を都度レビューしたい場合に最適"
55
+ 2. label: "task-group-auto"
56
+ description: "タスクPR(task→phase)はCI通過後に自動マージ。Phase PRは人間マージ。スピードと安全性のバランス型"
57
+ 3. label: "auto"
58
+ description: "タスクPR・Phase PRとも自動マージ。最終PR(issue→base)のみ人間マージ。最速だがリスクあり"
59
+
60
+ #### Q2: 実行範囲(未指定時のみ)
61
+ - header: "Phase範囲"
62
+ - multiSelect: false
63
+ - options:
64
+ 1. label: "全Phase実行(推奨)"
65
+ description: "Issueに定義された全Phaseを順次実行する"
66
+ 2. label: "特定Phaseまで"
67
+ description: "Phase番号を指定して途中まで実行。段階的に確認したい場合に有用(Other欄にPhase番号を入力)"
68
+
69
+ #### Q3: ベースブランチ(未指定時のみ)
70
+ - header: "Base branch"
71
+ - multiSelect: false
72
+ - options:
73
+ 1. label: "main(推奨)"
74
+ description: "デフォルトのメインブランチからIssueブランチを作成"
75
+ 2. label: "develop"
76
+ description: "developブランチがある場合。GitFlow運用向け"
77
+ ```
78
+
79
+ ## 検証
80
+
81
+ 1. `issue-exec.md` の L2 description が自然言語対応の文言に更新されていること
82
+ 2. 「入力の解析」セクション(旧 L12-22)が Step A/B/C の新内容に置換されていること
83
+ 3. Step 0 以降の処理フローは一切変更なし
84
+ 4. 自然言語解析の抽出例テーブルが記載されていること
@@ -0,0 +1,28 @@
1
+ # Plan: einja-project-overview SKILL.md の参照先再定義
2
+
3
+ ## Context
4
+
5
+ 「プロジェクト概要」Skillが関心事の異なるドキュメント(コーディング規約、インフラ管理Skill等)を参照していた。「このプロジェクトは何か?どういう構造か?」に答えるハブとして、適切な参照先のみに絞る。
6
+
7
+ ## 変更内容
8
+
9
+ **対象ファイル**: `.claude/skills/einja-project-overview/SKILL.md`
10
+
11
+ ### 参照すべきドキュメント(3つ)
12
+
13
+ | 参照 | 目的 |
14
+ |------|------|
15
+ | `docs/einja/steering/README.md` | 全ドキュメントへのナビゲーションハブ |
16
+ | `docs/einja/steering/product.md` | 何のためのプロジェクトか(製品ビジョン) |
17
+ | `docs/einja/steering/architecture.md` | どういう技術構成か |
18
+
19
+ ### 除外するもの
20
+
21
+ - `infra-maintenance` Skillリンク → インフラ運用は別の関心事
22
+ - コーディング規約・コンポーネント設計 → 開発ガイドラインの関心事
23
+ - `db-schema-design.md` → スキーマ詳細設計であり概要ではない
24
+ - `backend-architecture.md` → 4層設計の実装詳細
25
+
26
+ ## 検証
27
+
28
+ - SKILL.md の内容を `Read` で確認
@@ -0,0 +1,534 @@
1
+ # infra-maintenance Skill ゼロ状態対応度調査
2
+
3
+ ## 調査目的
4
+
5
+ `infra-maintenance` Skillが、一度もインフラ設定がされていない「完全ゼロ状態」のプロジェクトからセットアップする場合に対応できるかを検査する。
6
+
7
+ ## ゼロ状態の定義
8
+
9
+ - git clone 直後
10
+ - .env.keys が存在しない(1Passwordからまだ取得していない)
11
+ - .env.personal が存在しない
12
+ - .env(復号済み)が存在しない
13
+ - pnpm install がまだ実行されていない
14
+ - Docker/PostgreSQL が起動していない
15
+ - Vercel CLI 未インストール / 未ログイン / 未リンク
16
+ - Neon CLI 未インストール / Neon API Key 未取得
17
+ - GitHub CLI 未ログイン
18
+ - GitHub Secrets 未設定(リポジトリ新規作成直後)
19
+ - Vercel 環境変数未設定
20
+ - Neon プロジェクト未作成
21
+
22
+ ---
23
+
24
+ ## カテゴリごとのゼロ状態対応度評価
25
+
26
+ ### カテゴリ1: ローカル環境セットアップ
27
+
28
+ **評価: ⚠️ 一部不足**
29
+
30
+ #### 対応済みの点
31
+ - `pnpm install` で依存関係インストール(SKILL.md 129行目)
32
+ - `pnpm dev:setup` で環境セットアップ(SKILL.md 130行目)
33
+ - PostgreSQL接続エラー時の `docker compose up -d postgres` 案内(SKILL.md 138行目)
34
+ - Node.js/pnpmバージョン不一致時の `volta install` 提案(SKILL.md 139-140行目)
35
+
36
+ #### 不足している点
37
+ 1. **`.env.keys` 不在時の対処フローが不完全**
38
+ - AskUserQuestion で「メインworktreeからコピー or 手動配置」を提示(SKILL.md 137行目)
39
+ - しかし、**メインworktreeも存在しない**ゼロ状態(単一worktree環境、または初回clone)では案内不十分
40
+ - 1Passwordからの取得手順がない
41
+
42
+ 2. **Docker未インストール時の案内がない**
43
+ - PostgreSQL接続エラーは検出できるが、Docker自体がインストールされていないケースの対処がない
44
+
45
+ 3. **direnv未設定時の案内がない**
46
+ - environment-setup.mdには「direnv allow」の手順があるが、SKILL.md側で案内されていない
47
+
48
+ #### 推奨修正
49
+ - カテゴリ1の「初回セットアップ」で `.env.keys` 不在時に以下のフローを追加:
50
+ 1. 1Passwordの取得先案内(チーム共有のVault名・Item名を記載)
51
+ 2. 手動配置手順の詳細説明(パスワードマネージャー未使用の場合の代替案)
52
+ - Docker未インストール時の案内を追加(`command -v docker` チェック)
53
+ - direnv未設定時の案内を追加(`command -v direnv` チェック)
54
+
55
+ ---
56
+
57
+ ### カテゴリ2: 環境変数管理
58
+
59
+ **評価: ⚠️ 一部不足**
60
+
61
+ #### 対応済みの点
62
+ - 個人トークン設定フローが詳細(SKILL.md 160-171行目)
63
+ - トークン取得URLの案内(GitHub, Vercel, Neon)
64
+ - `.env.personal` への保存と `chmod 600` 実行
65
+ - API検証コマンド(`gh auth status`, `vercel whoami`, `neonctl projects list`)
66
+
67
+ #### 不足している点
68
+ 1. **チーム共有設定変更の前提条件が未確認**
69
+ - 「チーム共有設定変更」(SKILL.md 173-180行目)は `.env.keys` の秘密鍵が必須
70
+ - しかし、`.env.keys` 不在時にこのサブメニューを選択した場合のエラーハンドリングがない
71
+
72
+ 2. **新規環境変数追加フローの依存関係が不明確**
73
+ - 「新規環境変数追加」(SKILL.md 182-189行目)でも暗号化ファイル編集が必要
74
+ - `.env.keys` 不在時にこのフローを選択すると失敗する
75
+
76
+ #### 推奨修正
77
+ - カテゴリ2の各サブメニューで `.env.keys` 存在チェックを実行
78
+ - 不在時は「まずカテゴリ1で初回セットアップを完了してください」と案内
79
+
80
+ ---
81
+
82
+ ### カテゴリ3: Vercel管理
83
+
84
+ **評価: ⚠️ 一部不足**
85
+
86
+ #### 対応済みの点
87
+ - VERCEL_TOKEN未設定時の取得URL案内(SKILL.md 207行目)
88
+ - `vercel link` でプロジェクト接続(SKILL.md 209行目)
89
+ - Root Directory設定(API使用、SKILL.md 210-217行目)
90
+ - 環境変数同期フロー(SKILL.md 222-227行目)
91
+
92
+ #### 不足している点
93
+ 1. **Vercel CLI未インストール時の案内がない**
94
+ - カテゴリ6では `command -v vercel` チェックが存在(SKILL.md 360行目)
95
+ - しかし、カテゴリ3の実行時点ではチェックされていない
96
+
97
+ 2. **プロジェクト作成フローが存在しない**
98
+ - 「初期設定」(SKILL.md 206-218行目)は既存プロジェクトへの接続のみ
99
+ - **Vercelプロジェクトがまだ存在しない**ゼロ状態では不完全
100
+ - vercel-cli-reference.md(258-289行目)には詳細手順があるが、SKILL.mdから誘導されていない
101
+
102
+ 3. **VERCEL_ORG_ID, VERCEL_PROJECT_IDの取得方法が記載されていない**
103
+ - SKILL.mdには記載なし
104
+ - deployment-setup.md(261-266行目)やvercel-cli-reference.md(295-302行目)にはあるが、参照ドキュメントとしてリンクされていない
105
+
106
+ #### 推奨修正
107
+ - カテゴリ3「初期設定」を2つに分割:
108
+ - **新規プロジェクト作成**: vercel-cli-reference.md のStep 1-3を実行
109
+ - **既存プロジェクト接続**: 現在の「初期設定」フロー
110
+ - Vercel CLI未インストール時の案内を追加
111
+
112
+ ---
113
+
114
+ ### カテゴリ4: Neon管理
115
+
116
+ **評価: ⚠️ 一部不足**
117
+
118
+ #### 対応済みの点
119
+ - NEON_API_KEY未設定時の取得URL案内(SKILL.md 251-253行目)
120
+ - `neonctl auth` を使用しない理由の明記(neon-cli-reference.md 49-69行目)
121
+ - プロジェクト作成コマンド(SKILL.md 255-257行目)
122
+ - NEON_PROJECT_IDの `.env.preview` への設定(SKILL.md 258行目)
123
+
124
+ #### 不足している点
125
+ 1. **Neon CLI未インストール時の案内がない**
126
+ - カテゴリ6では `command -v neonctl` チェックが存在(SKILL.md 360行目)
127
+ - しかし、カテゴリ4の実行時点ではチェックされていない
128
+
129
+ 2. **`.env.preview` への設定フローが簡略化されすぎ**
130
+ - 「NEON_PROJECT_IDを`.env.preview`に設定 → dotenvx暗号化」(SKILL.md 258行目)
131
+ - しかし、**`.env.preview` がまだ存在しない**ゼロ状態では実行不可
132
+ - deployment-setup.md(171-184行目)には `pnpm env:update` を使った詳細フローがあるが、SKILL.mdから誘導されていない
133
+
134
+ 3. **プロジェクト作成後のIDの取得方法が不明確**
135
+ - `neonctl projects create` の出力から `NEON_PROJECT_ID` を抽出する手順が記載されていない
136
+
137
+ #### 推奨修正
138
+ - カテゴリ4「初期設定」で以下を追加:
139
+ - Neon CLI未インストール時の案内
140
+ - プロジェクト作成後のID取得手順(`jq -r '.project.id'` 等)
141
+ - `.env.preview` への設定を `pnpm env:update` 経由で実行する詳細フロー
142
+
143
+ ---
144
+
145
+ ### カテゴリ5: GitHub Secrets管理
146
+
147
+ **評価: ✅ 対応済み**
148
+
149
+ #### 対応済みの点
150
+ - GitHub CLI (`gh`) の存在を前提とした操作(SKILL.md 308-329行目)
151
+ - 一括設定スクリプトが完備(SKILL.md 319-329行目、deployment-setup.md 73-79行目)
152
+ - dotenvx秘密鍵の自動抽出ロジック(`.env.keys` からgrep)
153
+
154
+ #### 注意点
155
+ - GitHub CLI未ログイン時のエラーは `gh secret list` 実行時に検出可能
156
+ - **前提条件**: `.env.keys` が存在すること(カテゴリ1で解決)
157
+
158
+ ---
159
+
160
+ ### カテゴリ6: 環境状態確認
161
+
162
+ **評価: ✅ 対応済み**
163
+
164
+ #### 対応済みの点
165
+ - 包括的なヘルスチェック(SKILL.md 338-409行目)
166
+ - CLI未インストール時の検出(SKILL.md 359-361行目)
167
+ - 推奨アクションの自動提案(SKILL.md 413-424行目)
168
+ - ❌が3個以上の場合の初期セットアップ案内(SKILL.md 424行目)
169
+
170
+ #### 特に優れている点
171
+ - このカテゴリは**ゼロ状態検出の起点**として機能する
172
+ - Phase 1(環境状態の自動検出、SKILL.md 48-70行目)と連動
173
+
174
+ ---
175
+
176
+ ### カテゴリ7: GitHub Actions CI/CD管理
177
+
178
+ **評価: ✅ 対応済み**
179
+
180
+ #### 対応済みの点
181
+ - GitHub CLI (`gh`) を使用したワークフロー操作(SKILL.md 453-505行目)
182
+ - エラーパターンに基づくカテゴリ遷移提案(SKILL.md 476-484行目)
183
+ - 失敗調査フローが詳細(SKILL.md 466-475行目)
184
+
185
+ #### 注意点
186
+ - このカテゴリは**他カテゴリが完了している前提**(GitHub Secrets, Vercel, Neon設定済み)
187
+ - ゼロ状態では実行可能だが、設定不備エラーの診断用途が主
188
+
189
+ ---
190
+
191
+ ## Phase 1 自動検出の検査
192
+
193
+ ### 検出ロジック(SKILL.md 52-68行目)
194
+
195
+ ```bash
196
+ # === ファイル存在確認 ===
197
+ for f in .env .env.local .env.keys .env.personal .env.develop .env.staging .env.production .env.preview; do
198
+ [ -f "$f" ] && echo "✅ $f" || echo "❌ $f"
199
+ done
200
+
201
+ # === CLI存在確認 ===
202
+ for cmd in vercel neonctl gh dotenvx docker; do
203
+ command -v "$cmd" >/dev/null 2>&1 && echo "✅ $cmd" || echo "❌ $cmd"
204
+ done
205
+
206
+ # === Docker/PostgreSQL状態 ===
207
+ docker compose ps 2>/dev/null | grep postgres
208
+
209
+ # === 開発サーバー状態 ===
210
+ pnpm dev:status 2>/dev/null || echo "停止中"
211
+ ```
212
+
213
+ ### ゼロ状態での検出結果(想定)
214
+
215
+ ```
216
+ ❌ .env
217
+ ❌ .env.local
218
+ ❌ .env.keys
219
+ ❌ .env.personal
220
+ ❌ .env.develop
221
+ ❌ .env.staging
222
+ ❌ .env.production
223
+ ❌ .env.preview
224
+ ❌ vercel
225
+ ❌ neonctl
226
+ ✅ gh (インストール済みと仮定)
227
+ ✅ dotenvx (pnpm dev:setupでインストール)
228
+ ❌ docker (未インストールの可能性)
229
+ ❌ postgres (未起動)
230
+ ❌ 開発サーバー (停止中)
231
+ ```
232
+
233
+ ### 推奨ロジックの動作(SKILL.md 96-104行目)
234
+
235
+ | 検出結果 | 推奨カテゴリ |
236
+ |---------|------------|
237
+ | `.env.keys`不在 | ローカル環境セットアップ |
238
+ | 開発サーバー停止中 + `.env.keys`存在 | ローカル環境セットアップ |
239
+ | vercel CLI未インストール or 未リンク | Vercel管理 |
240
+ | neonctl未インストール | Neon管理 |
241
+ | `.env.personal`不在 | 環境変数管理 |
242
+ | 上記に該当しない | 環境状態確認(デフォルト) |
243
+
244
+ ### ゼロ状態での推奨動作
245
+
246
+ **問題点**: 複数の❌が同時に存在する場合、**どのカテゴリを最優先すべきか不明確**
247
+
248
+ - `.env.keys`不在 → カテゴリ1推奨
249
+ - vercel CLI未インストール → カテゴリ3推奨
250
+ - neonctl未インストール → カテゴリ4推奨
251
+ - `.env.personal`不在 → カテゴリ2推奨
252
+
253
+ **推奨される動作**:
254
+ 1. **Phase 1の検出結果で❌が3個以上** → 「初回セットアップが必要です。カテゴリ1を実行してください」と明示
255
+ 2. カテゴリ1完了後、再度Phase 1を実行し、次の推奨カテゴリを提示
256
+
257
+ ---
258
+
259
+ ## セットアップ手順書との整合性検証
260
+
261
+ ### deployment-setup.md「セクション0: ゼロからの統合初期構築フロー」(26-106行目)
262
+
263
+ #### 記載されている手順
264
+ 1. リポジトリクローン + 依存関係インストール
265
+ 2. Neon初期設定
266
+ 3. Vercel初期設定
267
+ 4. GitHub Secrets一括設定
268
+ 5. ローカル環境変数設定(`pnpm env:update`)
269
+ 6. 初回起動(`pnpm dev:setup`, `pnpm dev:bg`)
270
+ 7. 動作確認
271
+
272
+ #### SKILL.mdとの整合性
273
+
274
+ **不整合点**:
275
+ - deployment-setup.mdの推奨順序: **Neon → Vercel → GitHub Secrets → ローカル環境**
276
+ - SKILL.mdのカテゴリ順序: **ローカル環境(1) → 環境変数(2) → Vercel(3) → Neon(4) → GitHub Secrets(5)**
277
+
278
+ **問題**:
279
+ - SKILL.mdは「ローカル開発優先」の設計
280
+ - deployment-setup.mdは「CI/CD基盤優先」の設計
281
+ - ゼロ状態では**どちらから始めるべきか**が明示されていない
282
+
283
+ **推奨される整合化**:
284
+ - SKILL.md側で「ゼロからの統合初期構築」フローを新設
285
+ - deployment-setup.mdのセクション0と同じ順序を提示
286
+ - または、AskUserQuestionで「ローカル開発のみ or 本番デプロイまで」を選択させる
287
+
288
+ ---
289
+
290
+ ## environment-setup.mdとの整合性検証
291
+
292
+ ### 「セクション1: ローカル開発環境セットアップ」(43-109行目)
293
+
294
+ #### 記載されている手順
295
+ 1. 自動セットアップ(`pnpm dev:setup`)
296
+ 2. 環境変数の設定・変更(`pnpm env:update`)
297
+ 3. 手動セットアップ(dotenvx, `.env.keys`, `.env.personal`)
298
+
299
+ #### SKILL.mdとの整合性
300
+
301
+ **整合している点**:
302
+ - カテゴリ1「初回セットアップ」が `pnpm dev:setup` を実行(SKILL.md 129行目)
303
+ - カテゴリ2「個人トークン設定」が environment-setup.md のトークン設定フローと一致
304
+
305
+ **不整合点**:
306
+ - environment-setup.mdには「クイック操作: `pnpm env:update`」の推奨記載(156行目)
307
+ - しかし、SKILL.mdカテゴリ2では `pnpm env:update` が明示的に案内されていない
308
+
309
+ **推奨修正**:
310
+ - カテゴリ2の冒頭に「対話式ウィザードを使う場合は `pnpm env:update` を実行してください」と追記
311
+
312
+ ---
313
+
314
+ ## 発見された問題の一覧
315
+
316
+ ### 1. `.env.keys` 不在時の対処フローが不完全
317
+
318
+ **問題の説明**:
319
+ - カテゴリ1で「メインworktreeからコピー or 手動配置」を案内(SKILL.md 137行目)
320
+ - しかし、**単一worktree環境、または初回clone**では「メインworktree」が存在しない
321
+ - 1Passwordからの取得手順がSKILL.mdに記載されていない
322
+
323
+ **影響度**: ⚠️ 高(ゼロ状態では必須)
324
+
325
+ **修正提案**:
326
+ ```markdown
327
+ #### エラー時の対処
328
+
329
+ | エラー | 対処 |
330
+ |--------|------|
331
+ | `.env.keys`不在 | AskUserQuestion: 「1. 1Passwordから取得 (Vault: Development, Item: einja-dotenvx-keys) or 2. チームメンバーから共有を受ける or 3. 新規生成(初回プロジェクトセットアップ時のみ)」 |
332
+ ```
333
+
334
+ ---
335
+
336
+ ### 2. Docker未インストール時の案内がない
337
+
338
+ **問題の説明**:
339
+ - PostgreSQL接続エラーは検出できるが、Docker自体がインストールされていないケースの対処がない
340
+ - environment-setup.mdには Docker Desktop のインストール先が記載されているが、SKILL.mdから誘導されていない
341
+
342
+ **影響度**: ⚠️ 中(環境によっては必須)
343
+
344
+ **修正提案**:
345
+ ```markdown
346
+ #### エラー時の対処
347
+
348
+ | エラー | 対処 |
349
+ |--------|------|
350
+ | Docker未インストール | AskUserQuestion: 「Docker Desktop をインストールしてください: https://www.docker.com/products/docker-desktop/」 → インストール後に `docker compose up -d postgres` を実行 |
351
+ ```
352
+
353
+ ---
354
+
355
+ ### 3. Vercelプロジェクト作成フローが存在しない
356
+
357
+ **問題の説明**:
358
+ - カテゴリ3「初期設定」は既存プロジェクトへの接続のみ
359
+ - **Vercelプロジェクトがまだ存在しない**ゼロ状態では不完全
360
+ - vercel-cli-reference.md(258-289行目)には詳細手順があるが、SKILL.mdから誘導されていない
361
+
362
+ **影響度**: ⚠️ 高(ゼロ状態では必須)
363
+
364
+ **修正提案**:
365
+ ```markdown
366
+ ### サブメニュー
367
+ - **新規プロジェクト作成**: Vercelプロジェクトを新規作成
368
+ - **既存プロジェクト接続**: 既存プロジェクトにリンク
369
+ - **環境変数同期**: dotenvx鍵のVercel同期
370
+ - **デプロイ状態確認**: 最新デプロイ情報表示
371
+
372
+ #### 新規プロジェクト作成
373
+ 1. VERCEL_TOKEN確認 → 未設定時はURL案内 + `.env.personal`保存
374
+ 2. AskUserQuestionでアプリ選択(web / admin)
375
+ 3. vercel-cli-reference.mdのStep 1-3を実行:
376
+ - vercel.json作成
377
+ - `vercel link --project=$NAME --yes`
378
+ - APIでRoot Directory設定
379
+ ```
380
+
381
+ ---
382
+
383
+ ### 4. Neon設定の `.env.preview` フローが簡略化されすぎ
384
+
385
+ **問題の説明**:
386
+ - 「NEON_PROJECT_IDを`.env.preview`に設定 → dotenvx暗号化」(SKILL.md 258行目)
387
+ - しかし、**`.env.preview` がまだ存在しない**ゼロ状態では実行不可
388
+ - deployment-setup.md(171-184行目)には `pnpm env:update` を使った詳細フローがあるが、SKILL.mdから誘導されていない
389
+
390
+ **影響度**: ⚠️ 中(ゼロ状態では必須)
391
+
392
+ **修正提案**:
393
+ ```markdown
394
+ 3. NEON_PROJECT_IDを`.env.preview`に設定:
395
+ - ゼロ状態の場合: `pnpm env:update` を実行し、対話式で設定
396
+ - `.env.preview`既存の場合: 復号→編集→再暗号化
397
+ ```
398
+
399
+ ---
400
+
401
+ ### 5. 複数の❌検出時の優先順位が不明確
402
+
403
+ **問題の説明**:
404
+ - Phase 1の推奨ロジック(SKILL.md 96-104行目)は単一条件ごとの推奨
405
+ - ゼロ状態では**複数の❌が同時に存在**し、どのカテゴリから始めるべきか不明確
406
+
407
+ **影響度**: ⚠️ 高(ユーザーの混乱を招く)
408
+
409
+ **修正提案**:
410
+ ```markdown
411
+ #### 検出結果に基づく推奨ロジック
412
+
413
+ Phase 1の検出結果から、推奨カテゴリにマーク(推奨)を付与してAskUserQuestionの選択肢に表示する。
414
+
415
+ **ゼロ状態判定**:
416
+ - `.env.keys`不在 AND (vercel CLI未インストール OR neonctl未インストール OR `.env.personal`不在)
417
+ → 「初回セットアップが必要です。以下の順序で実行してください: 1. ローカル環境セットアップ → 2. 環境変数管理 → 3. Vercel管理 → 4. Neon管理 → 5. GitHub Secrets管理」
418
+
419
+ **部分セットアップ済み判定**:
420
+ (現在のロジックを維持)
421
+ ```
422
+
423
+ ---
424
+
425
+ ### 6. deployment-setup.md と SKILL.md の順序が不整合
426
+
427
+ **問題の説明**:
428
+ - deployment-setup.mdの推奨順序: **Neon → Vercel → GitHub Secrets → ローカル環境**
429
+ - SKILL.mdのカテゴリ順序: **ローカル環境(1) → 環境変数(2) → Vercel(3) → Neon(4) → GitHub Secrets(5)**
430
+
431
+ **影響度**: ⚠️ 中(ユーザーの混乱を招く)
432
+
433
+ **修正提案**:
434
+ - SKILL.mdに「ゼロからの統合初期構築フロー」を新設
435
+ - AskUserQuestionで以下を選択させる:
436
+ - **ローカル開発のみ**: カテゴリ1 → 2
437
+ - **本番デプロイまで**: deployment-setup.mdのセクション0の順序に従う
438
+
439
+ ---
440
+
441
+ ## 推奨されるセットアップ順序
442
+
443
+ ### パターンA: ローカル開発のみ(最速)
444
+
445
+ 1. **カテゴリ1: ローカル環境セットアップ**
446
+ - 依存関係インストール
447
+ - `.env.keys` の取得・配置
448
+ - `pnpm dev:setup` 実行
449
+ 2. **カテゴリ2: 環境変数管理**
450
+ - `.env.personal` に個人トークン設定
451
+
452
+ ### パターンB: 本番デプロイまで(完全セットアップ)
453
+
454
+ 1. **カテゴリ1: ローカル環境セットアップ**
455
+ - 依存関係インストール
456
+ - `.env.keys` の取得・配置
457
+ 2. **カテゴリ4: Neon管理**
458
+ - Neon CLI インストール
459
+ - NEON_API_KEY 取得
460
+ - プロジェクト作成
461
+ - `.env.preview` に NEON_PROJECT_ID 設定
462
+ 3. **カテゴリ3: Vercel管理**
463
+ - Vercel CLI インストール
464
+ - VERCEL_TOKEN 取得
465
+ - プロジェクト作成 + Root Directory設定
466
+ - 環境変数同期
467
+ 4. **カテゴリ5: GitHub Secrets管理**
468
+ - `.env.keys` から dotenvx 秘密鍵を一括登録
469
+ 5. **カテゴリ2: 環境変数管理**
470
+ - `.env.personal` に個人トークン設定
471
+ 6. **カテゴリ1: ローカル環境セットアップ**(再実行)
472
+ - `pnpm dev:setup` 実行
473
+ - 開発サーバー起動
474
+
475
+ ### SKILL.mdへの反映提案
476
+
477
+ SKILL.mdの「Phase 2: 意図判定とメインメニュー」セクション(74-115行目)の前に、以下のセクションを追加:
478
+
479
+ ```markdown
480
+ ### ゼロ状態での統合初期構築フロー
481
+
482
+ 初回セットアップ(一度もインフラ設定がされていない状態)の場合、以下のフローを推奨します。
483
+
484
+ **ローカル開発のみ**:
485
+ 1. カテゴリ1: ローカル環境セットアップ
486
+ 2. カテゴリ2: 環境変数管理(個人トークン設定)
487
+
488
+ **本番デプロイまで**:
489
+ 1. カテゴリ1: ローカル環境セットアップ(依存関係 + `.env.keys` 取得)
490
+ 2. カテゴリ4: Neon管理(プロジェクト作成)
491
+ 3. カテゴリ3: Vercel管理(プロジェクト作成)
492
+ 4. カテゴリ5: GitHub Secrets管理(dotenvx秘密鍵登録)
493
+ 5. カテゴリ2: 環境変数管理(個人トークン設定)
494
+ 6. カテゴリ1: ローカル環境セットアップ(再実行: `pnpm dev:setup`)
495
+
496
+ AskUserQuestion: 「初回セットアップですか? ローカル開発のみ / 本番デプロイまで / いいえ(既存環境)」
497
+ ```
498
+
499
+ ---
500
+
501
+ ## まとめ
502
+
503
+ ### 総合評価: ⚠️ 一部不足(ゼロ状態対応度: 60%)
504
+
505
+ **対応できている点**:
506
+ - Phase 1の環境検出が包括的
507
+ - カテゴリ6のヘルスチェックが優秀
508
+ - カテゴリ5(GitHub Secrets)は完全対応
509
+
510
+ **対応できていない点**:
511
+ - `.env.keys` 不在時の取得手順が不完全
512
+ - Vercel/Neonのプロジェクト作成フローが不足
513
+ - 複数の❌検出時の優先順位が不明確
514
+ - deployment-setup.md との順序不整合
515
+
516
+ ### 修正優先度
517
+
518
+ | 優先度 | 問題 | 対処 |
519
+ |--------|------|------|
520
+ | 🔴 高 | `.env.keys` 不在時の1Password取得案内 | カテゴリ1に追記 |
521
+ | 🔴 高 | Vercelプロジェクト作成フローの追加 | カテゴリ3にサブメニュー追加 |
522
+ | 🔴 高 | 複数❌検出時の統合フローの追加 | Phase 1とPhase 2の間に新セクション |
523
+ | 🟡 中 | Neon `.env.preview` 設定の詳細化 | カテゴリ4に `pnpm env:update` 案内 |
524
+ | 🟡 中 | Docker未インストール時の案内 | カテゴリ1に追記 |
525
+ | 🟢 低 | deployment-setup.md との順序整合 | ドキュメント調整(機能影響小) |
526
+
527
+ ---
528
+
529
+ ## 次のステップ(この調査の後に実施すべきこと)
530
+
531
+ 1. SKILL.mdの修正案をユーザーに提示
532
+ 2. 承認後、カテゴリ1, 3, 4の修正を実施
533
+ 3. Phase 1とPhase 2の間に「ゼロ状態での統合初期構築フロー」を追加
534
+ 4. 修正後、ゼロ状態でのSkill実行テストを実施