@einja/dev-cli 0.1.9 → 0.1.10

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 (223) 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/mcp-config.d.ts.map +1 -1
  73. package/dist/lib/mcp-config.js +8 -4
  74. package/dist/lib/mcp-config.js.map +1 -1
  75. package/dist/lib/mcp-config.test.js +2 -2
  76. package/dist/lib/mcp-config.test.js.map +1 -1
  77. package/dist/lib/merger.d.ts.map +1 -1
  78. package/dist/lib/merger.js.map +1 -1
  79. package/dist/lib/preset-update/cli-repo-detector.test.js.map +1 -1
  80. package/dist/lib/preset-update/file-copier.d.ts +2 -0
  81. package/dist/lib/preset-update/file-copier.d.ts.map +1 -1
  82. package/dist/lib/preset-update/file-copier.js +12 -8
  83. package/dist/lib/preset-update/file-copier.js.map +1 -1
  84. package/dist/lib/preset-update/file-copier.test.js +36 -5
  85. package/dist/lib/preset-update/file-copier.test.js.map +1 -1
  86. package/dist/lib/preset-update/preset-finder.d.ts +1 -1
  87. package/dist/lib/preset-update/preset-finder.d.ts.map +1 -1
  88. package/dist/lib/preset-update/preset-finder.js +1 -1
  89. package/dist/lib/preset-update/preset-finder.js.map +1 -1
  90. package/dist/lib/preset-update/preset-finder.test.js +11 -11
  91. package/dist/lib/preset-update/preset-finder.test.js.map +1 -1
  92. package/dist/lib/preset.js +3 -3
  93. package/dist/lib/preset.js.map +1 -1
  94. package/dist/lib/sync/backup-manager.d.ts.map +1 -1
  95. package/dist/lib/sync/backup-manager.js +1 -1
  96. package/dist/lib/sync/backup-manager.js.map +1 -1
  97. package/dist/lib/sync/backup-manager.test.js +2 -2
  98. package/dist/lib/sync/backup-manager.test.js.map +1 -1
  99. package/dist/lib/sync/batch-processor.d.ts.map +1 -1
  100. package/dist/lib/sync/batch-processor.js.map +1 -1
  101. package/dist/lib/sync/batch-processor.test.js.map +1 -1
  102. package/dist/lib/sync/category-validator.d.ts.map +1 -1
  103. package/dist/lib/sync/category-validator.js.map +1 -1
  104. package/dist/lib/sync/category-validator.test.js +2 -11
  105. package/dist/lib/sync/category-validator.test.js.map +1 -1
  106. package/dist/lib/sync/conflict-reporter.d.ts.map +1 -1
  107. package/dist/lib/sync/conflict-reporter.js +1 -2
  108. package/dist/lib/sync/conflict-reporter.js.map +1 -1
  109. package/dist/lib/sync/conflict-reporter.test.js +2 -7
  110. package/dist/lib/sync/conflict-reporter.test.js.map +1 -1
  111. package/dist/lib/sync/diff-engine.d.ts.map +1 -1
  112. package/dist/lib/sync/diff-engine.js +2 -4
  113. package/dist/lib/sync/diff-engine.js.map +1 -1
  114. package/dist/lib/sync/diff-engine.test.js.map +1 -1
  115. package/dist/lib/sync/file-filter.d.ts.map +1 -1
  116. package/dist/lib/sync/file-filter.js +26 -3
  117. package/dist/lib/sync/file-filter.js.map +1 -1
  118. package/dist/lib/sync/file-filter.test.js +26 -2
  119. package/dist/lib/sync/file-filter.test.js.map +1 -1
  120. package/dist/lib/sync/hash-cache.d.ts.map +1 -1
  121. package/dist/lib/sync/hash-cache.js.map +1 -1
  122. package/dist/lib/sync/hash-cache.test.js +2 -2
  123. package/dist/lib/sync/hash-cache.test.js.map +1 -1
  124. package/dist/lib/sync/integration.test.js +289 -2
  125. package/dist/lib/sync/integration.test.js.map +1 -1
  126. package/dist/lib/sync/marker-processor.d.ts +34 -10
  127. package/dist/lib/sync/marker-processor.d.ts.map +1 -1
  128. package/dist/lib/sync/marker-processor.js +142 -41
  129. package/dist/lib/sync/marker-processor.js.map +1 -1
  130. package/dist/lib/sync/marker-processor.test.js +134 -1
  131. package/dist/lib/sync/marker-processor.test.js.map +1 -1
  132. package/dist/lib/sync/metadata-manager.d.ts.map +1 -1
  133. package/dist/lib/sync/metadata-manager.js.map +1 -1
  134. package/dist/lib/sync/metadata-manager.test.js +4 -6
  135. package/dist/lib/sync/metadata-manager.test.js.map +1 -1
  136. package/dist/lib/sync/performance.test.js +2 -2
  137. package/dist/lib/sync/performance.test.js.map +1 -1
  138. package/dist/lib/sync/seed-synchronizer.d.ts +27 -0
  139. package/dist/lib/sync/seed-synchronizer.d.ts.map +1 -0
  140. package/dist/lib/sync/seed-synchronizer.js +72 -0
  141. package/dist/lib/sync/seed-synchronizer.js.map +1 -0
  142. package/dist/lib/sync/seed-synchronizer.test.d.ts +2 -0
  143. package/dist/lib/sync/seed-synchronizer.test.d.ts.map +1 -0
  144. package/dist/lib/sync/seed-synchronizer.test.js +147 -0
  145. package/dist/lib/sync/seed-synchronizer.test.js.map +1 -0
  146. package/dist/types/index.d.ts.map +1 -1
  147. package/dist/types/preset-update.d.ts +1 -1
  148. package/dist/types/sync.d.ts +4 -2
  149. package/dist/types/sync.d.ts.map +1 -1
  150. package/dist/types/sync.js.map +1 -1
  151. package/package.json +1 -1
  152. package/presets/default/.claude/agents/einja/backend-architect.md +1131 -0
  153. package/presets/{minimal/.claude/agents/einja/frontend → default/.claude/agents/einja}/design-engineer.md +1 -1
  154. package/presets/{minimal/.claude/agents/einja/frontend → default/.claude/agents/einja}/frontend-architect.md +1 -1
  155. package/presets/{minimal/.claude/agents/einja/frontend → default/.claude/agents/einja}/frontend-coder.md +1 -37
  156. package/presets/{minimal → default}/.claude/agents/einja/task/task-committer.md +12 -6
  157. package/presets/{minimal → default}/.claude/agents/einja/task/task-executer.md +9 -9
  158. package/presets/{minimal → default}/.claude/commands/einja/frontend-implement.md +1 -1
  159. package/presets/{minimal → default}/.claude/commands/einja/update-docs-by-task-specs.md +6 -6
  160. package/presets/{minimal/.claude/skills/einja/api-development → default/.claude/skills/einja-api-development}/SKILL.md +5 -5
  161. package/presets/{minimal/.claude/skills/einja/backend-architecture → default/.claude/skills/einja-backend-architecture}/SKILL.md +5 -5
  162. package/presets/{minimal/.claude/skills/einja/coding-standards → default/.claude/skills/einja-coding-standards}/SKILL.md +6 -6
  163. package/presets/{minimal/.claude/skills/einja/component-design → default/.claude/skills/einja-component-design}/SKILL.md +6 -6
  164. package/presets/{minimal/.claude/skills/einja/frontend-development → default/.claude/skills/einja-frontend-development}/SKILL.md +5 -5
  165. package/presets/{minimal/.claude/skills/einja/output-format → default/.claude/skills/einja-output-format}/SKILL.md +54 -5
  166. package/presets/{minimal → default}/preset.yaml +1 -1
  167. package/presets/{minimal → default}/symlinks.json +10 -10
  168. package/scaffolds/CLAUDE.md.template +4 -4
  169. package/scaffolds/steering/README.md +42 -0
  170. package/scaffolds/steering/acceptance-criteria-and-qa-guide.md +11 -0
  171. package/scaffolds/steering/architecture.md +11 -0
  172. package/scaffolds/steering/branch-strategy.md +11 -0
  173. package/scaffolds/steering/commit-rules.md +12 -1
  174. package/scaffolds/steering/db-schema-design.md +11 -0
  175. package/scaffolds/steering/development/api-development.md +15 -4
  176. package/scaffolds/steering/development/backend-architecture.md +11 -0
  177. package/scaffolds/steering/development/frontend-development.md +11 -0
  178. package/scaffolds/steering/development/review-guidelines.md +11 -0
  179. package/scaffolds/steering/development/testing-strategy.md +85 -0
  180. package/scaffolds/steering/development-workflow.md +11 -0
  181. package/scaffolds/steering/infrastructure/deployment.md +11 -0
  182. package/scaffolds/steering/infrastructure/environment-variables.md +11 -0
  183. package/scaffolds/steering/product.md +11 -0
  184. package/scaffolds/steering/task-management.md +11 -0
  185. /package/presets/{minimal → default}/.claude/agents/einja/docs/docs-updater.md +0 -0
  186. /package/presets/{minimal → default}/.claude/agents/einja/git/conflict-resolver.md +0 -0
  187. /package/presets/{minimal → default}/.claude/agents/einja/specs/spec-design-generator.md +0 -0
  188. /package/presets/{minimal → default}/.claude/agents/einja/specs/spec-qa-generator.md +0 -0
  189. /package/presets/{minimal → default}/.claude/agents/einja/specs/spec-requirements-generator.md +0 -0
  190. /package/presets/{minimal → default}/.claude/agents/einja/specs/spec-tasks-generator.md +0 -0
  191. /package/presets/{minimal → default}/.claude/agents/einja/task/task-modification-analyzer.md +0 -0
  192. /package/presets/{minimal → default}/.claude/agents/einja/task/task-qa.md +0 -0
  193. /package/presets/{minimal → default}/.claude/agents/einja/task/task-reviewer.md +0 -0
  194. /package/presets/{minimal → default}/.claude/commands/einja/spec-create.md +0 -0
  195. /package/presets/{minimal → default}/.claude/commands/einja/start-dev.md +0 -0
  196. /package/presets/{minimal → default}/.claude/commands/einja/sync-cursor-commands.md +0 -0
  197. /package/presets/{minimal → default}/.claude/commands/einja/task-exec.md +0 -0
  198. /package/presets/{minimal → default}/.claude/hooks/einja/biome-format.sh +0 -0
  199. /package/presets/{minimal → default}/.claude/hooks/einja/design-doc-check.sh +0 -0
  200. /package/presets/{minimal → default}/.claude/hooks/einja/detect-secrets.sh +0 -0
  201. /package/presets/{minimal → default}/.claude/hooks/einja/large-file-warning.sh +0 -0
  202. /package/presets/{minimal → default}/.claude/hooks/einja/playwright-resize.sh +0 -0
  203. /package/presets/{minimal → default}/.claude/hooks/einja/typecheck.sh +0 -0
  204. /package/presets/{minimal → default}/.claude/hooks/einja/unset-volta-recursion.sh +0 -0
  205. /package/presets/{minimal → default}/.claude/hooks/einja/validate-git-commit.sh +0 -0
  206. /package/presets/{minimal → default}/.claude/hooks/einja/warn-index-ts.sh +0 -0
  207. /package/presets/{minimal → default}/.claude/hooks/einja/warn-relative-import.sh +0 -0
  208. /package/presets/{minimal → default}/.claude/settings.json +0 -0
  209. /package/presets/{minimal/.claude/skills/einja/coding-standards → default/.claude/skills/einja-coding-standards}/reference/naming-conventions.md +0 -0
  210. /package/presets/{minimal/.claude/skills/einja/coding-standards → default/.claude/skills/einja-coding-standards}/reference/prohibited-patterns.md +0 -0
  211. /package/presets/{minimal/.claude/skills/einja/coding-standards → default/.claude/skills/einja-coding-standards}/reference/typescript-rules.md +0 -0
  212. /package/presets/{minimal/.claude/skills/einja/component-design → default/.claude/skills/einja-component-design}/reference/directory-structure.md +0 -0
  213. /package/presets/{minimal/.claude/skills/einja/component-design → default/.claude/skills/einja-component-design}/reference/props-patterns.md +0 -0
  214. /package/presets/{minimal/.claude/skills/einja/component-design → default/.claude/skills/einja-component-design}/reference/styling-guide.md +0 -0
  215. /package/presets/{minimal/.claude/skills/einja/conflict-resolver → default/.claude/skills/einja-conflict-resolver}/SKILL.md +0 -0
  216. /package/presets/{minimal/.claude/skills/einja/general-context-loader → default/.claude/skills/einja-general-context-loader}/SKILL.md +0 -0
  217. /package/presets/{minimal/.claude/skills/einja/spec-context-loader → default/.claude/skills/einja-spec-context-loader}/SKILL.md +0 -0
  218. /package/presets/{minimal/.claude/skills/einja/task-commit → default/.claude/skills/einja-task-commit}/SKILL.md +0 -0
  219. /package/presets/{minimal/.claude/skills/einja/task-qa → default/.claude/skills/einja-task-qa}/SKILL.md +0 -0
  220. /package/presets/{minimal/.claude/skills/einja/task-qa → default/.claude/skills/einja-task-qa}/reference/failure-patterns.md +0 -0
  221. /package/presets/{minimal/.claude/skills/einja/task-qa → default/.claude/skills/einja-task-qa}/reference/troubleshooting.md +0 -0
  222. /package/presets/{minimal/.claude/skills/einja/task-qa → default/.claude/skills/einja-task-qa}/reference/usage-patterns.md +0 -0
  223. /package/presets/{minimal/.claude/skills/einja/task-qa → default/.claude/skills/einja-task-qa}/templates/qa-test-template.md +0 -0
