@einja/dev-cli 0.1.6

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 (243) hide show
  1. package/README.md +179 -0
  2. package/dist/cli.d.ts +2 -0
  3. package/dist/cli.d.ts.map +1 -0
  4. package/dist/cli.js +49 -0
  5. package/dist/cli.js.map +1 -0
  6. package/dist/commands/init.d.ts +3 -0
  7. package/dist/commands/init.d.ts.map +1 -0
  8. package/dist/commands/init.js +243 -0
  9. package/dist/commands/init.js.map +1 -0
  10. package/dist/commands/list.d.ts +2 -0
  11. package/dist/commands/list.d.ts.map +1 -0
  12. package/dist/commands/list.js +23 -0
  13. package/dist/commands/list.js.map +1 -0
  14. package/dist/commands/sync.d.ts +7 -0
  15. package/dist/commands/sync.d.ts.map +1 -0
  16. package/dist/commands/sync.js +294 -0
  17. package/dist/commands/sync.js.map +1 -0
  18. package/dist/commands/sync.test.d.ts +2 -0
  19. package/dist/commands/sync.test.d.ts.map +1 -0
  20. package/dist/commands/sync.test.js +593 -0
  21. package/dist/commands/sync.test.js.map +1 -0
  22. package/dist/commands/task-loop.d.ts +11 -0
  23. package/dist/commands/task-loop.d.ts.map +1 -0
  24. package/dist/commands/task-loop.js +81 -0
  25. package/dist/commands/task-loop.js.map +1 -0
  26. package/dist/index.d.ts +4 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +3 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/lib/file-system.d.ts +39 -0
  31. package/dist/lib/file-system.d.ts.map +1 -0
  32. package/dist/lib/file-system.js +79 -0
  33. package/dist/lib/file-system.js.map +1 -0
  34. package/dist/lib/mcp-config.d.ts +43 -0
  35. package/dist/lib/mcp-config.d.ts.map +1 -0
  36. package/dist/lib/mcp-config.js +109 -0
  37. package/dist/lib/mcp-config.js.map +1 -0
  38. package/dist/lib/mcp-config.test.d.ts +2 -0
  39. package/dist/lib/mcp-config.test.d.ts.map +1 -0
  40. package/dist/lib/mcp-config.test.js +285 -0
  41. package/dist/lib/mcp-config.test.js.map +1 -0
  42. package/dist/lib/merger.d.ts +41 -0
  43. package/dist/lib/merger.d.ts.map +1 -0
  44. package/dist/lib/merger.js +164 -0
  45. package/dist/lib/merger.js.map +1 -0
  46. package/dist/lib/preset-update/cli-repo-detector.d.ts +35 -0
  47. package/dist/lib/preset-update/cli-repo-detector.d.ts.map +1 -0
  48. package/dist/lib/preset-update/cli-repo-detector.js +83 -0
  49. package/dist/lib/preset-update/cli-repo-detector.js.map +1 -0
  50. package/dist/lib/preset-update/cli-repo-detector.test.d.ts +2 -0
  51. package/dist/lib/preset-update/cli-repo-detector.test.d.ts.map +1 -0
  52. package/dist/lib/preset-update/cli-repo-detector.test.js +120 -0
  53. package/dist/lib/preset-update/cli-repo-detector.test.js.map +1 -0
  54. package/dist/lib/preset-update/file-copier.d.ts +59 -0
  55. package/dist/lib/preset-update/file-copier.d.ts.map +1 -0
  56. package/dist/lib/preset-update/file-copier.js +220 -0
  57. package/dist/lib/preset-update/file-copier.js.map +1 -0
  58. package/dist/lib/preset-update/file-copier.test.d.ts +2 -0
  59. package/dist/lib/preset-update/file-copier.test.d.ts.map +1 -0
  60. package/dist/lib/preset-update/file-copier.test.js +297 -0
  61. package/dist/lib/preset-update/file-copier.test.js.map +1 -0
  62. package/dist/lib/preset-update/preset-finder.d.ts +39 -0
  63. package/dist/lib/preset-update/preset-finder.d.ts.map +1 -0
  64. package/dist/lib/preset-update/preset-finder.js +92 -0
  65. package/dist/lib/preset-update/preset-finder.js.map +1 -0
  66. package/dist/lib/preset-update/preset-finder.test.d.ts +2 -0
  67. package/dist/lib/preset-update/preset-finder.test.d.ts.map +1 -0
  68. package/dist/lib/preset-update/preset-finder.test.js +128 -0
  69. package/dist/lib/preset-update/preset-finder.test.js.map +1 -0
  70. package/dist/lib/preset.d.ts +14 -0
  71. package/dist/lib/preset.d.ts.map +1 -0
  72. package/dist/lib/preset.js +52 -0
  73. package/dist/lib/preset.js.map +1 -0
  74. package/dist/lib/sync/backup-manager.d.ts +50 -0
  75. package/dist/lib/sync/backup-manager.d.ts.map +1 -0
  76. package/dist/lib/sync/backup-manager.js +117 -0
  77. package/dist/lib/sync/backup-manager.js.map +1 -0
  78. package/dist/lib/sync/backup-manager.test.d.ts +2 -0
  79. package/dist/lib/sync/backup-manager.test.d.ts.map +1 -0
  80. package/dist/lib/sync/backup-manager.test.js +155 -0
  81. package/dist/lib/sync/backup-manager.test.js.map +1 -0
  82. package/dist/lib/sync/batch-processor.d.ts +27 -0
  83. package/dist/lib/sync/batch-processor.d.ts.map +1 -0
  84. package/dist/lib/sync/batch-processor.js +46 -0
  85. package/dist/lib/sync/batch-processor.js.map +1 -0
  86. package/dist/lib/sync/batch-processor.test.d.ts +2 -0
  87. package/dist/lib/sync/batch-processor.test.d.ts.map +1 -0
  88. package/dist/lib/sync/batch-processor.test.js +110 -0
  89. package/dist/lib/sync/batch-processor.test.js.map +1 -0
  90. package/dist/lib/sync/category-validator.d.ts +36 -0
  91. package/dist/lib/sync/category-validator.d.ts.map +1 -0
  92. package/dist/lib/sync/category-validator.js +46 -0
  93. package/dist/lib/sync/category-validator.js.map +1 -0
  94. package/dist/lib/sync/category-validator.test.d.ts +2 -0
  95. package/dist/lib/sync/category-validator.test.d.ts.map +1 -0
  96. package/dist/lib/sync/category-validator.test.js +89 -0
  97. package/dist/lib/sync/category-validator.test.js.map +1 -0
  98. package/dist/lib/sync/conflict-reporter.d.ts +57 -0
  99. package/dist/lib/sync/conflict-reporter.d.ts.map +1 -0
  100. package/dist/lib/sync/conflict-reporter.js +81 -0
  101. package/dist/lib/sync/conflict-reporter.js.map +1 -0
  102. package/dist/lib/sync/conflict-reporter.test.d.ts +2 -0
  103. package/dist/lib/sync/conflict-reporter.test.d.ts.map +1 -0
  104. package/dist/lib/sync/conflict-reporter.test.js +132 -0
  105. package/dist/lib/sync/conflict-reporter.test.js.map +1 -0
  106. package/dist/lib/sync/diff-engine.d.ts +28 -0
  107. package/dist/lib/sync/diff-engine.d.ts.map +1 -0
  108. package/dist/lib/sync/diff-engine.js +118 -0
  109. package/dist/lib/sync/diff-engine.js.map +1 -0
  110. package/dist/lib/sync/diff-engine.test.d.ts +2 -0
  111. package/dist/lib/sync/diff-engine.test.d.ts.map +1 -0
  112. package/dist/lib/sync/diff-engine.test.js +133 -0
  113. package/dist/lib/sync/diff-engine.test.js.map +1 -0
  114. package/dist/lib/sync/file-filter.d.ts +40 -0
  115. package/dist/lib/sync/file-filter.d.ts.map +1 -0
  116. package/dist/lib/sync/file-filter.js +171 -0
  117. package/dist/lib/sync/file-filter.js.map +1 -0
  118. package/dist/lib/sync/file-filter.test.d.ts +2 -0
  119. package/dist/lib/sync/file-filter.test.d.ts.map +1 -0
  120. package/dist/lib/sync/file-filter.test.js +179 -0
  121. package/dist/lib/sync/file-filter.test.js.map +1 -0
  122. package/dist/lib/sync/hash-cache.d.ts +34 -0
  123. package/dist/lib/sync/hash-cache.d.ts.map +1 -0
  124. package/dist/lib/sync/hash-cache.js +51 -0
  125. package/dist/lib/sync/hash-cache.js.map +1 -0
  126. package/dist/lib/sync/hash-cache.test.d.ts +2 -0
  127. package/dist/lib/sync/hash-cache.test.d.ts.map +1 -0
  128. package/dist/lib/sync/hash-cache.test.js +110 -0
  129. package/dist/lib/sync/hash-cache.test.js.map +1 -0
  130. package/dist/lib/sync/integration.test.d.ts +2 -0
  131. package/dist/lib/sync/integration.test.d.ts.map +1 -0
  132. package/dist/lib/sync/integration.test.js +317 -0
  133. package/dist/lib/sync/integration.test.js.map +1 -0
  134. package/dist/lib/sync/marker-processor.d.ts +54 -0
  135. package/dist/lib/sync/marker-processor.d.ts.map +1 -0
  136. package/dist/lib/sync/marker-processor.js +208 -0
  137. package/dist/lib/sync/marker-processor.js.map +1 -0
  138. package/dist/lib/sync/marker-processor.test.d.ts +2 -0
  139. package/dist/lib/sync/marker-processor.test.d.ts.map +1 -0
  140. package/dist/lib/sync/marker-processor.test.js +245 -0
  141. package/dist/lib/sync/marker-processor.test.js.map +1 -0
  142. package/dist/lib/sync/metadata-manager.d.ts +46 -0
  143. package/dist/lib/sync/metadata-manager.d.ts.map +1 -0
  144. package/dist/lib/sync/metadata-manager.js +129 -0
  145. package/dist/lib/sync/metadata-manager.js.map +1 -0
  146. package/dist/lib/sync/metadata-manager.test.d.ts +2 -0
  147. package/dist/lib/sync/metadata-manager.test.d.ts.map +1 -0
  148. package/dist/lib/sync/metadata-manager.test.js +137 -0
  149. package/dist/lib/sync/metadata-manager.test.js.map +1 -0
  150. package/dist/lib/sync/performance.test.d.ts +2 -0
  151. package/dist/lib/sync/performance.test.d.ts.map +1 -0
  152. package/dist/lib/sync/performance.test.js +126 -0
  153. package/dist/lib/sync/performance.test.js.map +1 -0
  154. package/dist/types/index.d.ts +59 -0
  155. package/dist/types/index.d.ts.map +1 -0
  156. package/dist/types/index.js +2 -0
  157. package/dist/types/index.js.map +1 -0
  158. package/dist/types/preset-update.d.ts +106 -0
  159. package/dist/types/preset-update.d.ts.map +1 -0
  160. package/dist/types/preset-update.js +5 -0
  161. package/dist/types/preset-update.js.map +1 -0
  162. package/dist/types/sync.d.ts +169 -0
  163. package/dist/types/sync.d.ts.map +1 -0
  164. package/dist/types/sync.js +19 -0
  165. package/dist/types/sync.js.map +1 -0
  166. package/package.json +72 -0
  167. package/presets/minimal/.claude/agents/einja/docs/docs-updater.md +161 -0
  168. package/presets/minimal/.claude/agents/einja/frontend/design-engineer.md +685 -0
  169. package/presets/minimal/.claude/agents/einja/frontend/frontend-architect.md +747 -0
  170. package/presets/minimal/.claude/agents/einja/frontend/frontend-coder.md +441 -0
  171. package/presets/minimal/.claude/agents/einja/git/conflict-resolver.md +148 -0
  172. package/presets/minimal/.claude/agents/einja/specs/spec-design-generator.md +462 -0
  173. package/presets/minimal/.claude/agents/einja/specs/spec-qa-generator.md +466 -0
  174. package/presets/minimal/.claude/agents/einja/specs/spec-requirements-generator.md +416 -0
  175. package/presets/minimal/.claude/agents/einja/specs/spec-tasks-generator.md +608 -0
  176. package/presets/minimal/.claude/agents/einja/task/task-committer.md +82 -0
  177. package/presets/minimal/.claude/agents/einja/task/task-executer.md +352 -0
  178. package/presets/minimal/.claude/agents/einja/task/task-modification-analyzer.md +369 -0
  179. package/presets/minimal/.claude/agents/einja/task/task-qa.md +74 -0
  180. package/presets/minimal/.claude/agents/einja/task/task-reviewer.md +169 -0
  181. package/presets/minimal/.claude/commands/einja/frontend-implement.md +322 -0
  182. package/presets/minimal/.claude/commands/einja/spec-create.md +254 -0
  183. package/presets/minimal/.claude/commands/einja/start-dev.md +98 -0
  184. package/presets/minimal/.claude/commands/einja/sync-cursor-commands.md +203 -0
  185. package/presets/minimal/.claude/commands/einja/task-exec.md +390 -0
  186. package/presets/minimal/.claude/commands/einja/update-docs-by-task-specs.md +448 -0
  187. package/presets/minimal/.claude/hooks/einja/biome-format.sh +49 -0
  188. package/presets/minimal/.claude/hooks/einja/design-doc-check.sh +61 -0
  189. package/presets/minimal/.claude/hooks/einja/detect-secrets.sh +62 -0
  190. package/presets/minimal/.claude/hooks/einja/large-file-warning.sh +42 -0
  191. package/presets/minimal/.claude/hooks/einja/playwright-resize.sh +36 -0
  192. package/presets/minimal/.claude/hooks/einja/typecheck.sh +37 -0
  193. package/presets/minimal/.claude/hooks/einja/unset-volta-recursion.sh +32 -0
  194. package/presets/minimal/.claude/hooks/einja/validate-git-commit.sh +239 -0
  195. package/presets/minimal/.claude/hooks/einja/warn-index-ts.sh +34 -0
  196. package/presets/minimal/.claude/hooks/einja/warn-relative-import.sh +48 -0
  197. package/presets/minimal/.claude/settings.json +174 -0
  198. package/presets/minimal/.claude/skills/einja/api-development/SKILL.md +14 -0
  199. package/presets/minimal/.claude/skills/einja/backend-architecture/SKILL.md +14 -0
  200. package/presets/minimal/.claude/skills/einja/coding-standards/SKILL.md +120 -0
  201. package/presets/minimal/.claude/skills/einja/coding-standards/reference/naming-conventions.md +107 -0
  202. package/presets/minimal/.claude/skills/einja/coding-standards/reference/prohibited-patterns.md +169 -0
  203. package/presets/minimal/.claude/skills/einja/coding-standards/reference/typescript-rules.md +247 -0
  204. package/presets/minimal/.claude/skills/einja/component-design/SKILL.md +109 -0
  205. package/presets/minimal/.claude/skills/einja/component-design/reference/directory-structure.md +117 -0
  206. package/presets/minimal/.claude/skills/einja/component-design/reference/props-patterns.md +159 -0
  207. package/presets/minimal/.claude/skills/einja/component-design/reference/styling-guide.md +200 -0
  208. package/presets/minimal/.claude/skills/einja/conflict-resolver/SKILL.md +190 -0
  209. package/presets/minimal/.claude/skills/einja/frontend-development/SKILL.md +14 -0
  210. package/presets/minimal/.claude/skills/einja/general-context-loader/SKILL.md +254 -0
  211. package/presets/minimal/.claude/skills/einja/output-format/SKILL.md +137 -0
  212. package/presets/minimal/.claude/skills/einja/spec-context-loader/SKILL.md +177 -0
  213. package/presets/minimal/.claude/skills/einja/task-commit/SKILL.md +269 -0
  214. package/presets/minimal/.claude/skills/einja/task-qa/SKILL.md +306 -0
  215. package/presets/minimal/.claude/skills/einja/task-qa/reference/failure-patterns.md +69 -0
  216. package/presets/minimal/.claude/skills/einja/task-qa/reference/troubleshooting.md +65 -0
  217. package/presets/minimal/.claude/skills/einja/task-qa/reference/usage-patterns.md +52 -0
  218. package/presets/minimal/.claude/skills/einja/task-qa/templates/qa-test-template.md +128 -0
  219. package/presets/minimal/preset.yaml +111 -0
  220. package/presets/minimal/symlinks.json +45 -0
  221. package/scaffolds/.mcp.json +45 -0
  222. package/scaffolds/CLAUDE.md.template +318 -0
  223. package/scaffolds/steering/README.md +170 -0
  224. package/scaffolds/steering/acceptance-criteria-and-qa-guide.md +415 -0
  225. package/scaffolds/steering/architecture.md +481 -0
  226. package/scaffolds/steering/branch-strategy.md +362 -0
  227. package/scaffolds/steering/commit-rules.md +217 -0
  228. package/scaffolds/steering/db-schema-design.md +609 -0
  229. package/scaffolds/steering/development/api-development.md +783 -0
  230. package/scaffolds/steering/development/backend-architecture.md +731 -0
  231. package/scaffolds/steering/development/frontend-development.md +1537 -0
  232. package/scaffolds/steering/development/review-guidelines.md +365 -0
  233. package/scaffolds/steering/development/testing-strategy.md +819 -0
  234. package/scaffolds/steering/development-workflow.md +429 -0
  235. package/scaffolds/steering/infrastructure/deployment.md +277 -0
  236. package/scaffolds/steering/infrastructure/environment-variables.md +298 -0
  237. package/scaffolds/steering/product.md +540 -0
  238. package/scaffolds/steering/task-management.md +367 -0
  239. package/templates/README.md +159 -0
  240. package/templates/design-simple.md.template +172 -0
  241. package/templates/design.md.template +327 -0
  242. package/templates/qa-test.md.template +125 -0
  243. package/templates/requirements.md.template +254 -0
