@einja/dev-cli 0.1.9 → 0.1.11

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 (251) hide show
  1. package/README.md +30 -2
  2. package/dist/cli.js +3 -6
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/init.d.ts.map +1 -1
  5. package/dist/commands/init.js +11 -6
  6. package/dist/commands/init.js.map +1 -1
  7. package/dist/commands/list.js +1 -1
  8. package/dist/commands/list.js.map +1 -1
  9. package/dist/commands/sync.d.ts.map +1 -1
  10. package/dist/commands/sync.js +69 -7
  11. package/dist/commands/sync.js.map +1 -1
  12. package/dist/commands/sync.test.js +11 -25
  13. package/dist/commands/sync.test.js.map +1 -1
  14. package/dist/commands/task-loop/index.d.ts.map +1 -1
  15. package/dist/commands/task-loop/index.js +5 -2
  16. package/dist/commands/task-loop/index.js.map +1 -1
  17. package/dist/commands/task-loop/lib/__mocks__/child-process.mock.d.ts +227 -0
  18. package/dist/commands/task-loop/lib/__mocks__/child-process.mock.d.ts.map +1 -0
  19. package/dist/commands/task-loop/lib/__mocks__/child-process.mock.js +351 -0
  20. package/dist/commands/task-loop/lib/__mocks__/child-process.mock.js.map +1 -0
  21. package/dist/commands/task-loop/lib/__mocks__/sample-issues.d.ts +46 -0
  22. package/dist/commands/task-loop/lib/__mocks__/sample-issues.d.ts.map +1 -0
  23. package/dist/commands/task-loop/lib/__mocks__/sample-issues.js +224 -0
  24. package/dist/commands/task-loop/lib/__mocks__/sample-issues.js.map +1 -0
  25. package/dist/commands/task-loop/lib/branch-manager.d.ts.map +1 -1
  26. package/dist/commands/task-loop/lib/branch-manager.js +14 -8
  27. package/dist/commands/task-loop/lib/branch-manager.js.map +1 -1
  28. package/dist/commands/task-loop/lib/branch-manager.test.d.ts +2 -0
  29. package/dist/commands/task-loop/lib/branch-manager.test.d.ts.map +1 -0
  30. package/dist/commands/task-loop/lib/branch-manager.test.js +539 -0
  31. package/dist/commands/task-loop/lib/branch-manager.test.js.map +1 -0
  32. package/dist/commands/task-loop/lib/conflict-handler.js +1 -1
  33. package/dist/commands/task-loop/lib/conflict-handler.js.map +1 -1
  34. package/dist/commands/task-loop/lib/dependency-resolver.test.d.ts +2 -0
  35. package/dist/commands/task-loop/lib/dependency-resolver.test.d.ts.map +1 -0
  36. package/dist/commands/task-loop/lib/dependency-resolver.test.js +1129 -0
  37. package/dist/commands/task-loop/lib/dependency-resolver.test.js.map +1 -0
  38. package/dist/commands/task-loop/lib/gh-setup.d.ts.map +1 -1
  39. package/dist/commands/task-loop/lib/gh-setup.js.map +1 -1
  40. package/dist/commands/task-loop/lib/github-client.d.ts.map +1 -1
  41. package/dist/commands/task-loop/lib/github-client.js +3 -3
  42. package/dist/commands/task-loop/lib/github-client.js.map +1 -1
  43. package/dist/commands/task-loop/lib/github-client.test.d.ts +2 -0
  44. package/dist/commands/task-loop/lib/github-client.test.d.ts.map +1 -0
  45. package/dist/commands/task-loop/lib/github-client.test.js +377 -0
  46. package/dist/commands/task-loop/lib/github-client.test.js.map +1 -0
  47. package/dist/commands/task-loop/lib/issue-parser.js +4 -4
  48. package/dist/commands/task-loop/lib/issue-parser.js.map +1 -1
  49. package/dist/commands/task-loop/lib/issue-parser.test.d.ts +2 -0
  50. package/dist/commands/task-loop/lib/issue-parser.test.d.ts.map +1 -0
  51. package/dist/commands/task-loop/lib/issue-parser.test.js +854 -0
  52. package/dist/commands/task-loop/lib/issue-parser.test.js.map +1 -0
  53. package/dist/commands/task-loop/lib/pull-request-manager.d.ts +35 -0
  54. package/dist/commands/task-loop/lib/pull-request-manager.d.ts.map +1 -0
  55. package/dist/commands/task-loop/lib/pull-request-manager.js +150 -0
  56. package/dist/commands/task-loop/lib/pull-request-manager.js.map +1 -0
  57. package/dist/commands/task-loop/lib/task-number-utils.d.ts +10 -4
  58. package/dist/commands/task-loop/lib/task-number-utils.d.ts.map +1 -1
  59. package/dist/commands/task-loop/lib/task-number-utils.js +19 -10
  60. package/dist/commands/task-loop/lib/task-number-utils.js.map +1 -1
  61. package/dist/commands/task-loop/lib/task-number-utils.test.d.ts +2 -0
  62. package/dist/commands/task-loop/lib/task-number-utils.test.d.ts.map +1 -0
  63. package/dist/commands/task-loop/lib/task-number-utils.test.js +379 -0
  64. package/dist/commands/task-loop/lib/task-number-utils.test.js.map +1 -0
  65. package/dist/commands/task-loop/lib/task-state-manager.d.ts.map +1 -1
  66. package/dist/commands/task-loop/lib/task-state-manager.js +1 -1
  67. package/dist/commands/task-loop/lib/task-state-manager.js.map +1 -1
  68. package/dist/commands/task-loop/lib/task-state-manager.test.d.ts +2 -0
  69. package/dist/commands/task-loop/lib/task-state-manager.test.d.ts.map +1 -0
  70. package/dist/commands/task-loop/lib/task-state-manager.test.js +541 -0
  71. package/dist/commands/task-loop/lib/task-state-manager.test.js.map +1 -0
  72. package/dist/lib/file-system.js +1 -1
  73. package/dist/lib/file-system.js.map +1 -1
  74. package/dist/lib/mcp-config.d.ts.map +1 -1
  75. package/dist/lib/mcp-config.js +8 -4
  76. package/dist/lib/mcp-config.js.map +1 -1
  77. package/dist/lib/mcp-config.test.js +2 -2
  78. package/dist/lib/mcp-config.test.js.map +1 -1
  79. package/dist/lib/merger.d.ts.map +1 -1
  80. package/dist/lib/merger.js.map +1 -1
  81. package/dist/lib/preset-update/cli-repo-detector.test.js.map +1 -1
  82. package/dist/lib/preset-update/file-copier.d.ts +2 -0
  83. package/dist/lib/preset-update/file-copier.d.ts.map +1 -1
  84. package/dist/lib/preset-update/file-copier.js +12 -8
  85. package/dist/lib/preset-update/file-copier.js.map +1 -1
  86. package/dist/lib/preset-update/file-copier.test.js +36 -5
  87. package/dist/lib/preset-update/file-copier.test.js.map +1 -1
  88. package/dist/lib/preset-update/preset-finder.d.ts +1 -1
  89. package/dist/lib/preset-update/preset-finder.d.ts.map +1 -1
  90. package/dist/lib/preset-update/preset-finder.js +1 -1
  91. package/dist/lib/preset-update/preset-finder.js.map +1 -1
  92. package/dist/lib/preset-update/preset-finder.test.js +11 -11
  93. package/dist/lib/preset-update/preset-finder.test.js.map +1 -1
  94. package/dist/lib/preset.js +3 -3
  95. package/dist/lib/preset.js.map +1 -1
  96. package/dist/lib/sync/backup-manager.d.ts.map +1 -1
  97. package/dist/lib/sync/backup-manager.js +1 -1
  98. package/dist/lib/sync/backup-manager.js.map +1 -1
  99. package/dist/lib/sync/backup-manager.test.js +2 -2
  100. package/dist/lib/sync/backup-manager.test.js.map +1 -1
  101. package/dist/lib/sync/batch-processor.d.ts.map +1 -1
  102. package/dist/lib/sync/batch-processor.js.map +1 -1
  103. package/dist/lib/sync/batch-processor.test.js.map +1 -1
  104. package/dist/lib/sync/category-validator.d.ts.map +1 -1
  105. package/dist/lib/sync/category-validator.js.map +1 -1
  106. package/dist/lib/sync/category-validator.test.js +2 -11
  107. package/dist/lib/sync/category-validator.test.js.map +1 -1
  108. package/dist/lib/sync/conflict-reporter.d.ts.map +1 -1
  109. package/dist/lib/sync/conflict-reporter.js +1 -2
  110. package/dist/lib/sync/conflict-reporter.js.map +1 -1
  111. package/dist/lib/sync/conflict-reporter.test.js +2 -7
  112. package/dist/lib/sync/conflict-reporter.test.js.map +1 -1
  113. package/dist/lib/sync/diff-engine.d.ts.map +1 -1
  114. package/dist/lib/sync/diff-engine.js +2 -4
  115. package/dist/lib/sync/diff-engine.js.map +1 -1
  116. package/dist/lib/sync/diff-engine.test.js.map +1 -1
  117. package/dist/lib/sync/file-filter.d.ts.map +1 -1
  118. package/dist/lib/sync/file-filter.js +26 -3
  119. package/dist/lib/sync/file-filter.js.map +1 -1
  120. package/dist/lib/sync/file-filter.test.js +26 -2
  121. package/dist/lib/sync/file-filter.test.js.map +1 -1
  122. package/dist/lib/sync/hash-cache.d.ts.map +1 -1
  123. package/dist/lib/sync/hash-cache.js.map +1 -1
  124. package/dist/lib/sync/hash-cache.test.js +2 -2
  125. package/dist/lib/sync/hash-cache.test.js.map +1 -1
  126. package/dist/lib/sync/integration.test.js +289 -2
  127. package/dist/lib/sync/integration.test.js.map +1 -1
  128. package/dist/lib/sync/marker-processor.d.ts +34 -10
  129. package/dist/lib/sync/marker-processor.d.ts.map +1 -1
  130. package/dist/lib/sync/marker-processor.js +142 -41
  131. package/dist/lib/sync/marker-processor.js.map +1 -1
  132. package/dist/lib/sync/marker-processor.test.js +134 -1
  133. package/dist/lib/sync/marker-processor.test.js.map +1 -1
  134. package/dist/lib/sync/metadata-manager.d.ts.map +1 -1
  135. package/dist/lib/sync/metadata-manager.js.map +1 -1
  136. package/dist/lib/sync/metadata-manager.test.js +4 -6
  137. package/dist/lib/sync/metadata-manager.test.js.map +1 -1
  138. package/dist/lib/sync/performance.test.js +2 -2
  139. package/dist/lib/sync/performance.test.js.map +1 -1
  140. package/dist/lib/sync/seed-synchronizer.d.ts +27 -0
  141. package/dist/lib/sync/seed-synchronizer.d.ts.map +1 -0
  142. package/dist/lib/sync/seed-synchronizer.js +72 -0
  143. package/dist/lib/sync/seed-synchronizer.js.map +1 -0
  144. package/dist/lib/sync/seed-synchronizer.test.d.ts +2 -0
  145. package/dist/lib/sync/seed-synchronizer.test.d.ts.map +1 -0
  146. package/dist/lib/sync/seed-synchronizer.test.js +147 -0
  147. package/dist/lib/sync/seed-synchronizer.test.js.map +1 -0
  148. package/dist/types/index.d.ts.map +1 -1
  149. package/dist/types/preset-update.d.ts +1 -1
  150. package/dist/types/sync.d.ts +4 -2
  151. package/dist/types/sync.d.ts.map +1 -1
  152. package/dist/types/sync.js.map +1 -1
  153. package/package.json +1 -2
  154. package/presets/default/.claude/agents/einja/backend-architect.md +1131 -0
  155. package/presets/{minimal/.claude/agents/einja/frontend → default/.claude/agents/einja}/design-engineer.md +1 -1
  156. package/presets/{minimal/.claude/agents/einja/frontend → default/.claude/agents/einja}/frontend-architect.md +1 -1
  157. package/presets/{minimal/.claude/agents/einja/frontend → default/.claude/agents/einja}/frontend-coder.md +1 -37
  158. package/presets/{minimal → default}/.claude/agents/einja/task/task-committer.md +12 -6
  159. package/presets/{minimal → default}/.claude/agents/einja/task/task-executer.md +9 -9
  160. package/presets/{minimal → default}/.claude/commands/einja/frontend-implement.md +1 -1
  161. package/presets/{minimal → default}/.claude/commands/einja/update-docs-by-task-specs.md +6 -6
  162. package/presets/{minimal/.claude/skills/einja/api-development → default/.claude/skills/einja-api-development}/SKILL.md +5 -5
  163. package/presets/{minimal/.claude/skills/einja/backend-architecture → default/.claude/skills/einja-backend-architecture}/SKILL.md +5 -5
  164. package/presets/{minimal/.claude/skills/einja/coding-standards → default/.claude/skills/einja-coding-standards}/SKILL.md +6 -6
  165. package/presets/{minimal/.claude/skills/einja/component-design → default/.claude/skills/einja-component-design}/SKILL.md +6 -6
  166. package/presets/{minimal/.claude/skills/einja/frontend-development → default/.claude/skills/einja-frontend-development}/SKILL.md +5 -5
  167. package/presets/{minimal/.claude/skills/einja/output-format → default/.claude/skills/einja-output-format}/SKILL.md +54 -5
  168. package/presets/{minimal → default}/preset.yaml +1 -1
  169. package/presets/{minimal → default}/symlinks.json +10 -10
  170. package/scaffolds/cli/preset.yaml +110 -0
  171. package/scaffolds/example/README.md +35 -0
  172. package/scaffolds/example/specs/issues/issue999-example-task/design.md +879 -0
  173. package/scaffolds/example/specs/issues/issue999-example-task/qa-tests/README.md +150 -0
  174. package/scaffolds/example/specs/issues/issue999-example-task/qa-tests/phase1/1-1.md +268 -0
  175. package/scaffolds/example/specs/issues/issue999-example-task/qa-tests/phase1/1-2.md +179 -0
  176. package/scaffolds/example/specs/issues/issue999-example-task/qa-tests/phase1/1-3.md +392 -0
  177. package/scaffolds/example/specs/issues/issue999-example-task/qa-tests/phase1/evidence/.gitkeep +0 -0
  178. package/scaffolds/example/specs/issues/issue999-example-task/qa-tests/phase2/2-1.md +459 -0
  179. package/scaffolds/example/specs/issues/issue999-example-task/qa-tests/phase2/evidence/.gitkeep +0 -0
  180. package/scaffolds/example/specs/issues/issue999-example-task/qa-tests/scenarios.md +125 -0
  181. package/scaffolds/example/specs/issues/issue999-example-task/requirements.md +494 -0
  182. package/scaffolds/example/specs/issues/issue999-example-task/tasks.md +212 -0
  183. package/scaffolds/instructions/deployment-setup.md +458 -0
  184. package/scaffolds/instructions/environment-setup.md +509 -0
  185. package/scaffolds/instructions/local-server-environment-and-worktree.md +539 -0
  186. package/scaffolds/instructions/task-execute.md +649 -0
  187. package/scaffolds/instructions/task-vibe-kanban-loop.md +495 -0
  188. package/scaffolds/memory/archive/.gitkeep +0 -0
  189. package/scaffolds/memory/decisions.md +35 -0
  190. package/scaffolds/memory/patterns.md +37 -0
  191. package/scaffolds/steering/README.md +42 -0
  192. package/scaffolds/steering/acceptance-criteria-and-qa-guide.md +11 -0
  193. package/scaffolds/steering/architecture.md +11 -0
  194. package/scaffolds/steering/branch-strategy.md +11 -0
  195. package/scaffolds/steering/commit-rules.md +12 -1
  196. package/scaffolds/steering/db-schema-design.md +11 -0
  197. package/scaffolds/steering/development/api-development.md +15 -4
  198. package/scaffolds/steering/development/backend-architecture.md +11 -0
  199. package/scaffolds/steering/development/frontend-development.md +11 -0
  200. package/scaffolds/steering/development/review-guidelines.md +11 -0
  201. package/scaffolds/steering/development/testing-strategy.md +85 -0
  202. package/scaffolds/steering/development-workflow.md +11 -0
  203. package/scaffolds/steering/infrastructure/deployment.md +11 -0
  204. package/scaffolds/steering/infrastructure/environment-variables.md +11 -0
  205. package/scaffolds/steering/product.md +11 -0
  206. package/scaffolds/steering/task-management.md +11 -0
  207. package/scaffolds/CLAUDE.md.template +0 -386
  208. /package/presets/{minimal → default}/.claude/agents/einja/docs/docs-updater.md +0 -0
  209. /package/presets/{minimal → default}/.claude/agents/einja/git/conflict-resolver.md +0 -0
  210. /package/presets/{minimal → default}/.claude/agents/einja/specs/spec-design-generator.md +0 -0
  211. /package/presets/{minimal → default}/.claude/agents/einja/specs/spec-qa-generator.md +0 -0
  212. /package/presets/{minimal → default}/.claude/agents/einja/specs/spec-requirements-generator.md +0 -0
  213. /package/presets/{minimal → default}/.claude/agents/einja/specs/spec-tasks-generator.md +0 -0
  214. /package/presets/{minimal → default}/.claude/agents/einja/task/task-modification-analyzer.md +0 -0
  215. /package/presets/{minimal → default}/.claude/agents/einja/task/task-qa.md +0 -0
  216. /package/presets/{minimal → default}/.claude/agents/einja/task/task-reviewer.md +0 -0
  217. /package/presets/{minimal → default}/.claude/commands/einja/spec-create.md +0 -0
  218. /package/presets/{minimal → default}/.claude/commands/einja/start-dev.md +0 -0
  219. /package/presets/{minimal → default}/.claude/commands/einja/sync-cursor-commands.md +0 -0
  220. /package/presets/{minimal → default}/.claude/commands/einja/task-exec.md +0 -0
  221. /package/presets/{minimal → default}/.claude/hooks/einja/biome-format.sh +0 -0
  222. /package/presets/{minimal → default}/.claude/hooks/einja/design-doc-check.sh +0 -0
  223. /package/presets/{minimal → default}/.claude/hooks/einja/detect-secrets.sh +0 -0
  224. /package/presets/{minimal → default}/.claude/hooks/einja/large-file-warning.sh +0 -0
  225. /package/presets/{minimal → default}/.claude/hooks/einja/playwright-resize.sh +0 -0
  226. /package/presets/{minimal → default}/.claude/hooks/einja/typecheck.sh +0 -0
  227. /package/presets/{minimal → default}/.claude/hooks/einja/unset-volta-recursion.sh +0 -0
  228. /package/presets/{minimal → default}/.claude/hooks/einja/validate-git-commit.sh +0 -0
  229. /package/presets/{minimal → default}/.claude/hooks/einja/warn-index-ts.sh +0 -0
  230. /package/presets/{minimal → default}/.claude/hooks/einja/warn-relative-import.sh +0 -0
  231. /package/presets/{minimal → default}/.claude/settings.json +0 -0
  232. /package/presets/{minimal/.claude/skills/einja/coding-standards → default/.claude/skills/einja-coding-standards}/reference/naming-conventions.md +0 -0
  233. /package/presets/{minimal/.claude/skills/einja/coding-standards → default/.claude/skills/einja-coding-standards}/reference/prohibited-patterns.md +0 -0
  234. /package/presets/{minimal/.claude/skills/einja/coding-standards → default/.claude/skills/einja-coding-standards}/reference/typescript-rules.md +0 -0
  235. /package/presets/{minimal/.claude/skills/einja/component-design → default/.claude/skills/einja-component-design}/reference/directory-structure.md +0 -0
  236. /package/presets/{minimal/.claude/skills/einja/component-design → default/.claude/skills/einja-component-design}/reference/props-patterns.md +0 -0
  237. /package/presets/{minimal/.claude/skills/einja/component-design → default/.claude/skills/einja-component-design}/reference/styling-guide.md +0 -0
  238. /package/presets/{minimal/.claude/skills/einja/conflict-resolver → default/.claude/skills/einja-conflict-resolver}/SKILL.md +0 -0
  239. /package/presets/{minimal/.claude/skills/einja/general-context-loader → default/.claude/skills/einja-general-context-loader}/SKILL.md +0 -0
  240. /package/presets/{minimal/.claude/skills/einja/spec-context-loader → default/.claude/skills/einja-spec-context-loader}/SKILL.md +0 -0
  241. /package/presets/{minimal/.claude/skills/einja/task-commit → default/.claude/skills/einja-task-commit}/SKILL.md +0 -0
  242. /package/presets/{minimal/.claude/skills/einja/task-qa → default/.claude/skills/einja-task-qa}/SKILL.md +0 -0
  243. /package/presets/{minimal/.claude/skills/einja/task-qa → default/.claude/skills/einja-task-qa}/reference/failure-patterns.md +0 -0
  244. /package/presets/{minimal/.claude/skills/einja/task-qa → default/.claude/skills/einja-task-qa}/reference/troubleshooting.md +0 -0
  245. /package/presets/{minimal/.claude/skills/einja/task-qa → default/.claude/skills/einja-task-qa}/reference/usage-patterns.md +0 -0
  246. /package/presets/{minimal/.claude/skills/einja/task-qa → default/.claude/skills/einja-task-qa}/templates/qa-test-template.md +0 -0
  247. /package/{templates → scaffolds/templates}/README.md +0 -0
  248. /package/{templates → scaffolds/templates}/design-simple.md.template +0 -0
  249. /package/{templates → scaffolds/templates}/design.md.template +0 -0
  250. /package/{templates → scaffolds/templates}/qa-test.md.template +0 -0
  251. /package/{templates → scaffolds/templates}/requirements.md.template +0 -0