@@ -7,7 +7,7 @@ color: pink
7
7
 
8
8
  ## ✅ 最重要: 出力形式
9
9
 
10
- **@.claude/skills/einja/output-format/SKILL.md の「design-engineer」テンプレートに従って報告すること。この形式から逸脱しないこと。**
10
+ **@.claude/skills/einja-output-format/SKILL.md の「design-engineer」テンプレートに従って報告すること。この形式から逸脱しないこと。**
11
11
 
12
12
  ---
13
13
 
@@ -7,7 +7,7 @@ color: purple
7
7
 
8
8
  ## ✅ 最重要: 出力形式
9
9
 
10
- **@.claude/skills/einja/output-format/SKILL.md の「frontend-architect」テンプレートに従って報告すること。この形式から逸脱しないこと。**
10
+ **@.claude/skills/einja-output-format/SKILL.md の「frontend-architect」テンプレートに従って報告すること。この形式から逸脱しないこと。**
11
11
 
12
12
  ---
13
13
 
@@ -7,7 +7,7 @@ color: blue
7
7
 
8
8
  ## ✅ 最重要: 出力形式
9
9
 
10
- **@.claude/skills/einja/output-format/SKILL.md の「frontend-coder」テンプレートに従って報告すること。この形式から逸脱しないこと。**
10
+ **@.claude/skills/einja-output-format/SKILL.md の「frontend-coder」テンプレートに従って報告すること。この形式から逸脱しないこと。**
11
11
 