@@ -0,0 +1,190 @@
1
+ ---
2
+ name: conflict-resolver
3
+ description: "gitコンフリクトを解消するSkill(rebase/merge/stash/cherry-pick等に対応)"
4
+ invocation: "agent-requested"
5
+ allowed-tools:
6
+ - Bash
7
+ - Read
8
+ - Edit
9
+ - Grep
10
+ - AskUserQuestion
11
+ ---
12
+
13
+ # conflict-resolver Skill: コンフリクト解消エンジン
14
+
15
+ ## 役割
16
+
17
+ gitコンフリクト(rebase/merge/stash/cherry-pick等)を1ファイルずつユーザーに確認しながら安全に解消します。
18
+
19
+ ---
20
+
21
+ ## 実行手順
22
+
23
+ ### ステップ1: コンフリクト状態の確認
24
+
25
+ 1. コンフリクトファイルの一覧を表示:
26
+ ```bash
27
+ git diff --name-only --diff-filter=U
28
+ ```
29
+
30
+ 2. 操作タイプを判定(rebase/merge/cherry-pick/stash):
31
+ ```bash
32
+ # rebase中かどうか
33
+ test -d .git/rebase-merge || test -d .git/rebase-apply
34
+
35
+ # merge中かどうか
36
+ test -f .git/MERGE_HEAD
37
+
38
+ # cherry-pick中かどうか
39
+ test -f .git/CHERRY_PICK_HEAD
40
+ ```
41
+
42
+ 3. **10件以上の場合**: 一覧を表示し、継続するか中断するか確認
43
+
44
+ ---
45
+
46
+ ### ステップ2: 各ファイルについて1ファイルずつユーザーに確認
47
+
48
+ 各コンフリクトファイルに対して以下を実行:
49
+
50
+ 1. **双方の差分を表示**:
51
+ ```bash
52
+ git diff --ours -- <file> # HEAD側(現在のブランチ)の変更
53
+ git diff --theirs -- <file> # マージ元の変更
54
+ ```
55
+
56
+ 2. **バイナリファイルの場合**: diff表示が困難な旨を通知
57
+
58
+ 3. **ファイル内容を読み、両方の変更箇所を理解**
59
+
60
+ 4. **AskUserQuestionで各ファイルの解消方針を確認**
61
+
62
+ まず、差分内容を説明した後、以下の形式でAskUserQuestionを使用:
63
+
64
+ ```yaml
65
+ AskUserQuestion:
66
+ question: "{ファイル名}のコンフリクト解消方法を選択してください"
67
+ header: "コンフリクト解消"
68
+ options:
69
+ - label: "HEAD側を優先"
70
+ description: "現在のブランチの変更を採用。メリット: 現在の実装を維持。デメリット: マージ元の変更が失われる"
71
+ - label: "マージ元を優先"
72
+ description: "マージ元の変更を採用。メリット: 新しい変更を取り込める。デメリット: 現在の実装が上書きされる"
73
+ - label: "マージ案A(両方の変更を統合)"
74
+ description: "{具体的なマージ内容の説明}。メリット: 両方の変更を活かせる。デメリット: 統合による意図しない動作のリスク"
75
+ - label: "マージ案B(別の統合方法)"
76
+ description: "{具体的なマージ内容の説明}。メリット: {利点}。デメリット: {欠点}"
77
+ - label: "このファイルをスキップ"
78
+ description: "後で手動で解消する。メリット: 判断を保留できる。デメリット: 後で対応が必要"
79
+ - label: "操作全体を中断"
80
+ description: "rebase/merge/cherry-pickを中断する。メリット: 安全に元の状態に戻せる。デメリット: これまでの解消作業が無効になる"
81
+ ```
82
+
83
+ **重要**: 必ず各ファイルごとにAskUserQuestionを実行し、ユーザーの選択を待つこと。複数ファイルをまとめて質問しない。
84
+
85
+ ---
86
+
87
+ ### ステップ3: 確認後に解消を実行
88
+
89
+ 1. ユーザーが選択した案に従ってファイルを編集
90
+ 2. `git add <file>` でステージング
91
+ 3. 編集結果をユーザーに表示して最終確認
92
+
93
+ ---
94
+
95
+ ### ステップ4: 全ファイル解消後
96
+
97
+ 1. **残りコンフリクトの検証**:
98
+ ```bash
99
+ git diff --check
100
+ ```
101
+
102
+ 2. **操作タイプに応じて継続**:
103
+ | 操作タイプ | 継続コマンド |
104
+ |-----------|-------------|
105
+ | rebase | `git rebase --continue` |
106
+ | merge | `git commit` |
107
+ | cherry-pick | `git cherry-pick --continue` |
108
+ | stash | `git stash drop`(解消後) |
109
+
110
+ 3. 追加のコンフリクトがあればステップ2に戻る
111
+
112
+ ---
113
+
114
+ ### ステップ5: 中断・やり直しオプション
115
+
116
+ ユーザーが中断を希望した場合、操作タイプに応じて中断:
117
+
118
+ | 操作タイプ | 中断コマンド |
119
+ |-----------|-------------|
120
+ | rebase | `git rebase --abort` |
121
+ | merge | `git merge --abort` |
122
+ | cherry-pick | `git cherry-pick --abort` |
123
+ | stash | `git checkout -- .` でリセット |
124
+
125
+ ---
126
+
127
+ ## ⚠️ 禁止事項
128
+
129
+ 以下の操作は**絶対に行わない**:
130
+
131
+ - ユーザー確認なしでのコンフリクト自動解消
132
+ - `--ours`や`--theirs`オプションの無断使用
133
+ - コンフリクトマーカー(`<<<<<<<`、`=======`、`>>>>>>>`)を残したままのコミット
134
+
135
+ ---
136
+
137
+ ## 出力形式
138
+
139
+ ### 成功時
140
+
141
+ ```markdown
142
+ ## 🔧 コンフリクト解消完了
143
+
144
+ ### 解消サマリー
145
+ - **コンフリクトファイル数**: {count}個
146
+ - **操作タイプ**: [rebase / merge / cherry-pick / stash]
147
+
148
+ ### 解消ファイル一覧
149
+ | # | ファイル | 解消方法 |
150
+ |---|---------|---------|
151
+ | 1 | src/auth/login.ts | 両方の変更を取り込み |
152
+ | 2 | src/config.ts | HEAD側を優先 |
153
+
154
+ ### ステータス: ✅ SUCCESS
155
+ ```
156
+
157
+ ### 中断時
158
+
159
+ ```markdown
160
+ ## 🔧 コンフリクト解消
161
+
162
+ ### ステータス: ⏹️ ABORTED
163
+
164
+ **理由**: [ユーザーが中断を選択 / 手動解消を希望]
165
+
166
+ 操作は中断されました。以下のコマンドで状態を確認できます:
167
+ \`\`\`bash
168
+ git status
169
+ \`\`\`
170
+ ```
171
+
172
+ ### 失敗時
173
+
174
+ ```markdown
175
+ ## 🔧 コンフリクト解消
176
+
177
+ ### ステータス: ❌ FAILURE
178
+
179
+ **エラー**: [エラー内容]
180
+
181
+ \`\`\`
182
+ [エラー詳細]
183
+ \`\`\`
184
+
185
+ [推奨される対処方法]
186
+ ```
187
+
188
+ ---
189
+
190
+ **最終更新**: 2025-01-05
@@ -0,0 +1,14 @@
1
+ # フロントエンド開発ガイド Skill
2
+
3
+ name: "frontend-development"
4
+ description: "Next.js + React + Tanstack Queryを使用したフロントエンド実装のガイドライン"
5
+ invocation: "agent-requested"
6
+ version: "1.0.0"
7
+
8
+ ## 概要
9
+
10
+ このSkillは、フロントエンド実装時に参照すべきガイドラインを提供します。
11
+
12
+ ## 詳細ドキュメント
13
+
14
+ @docs/einja/steering/development/frontend-development.md
@@ -0,0 +1,254 @@
1
+ ---
2
+ name: 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. または `/spec-create` で仕様書を作成する
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
@@ -0,0 +1,137 @@
1
+ # サブエージェント出力形式 Skill
2
+
3
+ name: "output-format"
4
+ description: "サブエージェントの統一出力形式を定義"
5
+ invocation: "agent-requested"
6
+ version: "1.0.0"
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
+ ## 長い出力の取り扱い
117
+
118
+ 出力が50行を超える場合、以下の形式で表示:
119
+
120
+ ```markdown
121
+ ### サマリー
122
+ [最初の10行]
123
+
124
+ ### 詳細
125
+ <details>
126
+ <summary>全文を表示(N行)</summary>
127
+
128
+ [残りの出力全文]
129
+
130
+ </details>
131
+ ```
132
+
133
+ ## 失敗・エラー時
134
+
135
+ - **エラーステータス**: ❌ FAILURE / ⚠️ PARTIAL
136
+ - **エラー内容**: 具体的なエラーメッセージ
137
+ - **次のアクション**: 推奨される対処方法