@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,6 +1,7 @@
1
+ <!-- @einja:managed:start -->
1
2
  # コミットルール
2
3
 
3
- ## 重要:コミット分割ルールの厳守について
4
+ ## 重要:コミット分割ルールの厳守について
4
5
 
5
6
  - コミット分割ルールに違反した場合、重大なレビュープロセス阻害・履歴管理上の問題となるため、**絶対に違反しないこと**
6
7
  - 万一違反が発生した場合は、必ず即座に報告し、再発防止策(作業前の分割計画明示・コミット粒度の事前確認など)を徹底すること
@@ -215,3 +216,13 @@ git push
215
216
  ## まとめ
216
217
 
217
218
  コミットルールの遵守は、プロジェクトの履歴管理とレビュープロセスの効率化に直結します。全ての開発者・AIアシスタントは、これらのルールを例外なく厳守してください。
219
+ <!-- @einja:managed:end -->
220
+
221
+ ---
222
+
223
+ <!-- @einja:seed:start id="commit-rules-project" -->
224
+ ## プロジェクト固有の設定
225
+
226
+ <!-- このセクションはプロジェクト固有の内容を追記する場所です -->
227
+ <!-- einja syncで上書きされません -->
228
+ <!-- @einja:seed:end -->
@@ -1,3 +1,4 @@
1
+ <!-- @einja:managed:start -->
1
2
  # スキーマ設計
2
3
 
3
4
  TODO
@@ -607,3 +608,13 @@ pnpm db:seed
607
608
  5. **スケーラビリティ**: PostgreSQLとPrismaの組み合わせによる高いスケーラビリティ
608
609
 
609
610
  すべてのスキーマ変更は、このガイドラインに従って実装してください。
611
+ <!-- @einja:managed:end -->
612
+
613
+ ---
614
+
615
+ <!-- @einja:seed:start id="db-schema-design-project" -->
616
+ ## プロジェクト固有の設定
617
+
618
+ <!-- このセクションはプロジェクト固有の内容を追記する場所です -->
619
+ <!-- einja syncで上書きされません -->
620
+ <!-- @einja:seed:end -->
@@ -1,3 +1,4 @@
1
+ <!-- @einja:managed:start -->
1
2
  # API開発ガイド
2
3
 
3
4
  ## 概要
@@ -41,8 +42,8 @@ apps/admin/app/api/[[...route]]/route.ts # Admin API
41
42
 
42
43
  **ルート定義の配置**:
43
44
  ```
44
- apps/web/server/routes/ # Webアプリ用ルート定義
45
- apps/admin/server/routes/ # 管理画面用ルート定義
45
+ apps/web/server/presentation/routes/ # Webアプリ用ルート定義(Presentation層)
46
+ apps/admin/server/presentation/routes/ # 管理画面用ルート定義(Presentation層)
46
47
  ```
47
48
 
48
49
  ### メソッドチェーンパターン
@@ -102,7 +103,7 @@ apiClient.posts.$get() // ❌ NG(型エラー)
102
103
  **使用例**:
103
104
 
104
105
  ```typescript
105
- // apps/web/server/routes/postRoutes.ts
106
+ // apps/web/server/presentation/routes/postRoutes.ts
106
107
  import { Hono } from 'hono'
107
108
  import { zValidator } from '@hono/zod-validator'
108
109
  import { createPostSchema } from '@repo/server-core/domain/validators/post'
@@ -701,7 +702,7 @@ Worktreeごとに異なるポートを使用するため、MD5ハッシュベー
701
702
  **ルート定義**:
702
703
 
703
704
  ```typescript
704
- // apps/web/server/routes/postRoutes.ts
705
+ // apps/web/server/presentation/routes/postRoutes.ts
705
706
  import { Hono } from 'hono'
706
707
  import { zValidator } from '@hono/zod-validator'
707
708
  import { createPostSchema } from '@repo/server-core/domain/validators/post'
@@ -781,3 +782,13 @@ export type AppType = typeof app
781
782
  4. **柔軟性**: Server ActionsとHono Client + Tanstack Queryの使い分け
