@einja/dev-cli 0.1.40 → 0.1.41

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 (183) hide show
  1. package/README.md +89 -1
  2. package/dist/cli.js +1 -0
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/init.d.ts.map +1 -1
  5. package/dist/commands/init.js +71 -1
  6. package/dist/commands/init.js.map +1 -1
  7. package/dist/commands/list.js.map +1 -1
  8. package/dist/commands/sync.d.ts.map +1 -1
  9. package/dist/commands/sync.js +187 -13
  10. package/dist/commands/sync.js.map +1 -1
  11. package/dist/lib/dependency-checker.d.ts.map +1 -1
  12. package/dist/lib/merger.d.ts +12 -0
  13. package/dist/lib/merger.d.ts.map +1 -1
  14. package/dist/lib/merger.js +28 -0
  15. package/dist/lib/merger.js.map +1 -1
  16. package/dist/lib/preset-update/cli-repo-detector.d.ts.map +1 -1
  17. package/dist/lib/preset-update/file-copier.d.ts.map +1 -1
  18. package/dist/lib/preset-update/preset-finder.d.ts.map +1 -1
  19. package/dist/lib/preset.d.ts.map +1 -1
  20. package/dist/lib/sync/category-validator.d.ts +1 -1
  21. package/dist/lib/sync/category-validator.d.ts.map +1 -1
  22. package/dist/lib/sync/category-validator.js +2 -1
  23. package/dist/lib/sync/category-validator.js.map +1 -1
  24. package/dist/lib/sync/category-validator.test.js +3 -1
  25. package/dist/lib/sync/category-validator.test.js.map +1 -1
  26. package/dist/lib/sync/conflict-reporter.d.ts.map +1 -1
  27. package/dist/lib/sync/diff-engine.d.ts.map +1 -1
  28. package/dist/lib/sync/file-filter.d.ts.map +1 -1
  29. package/dist/lib/sync/file-filter.js +1 -0
  30. package/dist/lib/sync/file-filter.js.map +1 -1
  31. package/dist/lib/sync/integration.test.js +255 -69
  32. package/dist/lib/sync/integration.test.js.map +1 -1
  33. package/dist/lib/sync/json-processor.d.ts +4 -4
  34. package/dist/lib/sync/json-processor.d.ts.map +1 -1
  35. package/dist/lib/sync/json-processor.js +11 -11
  36. package/dist/lib/sync/json-processor.js.map +1 -1
  37. package/dist/lib/sync/marker-processor.d.ts +60 -8
  38. package/dist/lib/sync/marker-processor.d.ts.map +1 -1
  39. package/dist/lib/sync/marker-processor.js +117 -26
  40. package/dist/lib/sync/marker-processor.js.map +1 -1
  41. package/dist/lib/sync/marker-processor.test.js +261 -40
  42. package/dist/lib/sync/marker-processor.test.js.map +1 -1
  43. package/dist/lib/sync/metadata-manager.d.ts +4 -0
  44. package/dist/lib/sync/metadata-manager.d.ts.map +1 -1
  45. package/dist/lib/sync/metadata-manager.js +15 -0
  46. package/dist/lib/sync/metadata-manager.js.map +1 -1
  47. package/dist/lib/sync/metadata-manager.test.js +68 -0
  48. package/dist/lib/sync/metadata-manager.test.js.map +1 -1
  49. package/dist/lib/sync/orphan-cleaner.d.ts +29 -0
  50. package/dist/lib/sync/orphan-cleaner.d.ts.map +1 -0
  51. package/dist/lib/sync/orphan-cleaner.js +80 -0
  52. package/dist/lib/sync/orphan-cleaner.js.map +1 -0
  53. package/dist/lib/sync/orphan-cleaner.test.d.ts +2 -0
  54. package/dist/lib/sync/orphan-cleaner.test.d.ts.map +1 -0
  55. package/dist/lib/sync/orphan-cleaner.test.js +169 -0
  56. package/dist/lib/sync/orphan-cleaner.test.js.map +1 -0
  57. package/dist/lib/sync/project-private-synchronizer.d.ts +52 -0
  58. package/dist/lib/sync/project-private-synchronizer.d.ts.map +1 -0
  59. package/dist/lib/sync/project-private-synchronizer.js +106 -0
  60. package/dist/lib/sync/project-private-synchronizer.js.map +1 -0
  61. package/dist/lib/sync/project-private-synchronizer.test.d.ts +2 -0
  62. package/dist/lib/sync/project-private-synchronizer.test.d.ts.map +1 -0
  63. package/dist/lib/sync/project-private-synchronizer.test.js +348 -0
  64. package/dist/lib/sync/project-private-synchronizer.test.js.map +1 -0
  65. package/dist/types/index.d.ts +1 -0
  66. package/dist/types/index.d.ts.map +1 -1
  67. package/dist/types/sync.d.ts +36 -6
  68. package/dist/types/sync.d.ts.map +1 -1
  69. package/dist/types/sync.js +2 -2
  70. package/dist/types/sync.js.map +1 -1
  71. package/package.json +5 -4
  72. package/presets/default/.claude/agents/einja/Explore.md +140 -0
  73. package/presets/default/.claude/agents/einja/backend-architect.md +4 -0
  74. package/presets/default/.claude/agents/einja/codex-agent.md +4 -0
  75. package/presets/default/.claude/agents/einja/design-engineer.md +4 -0
  76. package/presets/default/.claude/agents/einja/docs/docs-updater.md +4 -0
  77. package/presets/default/.claude/agents/einja/frontend-architect.md +4 -0
  78. package/presets/default/.claude/agents/einja/frontend-coder.md +4 -0
  79. package/presets/default/.claude/agents/einja/git/conflict-resolver.md +4 -0
  80. package/presets/default/.claude/agents/einja/specs/spec-design-generator.md +4 -1
  81. package/presets/default/.claude/agents/einja/specs/spec-qa-generator.md +4 -0
  82. package/presets/default/.claude/agents/einja/specs/spec-requirements-generator.md +4 -1
  83. package/presets/default/.claude/agents/einja/specs/spec-tasks-generator.md +6 -2
  84. package/presets/default/.claude/agents/einja/specs/spec-tasks-validator.md +4 -0
  85. package/presets/default/.claude/agents/einja/task/task-executer.md +57 -115
  86. package/presets/default/.claude/agents/einja/task/task-modification-analyzer.md +4 -0
  87. package/presets/default/.claude/agents/einja/task/task-qa.md +4 -0
  88. package/presets/default/.claude/agents/einja/task/task-reviewer.md +4 -0
  89. package/presets/default/.claude/commands/einja/einja-sync.md +5 -1
  90. package/presets/default/.claude/commands/einja/frontend-implement.md +3 -1
  91. package/presets/default/.claude/commands/einja/issue-exec.md +403 -0
  92. package/presets/default/.claude/commands/einja/spec-create.md +15 -1
  93. package/presets/default/.claude/commands/einja/start-dev.md +4 -0
  94. package/presets/default/.claude/commands/einja/sync-cursor-commands.md +4 -0
  95. package/presets/default/.claude/commands/einja/task-exec.md +106 -14
  96. package/presets/default/.claude/commands/einja/update-docs-by-task-specs.md +4 -0
  97. package/presets/default/.claude/hooks/einja/plan-mode-skill-loader.sh +23 -0
  98. package/presets/default/.claude/settings.json +15 -1
  99. package/presets/default/.claude/skills/einja-conflict-resolver/SKILL.md +4 -0
  100. package/presets/default/.claude/skills/einja-general-context-loader/SKILL.md +4 -0
  101. package/presets/default/.claude/skills/einja-output-format/SKILL.md +4 -0
  102. package/presets/default/.claude/skills/einja-project-overview/SKILL.md +7 -3
  103. package/presets/default/.claude/skills/einja-skill-creator/SKILL.md +266 -274
  104. package/presets/default/.claude/skills/einja-skill-creator/agents/analyzer.md +274 -0
  105. package/presets/default/.claude/skills/einja-skill-creator/agents/comparator.md +202 -0
  106. package/presets/default/.claude/skills/einja-skill-creator/agents/grader.md +195 -0
  107. package/presets/default/.claude/skills/einja-skill-creator/assets/eval_review.html +146 -0
  108. package/presets/default/.claude/skills/einja-skill-creator/eval-viewer/generate_review.py +471 -0
  109. package/presets/default/.claude/skills/einja-skill-creator/eval-viewer/viewer.html +1325 -0
  110. package/presets/default/.claude/skills/einja-skill-creator/references/schemas.md +430 -0
  111. package/presets/default/.claude/skills/einja-skill-creator/scripts/aggregate_benchmark.py +154 -0
  112. package/presets/default/.claude/skills/einja-skill-creator/scripts/generate_report.py +265 -0
  113. package/presets/default/.claude/skills/einja-skill-creator/scripts/improve_description.py +252 -0
  114. package/presets/default/.claude/skills/einja-skill-creator/scripts/init_skill.py +13 -19
  115. package/presets/default/.claude/skills/einja-skill-creator/scripts/package_skill.py +36 -7
  116. package/presets/default/.claude/skills/einja-skill-creator/scripts/run_eval.py +310 -0
  117. package/presets/default/.claude/skills/einja-skill-creator/scripts/run_loop.py +295 -0
  118. package/presets/default/.claude/skills/einja-skill-creator/scripts/utils.py +48 -0
  119. package/presets/default/.claude/skills/einja-spec-context-loader/SKILL.md +4 -0
  120. package/presets/default/.claude/skills/einja-task-commit/SKILL.md +4 -0
  121. package/presets/default/.claude/skills/einja-task-qa/SKILL.md +4 -0
  122. package/presets/default/.envrc +5 -0
  123. package/presets/default/.mcp.json +2 -12
  124. package/presets/default/CLAUDE.md.template +26 -4
  125. package/presets/default/docs/einja/example/specs/issues/issue999-example-task/tasks.md +1 -1
  126. package/presets/default/docs/einja/instructions/deployment-setup.md +3 -8
  127. package/presets/default/docs/einja/instructions/environment-setup.md +3 -8
  128. package/presets/default/docs/einja/instructions/issue-exec-workflow.md +276 -0
  129. package/presets/default/docs/einja/instructions/local-server-environment-and-worktree.md +70 -8
  130. package/presets/default/docs/einja/instructions/neon-cli-reference.md +3 -8
  131. package/presets/default/docs/einja/instructions/task-execute.md +23 -28
  132. package/presets/default/docs/einja/instructions/vercel-cli-reference.md +17 -10
  133. package/presets/default/docs/einja/steering/README.md +11 -11
  134. package/presets/default/docs/einja/steering/acceptance-criteria-and-qa-guide.md +3 -8
  135. package/presets/default/docs/einja/steering/architecture.md +3 -8
  136. package/presets/default/docs/einja/steering/branch-strategy.md +63 -70
  137. package/presets/default/docs/einja/steering/commit-rules.md +3 -8
  138. package/presets/default/docs/einja/steering/db-schema-design.md +3 -8
  139. package/presets/default/docs/einja/steering/development/api-development.md +3 -8
  140. package/presets/default/docs/einja/steering/development/backend-architecture.md +3 -8
  141. package/presets/default/docs/einja/steering/development/coding-standards.md +723 -0
  142. package/presets/default/docs/einja/steering/development/component-design.md +502 -0
  143. package/presets/default/docs/einja/steering/development/database-guidelines.md +2 -2
  144. package/presets/default/docs/einja/steering/development/frontend-development.md +3 -8
  145. package/presets/default/docs/einja/steering/development/playwright-guidelines.md +59 -0
  146. package/presets/default/docs/einja/steering/development/review-guidelines.md +3 -8
  147. package/presets/default/docs/einja/steering/development/testing-strategy.md +3 -8
  148. package/presets/default/docs/einja/steering/development-workflow.md +71 -124
  149. package/presets/default/docs/einja/steering/infrastructure/deployment.md +49 -55
  150. package/presets/default/docs/einja/steering/infrastructure/environment-variables.md +4 -8
  151. package/presets/default/docs/einja/steering/product.md +3 -8
  152. package/presets/default/docs/einja/steering/task-management.md +14 -98
  153. package/presets/default/scripts/ensure-serena.sh +75 -0
  154. package/presets/default/scripts/env-rotate-secrets.ts +336 -0
  155. package/presets/default/scripts/env-show.ts +130 -0
  156. package/presets/default/scripts/env.ts +479 -0
  157. package/presets/default/scripts/init.sh +92 -0
  158. package/presets/default/scripts/lib/env-common.ts +108 -0
  159. package/presets/default/scripts/lib/worktree-config.ts +64 -0
  160. package/presets/default/scripts/setup-dev.ts +640 -0
  161. package/presets/default/scripts/stop-serena.sh +25 -0
  162. package/presets/default/scripts/worktree/dev.ts +872 -0
  163. package/dist/lib/sync/seed-synchronizer.d.ts +0 -27
  164. package/dist/lib/sync/seed-synchronizer.d.ts.map +0 -1
  165. package/dist/lib/sync/seed-synchronizer.js +0 -72
  166. package/dist/lib/sync/seed-synchronizer.js.map +0 -1
  167. package/dist/lib/sync/seed-synchronizer.test.d.ts +0 -2
  168. package/dist/lib/sync/seed-synchronizer.test.d.ts.map +0 -1
  169. package/dist/lib/sync/seed-synchronizer.test.js +0 -147
  170. package/dist/lib/sync/seed-synchronizer.test.js.map +0 -1
  171. package/presets/default/.claude/skills/einja-api-development/SKILL.md +0 -14
  172. package/presets/default/.claude/skills/einja-backend-architecture/SKILL.md +0 -18
  173. package/presets/default/.claude/skills/einja-coding-standards/SKILL.md +0 -132
  174. package/presets/default/.claude/skills/einja-coding-standards/references/import-conventions.md +0 -69
  175. package/presets/default/.claude/skills/einja-coding-standards/references/naming-conventions.md +0 -107
  176. package/presets/default/.claude/skills/einja-coding-standards/references/prohibited-patterns.md +0 -169
  177. package/presets/default/.claude/skills/einja-coding-standards/references/typescript-rules.md +0 -247
  178. package/presets/default/.claude/skills/einja-component-design/SKILL.md +0 -109
  179. package/presets/default/.claude/skills/einja-component-design/references/directory-structure.md +0 -117
  180. package/presets/default/.claude/skills/einja-component-design/references/props-patterns.md +0 -159
  181. package/presets/default/.claude/skills/einja-component-design/references/styling-guide.md +0 -122
  182. package/presets/default/.claude/skills/einja-frontend-development/SKILL.md +0 -14
  183. package/presets/default/docs/einja/instructions/task-vibe-kanban-loop.md +0 -565
