create-einja-app 0.3.2 → 0.3.4

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 (65) hide show
  1. package/README.md +33 -0
  2. package/dist/cli.js +60 -64
  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 +5 -1
  7. package/templates/default/.claude/settings.json +14 -4
  8. package/templates/default/.claude/skills/_einja-general-context-loader/SKILL.md +258 -0
  9. package/templates/default/.claude/skills/_einja-output-format/SKILL.md +211 -0
  10. package/templates/default/.claude/skills/_einja-project-overview/SKILL.md +29 -0
  11. package/templates/default/.claude/skills/_einja-spec-context-loader/SKILL.md +181 -0
  12. package/templates/default/.claude/skills/cli-package-specs/SKILL.md +294 -0
  13. package/templates/default/.einja-sync.json +1 -1
  14. package/templates/default/.github/release.yml +10 -0
  15. package/templates/default/.github/workflows/changeset-status.yml +60 -0
  16. package/templates/default/.github/workflows/deploy-stable-branches.yml +289 -59
  17. package/templates/default/CLAUDE.md +50 -10
  18. package/templates/default/README.md +20 -8
  19. package/templates/default/docs/plans/agile-munching-knuth.md +161 -0
  20. package/templates/default/docs/plans/agile-riding-nova.md +158 -0
  21. package/templates/default/docs/plans/agile-wibbling-dusk.md +91 -0
  22. package/templates/default/docs/plans/ancient-watching-otter.md +152 -0
  23. package/templates/default/docs/plans/bright-sauteeing-bumblebee.md +30 -0
  24. package/templates/default/docs/plans/composed-doodling-mountain.md +362 -0
  25. package/templates/default/docs/plans/dazzling-foraging-cascade.md +32 -0
  26. package/templates/default/docs/plans/enchanted-wiggling-ember-agent-a5befd57d0ca4c7c7.md +177 -0
  27. package/templates/default/docs/plans/enchanted-wiggling-ember.md +170 -0
  28. package/templates/default/docs/plans/federated-questing-kahan.md +47 -0
  29. package/templates/default/docs/plans/flickering-pondering-hearth.md +26 -0
  30. package/templates/default/docs/plans/fluttering-snuggling-sprout.md +172 -0
  31. package/templates/default/docs/plans/generic-sleeping-snowglobe-agent-a41d8da.md +179 -0
  32. package/templates/default/docs/plans/generic-sleeping-snowglobe.md +108 -0
  33. package/templates/default/docs/plans/generic-snuggling-pudding.md +57 -0
  34. package/templates/default/docs/plans/glistening-conjuring-cascade.md +42 -0
  35. package/templates/default/docs/plans/idempotent-wiggling-cherny.md +122 -0
  36. package/templates/default/docs/plans/linear-gathering-hejlsberg.md +596 -0
  37. package/templates/default/docs/plans/recursive-fluttering-mitten.md +176 -0
  38. package/templates/default/docs/plans/todo-create-einja-app-ux-fix.md +16 -0
  39. package/templates/default/docs/plans/todo-direnv-hang-fix.md +12 -0
  40. package/templates/default/docs/plans/todo-github-actions-release-workflow.md +34 -0
  41. package/templates/default/docs/plans/todo-glistening-conjuring-cascade.md +20 -0
  42. package/templates/default/docs/plans/todo-issue-spec-rename.md +24 -0
  43. package/templates/default/docs/plans/todo-skill-creator-upgrade.md +18 -0
  44. package/templates/default/docs/plans/todo-unified-crafting-valiant.md +23 -0
  45. package/templates/default/docs/plans/unified-crafting-valiant.md +60 -0
  46. package/templates/default/docs/plans/velvety-chasing-spark.md +28 -0
  47. package/templates/default/docs/plans/wondrous-strolling-crystal-agent-a0615fc.md +215 -0
  48. package/templates/default/docs/plans/wondrous-strolling-crystal.md +182 -0
  49. package/templates/default/docs/plans/zesty-roaming-steele.md +74 -0
  50. package/templates/default/gitignore +6 -2
  51. package/templates/default/package.json +6 -2
  52. package/templates/default/pnpm-lock.yaml +547 -0
  53. package/templates/default/scripts/ensure-serena.sh +28 -9
  54. package/templates/default/scripts/env-rotate-secrets.ts +66 -6
  55. package/templates/default/scripts/init-github.ts +363 -0
  56. package/templates/default/scripts/init.sh +11 -5
  57. package/templates/default/scripts/setup-dev.ts +16 -1
  58. package/templates/default/.claude/hooks/einja/validate-git-commit.sh +0 -239
  59. package/templates/default/.claude/skills/create-einja-app-release/SKILL.md +0 -186
  60. package/templates/default/.claude/skills/dev-cli-release/SKILL.md +0 -173
  61. package/templates/default/.cursor/commands/spec-create.md +0 -227
  62. package/templates/default/.cursor/commands/task-exec.md +0 -287
  63. package/templates/default/.cursor/commands/update-docs-by-task-specs.md +0 -448
  64. package/templates/default/packages/server-core/src/__generated__/fabbrica/index.d.ts +0 -270
  65. package/templates/default/packages/server-core/src/__generated__/fabbrica/index.js +0 -484
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-einja-app",
3
- "version": "0.3.2",
3
+ "version": "0.3.4",
4
4
  "description": "CLI tool to create new projects with Einja Management Template",
