@the-bearded-bear/claude-craft 3.1.2 → 3.3.1-next.f4f0d1e

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 (537) hide show
  1. package/Dev/i18n/de/Angular/CLAUDE.md.template +49 -0
  2. package/Dev/i18n/de/Angular/agents/angular-reviewer.md +213 -0
  3. package/Dev/i18n/de/Angular/checklists/new-feature.md +125 -0
  4. package/Dev/i18n/de/Angular/checklists/pre-commit.md +77 -0
  5. package/Dev/i18n/de/Angular/commands/check-architecture.md +261 -0
  6. package/Dev/i18n/de/Angular/commands/check-code-quality.md +238 -0
  7. package/Dev/i18n/de/Angular/commands/check-compliance.md +199 -0
  8. package/Dev/i18n/de/Angular/commands/check-security.md +263 -0
  9. package/Dev/i18n/de/Angular/commands/check-testing.md +292 -0
  10. package/Dev/i18n/de/Angular/commands/generate-component.md +220 -0
  11. package/Dev/i18n/de/Angular/rules/00-project-context.md.template +78 -0
  12. package/Dev/i18n/de/Angular/rules/02-architecture-angular.md +477 -0
  13. package/Dev/i18n/de/Angular/rules/03-coding-standards.md +640 -0
  14. package/Dev/i18n/de/Angular/rules/06-tooling.md +516 -0
  15. package/Dev/i18n/de/Angular/rules/07-testing-angular.md +739 -0
  16. package/Dev/i18n/de/Angular/rules/08-quality-tools.md +501 -0
  17. package/Dev/i18n/de/Angular/rules/11-security-angular.md +497 -0
  18. package/Dev/i18n/de/Angular/templates/component.template.ts +115 -0
  19. package/Dev/i18n/de/Angular/templates/service.template.ts +203 -0
  20. package/Dev/i18n/de/CSharp/CLAUDE.md.template +65 -0
  21. package/Dev/i18n/de/CSharp/agents/csharp-reviewer.md +166 -0
  22. package/Dev/i18n/de/CSharp/checklists/new-feature.md +178 -0
  23. package/Dev/i18n/de/CSharp/checklists/pre-commit.md +126 -0
  24. package/Dev/i18n/de/CSharp/commands/check-architecture.md +294 -0
  25. package/Dev/i18n/de/CSharp/commands/check-code-quality.md +355 -0
  26. package/Dev/i18n/de/CSharp/commands/check-compliance.md +178 -0
  27. package/Dev/i18n/de/CSharp/commands/check-security.md +369 -0
  28. package/Dev/i18n/de/CSharp/commands/check-testing.md +295 -0
  29. package/Dev/i18n/de/CSharp/commands/generate-feature.md +481 -0
  30. package/Dev/i18n/de/CSharp/rules/00-project-context.md.template +100 -0
  31. package/Dev/i18n/de/CSharp/rules/02-architecture-csharp.md +536 -0
  32. package/Dev/i18n/de/CSharp/rules/03-coding-standards.md +494 -0
  33. package/Dev/i18n/de/CSharp/rules/06-tooling.md +493 -0
  34. package/Dev/i18n/de/CSharp/rules/07-testing-csharp.md +566 -0
  35. package/Dev/i18n/de/CSharp/rules/08-quality-tools.md +497 -0
  36. package/Dev/i18n/de/CSharp/rules/11-security-csharp.md +568 -0
  37. package/Dev/i18n/de/CSharp/rules/12-aspire-cloud-native.md +514 -0
  38. package/Dev/i18n/de/CSharp/templates/command-handler.template.cs +100 -0
  39. package/Dev/i18n/de/CSharp/templates/entity.template.cs +159 -0
  40. package/Dev/i18n/de/Common/commands/add-technology.md +195 -0
  41. package/Dev/i18n/de/Laravel/CLAUDE.md.template +104 -0
  42. package/Dev/i18n/de/Laravel/agents/laravel-reviewer.md +200 -0
  43. package/Dev/i18n/de/Laravel/checklists/new-feature.md +277 -0
  44. package/Dev/i18n/de/Laravel/checklists/pre-commit.md +156 -0
  45. package/Dev/i18n/de/Laravel/commands/check-architecture.md +306 -0
  46. package/Dev/i18n/de/Laravel/commands/check-code-quality.md +302 -0
  47. package/Dev/i18n/de/Laravel/commands/check-compliance.md +141 -0
  48. package/Dev/i18n/de/Laravel/commands/check-security.md +372 -0
  49. package/Dev/i18n/de/Laravel/commands/check-testing.md +397 -0
  50. package/Dev/i18n/de/Laravel/commands/generate-controller.md +388 -0
  51. package/Dev/i18n/de/Laravel/rules/00-project-context.md.template +140 -0
  52. package/Dev/i18n/de/Laravel/rules/02-architecture-laravel.md +644 -0
  53. package/Dev/i18n/de/Laravel/rules/03-coding-standards.md +573 -0
  54. package/Dev/i18n/de/Laravel/rules/06-tooling.md +580 -0
  55. package/Dev/i18n/de/Laravel/rules/07-testing-laravel.md +525 -0
  56. package/Dev/i18n/de/Laravel/rules/08-quality-tools.md +591 -0
  57. package/Dev/i18n/de/Laravel/rules/11-security-laravel.md +787 -0
  58. package/Dev/i18n/de/Laravel/templates/action.template.php +79 -0
  59. package/Dev/i18n/de/Laravel/templates/controller.template.php +99 -0
  60. package/Dev/i18n/de/Laravel/templates/model.template.php +206 -0
  61. package/Dev/i18n/de/Laravel/templates/test.template.php +263 -0
  62. package/Dev/i18n/de/PHP/CLAUDE.md.template +460 -0
  63. package/Dev/i18n/de/PHP/agents/php-reviewer.md +345 -0
  64. package/Dev/i18n/de/PHP/checklists/new-feature.md +132 -0
  65. package/Dev/i18n/de/PHP/checklists/pre-commit.md +231 -0
  66. package/Dev/i18n/de/PHP/commands/check-architecture.md +557 -0
  67. package/Dev/i18n/de/PHP/commands/check-code-quality.md +448 -0
  68. package/Dev/i18n/de/PHP/commands/check-compliance.md +477 -0
  69. package/Dev/i18n/de/PHP/commands/check-security.md +420 -0
  70. package/Dev/i18n/de/PHP/commands/check-testing.md +486 -0
  71. package/Dev/i18n/de/PHP/rules/00-project-context.md.template +266 -0
  72. package/Dev/i18n/de/PHP/rules/02-architecture-php.md +696 -0
  73. package/Dev/i18n/de/PHP/rules/03-coding-standards.md +641 -0
  74. package/Dev/i18n/de/PHP/rules/06-tooling.md +543 -0
  75. package/Dev/i18n/de/PHP/rules/07-testing-php.md +636 -0
  76. package/Dev/i18n/de/PHP/rules/08-quality-tools.md +533 -0
  77. package/Dev/i18n/de/PHP/rules/11-security-php.md +759 -0
  78. package/Dev/i18n/de/PHP/templates/entity.md +435 -0
  79. package/Dev/i18n/de/PHP/templates/use-case.md +512 -0
  80. package/Dev/i18n/de/PHP/templates/value-object.md +555 -0
  81. package/Dev/i18n/de/VueJS/CLAUDE.md.template +102 -0
  82. package/Dev/i18n/de/VueJS/agents/vuejs-reviewer.md +206 -0
  83. package/Dev/i18n/de/VueJS/checklists/new-feature.md +131 -0
  84. package/Dev/i18n/de/VueJS/checklists/pre-commit.md +68 -0
  85. package/Dev/i18n/de/VueJS/commands/check-architecture.md +137 -0
  86. package/Dev/i18n/de/VueJS/commands/check-code-quality.md +152 -0
  87. package/Dev/i18n/de/VueJS/commands/check-compliance.md +124 -0
  88. package/Dev/i18n/de/VueJS/commands/check-security.md +186 -0
  89. package/Dev/i18n/de/VueJS/commands/check-testing.md +185 -0
  90. package/Dev/i18n/de/VueJS/commands/generate-component.md +233 -0
  91. package/Dev/i18n/de/VueJS/rules/00-project-context.md.template +125 -0
  92. package/Dev/i18n/de/VueJS/rules/02-architecture-vuejs.md +375 -0
  93. package/Dev/i18n/de/VueJS/rules/03-coding-standards.md +502 -0
  94. package/Dev/i18n/de/VueJS/rules/06-tooling.md +422 -0
  95. package/Dev/i18n/de/VueJS/rules/07-testing-vuejs.md +606 -0
  96. package/Dev/i18n/de/VueJS/rules/08-quality-tools.md +441 -0
  97. package/Dev/i18n/de/VueJS/rules/11-security-vuejs.md +465 -0
  98. package/Dev/i18n/de/VueJS/templates/component.template.vue +133 -0
  99. package/Dev/i18n/de/VueJS/templates/composable.template.ts +162 -0
  100. package/Dev/i18n/de/VueJS/templates/store.template.ts +282 -0
  101. package/Dev/i18n/de/VueJS/templates/test.template.ts +233 -0
  102. package/Dev/i18n/en/Angular/CLAUDE.md.template +49 -0
  103. package/Dev/i18n/en/Angular/agents/angular-reviewer.md +213 -0
  104. package/Dev/i18n/en/Angular/checklists/new-feature.md +125 -0
  105. package/Dev/i18n/en/Angular/checklists/pre-commit.md +77 -0
  106. package/Dev/i18n/en/Angular/commands/check-architecture.md +261 -0
  107. package/Dev/i18n/en/Angular/commands/check-code-quality.md +238 -0
  108. package/Dev/i18n/en/Angular/commands/check-compliance.md +199 -0
  109. package/Dev/i18n/en/Angular/commands/check-security.md +263 -0
  110. package/Dev/i18n/en/Angular/commands/check-testing.md +292 -0
  111. package/Dev/i18n/en/Angular/commands/generate-component.md +220 -0
  112. package/Dev/i18n/en/Angular/rules/00-project-context.md.template +78 -0
  113. package/Dev/i18n/en/Angular/rules/02-architecture-angular.md +477 -0
  114. package/Dev/i18n/en/Angular/rules/03-coding-standards.md +640 -0
  115. package/Dev/i18n/en/Angular/rules/06-tooling.md +516 -0
  116. package/Dev/i18n/en/Angular/rules/07-testing-angular.md +739 -0
  117. package/Dev/i18n/en/Angular/rules/08-quality-tools.md +501 -0
  118. package/Dev/i18n/en/Angular/rules/11-security-angular.md +497 -0
  119. package/Dev/i18n/en/Angular/templates/component.template.ts +115 -0
  120. package/Dev/i18n/en/Angular/templates/service.template.ts +203 -0
  121. package/Dev/i18n/en/CSharp/CLAUDE.md.template +65 -0
  122. package/Dev/i18n/en/CSharp/agents/csharp-reviewer.md +166 -0
  123. package/Dev/i18n/en/CSharp/checklists/new-feature.md +178 -0
  124. package/Dev/i18n/en/CSharp/checklists/pre-commit.md +126 -0
  125. package/Dev/i18n/en/CSharp/commands/check-architecture.md +294 -0
  126. package/Dev/i18n/en/CSharp/commands/check-code-quality.md +355 -0
  127. package/Dev/i18n/en/CSharp/commands/check-compliance.md +178 -0
  128. package/Dev/i18n/en/CSharp/commands/check-security.md +369 -0
  129. package/Dev/i18n/en/CSharp/commands/check-testing.md +295 -0
  130. package/Dev/i18n/en/CSharp/commands/generate-feature.md +481 -0
  131. package/Dev/i18n/en/CSharp/rules/00-project-context.md.template +100 -0
  132. package/Dev/i18n/en/CSharp/rules/02-architecture-csharp.md +536 -0
  133. package/Dev/i18n/en/CSharp/rules/03-coding-standards.md +494 -0
  134. package/Dev/i18n/en/CSharp/rules/06-tooling.md +493 -0
  135. package/Dev/i18n/en/CSharp/rules/07-testing-csharp.md +566 -0
  136. package/Dev/i18n/en/CSharp/rules/08-quality-tools.md +497 -0
  137. package/Dev/i18n/en/CSharp/rules/11-security-csharp.md +568 -0
  138. package/Dev/i18n/en/CSharp/rules/12-aspire-cloud-native.md +514 -0
  139. package/Dev/i18n/en/CSharp/templates/command-handler.template.cs +100 -0
  140. package/Dev/i18n/en/CSharp/templates/entity.template.cs +159 -0
  141. package/Dev/i18n/en/Common/commands/add-technology.md +293 -0
  142. package/Dev/i18n/en/Laravel/CLAUDE.md.template +104 -0
  143. package/Dev/i18n/en/Laravel/agents/laravel-reviewer.md +200 -0
  144. package/Dev/i18n/en/Laravel/checklists/new-feature.md +277 -0
  145. package/Dev/i18n/en/Laravel/checklists/pre-commit.md +156 -0
  146. package/Dev/i18n/en/Laravel/commands/check-architecture.md +306 -0
  147. package/Dev/i18n/en/Laravel/commands/check-code-quality.md +302 -0
  148. package/Dev/i18n/en/Laravel/commands/check-compliance.md +141 -0
  149. package/Dev/i18n/en/Laravel/commands/check-security.md +372 -0
  150. package/Dev/i18n/en/Laravel/commands/check-testing.md +397 -0
  151. package/Dev/i18n/en/Laravel/commands/generate-controller.md +388 -0
  152. package/Dev/i18n/en/Laravel/rules/00-project-context.md.template +140 -0
  153. package/Dev/i18n/en/Laravel/rules/02-architecture-laravel.md +644 -0
  154. package/Dev/i18n/en/Laravel/rules/03-coding-standards.md +573 -0
  155. package/Dev/i18n/en/Laravel/rules/06-tooling.md +580 -0
  156. package/Dev/i18n/en/Laravel/rules/07-testing-laravel.md +525 -0
  157. package/Dev/i18n/en/Laravel/rules/08-quality-tools.md +591 -0
  158. package/Dev/i18n/en/Laravel/rules/11-security-laravel.md +787 -0
  159. package/Dev/i18n/en/Laravel/templates/action.template.php +79 -0
  160. package/Dev/i18n/en/Laravel/templates/controller.template.php +99 -0
  161. package/Dev/i18n/en/Laravel/templates/model.template.php +206 -0
  162. package/Dev/i18n/en/Laravel/templates/test.template.php +263 -0
  163. package/Dev/i18n/en/PHP/CLAUDE.md.template +460 -0
  164. package/Dev/i18n/en/PHP/agents/php-reviewer.md +345 -0
  165. package/Dev/i18n/en/PHP/checklists/new-feature.md +132 -0
  166. package/Dev/i18n/en/PHP/checklists/pre-commit.md +231 -0
  167. package/Dev/i18n/en/PHP/commands/check-architecture.md +557 -0
  168. package/Dev/i18n/en/PHP/commands/check-code-quality.md +448 -0
  169. package/Dev/i18n/en/PHP/commands/check-compliance.md +477 -0
  170. package/Dev/i18n/en/PHP/commands/check-security.md +420 -0
  171. package/Dev/i18n/en/PHP/commands/check-testing.md +486 -0
  172. package/Dev/i18n/en/PHP/rules/00-project-context.md.template +266 -0
  173. package/Dev/i18n/en/PHP/rules/02-architecture-php.md +696 -0
  174. package/Dev/i18n/en/PHP/rules/03-coding-standards.md +641 -0
  175. package/Dev/i18n/en/PHP/rules/06-tooling.md +543 -0
  176. package/Dev/i18n/en/PHP/rules/07-testing-php.md +636 -0
  177. package/Dev/i18n/en/PHP/rules/08-quality-tools.md +533 -0
  178. package/Dev/i18n/en/PHP/rules/11-security-php.md +759 -0
  179. package/Dev/i18n/en/PHP/templates/entity.md +435 -0
  180. package/Dev/i18n/en/PHP/templates/use-case.md +512 -0
  181. package/Dev/i18n/en/PHP/templates/value-object.md +555 -0
  182. package/Dev/i18n/en/VueJS/CLAUDE.md.template +102 -0
  183. package/Dev/i18n/en/VueJS/agents/vuejs-reviewer.md +206 -0
  184. package/Dev/i18n/en/VueJS/checklists/new-feature.md +131 -0
  185. package/Dev/i18n/en/VueJS/checklists/pre-commit.md +68 -0
  186. package/Dev/i18n/en/VueJS/commands/check-architecture.md +137 -0
  187. package/Dev/i18n/en/VueJS/commands/check-code-quality.md +152 -0
  188. package/Dev/i18n/en/VueJS/commands/check-compliance.md +124 -0
  189. package/Dev/i18n/en/VueJS/commands/check-security.md +186 -0
  190. package/Dev/i18n/en/VueJS/commands/check-testing.md +185 -0
  191. package/Dev/i18n/en/VueJS/commands/generate-component.md +233 -0
  192. package/Dev/i18n/en/VueJS/rules/00-project-context.md.template +125 -0
  193. package/Dev/i18n/en/VueJS/rules/02-architecture-vuejs.md +375 -0
  194. package/Dev/i18n/en/VueJS/rules/03-coding-standards.md +502 -0
  195. package/Dev/i18n/en/VueJS/rules/06-tooling.md +422 -0
  196. package/Dev/i18n/en/VueJS/rules/07-testing-vuejs.md +606 -0
  197. package/Dev/i18n/en/VueJS/rules/08-quality-tools.md +441 -0
  198. package/Dev/i18n/en/VueJS/rules/11-security-vuejs.md +465 -0
  199. package/Dev/i18n/en/VueJS/templates/component.template.vue +133 -0
  200. package/Dev/i18n/en/VueJS/templates/composable.template.ts +162 -0
  201. package/Dev/i18n/en/VueJS/templates/store.template.ts +282 -0
  202. package/Dev/i18n/en/VueJS/templates/test.template.ts +233 -0
  203. package/Dev/i18n/es/Angular/CLAUDE.md.template +49 -0
  204. package/Dev/i18n/es/Angular/agents/angular-reviewer.md +213 -0
  205. package/Dev/i18n/es/Angular/checklists/new-feature.md +125 -0
  206. package/Dev/i18n/es/Angular/checklists/pre-commit.md +77 -0
  207. package/Dev/i18n/es/Angular/commands/check-architecture.md +261 -0
  208. package/Dev/i18n/es/Angular/commands/check-code-quality.md +238 -0
  209. package/Dev/i18n/es/Angular/commands/check-compliance.md +199 -0
  210. package/Dev/i18n/es/Angular/commands/check-security.md +263 -0
  211. package/Dev/i18n/es/Angular/commands/check-testing.md +292 -0
  212. package/Dev/i18n/es/Angular/commands/generate-component.md +220 -0
  213. package/Dev/i18n/es/Angular/rules/00-project-context.md.template +78 -0
  214. package/Dev/i18n/es/Angular/rules/02-architecture-angular.md +477 -0
  215. package/Dev/i18n/es/Angular/rules/03-coding-standards.md +640 -0
  216. package/Dev/i18n/es/Angular/rules/06-tooling.md +516 -0
  217. package/Dev/i18n/es/Angular/rules/07-testing-angular.md +739 -0
  218. package/Dev/i18n/es/Angular/rules/08-quality-tools.md +501 -0
  219. package/Dev/i18n/es/Angular/rules/11-security-angular.md +497 -0
  220. package/Dev/i18n/es/Angular/templates/component.template.ts +115 -0
  221. package/Dev/i18n/es/Angular/templates/service.template.ts +203 -0
  222. package/Dev/i18n/es/CSharp/CLAUDE.md.template +65 -0
  223. package/Dev/i18n/es/CSharp/agents/csharp-reviewer.md +166 -0
  224. package/Dev/i18n/es/CSharp/checklists/new-feature.md +178 -0
  225. package/Dev/i18n/es/CSharp/checklists/pre-commit.md +126 -0
  226. package/Dev/i18n/es/CSharp/commands/check-architecture.md +294 -0
  227. package/Dev/i18n/es/CSharp/commands/check-code-quality.md +355 -0
  228. package/Dev/i18n/es/CSharp/commands/check-compliance.md +178 -0
  229. package/Dev/i18n/es/CSharp/commands/check-security.md +369 -0
  230. package/Dev/i18n/es/CSharp/commands/check-testing.md +295 -0
  231. package/Dev/i18n/es/CSharp/commands/generate-feature.md +481 -0
  232. package/Dev/i18n/es/CSharp/rules/00-project-context.md.template +100 -0
  233. package/Dev/i18n/es/CSharp/rules/02-architecture-csharp.md +536 -0
  234. package/Dev/i18n/es/CSharp/rules/03-coding-standards.md +494 -0
  235. package/Dev/i18n/es/CSharp/rules/06-tooling.md +493 -0
  236. package/Dev/i18n/es/CSharp/rules/07-testing-csharp.md +566 -0
  237. package/Dev/i18n/es/CSharp/rules/08-quality-tools.md +497 -0
  238. package/Dev/i18n/es/CSharp/rules/11-security-csharp.md +568 -0
  239. package/Dev/i18n/es/CSharp/rules/12-aspire-cloud-native.md +514 -0
  240. package/Dev/i18n/es/CSharp/templates/command-handler.template.cs +100 -0
  241. package/Dev/i18n/es/CSharp/templates/entity.template.cs +159 -0
  242. package/Dev/i18n/es/Common/commands/add-technology.md +195 -0
  243. package/Dev/i18n/es/Laravel/CLAUDE.md.template +104 -0
  244. package/Dev/i18n/es/Laravel/agents/laravel-reviewer.md +200 -0
  245. package/Dev/i18n/es/Laravel/checklists/new-feature.md +277 -0
  246. package/Dev/i18n/es/Laravel/checklists/pre-commit.md +156 -0
  247. package/Dev/i18n/es/Laravel/commands/check-architecture.md +306 -0
  248. package/Dev/i18n/es/Laravel/commands/check-code-quality.md +302 -0
  249. package/Dev/i18n/es/Laravel/commands/check-compliance.md +141 -0
  250. package/Dev/i18n/es/Laravel/commands/check-security.md +372 -0
  251. package/Dev/i18n/es/Laravel/commands/check-testing.md +397 -0
  252. package/Dev/i18n/es/Laravel/commands/generate-controller.md +388 -0
  253. package/Dev/i18n/es/Laravel/rules/00-project-context.md.template +140 -0
  254. package/Dev/i18n/es/Laravel/rules/02-architecture-laravel.md +644 -0
  255. package/Dev/i18n/es/Laravel/rules/03-coding-standards.md +573 -0
  256. package/Dev/i18n/es/Laravel/rules/06-tooling.md +580 -0
  257. package/Dev/i18n/es/Laravel/rules/07-testing-laravel.md +525 -0
  258. package/Dev/i18n/es/Laravel/rules/08-quality-tools.md +591 -0
  259. package/Dev/i18n/es/Laravel/rules/11-security-laravel.md +787 -0
  260. package/Dev/i18n/es/Laravel/templates/action.template.php +79 -0
  261. package/Dev/i18n/es/Laravel/templates/controller.template.php +99 -0
  262. package/Dev/i18n/es/Laravel/templates/model.template.php +206 -0
  263. package/Dev/i18n/es/Laravel/templates/test.template.php +263 -0
  264. package/Dev/i18n/es/PHP/CLAUDE.md.template +460 -0
  265. package/Dev/i18n/es/PHP/agents/php-reviewer.md +345 -0
  266. package/Dev/i18n/es/PHP/checklists/new-feature.md +132 -0
  267. package/Dev/i18n/es/PHP/checklists/pre-commit.md +231 -0
  268. package/Dev/i18n/es/PHP/commands/check-architecture.md +557 -0
  269. package/Dev/i18n/es/PHP/commands/check-code-quality.md +448 -0
  270. package/Dev/i18n/es/PHP/commands/check-compliance.md +477 -0
  271. package/Dev/i18n/es/PHP/commands/check-security.md +420 -0
  272. package/Dev/i18n/es/PHP/commands/check-testing.md +486 -0
  273. package/Dev/i18n/es/PHP/rules/00-project-context.md.template +266 -0
  274. package/Dev/i18n/es/PHP/rules/02-architecture-php.md +696 -0
  275. package/Dev/i18n/es/PHP/rules/03-coding-standards.md +641 -0
  276. package/Dev/i18n/es/PHP/rules/06-tooling.md +543 -0
  277. package/Dev/i18n/es/PHP/rules/07-testing-php.md +636 -0
  278. package/Dev/i18n/es/PHP/rules/08-quality-tools.md +533 -0
  279. package/Dev/i18n/es/PHP/rules/11-security-php.md +759 -0
  280. package/Dev/i18n/es/PHP/templates/entity.md +435 -0
  281. package/Dev/i18n/es/PHP/templates/use-case.md +512 -0
  282. package/Dev/i18n/es/PHP/templates/value-object.md +555 -0
  283. package/Dev/i18n/es/VueJS/CLAUDE.md.template +102 -0
  284. package/Dev/i18n/es/VueJS/agents/vuejs-reviewer.md +206 -0
  285. package/Dev/i18n/es/VueJS/checklists/new-feature.md +131 -0
  286. package/Dev/i18n/es/VueJS/checklists/pre-commit.md +68 -0
  287. package/Dev/i18n/es/VueJS/commands/check-architecture.md +137 -0
  288. package/Dev/i18n/es/VueJS/commands/check-code-quality.md +152 -0
  289. package/Dev/i18n/es/VueJS/commands/check-compliance.md +124 -0
  290. package/Dev/i18n/es/VueJS/commands/check-security.md +186 -0
  291. package/Dev/i18n/es/VueJS/commands/check-testing.md +185 -0
  292. package/Dev/i18n/es/VueJS/commands/generate-component.md +233 -0
  293. package/Dev/i18n/es/VueJS/rules/00-project-context.md.template +125 -0
  294. package/Dev/i18n/es/VueJS/rules/02-architecture-vuejs.md +375 -0
  295. package/Dev/i18n/es/VueJS/rules/03-coding-standards.md +502 -0
  296. package/Dev/i18n/es/VueJS/rules/06-tooling.md +422 -0
  297. package/Dev/i18n/es/VueJS/rules/07-testing-vuejs.md +606 -0
  298. package/Dev/i18n/es/VueJS/rules/08-quality-tools.md +441 -0
  299. package/Dev/i18n/es/VueJS/rules/11-security-vuejs.md +465 -0
  300. package/Dev/i18n/es/VueJS/templates/component.template.vue +133 -0
  301. package/Dev/i18n/es/VueJS/templates/composable.template.ts +162 -0
  302. package/Dev/i18n/es/VueJS/templates/store.template.ts +282 -0
  303. package/Dev/i18n/es/VueJS/templates/test.template.ts +233 -0
  304. package/Dev/i18n/fr/Angular/CLAUDE.md.template +49 -0
  305. package/Dev/i18n/fr/Angular/agents/angular-reviewer.md +213 -0
  306. package/Dev/i18n/fr/Angular/checklists/new-feature.md +125 -0
  307. package/Dev/i18n/fr/Angular/checklists/pre-commit.md +77 -0
  308. package/Dev/i18n/fr/Angular/commands/check-architecture.md +261 -0
  309. package/Dev/i18n/fr/Angular/commands/check-code-quality.md +238 -0
  310. package/Dev/i18n/fr/Angular/commands/check-compliance.md +199 -0
  311. package/Dev/i18n/fr/Angular/commands/check-security.md +263 -0
  312. package/Dev/i18n/fr/Angular/commands/check-testing.md +292 -0
  313. package/Dev/i18n/fr/Angular/commands/generate-component.md +220 -0
  314. package/Dev/i18n/fr/Angular/rules/00-project-context.md.template +78 -0
  315. package/Dev/i18n/fr/Angular/rules/02-architecture-angular.md +477 -0
  316. package/Dev/i18n/fr/Angular/rules/03-coding-standards.md +640 -0
  317. package/Dev/i18n/fr/Angular/rules/06-tooling.md +516 -0
  318. package/Dev/i18n/fr/Angular/rules/07-testing-angular.md +739 -0
  319. package/Dev/i18n/fr/Angular/rules/08-quality-tools.md +501 -0
  320. package/Dev/i18n/fr/Angular/rules/11-security-angular.md +497 -0
  321. package/Dev/i18n/fr/Angular/templates/component.template.ts +115 -0
  322. package/Dev/i18n/fr/Angular/templates/service.template.ts +203 -0
  323. package/Dev/i18n/fr/CSharp/CLAUDE.md.template +65 -0
  324. package/Dev/i18n/fr/CSharp/agents/csharp-reviewer.md +166 -0
  325. package/Dev/i18n/fr/CSharp/checklists/new-feature.md +178 -0
  326. package/Dev/i18n/fr/CSharp/checklists/pre-commit.md +126 -0
  327. package/Dev/i18n/fr/CSharp/commands/check-architecture.md +294 -0
  328. package/Dev/i18n/fr/CSharp/commands/check-code-quality.md +355 -0
  329. package/Dev/i18n/fr/CSharp/commands/check-compliance.md +178 -0
  330. package/Dev/i18n/fr/CSharp/commands/check-security.md +369 -0
  331. package/Dev/i18n/fr/CSharp/commands/check-testing.md +295 -0
  332. package/Dev/i18n/fr/CSharp/commands/generate-feature.md +481 -0
  333. package/Dev/i18n/fr/CSharp/rules/00-project-context.md.template +100 -0
  334. package/Dev/i18n/fr/CSharp/rules/02-architecture-csharp.md +536 -0
  335. package/Dev/i18n/fr/CSharp/rules/03-coding-standards.md +494 -0
  336. package/Dev/i18n/fr/CSharp/rules/06-tooling.md +493 -0
  337. package/Dev/i18n/fr/CSharp/rules/07-testing-csharp.md +566 -0
  338. package/Dev/i18n/fr/CSharp/rules/08-quality-tools.md +497 -0
  339. package/Dev/i18n/fr/CSharp/rules/11-security-csharp.md +568 -0
  340. package/Dev/i18n/fr/CSharp/rules/12-aspire-cloud-native.md +514 -0
  341. package/Dev/i18n/fr/CSharp/templates/command-handler.template.cs +100 -0
  342. package/Dev/i18n/fr/CSharp/templates/entity.template.cs +159 -0
  343. package/Dev/i18n/fr/Common/commands/add-technology.md +293 -0
  344. package/Dev/i18n/fr/Laravel/CLAUDE.md.template +104 -0
  345. package/Dev/i18n/fr/Laravel/agents/laravel-reviewer.md +200 -0
  346. package/Dev/i18n/fr/Laravel/checklists/new-feature.md +277 -0
  347. package/Dev/i18n/fr/Laravel/checklists/pre-commit.md +156 -0
  348. package/Dev/i18n/fr/Laravel/commands/check-architecture.md +306 -0
  349. package/Dev/i18n/fr/Laravel/commands/check-code-quality.md +302 -0
  350. package/Dev/i18n/fr/Laravel/commands/check-compliance.md +141 -0
  351. package/Dev/i18n/fr/Laravel/commands/check-security.md +372 -0
  352. package/Dev/i18n/fr/Laravel/commands/check-testing.md +397 -0
  353. package/Dev/i18n/fr/Laravel/commands/generate-controller.md +388 -0
  354. package/Dev/i18n/fr/Laravel/rules/00-project-context.md.template +140 -0
  355. package/Dev/i18n/fr/Laravel/rules/02-architecture-laravel.md +644 -0
  356. package/Dev/i18n/fr/Laravel/rules/03-coding-standards.md +573 -0
  357. package/Dev/i18n/fr/Laravel/rules/06-tooling.md +580 -0
  358. package/Dev/i18n/fr/Laravel/rules/07-testing-laravel.md +525 -0
  359. package/Dev/i18n/fr/Laravel/rules/08-quality-tools.md +591 -0
  360. package/Dev/i18n/fr/Laravel/rules/11-security-laravel.md +787 -0
  361. package/Dev/i18n/fr/Laravel/templates/action.template.php +79 -0
  362. package/Dev/i18n/fr/Laravel/templates/controller.template.php +99 -0
  363. package/Dev/i18n/fr/Laravel/templates/model.template.php +206 -0
  364. package/Dev/i18n/fr/Laravel/templates/test.template.php +263 -0
  365. package/Dev/i18n/fr/PHP/CLAUDE.md.template +460 -0
  366. package/Dev/i18n/fr/PHP/agents/php-reviewer.md +345 -0
  367. package/Dev/i18n/fr/PHP/checklists/new-feature.md +132 -0
  368. package/Dev/i18n/fr/PHP/checklists/pre-commit.md +231 -0
  369. package/Dev/i18n/fr/PHP/commands/check-architecture.md +557 -0
  370. package/Dev/i18n/fr/PHP/commands/check-code-quality.md +448 -0
  371. package/Dev/i18n/fr/PHP/commands/check-compliance.md +477 -0
  372. package/Dev/i18n/fr/PHP/commands/check-security.md +420 -0
  373. package/Dev/i18n/fr/PHP/commands/check-testing.md +486 -0
  374. package/Dev/i18n/fr/PHP/rules/00-project-context.md.template +266 -0
  375. package/Dev/i18n/fr/PHP/rules/02-architecture-php.md +506 -0
  376. package/Dev/i18n/fr/PHP/rules/03-coding-standards.md +585 -0
  377. package/Dev/i18n/fr/PHP/rules/06-tooling.md +543 -0
  378. package/Dev/i18n/fr/PHP/rules/07-testing-php.md +636 -0
  379. package/Dev/i18n/fr/PHP/rules/08-quality-tools.md +533 -0
  380. package/Dev/i18n/fr/PHP/rules/11-security-php.md +642 -0
  381. package/Dev/i18n/fr/PHP/templates/entity.md +435 -0
  382. package/Dev/i18n/fr/PHP/templates/use-case.md +512 -0
  383. package/Dev/i18n/fr/PHP/templates/value-object.md +555 -0
  384. package/Dev/i18n/fr/VueJS/CLAUDE.md.template +102 -0
  385. package/Dev/i18n/fr/VueJS/agents/vuejs-reviewer.md +206 -0
  386. package/Dev/i18n/fr/VueJS/checklists/new-feature.md +131 -0
  387. package/Dev/i18n/fr/VueJS/checklists/pre-commit.md +68 -0
  388. package/Dev/i18n/fr/VueJS/commands/check-architecture.md +137 -0
  389. package/Dev/i18n/fr/VueJS/commands/check-code-quality.md +152 -0
  390. package/Dev/i18n/fr/VueJS/commands/check-compliance.md +124 -0
  391. package/Dev/i18n/fr/VueJS/commands/check-security.md +186 -0
  392. package/Dev/i18n/fr/VueJS/commands/check-testing.md +185 -0
  393. package/Dev/i18n/fr/VueJS/commands/generate-component.md +233 -0
  394. package/Dev/i18n/fr/VueJS/rules/00-project-context.md.template +125 -0
  395. package/Dev/i18n/fr/VueJS/rules/02-architecture-vuejs.md +375 -0
  396. package/Dev/i18n/fr/VueJS/rules/03-coding-standards.md +502 -0
  397. package/Dev/i18n/fr/VueJS/rules/06-tooling.md +422 -0
  398. package/Dev/i18n/fr/VueJS/rules/07-testing-vuejs.md +606 -0
  399. package/Dev/i18n/fr/VueJS/rules/08-quality-tools.md +441 -0
  400. package/Dev/i18n/fr/VueJS/rules/11-security-vuejs.md +465 -0
  401. package/Dev/i18n/fr/VueJS/templates/component.template.vue +133 -0
  402. package/Dev/i18n/fr/VueJS/templates/composable.template.ts +162 -0
  403. package/Dev/i18n/fr/VueJS/templates/store.template.ts +282 -0
  404. package/Dev/i18n/fr/VueJS/templates/test.template.ts +233 -0
  405. package/Dev/i18n/pt/Angular/CLAUDE.md.template +49 -0
  406. package/Dev/i18n/pt/Angular/agents/angular-reviewer.md +213 -0
  407. package/Dev/i18n/pt/Angular/checklists/new-feature.md +125 -0
  408. package/Dev/i18n/pt/Angular/checklists/pre-commit.md +77 -0
  409. package/Dev/i18n/pt/Angular/commands/check-architecture.md +261 -0
  410. package/Dev/i18n/pt/Angular/commands/check-code-quality.md +238 -0
  411. package/Dev/i18n/pt/Angular/commands/check-compliance.md +199 -0
  412. package/Dev/i18n/pt/Angular/commands/check-security.md +263 -0
  413. package/Dev/i18n/pt/Angular/commands/check-testing.md +292 -0
  414. package/Dev/i18n/pt/Angular/commands/generate-component.md +220 -0
  415. package/Dev/i18n/pt/Angular/rules/00-project-context.md.template +78 -0
  416. package/Dev/i18n/pt/Angular/rules/02-architecture-angular.md +477 -0
  417. package/Dev/i18n/pt/Angular/rules/03-coding-standards.md +640 -0
  418. package/Dev/i18n/pt/Angular/rules/06-tooling.md +516 -0
  419. package/Dev/i18n/pt/Angular/rules/07-testing-angular.md +739 -0
  420. package/Dev/i18n/pt/Angular/rules/08-quality-tools.md +501 -0
  421. package/Dev/i18n/pt/Angular/rules/11-security-angular.md +497 -0
  422. package/Dev/i18n/pt/Angular/templates/component.template.ts +115 -0
  423. package/Dev/i18n/pt/Angular/templates/service.template.ts +203 -0
  424. package/Dev/i18n/pt/CSharp/CLAUDE.md.template +65 -0
  425. package/Dev/i18n/pt/CSharp/agents/csharp-reviewer.md +166 -0
  426. package/Dev/i18n/pt/CSharp/checklists/new-feature.md +178 -0
  427. package/Dev/i18n/pt/CSharp/checklists/pre-commit.md +126 -0
  428. package/Dev/i18n/pt/CSharp/commands/check-architecture.md +294 -0
  429. package/Dev/i18n/pt/CSharp/commands/check-code-quality.md +355 -0
  430. package/Dev/i18n/pt/CSharp/commands/check-compliance.md +178 -0
  431. package/Dev/i18n/pt/CSharp/commands/check-security.md +369 -0
  432. package/Dev/i18n/pt/CSharp/commands/check-testing.md +295 -0
  433. package/Dev/i18n/pt/CSharp/commands/generate-feature.md +481 -0
  434. package/Dev/i18n/pt/CSharp/rules/00-project-context.md.template +100 -0
  435. package/Dev/i18n/pt/CSharp/rules/02-architecture-csharp.md +536 -0
  436. package/Dev/i18n/pt/CSharp/rules/03-coding-standards.md +494 -0
  437. package/Dev/i18n/pt/CSharp/rules/06-tooling.md +493 -0
  438. package/Dev/i18n/pt/CSharp/rules/07-testing-csharp.md +566 -0
  439. package/Dev/i18n/pt/CSharp/rules/08-quality-tools.md +497 -0
  440. package/Dev/i18n/pt/CSharp/rules/11-security-csharp.md +568 -0
  441. package/Dev/i18n/pt/CSharp/rules/12-aspire-cloud-native.md +514 -0
  442. package/Dev/i18n/pt/CSharp/templates/command-handler.template.cs +100 -0
  443. package/Dev/i18n/pt/CSharp/templates/entity.template.cs +159 -0
  444. package/Dev/i18n/pt/Common/commands/add-technology.md +195 -0
  445. package/Dev/i18n/pt/Laravel/CLAUDE.md.template +104 -0
  446. package/Dev/i18n/pt/Laravel/agents/laravel-reviewer.md +200 -0
  447. package/Dev/i18n/pt/Laravel/checklists/new-feature.md +277 -0
  448. package/Dev/i18n/pt/Laravel/checklists/pre-commit.md +156 -0
  449. package/Dev/i18n/pt/Laravel/commands/check-architecture.md +306 -0
  450. package/Dev/i18n/pt/Laravel/commands/check-code-quality.md +302 -0
  451. package/Dev/i18n/pt/Laravel/commands/check-compliance.md +141 -0
  452. package/Dev/i18n/pt/Laravel/commands/check-security.md +372 -0
  453. package/Dev/i18n/pt/Laravel/commands/check-testing.md +397 -0
  454. package/Dev/i18n/pt/Laravel/commands/generate-controller.md +388 -0
  455. package/Dev/i18n/pt/Laravel/rules/00-project-context.md.template +140 -0
  456. package/Dev/i18n/pt/Laravel/rules/02-architecture-laravel.md +644 -0
  457. package/Dev/i18n/pt/Laravel/rules/03-coding-standards.md +573 -0
  458. package/Dev/i18n/pt/Laravel/rules/06-tooling.md +580 -0
  459. package/Dev/i18n/pt/Laravel/rules/07-testing-laravel.md +525 -0
  460. package/Dev/i18n/pt/Laravel/rules/08-quality-tools.md +591 -0
  461. package/Dev/i18n/pt/Laravel/rules/11-security-laravel.md +787 -0
  462. package/Dev/i18n/pt/Laravel/templates/action.template.php +79 -0
  463. package/Dev/i18n/pt/Laravel/templates/controller.template.php +99 -0
  464. package/Dev/i18n/pt/Laravel/templates/model.template.php +206 -0
  465. package/Dev/i18n/pt/Laravel/templates/test.template.php +263 -0
  466. package/Dev/i18n/pt/PHP/CLAUDE.md.template +460 -0
  467. package/Dev/i18n/pt/PHP/agents/php-reviewer.md +345 -0
  468. package/Dev/i18n/pt/PHP/checklists/new-feature.md +132 -0
  469. package/Dev/i18n/pt/PHP/checklists/pre-commit.md +231 -0
  470. package/Dev/i18n/pt/PHP/commands/check-architecture.md +557 -0
  471. package/Dev/i18n/pt/PHP/commands/check-code-quality.md +448 -0
  472. package/Dev/i18n/pt/PHP/commands/check-compliance.md +477 -0
  473. package/Dev/i18n/pt/PHP/commands/check-security.md +420 -0
  474. package/Dev/i18n/pt/PHP/commands/check-testing.md +486 -0
  475. package/Dev/i18n/pt/PHP/rules/00-project-context.md.template +266 -0
  476. package/Dev/i18n/pt/PHP/rules/02-architecture-php.md +696 -0
  477. package/Dev/i18n/pt/PHP/rules/03-coding-standards.md +641 -0
  478. package/Dev/i18n/pt/PHP/rules/06-tooling.md +543 -0
  479. package/Dev/i18n/pt/PHP/rules/07-testing-php.md +636 -0
  480. package/Dev/i18n/pt/PHP/rules/08-quality-tools.md +533 -0
  481. package/Dev/i18n/pt/PHP/rules/11-security-php.md +759 -0
  482. package/Dev/i18n/pt/PHP/templates/entity.md +435 -0
  483. package/Dev/i18n/pt/PHP/templates/use-case.md +512 -0
  484. package/Dev/i18n/pt/PHP/templates/value-object.md +555 -0
  485. package/Dev/i18n/pt/VueJS/CLAUDE.md.template +102 -0
  486. package/Dev/i18n/pt/VueJS/agents/vuejs-reviewer.md +206 -0
  487. package/Dev/i18n/pt/VueJS/checklists/new-feature.md +131 -0
  488. package/Dev/i18n/pt/VueJS/checklists/pre-commit.md +68 -0
  489. package/Dev/i18n/pt/VueJS/commands/check-architecture.md +137 -0
  490. package/Dev/i18n/pt/VueJS/commands/check-code-quality.md +152 -0
  491. package/Dev/i18n/pt/VueJS/commands/check-compliance.md +124 -0
  492. package/Dev/i18n/pt/VueJS/commands/check-security.md +186 -0
  493. package/Dev/i18n/pt/VueJS/commands/check-testing.md +185 -0
  494. package/Dev/i18n/pt/VueJS/commands/generate-component.md +233 -0
  495. package/Dev/i18n/pt/VueJS/rules/00-project-context.md.template +125 -0
  496. package/Dev/i18n/pt/VueJS/rules/02-architecture-vuejs.md +375 -0
  497. package/Dev/i18n/pt/VueJS/rules/03-coding-standards.md +502 -0
  498. package/Dev/i18n/pt/VueJS/rules/06-tooling.md +422 -0
  499. package/Dev/i18n/pt/VueJS/rules/07-testing-vuejs.md +606 -0
  500. package/Dev/i18n/pt/VueJS/rules/08-quality-tools.md +441 -0
  501. package/Dev/i18n/pt/VueJS/rules/11-security-vuejs.md +465 -0
  502. package/Dev/i18n/pt/VueJS/templates/component.template.vue +133 -0
  503. package/Dev/i18n/pt/VueJS/templates/composable.template.ts +162 -0
  504. package/Dev/i18n/pt/VueJS/templates/store.template.ts +282 -0
  505. package/Dev/i18n/pt/VueJS/templates/test.template.ts +233 -0
  506. package/Dev/scripts/install-angular-rules.sh +543 -0
  507. package/Dev/scripts/install-common-rules.sh +13 -1
  508. package/Dev/scripts/install-csharp-rules.sh +544 -0
  509. package/Dev/scripts/install-flutter-rules.sh +17 -4
  510. package/Dev/scripts/install-from-config.sh +61 -23
  511. package/Dev/scripts/install-laravel-rules.sh +552 -0
  512. package/Dev/scripts/install-php-rules.sh +537 -0
  513. package/Dev/scripts/install-python-rules.sh +17 -4
  514. package/Dev/scripts/install-react-rules.sh +17 -4
  515. package/Dev/scripts/install-reactnative-rules.sh +17 -4
  516. package/Dev/scripts/install-symfony-rules.sh +22 -4
  517. package/Dev/scripts/install-vuejs-rules.sh +588 -0
  518. package/README.md +68 -2
  519. package/Tools/Ralph/README.md +106 -10
  520. package/Tools/Ralph/lib/checkpoint.sh +15 -9
  521. package/Tools/Ralph/lib/circuit-breaker.sh +16 -7
  522. package/Tools/Ralph/lib/context-manager.sh +473 -0
  523. package/Tools/Ralph/lib/context-reconstruction.sh +329 -0
  524. package/Tools/Ralph/lib/dod-validator.sh +17 -4
  525. package/Tools/Ralph/lib/loop.sh +33 -10
  526. package/Tools/Ralph/lib/session.sh +88 -33
  527. package/Tools/Ralph/lib/sprint-progress.sh +832 -0
  528. package/Tools/Ralph/lib/utils.sh +362 -0
  529. package/Tools/Ralph/ralph.sh +172 -14
  530. package/Tools/Ralph/templates/ralph.yml.template +87 -0
  531. package/Tools/Ralph/templates/sprint-progress.md.template +72 -0
  532. package/Tools/i18n/ralph/de.sh +31 -0
  533. package/Tools/i18n/ralph/en.sh +31 -0
  534. package/Tools/i18n/ralph/es.sh +31 -0
  535. package/Tools/i18n/ralph/fr.sh +31 -0
  536. package/Tools/i18n/ralph/pt.sh +31 -0
  537. package/package.json +1 -1