@@ -0,0 +1,140 @@
1
+ ---
2
+ name: Explore
3
+ description: Serena MCPを活用した高速コードベース探索エージェント。LSPベースのシンボルナビゲーション・参照検索でコードベースを効率的に探索する。Serena MCP未接続時はRead/Grep/Globにフォールバック。<example>Context: コードベースの構造や実装を調査したい場合。user: "認証機能の実装を調査して" assistant: "Exploreエージェントを使用して、Serena MCPのシンボル検索・参照追跡でコードベースを探索します" <commentary>コードベース探索が必要なため、Serena MCPを活用するExploreエージェントを起動します。</commentary></example> <example>Context: 特定のシンボルの参照箇所を調べたい場合。user: "UserServiceクラスがどこで使われているか調べて" assistant: "Exploreエージェントを起動して、シンボル参照検索で使用箇所を特定します" <commentary>シンボル参照追跡が必要なため、Serena MCPのfind_referencing_symbolsを活用します。</commentary></example>
4
+ model: sonnet
5
+ color: green
6
+ ---
7
+
8
+ あなたはSerena MCPを活用した高速コードベース探索エージェントです。LSPベースのシンボルナビゲーション・参照検索を最優先で使用し、コードベースを効率的・正確に探索します。
9
+
10
+ **速度重視**: できる限り高速に結果を返すこと。独立した複数のツール呼び出しは並列で実行する。
11
+
12
+ ## トークン効率性の原則
13
+
14
+ Serena MCPの最大の利点は、ファイル全体を読み込まずにシンボル単位で探索できることです。
15
+
16
+ 1. **最初に`get_symbols_overview`** でファイル構造を把握
17
+ 2. **必要なシンボルのみ`find_symbol(include_body=true)`** で取得
18
+ 3. **`Read`は最終手段**(非コードファイル、画像、PDF等に限定)
19
+
20
+ ## 読み取り専用の厳守
21
+
22
+ このエージェントは**読み取り専用**です。コードベースの変更は一切行いません。
23
+
24
+ ### 禁止事項
25
+
26
+ - Edit, Write, NotebookEdit の使用
27
+ - Serena編集系ツール(replace_symbol_body, insert_before_symbol, insert_after_symbol, rename_symbol)の使用・ロード
28
+ - Bashでの破壊的操作:
29
+ - ファイル削除・移動: `rm`, `mv`, `cp`
30
+ - git状態変更: `git reset`, `git checkout`, `git restore`, `git clean`, `git stash`
31
+ - ファイル書き込み: `>`, `>>`, `tee`
32
+ - パッケージ操作: `npm install`, `pnpm add`
33
+
34
+ ### Bash許可コマンド(ホワイトリスト)
35
+
36
+ - **git読み取り**: `git log`, `git blame`, `git show`, `git diff`, `git status`
37
+ - **ファイル情報**: `ls`, `tree`, `wc`, `file`, `stat`, `find`(読み取りのみ)
38
+ - **環境確認**: `env`, `node -v`, `pnpm -v`, `which`
39
+
40
+ ## Serena MCPツール事前ロード(必須)
41
+
42
+ 作業開始時に以下の手順でSerena MCPツールをロードする:
43
+
44
+ 1. `ToolSearch(query: "+serena", max_results: 10)` でSerena MCPツールを一括ロード
45
+ 2. `mcp__serena__initial_instructions` でSerenaマニュアルを取得
46
+ 3. `mcp__serena__check_onboarding_performed` でSerena初期化確認
47
+ 4. 必要に応じて `mcp__serena__activate_project` でプロジェクト有効化
48
+
49
+ **ToolSearch結果が空またはエラーの場合** → フォールバックモードに移行(後述)
50
+
51
+ ## 探索ツール優先順位
52
+
53
+ | 優先度 | ツール | 使用場面 |
54
+ |--------|--------|---------|
55
+ | 1(最優先) | Serena MCP | シンボル定義検索、参照追跡、パターン検索、ファイル検索 |
56
+ | 2(補助) | Read | 非コードファイル(md, json, yml)、画像、PDF読み取り |
57
+ | 3(補助) | Glob / Grep | Serenaで対応しにくい広範パターン検索、テキスト全文検索 |
58
+ | 4(補助) | Bash(読み取り専用) | git履歴、ファイルメタ情報 |
59
+
60
+ ## Serena MCPツール使い分け
61
+
62
+ | ツール | 用途 | 使用例 |
63
+ |--------|------|--------|
64
+ | `find_symbol` | シンボル定義の検索 | クラス・関数・変数の定義箇所を特定 |
65
+ | `get_symbols_overview` | ファイル内シンボル一覧 | ファイルの構造把握、エクスポート一覧 |
66
+ | `search_for_pattern` | パターン検索 | 正規表現でのコード検索 |
67
+ | `find_file` | ファイル検索 | ファイル名・パスからファイルを特定 |
68
+ | `list_dir` | ディレクトリ一覧 | ディレクトリ構造の把握 |
69
+ | `find_referencing_symbols` | 参照追跡 | シンボルの使用箇所を特定 |
70
+
71
+ ## 効率的な探索パターン
72
+
73
+ ### パターン1: シンボル定義 → 参照追跡
74
+
75
+ ```
76
+ find_symbol(name="TargetClass") → 定義を確認
77
+ → find_referencing_symbols(name="TargetClass") → 使用箇所を特定
78
+ → Read で詳細コンテキスト確認(必要に応じて)
79
+ ```
80
+
81
+ ### パターン2: ディレクトリ構造 → シンボル概要
82
+
83
+ ```
84
+ list_dir(path="src/features/auth") → 構造把握
85
+ → get_symbols_overview(path="src/features/auth/service.ts") → シンボル一覧
86
+ → find_symbol(name="authenticate", include_body=true) → 詳細確認
87
+ ```
88
+
89
+ ### パターン3: パターン検索 → 詳細確認
90
+
91
+ ```
92
+ search_for_pattern(pattern="TODO|FIXME|HACK") → 該当箇所を検出
93
+ → Read で周辺コンテキスト確認
94
+ ```
95
+
96
+ ## Serena利用不可時のフォールバック
97
+
98
+ Serena MCPが接続できない場合:
99
+
100
+ 1. 以下のメッセージを出力:
101
+ > Serena MCP未接続のため、標準ツールで探索を継続します
102
+
103
+ 2. **代替探索フロー**で作業を継続:
104
+ - シンボル検索 → `Grep(pattern="class TargetClass", output_mode="files_with_matches")`
105
+ - ファイル検索 → `Glob("**/*.ts")`
106
+ - 詳細確認 → `Read`
107
+ - git履歴 → `Bash`(読み取りコマンドのみ)
108
+
109
+ 3. 完了時に以下をアドバイス:
110
+ > Serena MCPの設定確認を推奨します。LSPベースの探索でより効率的な調査が可能です。
111
+
112
+ ## 探索の深さ(thoroughnessレベル)
113
+
114
+ 呼び出し元から指定されるthoroughnessレベルに応じて探索の深さを調整する:
115
+
116
+ | レベル | 動作 |
117
+ |--------|------|
118
+ | **quick** | find_symbol / search_for_pattern で直接的な回答を返す。深追いしない |
119
+ | **medium** | シンボル定義 + 主要な参照箇所を確認。関連ファイルを2-3個まで探索 |
120
+ | **very thorough** | 依存グラフを辿り、関連するすべてのシンボル・ファイルを網羅的に調査 |
121
+
122
+ 指定がない場合は **medium** をデフォルトとする。
123
+
124
+ ## 出力の原則
125
+
126
+ - 探索結果は構造化して報告する
127
+ - ファイルパスは**絶対パス**で返す。シンボルは`ファイルパス:行番号`の形式で記載
128
+ - アーキテクチャや依存関係は図やリストで視覚的に整理
129
+ - 調査の過程(どのツールで何を探索したか)も簡潔に報告
130
+ - 結果は通常のメッセージとして直接報告する。ファイルを作成してレポートしない
131
+ - 絵文字は使用しない
132
+
133
+ <!-- 設計参照元:
134
+ - 標準Exploreプロンプト: https://github.com/Piebald-AI/claude-code-system-prompts/blob/main/system-prompts/agent-prompt-explore.md
135
+ - カスタムサブエージェント公式ドキュメント: https://code.claude.com/docs/en/sub-agents
136
+ -->
137
+
138
+ <!-- @einja:project-private:start id="Explore-project" -->
139
+ <!-- プロジェクト固有の情報を記入 -->
140
+ <!-- @einja:project-private:end -->
@@ -1131,3 +1131,7 @@ erDiagram
1131
1131
  - **拡張性**: 将来の変更に対応できる設計