782
783
 
783
784
  すべてのAPI実装は、このガイドラインに従って実装してください。
785
+ <!-- @einja:managed:end -->
786
+
787
+ ---
788
+
789
+ <!-- @einja:seed:start id="api-development-project" -->
790
+ ## プロジェクト固有の設定
791
+
792
+ <!-- このセクションはプロジェクト固有の内容を追記する場所です -->
793
+ <!-- einja syncで上書きされません -->
794
+ <!-- @einja:seed:end -->
@@ -1,3 +1,4 @@
1
+ <!-- @einja:managed:start -->
1
2
  # バックエンドアーキテクチャ
2
3
 
3
4
  ## タスク: Turborepo Next.js モノレポ構築 (20251104)
@@ -729,3 +730,13 @@ if (process.env.NODE_ENV !== "production") globalForPrisma.prisma = prisma
729
730
  ✅ **index.ts不使用**: シンプルで拡張しやすいモジュール管理
730
731
 
731
732
  すべての開発者は、この設計原則に従ってバックエンド開発を行ってください。
733
+ <!-- @einja:managed:end -->
734
+
735
+ ---
736
+
737
+ <!-- @einja:seed:start id="backend-architecture-project" -->
738
+ ## プロジェクト固有の設定
739
+
740
+ <!-- このセクションはプロジェクト固有の内容を追記する場所です -->
741
+ <!-- einja syncで上書きされません -->
742
+ <!-- @einja:seed:end -->
@@ -1,3 +1,4 @@
1
+ <!-- @einja:managed:start -->
1
2
  # フロントエンド開発ガイド
2
3
 
3
4
  ## 概要