@@ -1,386 +0,0 @@
1
- # Claude Code 指示書
2
- - 回答は日本語で行ってください。
3
- - 必ずこのドキュメントの通りに作業を行ってください。
4
-
5
- ## 役割と動作原則
6
-
7
- **あなたはマネージャーでありagentオーケストレーターです。**
8
-
9
- ### 絶対ルール
10
- - **あなたは絶対に直接実装を行わない**
11
- - すべての作業はsubagentに委託すること
12
- - 可能な限りsubagentは並行で呼び出すこと
13
- - サブエージェントを呼び出している際、サブエージェントからの出力はユーザにも見える場所に出力すること
14
-
15
- ### サブエージェント委託ルール
16
-
17
- | 作業 | 委託先 |
18
- |------|--------|
19
- | コミット・プッシュ | `task-committer` |
20
- | コンフリクト解消 | `conflict-resolver` |
21
- | コード実装 | `task-executer` |
22
- | 品質検証(QA) | `task-qa` |
23
- | 実装レビュー | `task-reviewer` |
24
-
25
- ## コード変更時の動作方針
26
-
27
- **【厳守事項】コード変更の指示があった場合、絶対に即座に実装を開始してはならない。**
28
-
29
- ### 必須フロー
30
- 1. 問題・要件を調査・分析する
31
- 2. 修正計画を提示する
32
- 3. **ユーザーの明示的な承認を得る**
33
- 4. 承認後に実装を開始する
34
-
35
- ### 例外(承認不要)
36
- - 読み取り専用操作(質問への回答、情報調査、コード調査)
37
-
38
- ### 提案文言
39
- 「この変更について、まずPlanモードで計画を立てて提示しましょうか?」
40
-
41
- **注意**: この規則は新規セッションだけでなく、セッション継続中のすべてのコード変更に適用される。ユーザーが「直して」「修正して」「なおしたい」等と言った場合も、必ず計画を提示して承認を得ること。
42
-
43
- ## gitコンフリクト発生時の対応
44
-
45
- **【必須】** gitコンフリクトが発生した場合、必ず `.claude/skills/einja/conflict-resolver/SKILL.md` の手順に従うこと。
46
-
47
- ## プロジェクト構成
48
-
49
- このプロジェクトは**Turborepo**を使用したモノレポ構成になっています。
50
-
51
- ```
52
- einja-management-template/
53
- ├── apps/
54
- │ └── web/ # メイン管理画面アプリ
55
- │ ├── src/
56
- │ │ ├── app/ # Next.js App Router
57
- │ │ ├── components/ # アプリ固有のコンポーネント
58
- │ │ └── lib/
59
- │ │ ├── auth/ # アプリ固有の認証設定
60
- │ │ └── ... # アプリ固有のユーティリティ
61
- │ ├── package.json
62
- │ └── tsconfig.json
63
- ├── packages/
64
- │ ├── config/ # 共通設定(Biome, TypeScript, Panda CSS)
65
- │ ├── front-core/ # フロントエンド共通層
66
- │ │ └── src/
67
- │ │ ├── auth/ # NextAuth共通設定・型定義
68
- │ │ ├── hooks/ # 共通hooks(将来拡張用)
69
- │ │ ├── utils/ # 共通ユーティリティ(将来拡張用)
70
- │ │ └── context/ # 共通context(将来拡張用)
71
- │ ├── server-core/ # バックエンド共通層
72
- │ │ ├── prisma/ # Prismaスキーマ
73
- │ │ └── src/
74
- │ │ ├── domain/ # ドメイン層(将来拡張用)
75
- │ │ ├── infrastructure/ # Prismaクライアント等
76
- │ │ └── utils/ # 共通ユーティリティ
77
- │ └── ui/ # 共通UIコンポーネント(shadcn/ui)
78
- ├── turbo.json # Turborepoの設定
79
- ├── pnpm-workspace.yaml # pnpmワークスペース設定
80
- └── package.json # ルートpackage.json
81
- ```
82
-
83
- ## 開発環境セットアップ
84
-
85
- ### データベース起動(PostgreSQL):
86
- ```bash
87
- # PostgreSQLコンテナを起動(ポート25432)
88
- docker-compose up -d postgres
89
-
90
- # データベースの状態確認
91
- docker-compose ps
92
-
93
- # データベース停止
94
- docker-compose down
95
- ```
96
-
97
- **注意**: DockerのPostgreSQLはポート**25432**を使用します(全ワークツリーで共有)。
98
-
99
- ### アプリケーション開発:
100
- ```bash
101
- # 依存関係のインストール(pnpm使用)
102
- {{INSTALL_COMMAND}}
103
-
104
- # 初回セットアップ(.env作成、DB起動・初期化)
105
- pnpm dev:setup
106
-
107
- # 開発サーバー起動(バックグラウンド実行・ログはlog/dev.logに出力)
108
- {{DEV_BG_COMMAND}}
109
- ```
110
-
111
- > **注意**: `pnpm dev:setup` は初回のみ必要です。2回目以降は `{{DEV_BG_COMMAND}}` のみで起動できます。
112
-
113
- ### 開発サーバー管理:
114
- ```bash
115
- {{DEV_BG_COMMAND}} # バックグラウンドで起動(推奨)
116
- pnpm dev:status # サーバーの状態確認
117
- pnpm dev:logs # ログをリアルタイム表示
118
- pnpm dev:stop # サーバーを停止
119
- {{DEV_COMMAND}} # フォアグラウンドで起動(ターミナル直接操作時のみ)
120
- ```
121
-
122
- ### 環境変数の設定・変更:
123
- ```bash
124
- pnpm env:update # 対話式ウィザードで環境変数を設定
125
- ```
126
-
127
- ウィザードで個人トークン設定、チーム共有設定の変更、状態確認ができます。
128
-
129
- ### Worktree開発(複数ブランチ並行開発):
130
-
131
- Git worktreeを使用して複数のブランチを並行して開発する場合、以下のコマンドを使用します。
132
-
133
- ```bash
134
- # Worktree環境をセットアップして開発サーバーを起動(推奨)
135
- {{DEV_BG_COMMAND}}
136
-
137
- # セットアップのみ(開発サーバーは手動で起動)
138
- pnpm env:prepare
139
- ```
140
-
141
- **仕組み:**
142
- - ブランチ名からSHA-256ハッシュを計算し、一意なポート番号を自動割り当て(3000-3999)
143
- - PostgreSQLは全ワークツリーで共有(ポート25432固定)
144
- - データベース名はブランチ名から自動生成(例: `main`, `feature_auth`)
145
- - `.env.local`に環境変数が自動設定される
146
-
147
- **ポート番号の例:**
148
- | ブランチ名 | Webポート | データベース |
149
- |-----------|----------|-------------|
150
- | main | 3195 | main |
151
- | feature/auth | 3122 | feature_auth |
152
-
153
- ### 主要な開発コマンド:
154
- - `{{DEV_BG_COMMAND}}` - 開発サーバーをバックグラウンドで起動(推奨・ログはlog/dev.log)
155
- - `pnpm dev:status` - 開発サーバーの状態確認
156
- - `pnpm dev:stop` - 開発サーバーを停止
157
- - `{{BUILD_COMMAND}}` - 全アプリのプロダクションビルド
158
- - `{{START_COMMAND}}` - プロダクションサーバーを起動
159
-
160
- ### コード品質チェックコマンド:
161
- - `{{LINT_COMMAND}}` - Biome linterでコードをチェック(全ワークスペース)
162
- - `{{LINT_COMMAND}}:fix` - Biomeで自動的にlintの問題を修正
163
- - `{{FORMAT_COMMAND}}` - Biomeでコードフォーマットをチェック
164
- - `{{FORMAT_COMMAND}}:fix` - Biomeでコードを自動フォーマット
165
- - `{{TYPE_CHECK_COMMAND}}` - TypeScriptの型チェック(全ワークスペース)
166
-
167
- ### テスト:
168
- - `{{TEST_COMMAND}}` - Vitestでテスト実行(全ワークスペース)
169
- - `{{TEST_COMMAND}}:watch` - Vitestウォッチモード
170
- - `{{TEST_COMMAND}}:ui` - Vitest UIモード
171
- - `{{TEST_COMMAND}}:coverage` - カバレッジ付きテスト
172
- - Playwrightで Chromiumブラウザーテスト
173
-
174
- ## アーキテクチャ
175
-
176
- ### モノレポ構成:
177
- - **Turborepo** による高速ビルド・タスク実行
178
- - **pnpm workspaces** によるパッケージ管理
179
- - ワークスペース間の依存関係管理
180
-
181
- ### パッケージ構成:
182
- - `@repo/config` - 共通設定(Biome, TypeScript, Panda CSS)
183
- - `@repo/front-core` - フロントエンド共通層(認証共通設定、hooks、utils、context)
184
- - `@repo/server-core` - バックエンド共通層(Prismaクライアント・スキーマ、ドメインロジック)
185
- - `@repo/ui` - 共通UIコンポーネント(shadcn/ui)
186
- - `@repo/web` - メイン管理画面アプリケーション
187
-
188
- ### スタイリングシステム:
189
- - **Panda CSS** でデザイントークンとレシピを使用したスタイリング
190
- - タイプセーフなスタイル生成によるCSS-in-JS
191
- - スタイルコンポーネントは `apps/web/src/styled-system/` ディレクトリに出力
192
- - カスタムブレークポイント: sm(640px), md(768px), lg(1024px), xl(1280px), 2xl(1440px)
193
-
194
- ### コード品質:
195
- - **Biome** でlintingとフォーマット(スペース2つインデント、ダブルクォート)
196
- - Huskyのpre-commitフックとlint-staged
197
- - `styled-system/` ディレクトリをフォーマット/lintingから除外
198
-
199
- ### フレームワーク設定:
200
- - Next.js 15 with App Router
201
- - React 19
202
- - TypeScript(strict型チェック)
203
- - pnpmによるパッケージ管理
204
- - Voltaまたはfnmを使用したNode.jsバージョン管理 (v22.16.0)
205
-
206
- ### 特記事項:
207
- - プロダクションビルド前に必ず`panda codegen`を実行
208
- - Biomeはスペース2つインデントとダブルクォートを使用
209
- - ビルド時はESLintを無効化(代わりにBiomeを使用)
210
- - Turborepoのキャッシュ機能で高速ビルド
211
-
212
- ## インポートパスの規約
213
-
214
- ### パッケージ間のインポート
215
- ```typescript
216
- // 認証機能(共通設定)
217
- import { baseAuthOptions, mergeAuthOptions } from "@repo/front-core/auth";
218
-
219
- // 認証機能(アプリローカル)
220
- import { auth, signIn, signOut } from "@/lib/auth";
221
- import { requireAuth, withAuth } from "@/lib/auth/guard";
222
-
223
- // データベース
224
- import { prisma } from "@repo/server-core";
225
-
226
- // UIコンポーネント
227
- import { Button } from "@repo/ui/button";
228
- import { Card } from "@repo/ui/card";
229
- import { cn } from "@repo/ui/utils";
230
-
231
- // 型定義
232
- import type { Session } from "next-auth"; // 型拡張はfront-coreで定義済み
233
- ```
234
-
235
- ### アプリ内のインポート
236
- ```typescript
237
- // apps/web内では従来通り@/を使用
238
- import { Component } from "@/components/...";
239
- import { helper } from "@/lib/...";
240
- ```
241
-
242
- ### 認証設定のパターン
243
- アプリ固有の認証設定は `@/lib/auth/index.ts` で `baseAuthOptions` を拡張します:
244
- ```typescript
245
- import { baseAuthOptions, mergeAuthOptions } from "@repo/front-core/auth";
246
- import NextAuth from "next-auth";
247
-
248
- const authOptions = mergeAuthOptions(baseAuthOptions, {
249
- pages: { signIn: "/signin" }, // アプリ固有
250
- callbacks: {
251
- async redirect({ url, baseUrl }) {
252
- // アプリ固有のリダイレクトロジック
253
- },
254
- },
255
- });
256
-
257
- export const { handlers, signIn, signOut, auth } = NextAuth(authOptions);
258
- ```
259
-
260
- ## AskUserQuestion ツールの使用
261
-
262
- 選択肢を提示してユーザーに質問する場合は、**必ず AskUserQuestion ツール**を使用してください。
263
-
264
- ### 使用必須シーン
265
- - 複数の実装方法・設計アプローチがある場合
266
- - 重要な判断(コミット分割、リファクタリング方針など)
267
- - 破壊的な操作の前
268
-
269
- ### 提示形式
270
- - テーブル形式: 複数項目の比較
271
- - 番号付きリスト: 詳細説明が必要な場合
272
- - 推奨オプションには `(推奨)` と理由を付記
273
-
274
- ## サブエージェント結果報告のルール
275
-
276
- サブエージェントの出力形式は **@.claude/skills/einja/output-format/SKILL.md** に定義されています。
277
-
278
- ### 必須要件
279
- - サブエージェントの最終出力は**そのまま全文**をユーザーに表示する
280
- - 省略・要約・言い換えは**禁止**
281
-
282
- ### サブエージェント呼び出し時の必須指示
283
-
284
- 出力形式が定義されているサブエージェント(frontend-architect、design-engineer、frontend-coder)を呼び出す際は、**プロンプトの末尾に出力形式テンプレートを直接埋め込むこと**。
285
-
286
- #### frontend-architect 呼び出し時
287
-
288
- プロンプト末尾に以下を追加:
289
-
290
- ```
291
- ---
292
- **【必須】以下の形式で報告してください。この形式以外は不可:**
293
-
294
- ## 🏗️ アーキテクチャ設計完了
295
-
296
- ### タスク: [機能名/画面名]
297
-
298
- ### 設計結果: [✅ SUCCESS / ⚠️ PARTIAL / ❌ FAILURE]
299
-
300
- ### 設計サマリー
301
- - **コンポーネント数**: N個
302
- - **カスタムHooks数**: M個
303
- - **新規ディレクトリ**: K個
304
-
305
- ### コンポーネント構造
306
- [ディレクトリ構造図]
307
-
308
- ### 状態管理戦略
309
- | 状態種別 | 管理方法 | 対象データ |
310
- |---------|---------|----------|
311
-
312
- ### 技術選定
313
- - **[決定1]**: [選定理由]
314
-
315
- ### 次のステップ
316
- [後続処理の説明]
317
- ```
318
-
319
- #### design-engineer 呼び出し時
320
-
321
- プロンプト末尾に以下を追加:
322
-
323
- ```
324
- ---
325
- **【必須】以下の形式で報告してください。この形式以外は不可:**
326
-
327
- ## 🎨 デザインエンジニアリング完了
328
-
329
- ### タスク: [タスク名/コンポーネント名]
330
-
331
- ### 実装結果: [✅ SUCCESS / ⚠️ PARTIAL / ❌ FAILURE]
332
-
333
- ### 抽出したデザイントークン
334
- | カテゴリ | 項目数 | 主な値 |
335
- |---------|-------|-------|
336
-
337
- ### 生成/更新したファイル
338
- - **新規作成**: N個
339
- - **編集**: M個
340
-
341
- ### 次のステップ
342
- [後続処理の説明]
343
- ```
344
-
345
- #### frontend-coder 呼び出し時
346
-
347
- プロンプト末尾に以下を追加:
348
-
349
- ```
350
- ---
351
- **【必須】以下の形式で報告してください。この形式以外は不可:**
352
-
353
- ## 💻 フロントエンド実装完了
354
-
355
- ### タスク: [タスクID] - [タスク名]
356
-
357
- ### 実装結果: [✅ SUCCESS / ⚠️ PARTIAL / ❌ FAILURE]
358
-
359
- ### 実装サマリー
360
- - **新規作成**: N個のファイル
361
- - **編集**: M個のファイル
362
-
363
- ### 主要な実装内容
364
- 1. [実装した主要機能]
365
-
366
- ### ファイル一覧
367
- | ファイル | 説明/変更内容 |
368
- |---------|--------------|
369
-
370
- ### 次のステップ
371
- [後続処理の説明]
372
- ```
373
-
374
- ## 追加指示
375
-
376
- 以下のドキュメントも参照して作業を進めてください:
377
-
378
- - @.claude/skills/einja/coding-standards/SKILL.md - コーディング規約
379
- - @.claude/skills/einja/component-design/SKILL.md - コンポーネント設計ガイドライン
380
- - @docs/einja/steering/commit-rules.md - コミットルール・ブランチ戦略
381
- - @docs/einja/steering/development/testing-strategy.md - Vitestを使用したテスト戦略
382
- - @docs/einja/steering/development/review-guidelines.md - コードレビューのガイドライン
383
- - @docs/einja/memory/decisions.md - 過去の意思決定記録(セッション跨ぎで継承)
384
- - @docs/einja/memory/patterns.md - 再利用可能なパターン(セッション跨ぎで継承)
385
-
386
-
File without changes