12
12
  ---
13
13
 
@@ -48,44 +48,8 @@ color: blue
48
48
  - 再利用可能なコンポーネントを特定
49
49
  - 命名規則とディレクトリ構造を把握
50
50
 
51
- 3. **既存パターンとの整合性確認**:
52
-
53
- 既存実装の分析後、既存パターンと異なる実装が必要な場合はAskUserQuestionで方針承認を得ます。
54
-
55
- ```yaml
56
- AskUserQuestion:
57
- question: "既存パターンと異なる実装方針が必要です。どのように進めますか?"
58
- header: "実装方針"
59
- options:
60
- - label: "新パターンで実装(推奨)"
61
- description: "推奨理由: 既存パターンでは要件を満たせない。メリット: 要件を完全に満たせる。デメリット: 新パターンが今後の標準となる可能性、学習コスト"
62
- - label: "既存パターンに合わせて要件調整"
63
- description: "メリット: プロジェクトの一貫性を維持。デメリット: 機能制限が発生し、ビジネス要件を満たせない可能性"
64
- - label: "両パターンの折衷案"
65
- description: "メリット: 既存との互換性を保ちつつ新機能を実現。デメリット: 実装が複雑化し、保守コストが増加する可能性"
66
- ```
67
-
68
51
  ### 2. コンポーネント実装