@@ -0,0 +1,435 @@
1
+ # Template: Domain Entity
2
+
3
+ ## Basic Structure
4
+
5
+ ```php
6
+ <?php
7
+
8
+ declare(strict_types=1);
9
+
10
+ namespace App\Domain\Entity;
11
+
12
+ use App\Domain\Event\EntityCreatedEvent;
13
+ use App\Domain\Exception\InvalidEntityStateException;
14
+ use App\Domain\ValueObject\EntityId;
15
+
16
+ /**
17
+ * Entity description and purpose.
18
+ */
19
+ final class EntityName
20
+ {
21
+ /** @var DomainEvent[] */
22
+ private array $domainEvents = [];
23
+
24
+ private function __construct(
25
+ private readonly EntityId $id,
26
+ private string $name,
27
+ private EntityStatus $status,
28
+ private readonly \DateTimeImmutable $createdAt,
29
+ ) {}
30
+
31
+ /**
32
+ * Factory method for creating a new entity.
33
+ */
34
+ public static function create(EntityId $id, string $name): self
35
+ {
36
+ $entity = new self(
37
+ id: $id,
38
+ name: $name,
39
+ status: EntityStatus::DRAFT,
40
+ createdAt: new \DateTimeImmutable(),
41
+ );
42
+
43
+ $entity->recordDomainEvent(new EntityCreatedEvent($id));
44
+
45
+ return $entity;
46
+ }
47
+
48
+ /**
49
+ * Reconstitute entity from persistence.
50
+ */
51
+ public static function reconstitute(
52
+ EntityId $id,
53
+ string $name,
54
+ EntityStatus $status,
55
+ \DateTimeImmutable $createdAt,
56
+ ): self {
57
+ return new self($id, $name, $status, $createdAt);
58
+ }
59
+
60
+ // Getters
61
+
62
+ public function getId(): EntityId
63
+ {
64
+ return $this->id;
65
+ }
66
+
67
+ public function getName(): string
68
+ {
69
+ return $this->name;
70
+ }
71
+
72
+ public function getStatus(): EntityStatus
73
+ {
74
+ return $this->status;
75
+ }
76
+
77
+ public function getCreatedAt(): \DateTimeImmutable
78
+ {
79
+ return $this->createdAt;
80
+ }
81
+
82
+ // Business Logic Methods
83
+
84
+ public function rename(string $newName): void
85
+ {
86
+ if (empty($newName)) {
87
+ throw new \InvalidArgumentException('Name cannot be empty');
88
+ }
89
+
90
+ $this->name = $newName;
91
+ }
92
+
93
+ public function activate(): void
94
+ {
95
+ if ($this->status !== EntityStatus::DRAFT) {
96
+ throw new InvalidEntityStateException(
97
+ 'Only draft entities can be activated'
98
+ );
99
+ }
100
+
101
+ $this->status = EntityStatus::ACTIVE;
102
+ }
103
+
104
+ // Domain Events
105
+
106
+ /** @return DomainEvent[] */
107
+ public function pullDomainEvents(): array
108
+ {
109
+ $events = $this->domainEvents;
110
+ $this->domainEvents = [];
111
+
112
+ return $events;
113
+ }
114
+
115
+ private function recordDomainEvent(DomainEvent $event): void
116
+ {
117
+ $this->domainEvents[] = $event;
118
+ }
119
+ }
120
+ ```
121
+
122
+ ## With Aggregate Root
123
+
124
+ ```php
125
+ <?php
126
+
127
+ declare(strict_types=1);
128
+
129
+ namespace App\Domain\Entity;
130
+
131
+ use App\Domain\Event\OrderCreatedEvent;
132
+ use App\Domain\Event\OrderItemAddedEvent;
133
+ use App\Domain\Exception\EmptyOrderException;
134
+ use App\Domain\Exception\InvalidOrderStateException;
135
+ use App\Domain\ValueObject\CustomerId;
136
+ use App\Domain\ValueObject\Money;
137
+ use App\Domain\ValueObject\OrderId;
138
+ use App\Domain\ValueObject\ProductId;
139
+
140
+ /**
141
+ * Order aggregate root.
142
+ *
143
+ * Invariants:
144
+ * - Order must have at least one item to be submitted
145
+ * - Total amount must equal sum of item totals
146
+ * - Only draft orders can be modified
147
+ */
148
+ final class Order
149
+ {
150
+ /** @var OrderItem[] */
151
+ private array $items = [];
152
+
153
+ /** @var DomainEvent[] */
154
+ private array $domainEvents = [];
155
+
156
+ private function __construct(
157
+ private readonly OrderId $id,
158
+ private readonly CustomerId $customerId,
159
+ private OrderStatus $status,
160
+ private Money $totalAmount,
161
+ private readonly \DateTimeImmutable $createdAt,
162
+ ) {}
163
+
164
+ public static function create(OrderId $id, CustomerId $customerId): self
165
+ {
166
+ $order = new self(
167
+ id: $id,
168
+ customerId: $customerId,
169
+ status: OrderStatus::DRAFT,
170
+ totalAmount: Money::zero(),
171
+ createdAt: new \DateTimeImmutable(),
172
+ );
173
+
174
+ $order->recordDomainEvent(new OrderCreatedEvent($id));
175
+
176
+ return $order;
177
+ }
178
+
179
+ // Aggregate methods
180
+
181
+ public function addItem(ProductId $productId, Money $unitPrice, int $quantity): void
182
+ {
183
+ $this->assertCanModify();
184
+
185
+ $item = new OrderItem($productId, $unitPrice, $quantity);
186
+ $this->items[] = $item;
187
+ $this->recalculateTotal();
188
+
189
+ $this->recordDomainEvent(new OrderItemAddedEvent($this->id, $productId));
190
+ }
191
+
192
+ public function removeItem(ProductId $productId): void
193
+ {
194
+ $this->assertCanModify();
195
+
196
+ $this->items = array_filter(
197
+ $this->items,
198
+ fn(OrderItem $item) => !$item->getProductId()->equals($productId)
199
+ );
200
+ $this->recalculateTotal();
201
+ }
202
+
203
+ public function submit(): void
204
+ {
205
+ $this->assertCanModify();
206
+
207
+ if (empty($this->items)) {
208
+ throw new EmptyOrderException('Cannot submit an empty order');
209
+ }
210
+
211
+ $this->status = OrderStatus::SUBMITTED;
212
+ $this->recordDomainEvent(new OrderSubmittedEvent($this->id));
213
+ }
214
+
215
+ // Private methods
216
+
217
+ private function assertCanModify(): void
218
+ {
219
+ if ($this->status !== OrderStatus::DRAFT) {
220
+ throw new InvalidOrderStateException(
221
+ 'Only draft orders can be modified'
222
+ );
223
+ }
224
+ }
225
+
226
+ private function recalculateTotal(): void
227
+ {
228
+ $this->totalAmount = array_reduce(
229
+ $this->items,
230
+ fn(Money $carry, OrderItem $item) => $carry->add($item->getTotal()),
231
+ Money::zero()
232
+ );
233
+ }
234
+
235
+ // Getters
236
+
237
+ public function getId(): OrderId
238
+ {
239
+ return $this->id;
240
+ }
241
+
242
+ public function getCustomerId(): CustomerId
243
+ {
244
+ return $this->customerId;
245
+ }
246
+
247
+ public function getStatus(): OrderStatus
248
+ {
249
+ return $this->status;
250
+ }
251
+
252
+ public function getTotalAmount(): Money
253
+ {
254
+ return $this->totalAmount;
255
+ }
256
+
257
+ /** @return OrderItem[] */
258
+ public function getItems(): array
259
+ {
260
+ return $this->items;
261
+ }
262
+
263
+ /** @return DomainEvent[] */
264
+ public function pullDomainEvents(): array
265
+ {
266
+ $events = $this->domainEvents;
267
+ $this->domainEvents = [];
268
+
269
+ return $events;
270
+ }
271
+
272
+ private function recordDomainEvent(DomainEvent $event): void
273
+ {
274
+ $this->domainEvents[] = $event;
275
+ }
276
+ }
277
+ ```
278
+
279
+ ## Entity Status Enum
280
+
281
+ ```php
282
+ <?php
283
+
284
+ declare(strict_types=1);
285
+
286
+ namespace App\Domain\Entity;
287
+
288
+ enum OrderStatus: string
289
+ {
290
+ case DRAFT = 'draft';
291
+ case SUBMITTED = 'submitted';
292
+ case CONFIRMED = 'confirmed';
293
+ case SHIPPED = 'shipped';
294
+ case DELIVERED = 'delivered';
295
+ case CANCELLED = 'cancelled';
296
+
297
+ public function canTransitionTo(self $newStatus): bool
298
+ {
299
+ return match ($this) {
300
+ self::DRAFT => in_array($newStatus, [self::SUBMITTED, self::CANCELLED]),
301
+ self::SUBMITTED => in_array($newStatus, [self::CONFIRMED, self::CANCELLED]),
302
+ self::CONFIRMED => in_array($newStatus, [self::SHIPPED, self::CANCELLED]),
303
+ self::SHIPPED => in_array($newStatus, [self::DELIVERED]),
304
+ self::DELIVERED, self::CANCELLED => false,
305
+ };
306
+ }
307
+
308
+ public function label(): string
309
+ {
310
+ return match ($this) {
311
+ self::DRAFT => 'Draft',
312
+ self::SUBMITTED => 'Submitted',
313
+ self::CONFIRMED => 'Confirmed',
314
+ self::SHIPPED => 'Shipped',
315
+ self::DELIVERED => 'Delivered',
316
+ self::CANCELLED => 'Cancelled',
317
+ };
318
+ }
319
+ }
320
+ ```
321
+
322
+ ## Associated Tests
323
+
324
+ ```php
325
+ <?php
326
+
327
+ declare(strict_types=1);
328
+
329
+ namespace App\Tests\Unit\Domain\Entity;
330
+
331
+ use App\Domain\Entity\Order;
332
+ use App\Domain\Entity\OrderStatus;
333
+ use App\Domain\Exception\EmptyOrderException;
334
+ use App\Domain\Exception\InvalidOrderStateException;
335
+ use App\Domain\ValueObject\CustomerId;
336
+ use App\Domain\ValueObject\Money;
337
+ use App\Domain\ValueObject\OrderId;
338
+ use App\Domain\ValueObject\ProductId;
339
+ use PHPUnit\Framework\Attributes\Test;
340
+ use PHPUnit\Framework\TestCase;
341
+
342
+ final class OrderTest extends TestCase
343
+ {
344
+ #[Test]
345
+ public function it_can_be_created_with_valid_data(): void
346
+ {
347
+ // Arrange
348
+ $id = OrderId::generate();
349
+ $customerId = CustomerId::generate();
350
+
351
+ // Act
352
+ $order = Order::create($id, $customerId);
353
+
354
+ // Assert
355
+ $this->assertTrue($order->getId()->equals($id));
356
+ $this->assertTrue($order->getCustomerId()->equals($customerId));
357
+ $this->assertSame(OrderStatus::DRAFT, $order->getStatus());
358
+ $this->assertTrue($order->getTotalAmount()->equals(Money::zero()));
359
+ }
360
+
361
+ #[Test]
362
+ public function it_can_add_items(): void
363
+ {
364
+ // Arrange
365
+ $order = $this->createOrder();
366
+ $productId = ProductId::generate();
367
+ $unitPrice = Money::create(100, 'EUR');
368
+
369
+ // Act
370
+ $order->addItem($productId, $unitPrice, 2);
371
+
372
+ // Assert
373
+ $this->assertCount(1, $order->getItems());
374
+ $this->assertTrue($order->getTotalAmount()->equals(Money::create(200, 'EUR')));
375
+ }
376
+
377
+ #[Test]
378
+ public function it_cannot_add_items_when_submitted(): void
379
+ {
380
+ // Arrange
381
+ $order = $this->createOrder();
382
+ $order->addItem(ProductId::generate(), Money::create(100, 'EUR'), 1);
383
+ $order->submit();
384
+
385
+ // Assert
386
+ $this->expectException(InvalidOrderStateException::class);
387
+
388
+ // Act
389
+ $order->addItem(ProductId::generate(), Money::create(50, 'EUR'), 1);
390
+ }
391
+
392
+ #[Test]
393
+ public function it_cannot_be_submitted_when_empty(): void
394
+ {
395
+ // Arrange
396
+ $order = $this->createOrder();
397
+
398
+ // Assert
399
+ $this->expectException(EmptyOrderException::class);
400
+
401
+ // Act
402
+ $order->submit();
403
+ }
404
+
405
+ private function createOrder(): Order
406
+ {
407
+ return Order::create(
408
+ OrderId::generate(),
409
+ CustomerId::generate()
410
+ );
411
+ }
412
+ }
413
+ ```
414
+
415
+ ## Folder Organization
416
+
417
+ ```
418
+ src/Domain/
419
+ ├── Entity/
420
+ │ ├── Order.php # Aggregate root
421
+ │ ├── OrderItem.php # Entity within aggregate
422
+ │ └── OrderStatus.php # Status enum
423
+ ├── ValueObject/
424
+ │ ├── OrderId.php
425
+ │ ├── CustomerId.php
426
+ │ └── Money.php
427
+ ├── Event/
428
+ │ ├── OrderCreatedEvent.php
429
+ │ └── OrderItemAddedEvent.php
430
+ ├── Exception/
431
+ │ ├── EmptyOrderException.php
432
+ │ └── InvalidOrderStateException.php
433
+ └── Repository/
434
+ └── OrderRepositoryInterface.php
435
+ ```