5
5
  "type": "module",
6
6
  "bin": {
@@ -0,0 +1,11 @@
1
+ {
2
+ "$schema": "https://unpkg.com/@changesets/config@3.0.0/schema.json",
3
+ "changelog": ["@changesets/changelog-github", { "repo": "einja-inc/einja-management-template" }],
4
+ "commit": false,
5
+ "fixed": [],
6
+ "linked": [],
7
+ "access": "restricted",
8
+ "baseBranch": "main",
9
+ "updateInternalDependencies": "patch",
10
+ "ignore": ["@einja/dev-cli", "create-einja-app"]
11
+ }
@@ -18,6 +18,10 @@ if [[ "$permission_mode" != "plan" ]]; then
18
18
  fi
19
19
 
20
20
  # 軽量リマインダーを注入
21
+ # UserPromptSubmit の additionalContext は hookSpecificOutput 内に配置する必要がある
21
22
  jq -n '{
22
- "additionalContext": "【Plan mode自動リマインダー】計画作成前にeinja-skill-firstの評価を実施してください。.claude/skills/einja-skill-first/SKILL.mdを参照し、スキップ基準に該当しない場合はSkill作成の必要性を評価してください。スキップ基準(単発の小規模修正、既存キーワードトリガー一致、具体的かつ限定的な作業指示、1回限りの作業)に該当する場合は省略可。"
23
+ "hookSpecificOutput": {
24
+ "hookEventName": "UserPromptSubmit",
25
+ "additionalContext": "【Plan mode自動リマインダー】計画作成前にeinja-skill-firstの評価を実施してください。.claude/skills/einja-skill-first/SKILL.mdを参照し、スキップ基準に該当しない場合はSkill作成の必要性を評価してください。スキップ基準(単発の小規模修正、既存キーワードトリガー一致、具体的かつ限定的な作業指示、1回限りの作業)に該当する場合は省略可。"
26
+ }
23
27
  }'
@@ -78,6 +78,20 @@
78
78
  "mcp__playwright__browser_network_requests",
79
79
  "mcp__playwright__browser_close",
80
80
  "mcp__playwright__browser_resize",