69
52
 
70
- #### 状態管理方法の確認
71
-
72
- コンポーネント実装前に、複数の状態管理方法が選択可能な場合はAskUserQuestionで確認します。
73
-
74
- ```yaml
75
- AskUserQuestion:
76
- question: "状態管理の方法を選択してください"
77
- header: "状態管理"
78
- options:
79
- - label: "TanStack Query(推奨)"
80
- description: "推奨理由: サーバー状態管理に最適。メリット: キャッシュ・再取得が自動化、宣言的なデータフェッチ。デメリット: 学習コスト、ライブラリ依存"
81
- - label: "Context API"
82
- description: "メリット: 外部依存なし、シンプル。デメリット: 大規模な状態には不向き、再レンダリングの最適化が必要"
83
- - label: "useReducer"
84
- description: "メリット: 状態遷移が明確、テストしやすい。デメリット: ボイラープレートが増える、グローバル状態には不向き"
85
- - label: "useState(複数)"
86
- description: "メリット: 最もシンプル、学習コストなし。デメリット: 状態が増えると管理が複雑化、状態間の連携が困難"
87
- ```
88
-
89
53
  #### ディレクトリ構造(モノレポ対応)
90
54
  ```
91
55
  apps/web/src/
@@ -19,16 +19,22 @@ QA合格後の変更をコミット・プッシュします。
19
19
 
20
20
  ## 処理
21
21
 
22
- task-commit Skillを **自動モード(確認なしで実行)** で実行し、結果を返却します。
22
+ task-commit Skillを実行し、結果を返却します。
23
23
 
24
- ### task-exec経由での自動実行
24
+ ### コミット分割案の確認
25
25
 
26
- task-exec経由で呼び出される場合、以下を自動的にスキップします:
26
+ 呼び出し時の指示に**明示的なコミット分割の指定がない場合**は、**AskUserQuestionツールを使用**してコミット分割案の承認を得ます。
27
27
 
28
- 1. **コミット分割案の確認**: QA合格済みの変更であるため、自動で適切に分割してコミット
29
- 2. **品質チェック(prepush)**: QAフェーズで既に lint/typecheck/test が実行済みのため、重複実行は不要
28
+ - ✅ 「この分割でお願い」「1コミットで」等の指定がある 指定に従って実行
29
+ - 分割指定がない AskUserQuestionで確認を取る
30
30
 
31
- これにより、task-exec → task-qa → task-committer の一連のフローが迅速に完了します。
31
+ ### task-exec経由での呼び出し
32
+
33
+ task-exec経由で呼び出される場合、以下のみスキップします:
34
+
35
+ - **品質チェック(prepush)**: QAフェーズで既に lint/typecheck/test が実行済みのため、重複実行は不要
36
+
37
+ **注意**: コミット分割案の確認はスキップしません。
32
38
 
33
39
  ## 出力形式
34
40
 
@@ -103,17 +103,17 @@ Skill: general-context-loader
103
103
 
104
104
  | 実装種別 | 読み込むSkill |
105
105
  |---------|--------------|
106
- | **API実装** | `.claude/skills/einja/api-development/SKILL.md` |
107
- | **フロントエンド実装** | `.claude/skills/einja/frontend-development/SKILL.md` |
108
- | **バックエンド実装** | `.claude/skills/einja/backend-architecture/SKILL.md` |
109
- | **コード全般** | `.claude/skills/einja/coding-standards/SKILL.md` |
110
- | **コンポーネント設計** | `.claude/skills/einja/component-design/SKILL.md` |
106
+ | **API実装** | `.claude/skills/einja-api-development/SKILL.md` |
107
+ | **フロントエンド実装** | `.claude/skills/einja-frontend-development/SKILL.md` |
108
+ | **バックエンド実装** | `.claude/skills/einja-backend-architecture/SKILL.md` |
109
+ | **コード全般** | `.claude/skills/einja-coding-standards/SKILL.md` |
110
+ | **コンポーネント設計** | `.claude/skills/einja-component-design/SKILL.md` |
111
111
 
112
112
  **詳細規約が必要な場合**:
113
- - 命名規則: `.claude/skills/einja/coding-standards/reference/naming-conventions.md`
114
- - 禁止パターン: `.claude/skills/einja/coding-standards/reference/prohibited-patterns.md`
115
- - TypeScript規約: `.claude/skills/einja/coding-standards/reference/typescript-rules.md`
116
- - スタイリング: `.claude/skills/einja/component-design/reference/styling-guide.md`
113
+ - 命名規則: `.claude/skills/einja-coding-standards/reference/naming-conventions.md`
114
+ - 禁止パターン: `.claude/skills/einja-coding-standards/reference/prohibited-patterns.md`
115
+ - TypeScript規約: `.claude/skills/einja-coding-standards/reference/typescript-rules.md`
116
+ - スタイリング: `.claude/skills/einja-component-design/reference/styling-guide.md`
117
117
 
118
118
  ### 2. 実装方針の策定
119
119
 
@@ -311,7 +311,7 @@ frontend-implement "認証フロー(ログイン・サインアップ・パス
311
311
 
312
312
  ### Panda CSS生成エラー
313
313
  ```bash