@@ -1535,3 +1536,13 @@ export function PostCreateForm() {
1535
1536
  - バンドルサイズを最小限に抑える
1536
1537
 
1537
1538
  このガイドラインに従うことで、高速で保守性の高いモダンなWebアプリケーションを構築できます。
1539
+ <!-- @einja:managed:end -->
1540
+
1541
+ ---
1542
+
1543
+ <!-- @einja:seed:start id="frontend-development-project" -->
1544
+ ## プロジェクト固有の設定
1545
+
1546
+ <!-- このセクションはプロジェクト固有の内容を追記する場所です -->
1547
+ <!-- einja syncで上書きされません -->
1548
+ <!-- @einja:seed:end -->
@@ -1,3 +1,4 @@
1
+ <!-- @einja:managed:start -->
1
2
  # 実装レビューガイドライン
2
3
 
3
4
  このドキュメントは、task-reviewerエージェントおよび開発者が実装レビューを行う際の観点を定義します。
@@ -363,3 +364,13 @@ task-reviewerエージェントは以下の4観点を**Taskツールで並列に
363
364
  - **継続的改善**: 完璧ではなく、システム全体の健全性向上を重視
364
365
  - **好みと良し悪しの区別**: 客観的な改善提案と主観的な好みを明確に区別
365
366
  - **トレードオフの考慮**: パフォーマンス、可読性、保守性のバランスを考慮
367
+ <!-- @einja:managed:end -->
368
+
369
+ ---
370
+
371
+ <!-- @einja:seed:start id="review-guidelines-project" -->
372
+ ## プロジェクト固有の設定
373
+
374
+ <!-- このセクションはプロジェクト固有の内容を追記する場所です -->
375
+ <!-- einja syncで上書きされません -->
376
+ <!-- @einja:seed:end -->
@@ -1,3 +1,4 @@
1
+ <!-- @einja:managed:start -->
1
2
  # テスト戦略
2
3
 
3
4
  ## 概要
@@ -72,6 +73,80 @@ TDD採用が推奨される場合(ビジネスロジック、データ変換
72
73
  - **Red-Green-Refactor**: TDDの実施サイクル(どう進めるか)
73
74
  - 組み合わせ: 「Red-Green-RefactorサイクルでGiven-When-Then形式のテストを書く」
74
75
 
76
+ ### テストコードスタイル
77
+
78
+ テストコードの一貫性と可読性を確保するため、以下のスタイルルールに従ってください。
79
+
80
+ #### describe構造
81
+
82
+ ```typescript
83
+ describe('対象クラス/関数名', () => {
84
+ describe('メソッド名', () => {
85
+ // 正常系テスト
86
+ it('条件を満たすと、期待する結果になる', () => {})
87
+ })
88
+
89
+ describe('メソッド名 - 異常系', () => {
90
+ // 異常系テスト
91
+ it('不正な条件の場合、エラーが発生する', () => {})
92
+ })
93
+ })
94
+ ```
95
+
96
+ #### describe分類ルール
97
+
98
+ | レベル | 分類基準 | 例 |
99
+ |--------|---------|-----|
100
+ | 1階層 | 対象クラス/関数名 | `describe('UserRepository', ...)` |
101
+ | 2階層 | メソッド名 or 機能名 | `describe('create', ...)` |
102
+ | 2階層 | 正常系/異常系 | `describe('create - 異常系', ...)` |
103
+ | 3階層 | 着眼点ごと(任意) | `describe('バリデーション', ...)` |
104
+
105
+ #### it説明文のフォーマット
106
+
107
+ **必須形式**: 「〜すると、〜になる」(条件 → 結果)
108
+
109
+ ```typescript
110
+ // ✅ 良い例
111
+ it('有効なメールアドレスを渡すと、ユーザーが作成される', () => {})
112
+ it('存在しないIDで検索すると、nullが返る', () => {})
113
+ it('重複したメールアドレスの場合、エラーが返る', () => {})
114
+
115
+ // ❌ 悪い例
116
+ it('ユーザー作成', () => {}) // 条件・結果が不明
117
+ it('should create user', () => {}) // 英語(日本語プロジェクト)
118
+ it('createが動作する', () => {}) // 結果が曖昧
119
+ ```
120
+
121
+ #### Given-When-Thenコメント
122
+
123
+ **必須**: テストコード内部は `// Given:` `// When:` `// Then:` コメントで構造化する
124
+
125
+ ```typescript
126
+ it('有効なユーザーデータを渡すと、ユーザーが作成される', async () => {
127
+ // Given: 有効なユーザーデータ
128
+ const userData = {
129
+ email: 'test@example.com',
130
+ name: 'Test User',
131
+ }
132
+
133
+ // When: createメソッドを呼び出す
134
+ const result = await userRepository.create(userData)
135
+
136
+ // Then: 成功結果が返る
137
+ expect(result.isSuccess).toBe(true)
138
+ })
139
+ ```
140
+
141
+ #### チェックリスト
142
+
143
+ 新しいテストを書く際の確認事項:
144
+
145
+ - [ ] describe が適切に階層化されている
146
+ - [ ] it 説明文が「〜すると、〜になる」形式
147
+ - [ ] Given-When-Then コメントで構造化されている
148
+ - [ ] 正常系と異常系が分離されている
149
+
75
150
  ---
76
151
 
77
152
  ## 2. ユニットテスト
@@ -817,3 +892,13 @@ describe('UserUseCase', () => {
817
892
  5. **効率性**: Vitestによる高速なテスト実行
818
893
 
819
894
  すべてのテストは、このガイドラインに従って実装してください。
895
+ <!-- @einja:managed:end -->
896
+
897
+ ---
898
+
899
+ <!-- @einja:seed:start id="testing-strategy-project" -->
900
+ ## プロジェクト固有の設定
901
+
902
+ <!-- このセクションはプロジェクト固有の内容を追記する場所です -->
903
+ <!-- einja syncで上書きされません -->
904
+ <!-- @einja:seed:end -->
@@ -1,3 +1,4 @@
1
+ <!-- @einja:managed:start -->
1
2
  # 開発ワークフロー
2
3
 
3
4
  このドキュメントでは、仕様書作成からタスク実行・レビュー・マージまでの開発フロー全体を説明します。
@@ -427,3 +428,13 @@ PRがマージされるとタスクは自動的にDoneになります。
427
428
  [後続処理の説明]
428
429
  \`\`\`
429
430
  ```
431
+ <!-- @einja:managed:end -->
432
+
433
+ ---
434
+
435
+ <!-- @einja:seed:start id="development-workflow-project" -->
436
+ ## プロジェクト固有の設定
437
+
438
+ <!-- このセクションはプロジェクト固有の内容を追記する場所です -->
439
+ <!-- einja syncで上書きされません -->
440
+ <!-- @einja:seed:end -->
@@ -1,3 +1,4 @@
1
+ <!-- @einja:managed:start -->
1
2
  # デプロイメント・CI/CD設計方針
2
3
 
3
4
  ## 概要
@@ -275,3 +276,13 @@ sequenceDiagram
275
276
  - [環境変数設計方針](./environment-variables.md)
276
277
  - [デプロイセットアップ手順](../../instructions/deployment-setup.md)
277
278
  - [環境変数セットアップ手順](../../instructions/environment-setup.md)
279
+ <!-- @einja:managed:end -->
280
+
281
+ ---
282
+
283
+ <!-- @einja:seed:start id="deployment-project" -->
284
+ ## プロジェクト固有の設定
285
+
286
+ <!-- このセクションはプロジェクト固有の内容を追記する場所です -->
287
+ <!-- einja syncで上書きされません -->
288
+ <!-- @einja:seed:end -->
@@ -1,3 +1,4 @@
1
+ <!-- @einja:managed:start -->
1
2
  # 環境変数設計方針
2
3
 
3
4
  ## 概要
@@ -296,3 +297,13 @@ dotenvx採用により、GitHub Secretsは**環境ごとに1つの秘密鍵の
296
297
  - [デプロイメント・CI/CD設計方針](./deployment.md)
297
298
  - [環境変数セットアップ手順](../../instructions/environment-setup.md)
298
299
  - [デプロイセットアップ手順](../../instructions/deployment-setup.md)
300
+ <!-- @einja:managed:end -->
301
+
302
+ ---
303
+
304
+ <!-- @einja:seed:start id="environment-variables-project" -->
305
+ ## プロジェクト固有の設定
306
+
307
+ <!-- このセクションはプロジェクト固有の内容を追記する場所です -->
308
+ <!-- einja syncで上書きされません -->
309
+ <!-- @einja:seed:end -->
@@ -1,3 +1,4 @@
1
+ <!-- @einja:managed:start -->
1
2
  # 製品ビジョン
2
3
 
3
4
  TODO
@@ -538,3 +539,13 @@ describe('UserRepository', () => {
538
539
  - ✅ 開発者満足度: **4.5/5以上**
539
540
 
540
541
  すべての開発活動は、このビジョンと原則に従って実施してください。
542
+ <!-- @einja:managed:end -->
543
+
544
+ ---
545
+
546
+ <!-- @einja:seed:start id="product-project" -->
547
+ ## プロジェクト固有の設定
548
+
549
+ <!-- このセクションはプロジェクト固有の内容を追記する場所です -->
550
+ <!-- einja syncで上書きされません -->
551
+ <!-- @einja:seed:end -->
@@ -1,3 +1,4 @@
1
+ <!-- @einja:managed:start -->
1
2
  # タスク管理ガイドライン
2
3
 
3
4
  このドキュメントでは、プロジェクトのタスク管理における階層構造、GitHub Issue管理、用語定義を説明します。
@@ -365,3 +366,13 @@ pnpm task:loop <issue番号> --branch <ブランチ> # ベースブランチ指
365
366
  /update-docs-by-task-specs [タスク仕様書ディレクトリパス]
366
367
  ```
367
368
  - タスク仕様書の内容をfeature仕様書とsteering仕様書に反映
369
+ <!-- @einja:managed:end -->
370
+
371
+ ---
372
+
373
+ <!-- @einja:seed:start id="task-management-project" -->
374
+ ## プロジェクト固有の設定
375
+
376
+ <!-- このセクションはプロジェクト固有の内容を追記する場所です -->
377
+ <!-- einja syncで上書きされません -->
378
+ <!-- @einja:seed:end -->