81
+ "mcp__pencil__batch_design",
82
+ "mcp__pencil__batch_get",
83
+ "mcp__pencil__find_empty_space_on_canvas",
84
+ "mcp__pencil__get_editor_state",
85
+ "mcp__pencil__get_guidelines",
86
+ "mcp__pencil__get_screenshot",
87
+ "mcp__pencil__get_style_guide",
88
+ "mcp__pencil__get_style_guide_tags",
89
+ "mcp__pencil__get_variables",
90
+ "mcp__pencil__open_document",
91
+ "mcp__pencil__replace_all_matching_properties",
92
+ "mcp__pencil__search_all_unique_properties",
93
+ "mcp__pencil__set_variables",
94
+ "mcp__pencil__snapshot_layout",
81
95
  "mcp__serena",
82
96
  "mcp__serena__activate_project",
83
97
  "mcp__serena__check_onboarding_performed",
@@ -128,10 +142,6 @@
128
142
  {
129
143
  "type": "command",
130
144
  "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/einja/unset-volta-recursion.sh"
131
- },
132
- {
133
- "type": "command",
134
- "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/einja/validate-git-commit.sh"
135
145
  }
136
146
  ]
137
147
  },
@@ -0,0 +1,258 @@
1
+ ---
2
+ name: _einja-general-context-loader
3
+ description: "spec(仕様書)が存在しない場合の文脈収集を担当するSkill。Issue本文、ユーザー指示、関連コードから要件を推測し、曖昧な点をAskUserQuestionで確認します"
4
+ allowed-tools:
5
+ - Read
6
+ - Grep
7
+ - Glob
8
+ - AskUserQuestion
9
+ - mcp__github__issue_read
10
+ - mcp__serena__*
11
+ ---
12
+
13
+ # general-context-loader Skill: 指示ベースの文脈収集
14
+
15
+ あなたは要件分析のスペシャリストで、曖昧な指示から具体的な実装要件を導き出す能力に長けています。ユーザーとの対話を通じて、実装に必要な情報を効率的に収集します。
16
+
17
+ ## 中核的な責務
18
+
19
+ spec が存在しない場合に、Issue 本文・ユーザー指示・関連コードから実装に必要な文脈を収集し、曖昧な点を AskUserQuestion で確認して明確化します。
20
+
21
+ ---
22
+
23
+ ## 入力
24
+
25
+ **必須パラメータ**:
26
+ - `issue_number`: GitHub Issue 番号(例: `21`)
27
+ - `user_instruction`: ユーザーからの指示内容
28
+
29
+ **オプションパラメータ**:
30
+ - `task_description`: タスクの追加説明
31
+
32
+ **入力形式**: `--issue {issue_number} --instruction "{user_instruction}"`
33
+
34
+ ---
35
+
36
+ ## 実行手順(5ステップ)
37
+
38
+ ### ステップ1: Issue 情報の取得
39
+
40
+ 1. GitHub MCP を使用して Issue 本文を取得
41
+ 2. 以下の情報を抽出:
42
+ - **タイトル**: Issue のタイトル
43
+ - **説明**: Issue の本文(AS-IS/TO-BE があれば優先的に抽出)
44
+ - **ラベル**: 関連ラベル(feature, bug, enhancement 等)
45
+ - **コメント**: 追加の議論や要件
46
+
47
+ **Issue が存在しない場合**: ユーザー指示のみから要件を推測
48
+
49
+ ---
50
+
51
+ ### ステップ2: 関連コードの探索
52
+
53
+ 1. Issue 本文・ユーザー指示からキーワードを抽出
54
+ 2. Serena MCP または Grep/Glob を使用して関連ファイルを探索:
55
+ - **既存実装**: 修正対象のファイル
56
+ - **類似実装**: 参考にできる既存コード
57
+ - **テストコード**: 既存のテストパターン
58
+ 3. 最大10ファイルまで関連コードをリストアップ
59
+
60
+ ---
61
+
62
+ ### ステップ3: 要件の推測と整理
63
+
64
+ 1. 収集した情報から以下を推測:
65
+ - **目的**: なぜこの変更が必要か
66
+ - **スコープ**: 何を変更するか
67
+ - **制約**: どのような制約があるか
68
+ - **期待される動作**: 完了時にどうなっているべきか
69
+
70
+ 2. 推測の確信度を評価:
71
+ - **高**: Issue 本文に明記されている
72
+ - **中**: 文脈から推測可能
73
+ - **低**: 複数の解釈が可能
74
+
75
+ ---
76
+
77
+ ### ステップ4: 曖昧点の確認
78
+
79
+ **確信度が「低」の項目がある場合**、AskUserQuestion で確認します。
80
+
81
+ **確認すべき典型的な項目**:
82
+
83
+ | カテゴリ | 確認項目例 |
84
+ |---------|----------|
85
+ | スコープ | 「この変更は○○にも影響しますか?」 |
86
+ | 実装方法 | 「AパターンとBパターン、どちらで実装しますか?」 |
87
+ | エラー処理 | 「エラー時の挙動はどうすべきですか?」 |
88
+ | テスト | 「どのレベルのテストが必要ですか?」 |
89
+ | 破壊的変更 | 「既存の○○を変更しても問題ありませんか?」 |
90
+
91
+ **AskUserQuestion の使用例**:
92
+
93
+ ```
94
+ 質問: 実装アプローチの選択
95
+
96
+ この機能は以下のどちらで実装しますか?
97
+
98
+ 1. Server Component として実装(推奨)
99
+ - SSRでデータ取得、SEO対応
100
+
101
+ 2. Client Component として実装
102
+ - リアルタイム更新が必要な場合
103
+
104
+ 3. ハイブリッド
105
+ - 静的部分はServer、動的部分はClient
106
+ ```
107
+
108
+ ---
109
+
110
+ ### ステップ5: 結果の構造化
111
+
112
+ 収集・確認した情報を構造化して出力します。
113
+
114
+ ---
115
+
116
+ ## 出力形式
117
+
118
+ **成功時**: 以下のマークダウン形式で出力(spec-context-loader と共通構造)
119
+
120
+ ```markdown
121
+ ## コンテキスト収集結果
122
+
123
+ ### spec 情報
124
+ - **ディレクトリ**: なし(指示ベース実装)
125
+ - **Issue**: #{issue_number} - {title}
126
+ - **ユーザー指示**: {instruction}
127
+
128
+ ### 要件
129
+ #### 機能要件(推測)
130
+ - {目的: なぜこの変更が必要か}
131
+ - {スコープ: 何を変更するか}
132
+
133
+ #### 非機能要件
134
+ - {技術的制約}
135
+ - {ビジネス的制約}
136
+
137
+ #### 受け入れ条件(推測)
138
+ | AC番号 | タイトル | 検証レベル | 概要 |
139
+ |--------|---------|-----------|------|
140
+ | - | {期待される動作1} | Unit/Integration/E2E | {概要} |
141
+
142
+ ### 設計
143
+ #### アーキテクチャ(推測)
144
+ - **パターン**: {推測されるアーキテクチャパターン}
145
+ - **レイヤー**: {影響するレイヤー}
146
+
147
+ #### データ構造(推測)
148
+ ```typescript
149
+ // 主要な型定義(推測)
150
+ interface Example {
151
+ // ...
152
+ }
153
+ ```
154
+
155
+ #### API仕様(推測)
156
+ - **エンドポイント**: {該当する場合}
157
+ - **リクエスト**: {形式}
158
+ - **レスポンス**: {形式}
159
+
160
+ #### エラーハンドリング(推測)
161
+ - {エラー分類と処理方針}
162
+
163
+ #### 関連コード
164
+ | ファイル | 関連性 | 説明 |
165
+ |---------|-------|------|
166
+ | `src/app/example/page.tsx` | 修正対象 | メイン画面 |
167
+ | `src/components/Example.tsx` | 参考 | 類似コンポーネント |
168
+
169
+ ### テスト仕様
170
+ #### 対象テストファイル(推測)
171
+ - {該当するテストファイル}
172
+
173
+ #### シナリオテスト(推測)
174
+ - **シナリオ1**: {概要}
175
+
176
+ #### 確認項目
177
+ 1. {確認項目1}
178
+ 2. {確認項目2}
179
+
180
+ #### テスト方針
181
+ - **単体テスト**: {必要/不要}
182
+ - **統合テスト**: {必要/不要}
183
+ - **E2Eテスト**: {必要/不要}
184
+
185
+ ### 確認済み事項
186
+ - [x] {AskUserQuestion で確認した項目1}: {回答}
187
+ - [x] {AskUserQuestion で確認した項目2}: {回答}
188
+ ```
189
+
190
+ **情報不足時**: 以下の形式で出力
191
+
192
+ ```markdown
193
+ ## コンテキスト収集結果
194
+
195
+ ### ステータス: ⚠️ 情報不足
196
+
197
+ ### 収集できた情報
198
+ - {収集できた情報}
199
+
200
+ ### 不足している情報
201
+ - {不足1}: {なぜ必要か}
202
+ - {不足2}: {なぜ必要か}
203
+
204
+ ### 推奨アクション
205
+ 1. ユーザーに追加情報を求める
206
+ 2. または `einja-issue-spec-create` Skillで仕様書を作成する
207
+ ```
208
+
209
+ ---
210
+
211
+ ## AskUserQuestion 使用ガイドライン
212
+
213
+ ### 使用すべき場面
214
+ - 複数の実装方法が考えられる場合
215
+ - 破壊的変更の可能性がある場合
216
+ - テスト方針が不明確な場合
217
+ - スコープの境界が曖昧な場合
218
+
219
+ ### 使用を避けるべき場面
220
+ - Issue 本文に明記されている場合
221
+ - プロジェクトの規約で決まっている場合
222
+ - 技術的に選択肢が1つしかない場合
223
+
224
+ ### 質問のベストプラクティス
225
+ - 選択肢を2-4個に絞る
226
+ - 各選択肢のトレードオフを説明
227
+ - 推奨オプションを明示(「推奨」と記載)
228
+
229
+ ---
230
+
231
+ ## エラー処理
232
+
233
+ | エラー種別 | 原因 | 対処 |
234
+ |-----------|------|------|
235
+ | Issue 取得失敗 | Issue が存在しない/アクセス権限なし | ユーザー指示のみから要件を推測 |
236
+ | 関連コード不在 | 新規機能で既存コードがない | 類似機能を探索、なければ新規作成前提 |
237
+ | 要件が完全に不明 | 指示が抽象的すぎる | AskUserQuestion で段階的に明確化 |
238
+
239
+ ---
240
+
241
+ ## 実行制約
242
+
243
+ このSkillは `task-executer` エージェントから呼び出されます。spec が存在しないことが前提です。
244
+
245
+ ---
246
+
247
+ ## 連携
248
+
249
+ - **呼び出し元**: `task-executer` - コンテキスト収集フェーズ
250
+ - **代替Skill**: `spec-context-loader` - spec がある場合の文脈収集
251
+
252
+ ---
253
+
254
+ **最終更新**: 2025-01-10
255
+
256
+ <!-- @einja:project-private:start id="einja-general-context-loader-project" -->
257
+ <!-- プロジェクト固有の情報を記入 -->
258
+ <!-- @einja:project-private:end -->
@@ -0,0 +1,211 @@
1
+ ---
2
+ name: _einja-output-format
3
+ description: "サブエージェントの統一出力形式を定義"
4
+ ---
5
+
6
+ # サブエージェント出力形式 Skill
7
+
8
+ ## 概要
9
+
10
+ このSkillは、全サブエージェントが従うべき出力形式を定義します。
11
+
12
+ ## 必須ルール
13
+
14
+ 1. **完全出力の原則**: 最終出力はそのまま全文をユーザーに表示
15
+ 2. **省略・要約の禁止**: 出力を要約したり、一部のみ抜粋することは禁止
16
+ 3. **この形式から逸脱しないこと**
17
+
18
+ ## 標準出力構造
19
+
20
+ すべてのサブエージェントは以下の構造で出力すること:
21
+
22
+ ```markdown
23
+ ## [絵文字] [フェーズ名]完了
24
+
25
+ ### タスク: [タスクID] - [タスク名]
26
+
27
+ ### 結果: [✅ SUCCESS / ❌ FAILURE / ⚠️ PARTIAL]
28
+
29
+ ### サマリー
30
+ [主要な結果・数値]
31
+
32
+ ### 詳細
33
+ [項目別の詳細情報]
34
+
35
+ ### 次のステップ
36
+ [後続処理の説明]
37
+ ```
38
+
39
+ ## エージェント別テンプレート
40
+
41
+ ### frontend-architect
42
+
43
+ ```markdown
44
+ ## 🏗️ アーキテクチャ設計完了
45
+
46
+ ### タスク: [機能名/画面名]
47
+
48
+ ### 設計結果: [✅ SUCCESS / ⚠️ PARTIAL / ❌ FAILURE]
49
+
50
+ ### 設計サマリー
51
+ - **コンポーネント数**: N個
52
+ - **カスタムHooks数**: M個
53
+ - **新規ディレクトリ**: K個
54
+
55
+ ### コンポーネント構造
56
+ ```
57
+ [ディレクトリ構造図]
58
+ ```
59
+
60
+ ### 状態管理戦略
61
+ | 状態種別 | 管理方法 | 対象データ |
62
+ |---------|---------|----------|
63
+
64
+ ### 技術選定
65
+ - **[決定1]**: [選定理由]
66
+
67
+ ### 次のステップ
68
+ [後続処理の説明]
69
+ ```
70
+
71
+ ### design-engineer
72
+
73
+ ```markdown
74
+ ## 🎨 デザインエンジニアリング完了
75
+
76
+ ### タスク: [タスク名/コンポーネント名]
77
+
78
+ ### 実装結果: [✅ SUCCESS / ⚠️ PARTIAL / ❌ FAILURE]
79
+
80
+ ### 抽出したデザイントークン
81
+ | カテゴリ | 項目数 | 主な値 |
82
+ |---------|-------|-------|
83
+
84
+ ### 生成/更新したファイル
85
+ - **新規作成**: N個
86
+ - **編集**: M個
87
+
88
+ ### 次のステップ
89
+ [後続処理の説明]
90
+ ```
91
+
92
+ ### frontend-coder
93
+
94
+ ```markdown
95
+ ## 💻 フロントエンド実装完了
96
+
97
+ ### タスク: [タスクID] - [タスク名]
98
+
99
+ ### 実装結果: [✅ SUCCESS / ⚠️ PARTIAL / ❌ FAILURE]
100
+
101
+ ### 実装サマリー
102
+ - **新規作成**: N個のファイル
103
+ - **編集**: M個のファイル
104
+
105
+ ### 主要な実装内容
106
+ 1. [実装した主要機能]
107
+
108
+ ### ファイル一覧
109
+ | ファイル | 説明/変更内容 |
110
+ |---------|--------------|
111
+
112
+ ### 次のステップ
113
+ [後続処理の説明]
114
+ ```
115
+
116
+ ### backend-architect
117
+
118
+ ```markdown
119
+ ## 🔧 バックエンドアーキテクチャ設計完了
120
+
121
+ ### タスク: [機能名/API名]
122
+
123
+ ### 設計結果: [✅ SUCCESS / ⚠️ PARTIAL / ❌ FAILURE]
124
+
125
+ ### 設計サマリー
126
+ - **API数**: N個
127
+ - **Repository数**: M個
128
+ - **UseCase数**: K個
129
+ - **新規Entity数**: L個
130
+ - **テーブル数**: P個
131
+
132
+ ### アーキテクチャ構造
133
+ ```
134
+ [ディレクトリ構造図]
135
+ ```
136
+
137
+ ### 層間の依存関係
138
+ | 層 | 依存先 | 主なコンポーネント |
139
+ |---|-------|-----------------|
140
+
141
+ ### デザインパターン適用
142
+ - **Repositoryパターン**: [適用状況]
143
+ - **Mapperパターン**: [適用状況]
144
+ - **Result型パターン**: [適用状況]
145
+
146
+ ### DB設計
147
+ | テーブル名 | 主なカラム | インデックス |
148
+ |----------|----------|------------|
149
+
150
+ ### API設計
151
+ | エンドポイント | メソッド | 説明 |
152
+ |--------------|--------|------|
153
+
154
+ ### テスト設計方針
155
+ - **ユニットテスト対象**: [対象コンポーネント]
156
+ - **統合テスト対象**: [対象フロー]
157
+
158
+ ### 技術選定
159
+ - **[決定1]**: [選定理由]
160
+
161
+ ### 次のステップ
162
+ [後続処理の説明]
163
+ ```
164
+
165
+ ### codex-agent
166
+
167
+ ```markdown
168
+ ## 🤖 Codex作業完了
169
+
170
+ ### タスク: [作業内容]
171
+
172
+ ### 作業結果: [✅ SUCCESS / ⚠️ PARTIAL / ❌ FAILURE]
173
+
174
+ ### 作業モード: [レビュー / 実装 / バグ修正 / リファクタリング / 調査]
175
+
176
+ ### サマリー
177
+ [主要な結果・数値]
178
+
179
+ ### 詳細
180
+ [Codexからの出力・分析結果]
181
+
182
+ ### 次のステップ
183
+ [後続処理の説明]
184
+ ```
185
+
186
+ ## 長い出力の取り扱い
187
+
188
+ 出力が50行を超える場合、以下の形式で表示:
189
+
190
+ ```markdown
191
+ ### サマリー
192
+ [最初の10行]
193
+
194
+ ### 詳細
195
+ <details>
196
+ <summary>全文を表示(N行)</summary>
197
+
198
+ [残りの出力全文]
199
+
200
+ </details>
201
+ ```
202
+
203
+ ## 失敗・エラー時
204
+
205
+ - **エラーステータス**: ❌ FAILURE / ⚠️ PARTIAL
206
+ - **エラー内容**: 具体的なエラーメッセージ
207
+ - **次のアクション**: 推奨される対処方法
208
+
209
+ <!-- @einja:project-private:start id="einja-output-format-project" -->
210
+ <!-- プロジェクト固有の情報を記入 -->
211
+ <!-- @einja:project-private:end -->
@@ -0,0 +1,29 @@
1
+ ---
2
+ name: _einja-project-overview
3
+ description: "プロジェクトの全体構成・技術スタックの参照ハブ"
4
+ ---
5
+
6
+ # プロジェクト概要 Skill
7
+
8
+ ## 概要
9
+
10
+ このSkillは、プロジェクトの全体構成・技術スタックを把握したいときに参照するエントリポイントです。
11
+ 具体的な情報は以下のドキュメントを参照してください。
12
+
13
+ ## 参照ドキュメント
14
+
15
+ ### ドキュメントナビゲーション
16
+
17
+ @docs/einja/steering/README.md
18
+
19
+ ### プロダクトビジョン
20
+
21
+ @docs/einja/steering/product.md
22
+
23
+ ### アーキテクチャ・技術スタック
24
+
25
+ @docs/einja/steering/architecture.md
26
+
27
+ <!-- @einja:project-private:start id="einja-project-overview-project" -->
28
+ <!-- プロジェクト固有の情報を記入 -->
29
+ <!-- @einja:project-private:end -->