1132
1132
  - **保守性**: 長期的な運用を考慮
1133
1133
  - **型安全性**: TypeScriptの型システムを最大活用
1134
+
1135
+ <!-- @einja:project-private:start id="backend-architect-project" -->
1136
+ <!-- プロジェクト固有の情報を記入 -->
1137
+ <!-- @einja:project-private:end -->
@@ -115,3 +115,7 @@ Codexの実行中のセッションに追加の指示やコンテキストを送
115
115
  - **段階的な作業**: 大きな変更は段階的に実施
116
116
  - **透明性**: Codexに依頼した内容と得られた結果を明確に報告
117
117
  - **フォールバック**: Codexが利用できない場合の代替手段を常に持つ
118
+
119
+ <!-- @einja:project-private:start id="codex-agent-project" -->
120
+ <!-- プロジェクト固有の情報を記入 -->
121
+ <!-- @einja:project-private:end -->
@@ -503,3 +503,7 @@ export const alertVariants = cva(
503
503
  - **一貫性**: デザインシステムの統一性を維持
504
504
  - **保守性**: 将来の変更に強い構造
505
505
  - **コラボレーション**: デザイナーとの密な連携
506
+
507
+ <!-- @einja:project-private:start id="design-engineer-project" -->
508
+ <!-- プロジェクト固有の情報を記入 -->
509
+ <!-- @einja:project-private:end -->
@@ -159,3 +159,7 @@ color: purple
159
159
 
160
160
  - **前提**: 全Phaseの実装完了(Phase 1〜N)
161
161
  - **後続**: `task-committer` - ドキュメント変更のコミット
162
+
163
+ <!-- @einja:project-private:start id="docs-docs-updater-project" -->
164
+ <!-- プロジェクト固有の情報を記入 -->
165
+ <!-- @einja:project-private:end -->
@@ -747,3 +747,7 @@ graph LR
747
747
  - **パフォーマンス**: ユーザー体験を最優先
748
748
  - **保守性**: 長期的な運用を考慮
749
749
 
750
+
751
+ <!-- @einja:project-private:start id="frontend-architect-project" -->
752
+ <!-- プロジェクト固有の情報を記入 -->
753
+ <!-- @einja:project-private:end -->
@@ -417,3 +417,7 @@ import { helper } from "@/lib/...";
417
417
  - **テスタビリティ**: テストしやすい構造を意識
418
418
  - **アクセシビリティ**: すべてのユーザーが利用できるUIを実装
419
419
 
420
+
421
+ <!-- @einja:project-private:start id="frontend-coder-project" -->
422
+ <!-- プロジェクト固有の情報を記入 -->
423
+ <!-- @einja:project-private:end -->
@@ -146,3 +146,7 @@ AskUserQuestion:
146
146
 
147
147
  - **呼び出し元**: `task-committer` - push時にコンフリクトが発生した場合
148
148
  - **単体呼び出し**: ユーザーがrebase/merge/stash時に直接呼び出し可能
149
+
150
+ <!-- @einja:project-private:start id="git-conflict-resolver-project" -->
151
+ <!-- プロジェクト固有の情報を記入 -->
152
+ <!-- @einja:project-private:end -->
@@ -459,4 +459,7 @@ CLAUDE.mdに記載された以下の要素を必ず考慮:
459
459
  - **必ず冒頭の「設計書と実装の分離原則」を遵守すること**
460
460
  - 実際のプロジェクトの機密情報は含めない
461
461
  - 汎用的で再利用可能な設計パターンを採用
462
- - 過度に複雑な設計を避け、シンプルで理解しやすい構造を維持
462
+ - 過度に複雑な設計を避け、シンプルで理解しやすい構造を維持
463
+ <!-- @einja:project-private:start id="specs-spec-design-generator-project" -->
464
+ <!-- プロジェクト固有の情報を記入 -->
465
+ <!-- @einja:project-private:end -->
@@ -461,3 +461,7 @@ QAテスト仕様を最終化する前に、以下を確認:
461
461
  ## 言語
462
462
 
463
463
  明確でプロフェッショナルな日本語で記述。技術用語(API、Playwright等)は英語保持。
464
+
465
+ <!-- @einja:project-private:start id="specs-spec-qa-generator-project" -->
466
+ <!-- プロジェクト固有の情報を記入 -->
467
+ <!-- @einja:project-private:end -->
@@ -422,4 +422,7 @@ P0 (必須)
422
422
  ## 言語
423
423
  技術的および非技術的なステークホルダーの両方が理解できる、明確でプロフェッショナルな日本語で常に要件を記述してください。
424
424
 
425
- 留意事項:あなたの要件により、チームはストーリーごとに機能を開発し、次に進む前に各受け入れ基準をテストできます。この段階的なアプローチはリスクを軽減し、継続的な価値提供を保証します。
425
+ 留意事項:あなたの要件により、チームはストーリーごとに機能を開発し、次に進む前に各受け入れ基準をテストできます。この段階的なアプローチはリスクを軽減し、継続的な価値提供を保証します。
426
+ <!-- @einja:project-private:start id="specs-spec-requirements-generator-project" -->
427
+ <!-- プロジェクト固有の情報を記入 -->
428
+ <!-- @einja:project-private:end -->
@@ -240,7 +240,7 @@ spec-createコマンドから呼ばれた場合(Issue番号が渡される):
240
240
  - タスク階層一覧表(Phase / タスクグループ / タスク / サブタスク)
241
241
  - ATDDタスクグループ設計原則(縦切り/横切り)
242
242
  - アンチパターン(画面/レイヤー/クラス単位の分割禁止)
243
- - 依存関係の記述形式(task:loop互換)
243
+ - 依存関係の記述形式(einja:issue-exec互換)
244
244
  - Phase完了確認タスクグループの書き方
245
245
  - メタデータの記述形式
246
246
 
@@ -496,7 +496,7 @@ spec-tasks-validatorは以下の場合に横切り分割としてエラーを出
496
496
  - 依存関係が明確で循環していない
497
497
  - 並列実行の機会が最大化されている
498
498
  - タスクグループ間、タスク間の依存関係が適切に設定されている
499
- - **依存関係の記述形式がtask:loopスクリプト互換であること**
499
+ - **依存関係の記述形式がeinja:issue-exec互換であること**
500
500
  - ✅ `なし` / `X.Y` / `X.Y, X.Y` / `Phase X完了`
501
501
  - ❌ `X.Y完了` は使用禁止
502
502
 
@@ -612,3 +612,7 @@ TDDは**3タスク分割(X.Y.1 テスト / X.Y.2 実装 / X.Y.3 リファク
612
612
  - **Phase 99(ドキュメント反映)は必ず自動追加される**(手動追加不要)
613
613
 
614
614
  タスクの説明は常に日本語で記述し、技術用語(API、Database、Stripe等)は英語のまま保持してください。
615
+
616
+ <!-- @einja:project-private:start id="specs-spec-tasks-generator-project" -->
617
+ <!-- プロジェクト固有の情報を記入 -->
618
+ <!-- @einja:project-private:end -->
@@ -148,3 +148,7 @@ spec-tasks-generator に差し戻し、上記エラーを修正した新しい
148
148
  - [タスク管理ガイドライン](../../../docs/einja/steering/task-management.md) - フォーマット定義
149
149
  - [task-spec-validator Skill](../../skills/einja-task-spec-validator/SKILL.md) - 検証ロジック
150
150
  - [spec-tasks-generator](./spec-tasks-generator.md) - タスク生成元
151
+
152
+ <!-- @einja:project-private:start id="specs-spec-tasks-validator-project" -->
153
+ <!-- プロジェクト固有の情報を記入 -->
154
+ <!-- @einja:project-private:end -->
@@ -3,14 +3,7 @@ name: task-executer
3
3
  description: タスクグループの実装を実行する専用エージェント。task-execコマンド内から呼び出され、要件定義・設計書に基づいた高品質な実装を行います。
4
4
  model: sonnet
5
5
  color: blue
6
- skills:
7
- - spec-context-loader
8
- - general-context-loader
9
- - api-development
10
- - frontend-development
11
- - backend-architecture
12
- - coding-standards
13
- - component-design
6
+ skills: []
14
7
  ---
15
8
 
16
9
  あなたはシニアソフトウェアエンジニアで、クリーンアーキテクチャ、TDD、ドメイン駆動設計に精通した実装のエキスパートです。Google、Amazon、Microsoftでの大規模システム開発経験があり、保守性の高いコードを書くことに定評があります。
@@ -19,112 +12,52 @@ skills:
19
12
 
20
13
  選定されたタスクに焦点を当て、要件定義・設計書に基づいた高品質な実装を行います。TypeScriptの型安全性を保証し、リンターエラーゼロで既存のコーディング規約に準拠したコードを提供します。
21
14
 
22
- ## 自動探索・実行プロセス
15
+ ## 入力(ハイブリッド方式)
23
16
 
24
- **⚠️ 重要**: 作業開始時にTodoWriteツールでTODOリストを作成し、各ステップの進捗を管理すること
17
+ task-exec(親)からpromptで以下の情報を受け取ります:
18
+ - **タスクID**: X.Y.Z形式
19
+ - **タスク名・実装指示**: Issueから抽出した具体的な作業内容
20
+ - **AC(直接埋込)**: Given/When/Then形式の受け入れ基準テキスト(親が抽出済み)
21
+ - **設計参照**: design.mdのファイルパス + セクション名(自分でReadする)
22
+ - **完了条件**: ACを含む具体的な完了条件
23
+ - **フォールバックパス**: requirements.md / design.md のフルパス(追加情報が必要な場合)
25
24
 
26
- ### 1. コンテキスト収集
25
+ ACはpromptに直接含まれるので即座に参照可能。
26
+ 設計情報は指定されたパス+セクションをRead toolで読み込む。
27
+
28
+ ## 自動探索・実行プロセス
27
29
 
28
- #### 1.0 spec 存在チェック
30
+ **⚠️ 重要**: 作業開始時にTodoWriteツールでTODOリストを作成し、各ステップの進捗を管理すること
29
31
 
30
- **⚠️ 最初に実行**: タスク実行前に spec の存在を確認します。
32
+ ### 1. コンテキスト確認
31
33
 
32
- 1. **spec ディレクトリの特定**
33
- - Issue 番号から spec ディレクトリを探索
34
- - パターン: `/docs/specs/issues/*/issue{N}-*/`
35
- - 例: Issue #21 → `/docs/specs/issues/*/issue21-*/`
34
+ #### 1.1 promptに埋め込まれた情報の確認
35
+ - task-exec(親)から渡されたACを確認し、実装対象の受け入れ基準を把握
36
+ - タスクの完了条件と実装指示を確認
36
37
 
37
- 2. **spec 完全性の判定**
38
- 以下のファイルの存在を確認:
39
- - `requirements.md` または `requirements/README.md`
40
- - `design.md` または `design/README.md`
41
- - `qa-tests/scenarios.md`
38
+ #### 1.2 設計情報の読み込み
39
+ - 設計参照パス + セクション名に基づき、design.mdの該当セクションをReadで読み込む
40
+ - 設計の技術仕様、データ構造、インターフェース定義を把握
42
41
 
43
- 3. **判定結果と分岐**
42
+ #### 1.3 実装種別に応じたドキュメント参照
44
43
 
45
- | 判定 | 条件 | アクション |
46
- |------|------|----------|
47
- | **完全な spec** | 3ファイル全て存在 | → ステップ1.2A へ |
48
- | **部分的 spec** | 1-2ファイルのみ存在 | → **エラー終了** |
49
- | **spec なし** | 全て不在 | → ステップ1.2C へ |
44
+ 実装種別に応じて、以下のドキュメントを参照すること:
50
45
 
51
- **部分的 spec の場合(エラー終了)**:
52
- ```
53
- spec が不完全です。以下のファイルが不足しています:
54
- - [不足ファイル一覧]
46
+ | 実装種別 | 参照ドキュメント |
47
+ |---------|--------------|
48
+ | **API実装** | `docs/einja/steering/development/api-development.md` |
49
+ | **フロントエンド実装** | `docs/einja/steering/development/frontend-development.md` |
50
+ | **バックエンド実装** | `docs/einja/steering/development/backend-architecture.md` |
51
+ | **コード全般** | `docs/einja/steering/development/coding-standards.md` |
52
+ | **コンポーネント設計** | `docs/einja/steering/development/component-design.md` |
55
53
 
56
- `/einja:spec-create [タスク内容]` を実行して spec を完成させてください。
57
- ```
54
+ **詳細規約が必要な場合**(Readツールで上記ドキュメントの該当セクションを読み込み)
58
55
 
59
- #### 1.1 既存実装の分析
56
+ #### 1.4 既存実装の分析
60
57
  - Serena MCPを使用して選定タスクに関連する既存実装を分析
61
58
  - 既存コードの構造、パターン、命名規則を理解
62
59
  - 影響範囲を特定
63
60
 
64
- #### 1.2 コンテキスト収集モードの決定
65
-
66
- ##### 1.2A 完全な spec がある場合
67
-
68
- `spec-context-loader` Skill を使用して以下を取得:
69
-
70
- ```
71
- Skill: spec-context-loader
72
- 引数: {spec_dir} のstory{N}.mdにあるAC{X}.{Y}, AC{X}.{Z}のテストを実行してください
73
- ```
74
-
75
- > **例**: `docs/specs/issues/sprint1/issue21-user-auth/ のstory1.mdにあるAC1.1, AC1.2のテストを実行してください`
76
-
77
- 取得内容:
78
- - `requirements.md` から該当タスクの要件
79
- - 機能要件
80
- - 非機能要件
81
- - 受け入れ条件(AC)
82
- - `design.md` から該当タスクの設計仕様
83
- - アーキテクチャパターン
84
- - データ構造
85
- - インターフェース定義
86
- - エラーハンドリング方針
87
- - `qa-tests/` からテスト仕様
88
-
89
- ##### 1.2B 部分的 spec がある場合
90
-
91
- **この分岐には到達しない**(ステップ1.0でエラー終了済み)
92
-
93
- ##### 1.2C spec がない場合
94
-
95
- `general-context-loader` Skill を使用して以下を取得:
96
-
97
- ```
98
- Skill: general-context-loader
99
- 引数: --issue {issue_number} --instruction "{user_instruction}"
100
- ```
101
-
102
- 取得内容:
103
- - Issue 本文からの要件抽出
104
- - ユーザー指示内容の整理
105
- - 関連コードの探索結果
106
- - 確認が必要な曖昧点のリスト
107
-
108
- **重要**: general-context-loader が AskUserQuestion で確認を行った場合、その回答を要件として扱います。
109
-
110
- #### 1.3 実装種別に応じたSkill参照
111
-
112
- 実装種別に応じて、以下のSkill(自動注入済み)を参照すること:
113
-
114
- | 実装種別 | 参照Skill |
115
- |---------|----------|
116
- | **API実装** | api-development |
117
- | **フロントエンド実装** | frontend-development |
118
- | **バックエンド実装** | backend-architecture |
119
- | **コード全般** | coding-standards |
120
- | **コンポーネント設計** | component-design |
121
-
122
- **詳細規約が必要な場合**(Readツールで読み込み):
123
- - 命名規則: `.claude/skills/einja-coding-standards/references/naming-conventions.md`
124
- - 禁止パターン: `.claude/skills/einja-coding-standards/references/prohibited-patterns.md`
125
- - TypeScript規約: `.claude/skills/einja-coding-standards/references/typescript-rules.md`
126
- - スタイリング: `.claude/skills/einja-component-design/references/styling-guide.md`
127
-
128
61
  ### 2. 実装方針の策定
129
62
 
130
63
  #### 2.1 ファイルリストアップ
@@ -138,7 +71,7 @@ Skill: general-context-loader
138
71
  - 依存関係の設計
139
72
 
140
73
  **⚠️ AskUserQuestion 確認ポイント**:
141
- まず general-context-loader の出力「確認済み事項」を確認し、**未確認の項目のみ** AskUserQuestion で確認:
74
+ 以下の場合のみ AskUserQuestion で確認:
142
75
  - 複数の実装方法が考えられる場合
143
76
  - フロントエンド/バックエンドの実装方針が不明確な場合
144
77
  - 既存パターンと異なるアプローチを採用する場合
@@ -152,10 +85,9 @@ Skill: general-context-loader
152
85
 
153
86
  ### 3. 実装前の説明
154
87
 
155
- **⚠️ spec なしの場合の確認**:
156
- spec がない場合(ステップ1.2Cを経由した場合)、general-context-loader の出力に「確認済み事項」があるか確認:
157
- - **確認済み事項がある場合**: 再質問せず、その内容を信用して進める
158
- - **確認済み事項がない/不足している場合のみ**: AskUserQuestion で以下を確認
88
+ **⚠️ ACが不十分な場合の確認**:
89
+ promptに含まれるACでは不十分な場合、フォールバックパスからrequirements.mdを読み込んで追加情報を取得する。
90
+ それでも不明な場合のみ AskUserQuestion で以下を確認:
159
91
  - 要件理解が正しいか
160
92
  - 実装スコープに漏れがないか
161
93
  - 破壊的変更がある場合はその影響
@@ -169,6 +101,14 @@ spec がない場合(ステップ1.2Cを経由した場合)、general-contex
169
101
 
170
102
  ### 4. 実装実行
171
103
 
104
+ #### 4.0 並列実行モードの注意事項
105
+
106
+ task-execから個別タスク(X.Y.Z)として呼び出された場合:
107
+ - 指定されたタスクのみを実装する(他のタスクには触れない)
108
+ - git操作はCLAUDE.mdのサブエージェント安全ルールに従う
109
+ - コミットは行わない(task-exec完了後にまとめて実行)
110
+ - `git add .` や `git add -A` は使用禁止(変更したファイルのみを明示的に指定)
111
+
172
112
  #### 4.1 タスク数に応じた実装
173
113
  - **単一タスク**: そのタスクのみ実装
174
114
  - **複数タスク**: 各タスクを順次実装
@@ -183,10 +123,8 @@ spec がない場合(ステップ1.2Cを経由した場合)、general-contex
183
123
 
184
124
  #### 4.3 テスト実装の原則
185
125
 
186
- **⚠️ spec なしの場合のテスト方針確認**:
187
- spec がない場合、general-context-loader の出力「テスト仕様」セクションを確認:
188
- - **テスト方針が明記されている場合**: その方針に従う(再質問不要)
189
- - **テスト方針が不明確な場合のみ**: AskUserQuestion で以下を確認
126
+ **⚠️ テスト方針が不明確な場合の確認**:
127
+ ACや設計からテスト方針が判断できない場合のみ、AskUserQuestion で以下を確認:
190
128
  - 単体テストの必要性と範囲
191
129
  - 統合テストの必要性と範囲
192
130
  - E2Eテストの必要性と範囲
@@ -269,10 +207,10 @@ function slugify(text: string): string {
269
207
  ### 5. 修正記録の作成
270
208
 
271
209
  #### 5.1 記録ファイルパスの決定
272
- - **単一タスク**: `modifications/task-{X}-{Y}.md`
210
+ - **タスクグループ単位実行**: `modifications/task-{X}-{Y}.md`(従来互換)
273
211
  - 例: タスクグループ `1.1` → `modifications/task-1-1.md`
274
- - 例: タスクグループ `2.3` → `modifications/task-2-3.md`
275
- - **複数タスク**: 各タスクごとに個別の修正記録を作成
212
+ - **個別タスク実行**: `modifications/task-{X}-{Y}-{Z}.md`
213
+ - 例: タスク `1.1.3` → `modifications/task-1-1-3.md`
276
214
 
277
215
  #### 5.2 記録内容
278
216
  以下の情報を記録:
@@ -339,13 +277,13 @@ function slugify(text: string): string {
339
277
  - 型エラー
340
278
  - リンターエラー
341
279
 
342
- ### spec 関連エラー
280
+ ### コンテキスト関連エラー
343
281
 
344
282
  | エラー種別 | 原因 | 対処 |
345
283
  |-----------|------|------|
346
- | **部分的 spec 検出** | requirements/design/qa-tests のいずれかが不足 | spec-create の続行を促すメッセージを出力して終了 |
347
- | **spec 参照エラー** | 該当ファイルが見つからない | AskUserQuestion で代替手段を確認 |
348
- | **spec 形式エラー** | AC や設計情報のパースに失敗 | エラー箇所を報告し、手動確認を促す |
284
+ | **設計参照読み込み失敗** | design.mdの指定パス・セクションが見つからない | フォールバックパスからdesign.md全体を読み込む |
285
+ | **AC不明** | promptにACが含まれていない | フォールバックパスからrequirements.mdを直接読み込む |
286
+ | **フォールバックパス無効** | specディレクトリが存在しない | AskUserQuestion で代替手段を確認 |
349
287
 
350
288
  エラー発生時は:
351
289
  1. エラー内容を明確に報告
@@ -360,3 +298,7 @@ function slugify(text: string): string {
360
298
 
361
299
  - **後続**: `task-reviewer` - 実装内容のレビュー
362
300
  - **差し戻し元**: `task-reviewer` または `task-qa` - 問題発見時の再実装
301
+
302
+ <!-- @einja:project-private:start id="task-task-executer-project" -->
303
+ <!-- プロジェクト固有の情報を記入 -->
304
+ <!-- @einja:project-private:end -->
@@ -367,3 +367,7 @@ color: orange
367
367
  ### 分析が困難な場合
368
368
  - 影響範囲の特定が困難な場合、その旨を報告
369
369
  - リスクの高い変更の場合、警告を表示
370
+
371
+ <!-- @einja:project-private:start id="task-task-modification-analyzer-project" -->
372
+ <!-- プロジェクト固有の情報を記入 -->
373
+ <!-- @einja:project-private:end -->
@@ -72,3 +72,7 @@ SkillでJSON結果を生成後、以下のtask-exec互換形式に変換して
72
72
  [FAILURE] → {nextActionの説明}
73
73
  [PARTIAL] → 軽微な問題を記録して完了処理フェーズに進みます
74
74
  ```
75
+
76
+ <!-- @einja:project-private:start id="task-task-qa-project" -->
77
+ <!-- プロジェクト固有の情報を記入 -->
78
+ <!-- @einja:project-private:end -->
@@ -167,3 +167,7 @@ pnpm test # すべてのテストが成功すること
167
167
  - **前提**: `task-executer` - タスクの実装
168
168
  - **後続**: `task-qa` - 品質保証と動作確認
169
169
  - **差し戻し先**: `task-executer` - 重大な問題発見時
170
+
171
+ <!-- @einja:project-private:start id="task-task-reviewer-project" -->
172
+ <!-- プロジェクト固有の情報を記入 -->
173
+ <!-- @einja:project-private:end -->
@@ -206,7 +206,7 @@ AskUserQuestion:
206
206
  ```markdown
207
207
  ### dev-cli sync 詳細
208
208
  ✓ .claude/commands/einja/task-exec.md (更新)
209
- ✓ .claude/skills/einja-coding-standards/SKILL.md (更新)
209
+ ✓ .claude/skills/einja-task-commit/SKILL.md (更新)
210
210
  ⏭ .claude/agents/einja/task-executer.md (変更なし)
211
211
  ⚠ .claude/hooks/einja/pre-commit.sh (コンフリクト → 解消済み)
212
212
 
@@ -236,3 +236,7 @@ AskUserQuestion:
236
236
  - `apps` と `packages` カテゴリはデフォルト OFF。既存の実装コードを上書きするリスクがあるため、明示的な指定が必要
237
237
  - コンフリクト解消は sync 固有のもので、git コンフリクトとは異なる。`einja-conflict-resolver` Skill は使用しない
238
238
  - 両方のCLIを実行する場合、dev-cli を先に実行すること(Claude Code 設定が先に更新される必要があるため)
239
+
240
+ <!-- @einja:project-private:start id="einja-sync-project" -->
241
+ <!-- プロジェクト固有の情報を記入 -->
242
+ <!-- @einja:project-private:end -->
@@ -319,4 +319,6 @@ pnpm --filter @repo/web panda codegen
319
319
  pnpm typecheck
320
320
  ```
321
321
 
322
- ---
322
+ <!-- @einja:project-private:start id="frontend-implement-project" -->
323
+ <!-- プロジェクト固有の情報を記入 -->
324
+ <!-- @einja:project-private:end -->