314
- pnpm --filter @einja/web panda codegen
314
+ pnpm --filter @repo/web panda codegen
315
315
  ```
316
316
 
317
317
  ### 型エラー
@@ -332,9 +332,9 @@ allowed-tools: Read, Write, Edit, Bash, Grep, Glob
332
332
  - features/login/design.md: 5セクション追加
333
333
 
334
334
  ### Steering仕様書
335
- - einja/steering/architecture.md: 7セクション追加
336
- - einja/steering/db-design.md: 4セクション追加
337
- - einja/steering/product.md: 3セクション追加
335
+ - steering/architecture.md: 7セクション追加
336
+ - steering/db-design.md: 4セクション追加
337
+ - steering/product.md: 3セクション追加
338
338
  ```
339
339
 
340
340
  2. **各ファイルの詳細プレビュー**(オプション):
@@ -420,9 +420,9 @@ allowed-tools: Read, Write, Edit, Bash, Grep, Glob
420
420
  - **features/login/tasks.md**: 1セクション追加(156行)
421
421
 
422
422
  ### Steering仕様書
423
- - **einja/steering/architecture.md**: 7セクション追加(1,245行)
424
- - **einja/steering/db-design.md**: 4セクション追加(567行)
425
- - **einja/steering/product.md**: 3セクション追加(334行)
423
+ - **steering/architecture.md**: 7セクション追加(1,245行)
424
+ - **steering/db-design.md**: 4セクション追加(567行)
425
+ - **steering/product.md**: 3セクション追加(334行)
426
426
 
427
427
  ## 次のステップ
428
428
  - 反映された内容を確認してください
@@ -1,9 +1,9 @@
1
- # API開発ガイド Skill
2
-
3
- name: "api-development"
1
+ ---
2
+ name: api-development
4
3
  description: "Hono + Zodを使用したAPI実装のガイドライン"
5
- invocation: "agent-requested"
6
- version: "1.0.0"
4
+ ---
5
+
6
+ # API開発ガイド Skill
7
7
 
8
8
  ## 概要
9
9
 
@@ -1,9 +1,9 @@
1
- # バックエンドアーキテクチャ Skill
2
-
3
- name: "backend-architecture"
1
+ ---
2
+ name: backend-architecture
4
3
  description: "4層レイヤードアーキテクチャ、Repositoryパターン、Result型パターンのガイドライン"
5
- invocation: "agent-requested"
6
- version: "1.0.0"
4
+ ---
5
+
6
+ # バックエンドアーキテクチャ Skill
7
7
 
8
8
  ## 概要
9
9
 
@@ -1,9 +1,9 @@
1
- # Coding Standards Skill
2
-
3
- name: "coding-standards"
1
+ ---
2
+ name: coding-standards
4
3
  description: "TypeScript/React/Next.jsのコーディング規約とベストプラクティス"
5
- invocation: "agent-requested"
6
- version: "1.0.0"
4
+ ---
5
+
6
+ # Coding Standards Skill
7
7
 
8
8
  ## 概要
9
9
 
@@ -114,7 +114,7 @@ const customStyles = css({
114
114
 
115
115
  ## 関連Skill・ドキュメント
116
116
 
117
- - [component-design](../component-design/SKILL.md) - コンポーネント設計ガイドライン
117
+ - [component-design](../einja-component-design/SKILL.md) - コンポーネント設計ガイドライン
118
118
  - `docs/einja/steering/development/testing-strategy.md` - テスト戦略
119
119
  - `docs/einja/steering/development/review-guidelines.md` - コードレビューガイドライン
120
120
  - `docs/einja/steering/commit-rules.md` - コミットルール
@@ -1,9 +1,9 @@
1
- # Component Design Skill
2
-
3
- name: "component-design"
1
+ ---
2
+ name: component-design
4
3
  description: "Reactコンポーネントの設計原則と実装ガイドライン"
5
- invocation: "agent-requested"
6
- version: "1.0.0"
4
+ ---
5
+
6
+ # Component Design Skill
7
7
 
8
8
  ## 概要
9
9
 
@@ -98,7 +98,7 @@ interface ButtonProps {
98
98
 
99
99
  ## 関連Skill・ドキュメント
100
100
 
101
- - [coding-standards](../coding-standards/SKILL.md) - コーディング規約
101
+ - [coding-standards](../einja-coding-standards/SKILL.md) - コーディング規約
102
102
  - `docs/einja/steering/development/testing-strategy.md` - テスト戦略
103
103
  - `docs/einja/steering/development/frontend-development.md` - フロントエンド開発ガイド
104
104
 
@@ -1,9 +1,9 @@
1
- # フロントエンド開発ガイド Skill
2
-
3
- name: "frontend-development"
1
+ ---
2
+ name: frontend-development
4
3
  description: "Next.js + React + Tanstack Queryを使用したフロントエンド実装のガイドライン"
5
- invocation: "agent-requested"
6
- version: "1.0.0"
4
+ ---
5
+
6
+ # フロントエンド開発ガイド Skill
7
7
 
8
8
  ## 概要
9
9
 
@@ -1,9 +1,9 @@
1
- # サブエージェント出力形式 Skill
2
-
3
- name: "output-format"
1
+ ---
2
+ name: output-format
4
3
  description: "サブエージェントの統一出力形式を定義"
5
- invocation: "agent-requested"
6
- version: "1.0.0"
4
+ ---
5
+
6
+ # サブエージェント出力形式 Skill
7
7
 
8
8
  ## 概要
9
9
 
@@ -113,6 +113,55 @@ version: "1.0.0"
113
113
  [後続処理の説明]
114
114
  ```
115
115
 
116
+ ### backend-architect
117
+
118
+ ```markdown
119
+ ## 🔧 バックエンドアーキテクチャ設計完了
120
+
121
+ ### タスク: [機能名/API名]
122
+
123
+ ### 設計結果: [✅ SUCCESS / ⚠️ PARTIAL / ❌ FAILURE]
124
+
125
+ ### 設計サマリー
126
+ - **API数**: N個
127
+ - **Repository数**: M個
128
+ - **UseCase数**: K個
129
+ - **新規Entity数**: L個
130
+ - **テーブル数**: P個
131
+
132
+ ### アーキテクチャ構造
133
+ ```
134
+ [ディレクトリ構造図]
135
+ ```
136
+
137
+ ### 層間の依存関係
138
+ | 層 | 依存先 | 主なコンポーネント |
139
+ |---|-------|-----------------|
140
+
141
+ ### デザインパターン適用
142
+ - **Repositoryパターン**: [適用状況]
143
+ - **Mapperパターン**: [適用状況]
144
+ - **Result型パターン**: [適用状況]
145
+
146
+ ### DB設計
147
+ | テーブル名 | 主なカラム | インデックス |
148
+ |----------|----------|------------|
149
+
150
+ ### API設計
151
+ | エンドポイント | メソッド | 説明 |
152
+ |--------------|--------|------|
153
+
154
+ ### テスト設計方針
155
+ - **ユニットテスト対象**: [対象コンポーネント]
156
+ - **統合テスト対象**: [対象フロー]
157
+
158
+ ### 技術選定
159
+ - **[決定1]**: [選定理由]
160
+
161
+ ### 次のステップ
162
+ [後続処理の説明]
163
+ ```
164
+
116
165
  ## 長い出力の取り扱い
117
166
 
118
167
  出力が50行を超える場合、以下の形式で表示:
@@ -1,4 +1,4 @@
1
- name: minimal
1
+ name: default
2
2
  displayName: "Einja ATDD Workflow"
3
3
  description: "ATDDワークフロー構成(Next.js、Vibe-Kanban統合)"
4
4
  version: "1.0.0"
@@ -2,43 +2,43 @@
2
2
  "version": 1,
3
3
  "symlinks": [
4
4
  {
5
- "link": ".claude/skills/einja/api-development/reference/api-development.md",
5
+ "link": ".claude/skills/einja-api-development/reference/api-development.md",
6
6
  "target": "docs/einja/steering/development/api-development.md"
7
7
  },
8
8
  {
9
- "link": ".claude/skills/einja/backend-architecture/reference/backend-architecture.md",
9
+ "link": ".claude/skills/einja-backend-architecture/reference/backend-architecture.md",
10
10
  "target": "docs/einja/steering/development/backend-architecture.md"
11
11
  },
12
12
  {
13
- "link": ".claude/skills/einja/coding-standards/reference/commit-rules.md",
13
+ "link": ".claude/skills/einja-coding-standards/reference/commit-rules.md",
14
14
  "target": "docs/einja/steering/commit-rules.md"
15
15
  },
16
16
  {
17
- "link": ".claude/skills/einja/coding-standards/reference/review-guidelines.md",
17
+ "link": ".claude/skills/einja-coding-standards/reference/review-guidelines.md",
18
18
  "target": "docs/einja/steering/development/review-guidelines.md"
19
19
  },
20
20
  {
21
- "link": ".claude/skills/einja/coding-standards/reference/testing-strategy.md",
21
+ "link": ".claude/skills/einja-coding-standards/reference/testing-strategy.md",
22
22
  "target": "docs/einja/steering/development/testing-strategy.md"
23
23
  },
24
24
  {
25
- "link": ".claude/skills/einja/component-design/reference/frontend-development.md",
25
+ "link": ".claude/skills/einja-component-design/reference/frontend-development.md",
26
26
  "target": "docs/einja/steering/development/frontend-development.md"
27
27
  },
28
28
  {
29
- "link": ".claude/skills/einja/component-design/reference/testing-strategy.md",
29
+ "link": ".claude/skills/einja-component-design/reference/testing-strategy.md",
30
30
  "target": "docs/einja/steering/development/testing-strategy.md"
31
31
  },
32
32
  {
33
- "link": ".claude/skills/einja/frontend-development/reference/frontend-development.md",
33
+ "link": ".claude/skills/einja-frontend-development/reference/frontend-development.md",
34
34
  "target": "docs/einja/steering/development/frontend-development.md"
35
35
  },
36
36
  {
37
- "link": ".claude/skills/einja/task-commit/reference/commit-rules.md",
37
+ "link": ".claude/skills/einja-task-commit/reference/commit-rules.md",
38
38
  "target": "docs/einja/steering/commit-rules.md"
39
39
  },
40
40
  {
41
- "link": ".claude/skills/einja/task-qa/reference/acceptance-criteria-and-qa-guide.md",
41
+ "link": ".claude/skills/einja-task-qa/reference/acceptance-criteria-and-qa-guide.md",
42
42
  "target": "docs/einja/steering/acceptance-criteria-and-qa-guide.md"
43
43
  }
44
44
  ]
@@ -42,7 +42,7 @@
42
42
 
43
43
  ## gitコンフリクト発生時の対応
44
44
 
45
- **【必須】** gitコンフリクトが発生した場合、必ず `.claude/skills/einja/conflict-resolver/SKILL.md` の手順に従うこと。
45
+ **【必須】** gitコンフリクトが発生した場合、必ず `.claude/skills/einja-conflict-resolver/SKILL.md` の手順に従うこと。
46
46
 
47
47
  ## プロジェクト構成
48
48
 
@@ -273,7 +273,7 @@ export const { handlers, signIn, signOut, auth } = NextAuth(authOptions);
273
273
 
274
274
  ## サブエージェント結果報告のルール
275
275
 
276
- サブエージェントの出力形式は **@.claude/skills/einja/output-format/SKILL.md** に定義されています。
276
+ サブエージェントの出力形式は **@.claude/skills/einja-output-format/SKILL.md** に定義されています。
277
277
 
278
278
  ### 必須要件
279
279
  - サブエージェントの最終出力は**そのまま全文**をユーザーに表示する
@@ -375,8 +375,8 @@ export const { handlers, signIn, signOut, auth } = NextAuth(authOptions);
375
375
 
376
376
  以下のドキュメントも参照して作業を進めてください:
377
377
 
378
- - @.claude/skills/einja/coding-standards/SKILL.md - コーディング規約
379
- - @.claude/skills/einja/component-design/SKILL.md - コンポーネント設計ガイドライン
378
+ - @.claude/skills/einja-coding-standards/SKILL.md - コーディング規約
379
+ - @.claude/skills/einja-component-design/SKILL.md - コンポーネント設計ガイドライン
380
380
  - @docs/einja/steering/commit-rules.md - コミットルール・ブランチ戦略
381
381
  - @docs/einja/steering/development/testing-strategy.md - Vitestを使用したテスト戦略
382
382
  - @docs/einja/steering/development/review-guidelines.md - コードレビューのガイドライン
@@ -1,3 +1,4 @@
1
+ <!-- @einja:managed:start -->
1
2
  # Steering仕様書
2
3
 
3
4
  ## 概要
@@ -149,6 +150,37 @@
149
150
 
150
151
  ---
151
152
 
153
+ ## 🔄 ドキュメント同期について
154
+
155
+ このディレクトリのドキュメントは`@einja/dev-cli`で管理されています。
156
+
157
+ ### マーカーの種類
158
+
159
+ 各ファイルには同期動作を制御するマーカーがあります:
160
+
161
+ | マーカー | 説明 |
162
+ |---------|------|
163
+ | `@einja:managed` | CLIの更新時に自動で最新化される共通ルール部分 |
164
+ | `@einja:seed` | 初回のみ追加され、以降は編集内容が保持されるプロジェクト固有部分 |
165
+
166
+ ### プロジェクト固有の追記
167
+
168
+ 各ファイルの末尾にある`@einja:seed`セクションに、プロジェクト固有のルールや設定を追記できます。このセクションは`einja sync`実行時も上書きされません。
169
+
170
+ 詳細な仕様は [CLIのマーカー仕様書](https://github.com/einja-inc/einja-management-template/blob/main/packages/cli/docs/MARKER_SPECIFICATION.md) を参照してください。
171
+
172
+ ### 同期コマンド
173
+
174
+ ```bash
175
+ # テンプレートから最新の共通ルールを取得
176
+ pnpm einja:sync
177
+
178
+ # プレビュー(実際の変更なし)
179
+ pnpm einja:sync --dry-run
180
+ ```
181
+
182
+ ---
183
+
152
184
  ## ⚠️ 重要な原則
153
185
 
154
186
  ### CLAUDE.mdの原則を遵守
@@ -168,3 +200,13 @@
168
200
  ドキュメントに関する質問や改善提案がある場合は、チームリーダーに連絡してください。
169
201
 
170
202
  より良いドキュメントを一緒に作りましょう!
203
+ <!-- @einja:managed:end -->
204
+
205
+ ---
206
+
207
+ <!-- @einja:seed:start id="steering-readme-project" -->
208
+ ## プロジェクト固有の設定
209
+
210
+ <!-- このセクションはプロジェクト固有の内容を追記する場所です -->
211
+ <!-- einja syncで上書きされません -->
212
+ <!-- @einja:seed:end -->
@@ -1,3 +1,4 @@
1
+ <!-- @einja:managed:start -->
1
2
  # 価値あるテストを生む要件定義とテスト設計ガイド
2
3
 
3
4
  ## 1. 受け入れ基準の原則
@@ -413,3 +414,13 @@ QAテスト仕様書では、以下の表形式で手順を記述します:
413
414
  - 手順は自然言語で簡潔に記述
414
415
  - mcp__playwright などのコマンドは記載しない
415
416
  - 「-」は手順のみで確認項目がない場合に使用
417
+ <!-- @einja:managed:end -->
418
+
419
+ ---
420
+
421
+ <!-- @einja:seed:start id="acceptance-criteria-and-qa-guide-project" -->
422
+ ## プロジェクト固有の設定
423
+
424
+ <!-- このセクションはプロジェクト固有の内容を追記する場所です -->
425
+ <!-- einja syncで上書きされません -->
426
+ <!-- @einja:seed:end -->
@@ -1,3 +1,4 @@
1
+ <!-- @einja:managed:start -->
1
2
  # システムアーキテクチャ概要
2
3
 
3
4
  ## 概要
@@ -479,3 +480,13 @@ export function calculatePorts(branchName: string): WorktreePorts {
479
480
  - **[API開発ガイド](development/api-development.md)** - Hono API実装
480
481
  - **[フロントエンド開発ガイド](development/frontend-development.md)** - React、Tanstack Query
481
482
  - **[CI/CDパイプライン](infrastructure/ci-cd.md)** - ビルド・デプロイ自動化
483
+ <!-- @einja:managed:end -->
484
+
485
+ ---
486
+
487
+ <!-- @einja:seed:start id="architecture-project" -->
488
+ ## プロジェクト固有の設定
489
+
490
+ <!-- このセクションはプロジェクト固有の内容を追記する場所です -->
491
+ <!-- einja syncで上書きされません -->
492
+ <!-- @einja:seed:end -->
@@ -1,3 +1,4 @@
1
+ <!-- @einja:managed:start -->
1
2
  # ブランチ運用戦略
2
3
 
3
4
  ## 概要
@@ -360,3 +361,13 @@ git push origin タスクブランチ名
360
361
  - [task:loop コマンド](../instructions/task-vibe-kanban-loop.md) - コマンドの使用方法と Vibe-Kanban 操作手順
361
362
  - [タスク管理](task-management.md) - タスク階層と粒度基準
362
363
  - [開発ワークフロー](development-workflow.md) - 仕様書作成からタスク実行までの全体フロー
364
+ <!-- @einja:managed:end -->
365
+
366
+ ---
367
+
368
+ <!-- @einja:seed:start id="branch-strategy-project" -->
369
+ ## プロジェクト固有の設定
370
+
371
+ <!-- このセクションはプロジェクト固有の内容を追記する場所です -->
372
+ <!-- einja syncで上書きされません -->
373
+ <!-- @einja:seed:end -->
@@ -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 -->