@the-bearded-bear/claude-craft 8.22.0 → 8.23.0

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 (468) hide show
  1. package/Dev/i18n/base/Angular/rules/00-project-context.md.template +1 -1
  2. package/Dev/i18n/base/CSharp/rules/06-tooling.md +0 -2
  3. package/Dev/i18n/base/CSharp/rules/11-security-csharp.md +184 -160
  4. package/Dev/i18n/base/Common/commands/aliases.md +3 -0
  5. package/Dev/i18n/base/Common/commands/audit-claude-alignment.md +201 -0
  6. package/Dev/i18n/base/Common/commands/init.md +1 -1
  7. package/Dev/i18n/base/Common/commands/search.md +2 -1
  8. package/Dev/i18n/base/Common/skills/dynamic-workflows/SKILL.md +1 -1
  9. package/Dev/i18n/base/Common/skills/ecosystem-tools/SKILL.md +2 -1
  10. package/Dev/i18n/base/Laravel/rules/06-tooling.md +0 -2
  11. package/Dev/i18n/base/PHP/checklists/new-feature.md +1 -1
  12. package/Dev/i18n/base/PHP/commands/check-code-quality.md +3 -3
  13. package/Dev/i18n/base/Vercel/checklists/pre-commit.md +1 -1
  14. package/Dev/i18n/base/Vercel/commands/check-security.md +12 -12
  15. package/Dev/i18n/base/Vercel/rules/00-project-context.md.template +1 -1
  16. package/Dev/i18n/base/Vercel/rules/02-architecture-vercel.md +2 -2
  17. package/Dev/i18n/base/Vercel/rules/03-coding-standards.md +1 -1
  18. package/Dev/i18n/base/Vercel/rules/06-tooling.md +12 -0
  19. package/Dev/i18n/base/Vercel/rules/07-testing-vercel.md +1 -1
  20. package/Dev/i18n/base/Vercel/rules/08-quality-tools.md +1 -1
  21. package/Dev/i18n/base/Vercel/rules/11-security-vercel.md +1 -1
  22. package/Dev/i18n/base/Vercel/templates/function-handler.template.ts +1 -1
  23. package/Dev/i18n/base/Vite/checklists/new-feature.md +2 -2
  24. package/Dev/i18n/base/Vite/checklists/pre-commit.md +2 -2
  25. package/Dev/i18n/base/Vite/commands/check-architecture.md +5 -5
  26. package/Dev/i18n/base/Vite/commands/check-library-build.md +3 -3
  27. package/Dev/i18n/base/Vite/commands/scaffold-project.md +2 -2
  28. package/Dev/i18n/base/Vite/rules/02-architecture-vite.md +5 -5
  29. package/Dev/i18n/base/Vite/rules/03-coding-standards.md +1 -1
  30. package/Dev/i18n/base/Vite/rules/06-tooling.md +2 -2
  31. package/Dev/i18n/base/Vite/rules/07-testing-vite.md +1 -1
  32. package/Dev/i18n/base/Vite/rules/11-security-vite.md +4 -4
  33. package/Dev/i18n/base/Vite/templates/library-entry.template.ts +2 -2
  34. package/Dev/i18n/base/Vite/templates/vite.config.template.ts +2 -2
  35. package/Dev/i18n/base/VueJS/rules/06-tooling.md +3 -2
  36. package/Dev/i18n/de/Angular/agents/angular-reviewer.md +3 -3
  37. package/Dev/i18n/de/Common/agents/devops-engineer.md +15 -1
  38. package/Dev/i18n/de/Common/agents/ralph-conductor.md +12 -1
  39. package/Dev/i18n/de/Common/agents/refactoring-specialist.md +9 -0
  40. package/Dev/i18n/de/Common/agents/security-auditor.md +10 -7
  41. package/Dev/i18n/de/Common/agents/tdd-coach.md +9 -0
  42. package/Dev/i18n/de/Common/agents/uiux-orchestrator.md +10 -1
  43. package/Dev/i18n/de/Common/commands/getting-started.md +2 -2
  44. package/Dev/i18n/de/Common/commands/setup-rtk.md +2 -2
  45. package/Dev/i18n/de/Common/rules/04-solid-principles.md +1 -1
  46. package/Dev/i18n/de/Common/rules/05-kiss-dry-yagni.md +5 -2
  47. package/Dev/i18n/de/Common/rules/10-documentation.md +1 -1
  48. package/Dev/i18n/de/Common/rules/11-security.md +76 -73
  49. package/Dev/i18n/de/Common/rules/12-context-management.md +29 -19
  50. package/Dev/i18n/de/Common/templates/settings.json.template +6 -6
  51. package/Dev/i18n/de/Flutter/agents/flutter-reviewer.md +4 -4
  52. package/Dev/i18n/de/Flutter/rules/06-tooling.md +30 -24
  53. package/Dev/i18n/de/Flutter/rules/07-testing-flutter.md +0 -0
  54. package/Dev/i18n/de/Flutter/rules/08-quality-tools.md +1 -1
  55. package/Dev/i18n/de/Flutter/rules/12-performance.md +17 -17
  56. package/Dev/i18n/de/Flutter/rules/13-state-management.md +0 -0
  57. package/Dev/i18n/de/PHP/agents/php-reviewer.md +6 -6
  58. package/Dev/i18n/de/PHP/commands/check-compliance.md +3 -3
  59. package/Dev/i18n/de/PHP/rules/03-coding-standards.md +4 -2
  60. package/Dev/i18n/de/PHP/rules/06-tooling.md +4 -7
  61. package/Dev/i18n/de/PHP/rules/08-quality-tools.md +2 -2
  62. package/Dev/i18n/de/Paperclip/CLAUDE.md.template +2 -2
  63. package/Dev/i18n/de/Paperclip/README.md +1 -1
  64. package/Dev/i18n/de/Paperclip/commands/setup-company.md +1 -1
  65. package/Dev/i18n/de/Paperclip/rules/06-tooling.md +3 -3
  66. package/Dev/i18n/de/Paperclip/rules/11-security-paperclip.md +9 -0
  67. package/Dev/i18n/de/Paperclip/skills/coding-standards-ts/SKILL.md +1 -1
  68. package/Dev/i18n/de/Python/commands/generate-model.md +3 -1
  69. package/Dev/i18n/de/Python/rules/06-tooling.md +1 -1
  70. package/Dev/i18n/de/Python/rules/08-quality-tools.md +1 -1
  71. package/Dev/i18n/de/Python/rules/11-security-python.md +2 -2
  72. package/Dev/i18n/de/React/agents/react-reviewer.md +9 -5
  73. package/Dev/i18n/de/React/rules/06-tooling.md +0 -2
  74. package/Dev/i18n/de/React/rules/11-security-react.md +9 -0
  75. package/Dev/i18n/de/ReactNative/agents/reactnative-reviewer.md +4 -4
  76. package/Dev/i18n/de/ReactNative/rules/06-tooling.md +19 -3
  77. package/Dev/i18n/de/Symfony/agents/symfony-reviewer.md +5 -5
  78. package/Dev/i18n/de/Symfony/checklists/README.md +1 -1
  79. package/Dev/i18n/de/Symfony/checklists/new-feature.md +2 -2
  80. package/Dev/i18n/de/Symfony/checklists/pre-commit.md +4 -4
  81. package/Dev/i18n/de/Symfony/checklists/refactoring.md +1 -1
  82. package/Dev/i18n/de/Symfony/commands/check-architecture.md +4 -4
  83. package/Dev/i18n/de/Symfony/commands/check-code-quality.md +15 -15
  84. package/Dev/i18n/de/Symfony/commands/check-security.md +32 -32
  85. package/Dev/i18n/de/Symfony/commands/check-testing.md +16 -16
  86. package/Dev/i18n/de/Symfony/rules/03-coding-standards.md +4 -4
  87. package/Dev/i18n/de/Symfony/rules/06-docker-hadolint.md +0 -4
  88. package/Dev/i18n/de/Symfony/rules/08-quality-tools.md +1 -1
  89. package/Dev/i18n/de/Symfony/rules/16-i18n.md +2 -0
  90. package/Dev/i18n/de/Symfony/rules/17-async.md +1 -0
  91. package/Dev/i18n/de/Symfony/rules/19-aggregates.md +1 -0
  92. package/Dev/i18n/de/Symfony/rules/20-domain-events.md +1 -0
  93. package/Dev/i18n/de/Team/commands/delivery.md +1 -1
  94. package/Dev/i18n/de/Vercel/CLAUDE.md.template +2 -2
  95. package/Dev/i18n/de/Vercel/agents/vercel-reviewer.md +8 -8
  96. package/Dev/i18n/de/Vite/CLAUDE.md.template +2 -2
  97. package/Dev/i18n/de/Vite/agents/vite-reviewer.md +19 -17
  98. package/Dev/i18n/de/Vite/commands/check-compliance.md +2 -2
  99. package/Dev/i18n/en/Angular/agents/angular-reviewer.md +3 -3
  100. package/Dev/i18n/en/Common/agents/devops-engineer.md +15 -1
  101. package/Dev/i18n/en/Common/agents/ralph-conductor.md +11 -0
  102. package/Dev/i18n/en/Common/agents/refactoring-specialist.md +9 -0
  103. package/Dev/i18n/en/Common/agents/security-auditor.md +10 -7
  104. package/Dev/i18n/en/Common/agents/tdd-coach.md +9 -0
  105. package/Dev/i18n/en/Common/agents/uiux-orchestrator.md +10 -1
  106. package/Dev/i18n/en/Common/commands/getting-started.md +2 -2
  107. package/Dev/i18n/en/Common/commands/setup-rtk.md +2 -2
  108. package/Dev/i18n/en/Common/rules/04-solid-principles.md +1 -1
  109. package/Dev/i18n/en/Common/rules/05-kiss-dry-yagni.md +5 -2
  110. package/Dev/i18n/en/Common/rules/10-documentation.md +1 -1
  111. package/Dev/i18n/en/Common/rules/11-security.md +76 -73
  112. package/Dev/i18n/en/Common/rules/12-context-management.md +31 -21
  113. package/Dev/i18n/en/Common/templates/settings.json.template +6 -6
  114. package/Dev/i18n/en/Flutter/agents/flutter-reviewer.md +4 -4
  115. package/Dev/i18n/en/Flutter/rules/06-tooling.md +29 -23
  116. package/Dev/i18n/en/Flutter/rules/07-testing-flutter.md +0 -0
  117. package/Dev/i18n/en/Flutter/rules/08-quality-tools.md +1 -1
  118. package/Dev/i18n/en/Flutter/rules/12-performance.md +17 -17
  119. package/Dev/i18n/en/Flutter/rules/13-state-management.md +0 -0
  120. package/Dev/i18n/en/PHP/CLAUDE.md.template +1 -1
  121. package/Dev/i18n/en/PHP/agents/php-reviewer.md +6 -6
  122. package/Dev/i18n/en/PHP/commands/check-compliance.md +1 -1
  123. package/Dev/i18n/en/PHP/rules/03-coding-standards.md +4 -2
  124. package/Dev/i18n/en/PHP/rules/06-tooling.md +4 -7
  125. package/Dev/i18n/en/PHP/rules/08-quality-tools.md +2 -2
  126. package/Dev/i18n/en/Paperclip/CLAUDE.md.template +2 -2
  127. package/Dev/i18n/en/Paperclip/README.md +1 -1
  128. package/Dev/i18n/en/Paperclip/commands/setup-company.md +1 -1
  129. package/Dev/i18n/en/Paperclip/rules/06-tooling.md +3 -3
  130. package/Dev/i18n/en/Paperclip/rules/11-security-paperclip.md +9 -0
  131. package/Dev/i18n/en/Paperclip/skills/coding-standards-ts/SKILL.md +1 -1
  132. package/Dev/i18n/en/Python/commands/generate-model.md +3 -1
  133. package/Dev/i18n/en/Python/rules/06-tooling.md +1 -1
  134. package/Dev/i18n/en/Python/rules/08-quality-tools.md +1 -1
  135. package/Dev/i18n/en/Python/rules/11-security-python.md +11 -11
  136. package/Dev/i18n/en/React/agents/react-reviewer.md +9 -5
  137. package/Dev/i18n/en/React/rules/06-tooling.md +0 -2
  138. package/Dev/i18n/en/React/rules/11-security-react.md +9 -0
  139. package/Dev/i18n/en/ReactNative/agents/reactnative-reviewer.md +4 -4
  140. package/Dev/i18n/en/ReactNative/rules/02-architecture.md +1 -1
  141. package/Dev/i18n/en/ReactNative/rules/06-tooling.md +19 -3
  142. package/Dev/i18n/en/Symfony/agents/symfony-reviewer.md +5 -5
  143. package/Dev/i18n/en/Symfony/checklists/README.md +1 -1
  144. package/Dev/i18n/en/Symfony/checklists/new-feature.md +2 -2
  145. package/Dev/i18n/en/Symfony/checklists/pre-commit.md +4 -4
  146. package/Dev/i18n/en/Symfony/checklists/refactoring.md +1 -1
  147. package/Dev/i18n/en/Symfony/commands/check-architecture.md +4 -4
  148. package/Dev/i18n/en/Symfony/commands/check-code-quality.md +15 -15
  149. package/Dev/i18n/en/Symfony/commands/check-security.md +32 -32
  150. package/Dev/i18n/en/Symfony/commands/check-testing.md +16 -16
  151. package/Dev/i18n/en/Symfony/rules/03-coding-standards.md +4 -4
  152. package/Dev/i18n/en/Symfony/rules/06-docker-hadolint.md +0 -4
  153. package/Dev/i18n/en/Symfony/rules/08-quality-tools.md +1 -1
  154. package/Dev/i18n/en/Symfony/rules/16-i18n.md +2 -0
  155. package/Dev/i18n/en/Symfony/rules/17-async.md +1 -0
  156. package/Dev/i18n/en/Symfony/rules/19-aggregates.md +1 -0
  157. package/Dev/i18n/en/Symfony/rules/20-domain-events.md +1 -0
  158. package/Dev/i18n/en/Team/commands/delivery.md +1 -1
  159. package/Dev/i18n/en/Vercel/CLAUDE.md.template +2 -2
  160. package/Dev/i18n/en/Vercel/agents/vercel-reviewer.md +8 -8
  161. package/Dev/i18n/en/Vite/CLAUDE.md.template +2 -2
  162. package/Dev/i18n/en/Vite/agents/vite-reviewer.md +19 -17
  163. package/Dev/i18n/en/Vite/commands/check-compliance.md +2 -2
  164. package/Dev/i18n/en/Workflow/commands/review.md +0 -0
  165. package/Dev/i18n/en/Workflow/commands/start.md +0 -0
  166. package/Dev/i18n/es/Angular/agents/angular-reviewer.md +3 -3
  167. package/Dev/i18n/es/Common/agents/devops-engineer.md +15 -1
  168. package/Dev/i18n/es/Common/agents/ralph-conductor.md +11 -0
  169. package/Dev/i18n/es/Common/agents/refactoring-specialist.md +9 -0
  170. package/Dev/i18n/es/Common/agents/security-auditor.md +10 -7
  171. package/Dev/i18n/es/Common/agents/tdd-coach.md +9 -0
  172. package/Dev/i18n/es/Common/agents/uiux-orchestrator.md +10 -1
  173. package/Dev/i18n/es/Common/commands/getting-started.md +2 -2
  174. package/Dev/i18n/es/Common/commands/setup-rtk.md +2 -2
  175. package/Dev/i18n/es/Common/rules/04-solid-principles.md +1 -1
  176. package/Dev/i18n/es/Common/rules/05-kiss-dry-yagni.md +5 -2
  177. package/Dev/i18n/es/Common/rules/10-documentation.md +1 -1
  178. package/Dev/i18n/es/Common/rules/11-security.md +76 -73
  179. package/Dev/i18n/es/Common/rules/12-context-management.md +29 -19
  180. package/Dev/i18n/es/Common/templates/settings.json.template +6 -6
  181. package/Dev/i18n/es/Flutter/agents/flutter-reviewer.md +4 -4
  182. package/Dev/i18n/es/Flutter/rules/06-tooling.md +31 -25
  183. package/Dev/i18n/es/Flutter/rules/07-testing-flutter.md +0 -0
  184. package/Dev/i18n/es/Flutter/rules/08-quality-tools.md +1 -1
  185. package/Dev/i18n/es/Flutter/rules/12-performance.md +17 -17
  186. package/Dev/i18n/es/Flutter/rules/13-state-management.md +0 -0
  187. package/Dev/i18n/es/PHP/agents/php-reviewer.md +6 -6
  188. package/Dev/i18n/es/PHP/commands/check-compliance.md +3 -3
  189. package/Dev/i18n/es/PHP/rules/03-coding-standards.md +4 -2
  190. package/Dev/i18n/es/PHP/rules/06-tooling.md +4 -7
  191. package/Dev/i18n/es/PHP/rules/08-quality-tools.md +2 -2
  192. package/Dev/i18n/es/Paperclip/CLAUDE.md.template +2 -2
  193. package/Dev/i18n/es/Paperclip/README.md +1 -1
  194. package/Dev/i18n/es/Paperclip/commands/setup-company.md +1 -1
  195. package/Dev/i18n/es/Paperclip/rules/06-tooling.md +3 -3
  196. package/Dev/i18n/es/Paperclip/rules/11-security-paperclip.md +9 -0
  197. package/Dev/i18n/es/Paperclip/skills/coding-standards-ts/SKILL.md +1 -1
  198. package/Dev/i18n/es/Python/commands/generate-model.md +3 -1
  199. package/Dev/i18n/es/Python/rules/06-tooling.md +1 -1
  200. package/Dev/i18n/es/Python/rules/08-quality-tools.md +1 -1
  201. package/Dev/i18n/es/Python/rules/11-security-python.md +2 -2
  202. package/Dev/i18n/es/React/agents/react-reviewer.md +9 -5
  203. package/Dev/i18n/es/React/rules/06-tooling.md +0 -2
  204. package/Dev/i18n/es/React/rules/11-security-react.md +9 -0
  205. package/Dev/i18n/es/ReactNative/agents/reactnative-reviewer.md +4 -4
  206. package/Dev/i18n/es/ReactNative/rules/06-tooling.md +19 -3
  207. package/Dev/i18n/es/Symfony/agents/symfony-reviewer.md +5 -5
  208. package/Dev/i18n/es/Symfony/checklists/README.md +1 -1
  209. package/Dev/i18n/es/Symfony/checklists/new-feature.md +2 -2
  210. package/Dev/i18n/es/Symfony/checklists/pre-commit.md +4 -4
  211. package/Dev/i18n/es/Symfony/checklists/refactoring.md +1 -1
  212. package/Dev/i18n/es/Symfony/commands/check-architecture.md +4 -4
  213. package/Dev/i18n/es/Symfony/commands/check-code-quality.md +15 -15
  214. package/Dev/i18n/es/Symfony/commands/check-security.md +32 -32
  215. package/Dev/i18n/es/Symfony/commands/check-testing.md +16 -16
  216. package/Dev/i18n/es/Symfony/rules/03-coding-standards.md +4 -4
  217. package/Dev/i18n/es/Symfony/rules/06-docker-hadolint.md +0 -4
  218. package/Dev/i18n/es/Symfony/rules/08-quality-tools.md +1 -1
  219. package/Dev/i18n/es/Symfony/rules/16-i18n.md +2 -0
  220. package/Dev/i18n/es/Symfony/rules/17-async.md +1 -0
  221. package/Dev/i18n/es/Symfony/rules/19-aggregates.md +1 -0
  222. package/Dev/i18n/es/Symfony/rules/20-domain-events.md +1 -0
  223. package/Dev/i18n/es/Team/commands/delivery.md +1 -1
  224. package/Dev/i18n/es/Vercel/CLAUDE.md.template +2 -2
  225. package/Dev/i18n/es/Vercel/agents/vercel-reviewer.md +7 -7
  226. package/Dev/i18n/es/Vite/CLAUDE.md.template +2 -2
  227. package/Dev/i18n/es/Vite/agents/vite-reviewer.md +19 -17
  228. package/Dev/i18n/es/Vite/commands/check-compliance.md +2 -2
  229. package/Dev/i18n/fr/Angular/agents/angular-reviewer.md +3 -3
  230. package/Dev/i18n/fr/Common/agents/devops-engineer.md +15 -1
  231. package/Dev/i18n/fr/Common/agents/ralph-conductor.md +12 -1
  232. package/Dev/i18n/fr/Common/agents/refactoring-specialist.md +9 -0
  233. package/Dev/i18n/fr/Common/agents/security-auditor.md +10 -7
  234. package/Dev/i18n/fr/Common/agents/tdd-coach.md +9 -0
  235. package/Dev/i18n/fr/Common/agents/uiux-orchestrator.md +10 -1
  236. package/Dev/i18n/fr/Common/commands/getting-started.md +2 -2
  237. package/Dev/i18n/fr/Common/commands/setup-rtk.md +2 -2
  238. package/Dev/i18n/fr/Common/rules/04-solid-principles.md +1 -1
  239. package/Dev/i18n/fr/Common/rules/05-kiss-dry-yagni.md +5 -2
  240. package/Dev/i18n/fr/Common/rules/10-documentation.md +1 -1
  241. package/Dev/i18n/fr/Common/rules/11-security.md +76 -73
  242. package/Dev/i18n/fr/Common/rules/12-context-management.md +30 -20
  243. package/Dev/i18n/fr/Common/templates/settings.json.template +6 -6
  244. package/Dev/i18n/fr/Flutter/agents/flutter-reviewer.md +4 -4
  245. package/Dev/i18n/fr/Flutter/rules/06-tooling.md +10 -4
  246. package/Dev/i18n/fr/Flutter/rules/08-quality-tools.md +1 -1
  247. package/Dev/i18n/fr/PHP/agents/php-reviewer.md +6 -6
  248. package/Dev/i18n/fr/PHP/commands/check-compliance.md +3 -3
  249. package/Dev/i18n/fr/PHP/rules/03-coding-standards.md +4 -2
  250. package/Dev/i18n/fr/PHP/rules/06-tooling.md +4 -7
  251. package/Dev/i18n/fr/PHP/rules/08-quality-tools.md +2 -2
  252. package/Dev/i18n/fr/Paperclip/CLAUDE.md.template +2 -2
  253. package/Dev/i18n/fr/Paperclip/README.md +1 -1
  254. package/Dev/i18n/fr/Paperclip/commands/setup-company.md +1 -1
  255. package/Dev/i18n/fr/Paperclip/rules/06-tooling.md +3 -3
  256. package/Dev/i18n/fr/Paperclip/rules/11-security-paperclip.md +9 -0
  257. package/Dev/i18n/fr/Paperclip/skills/coding-standards-ts/SKILL.md +1 -1
  258. package/Dev/i18n/fr/Python/commands/generate-model.md +3 -1
  259. package/Dev/i18n/fr/Python/rules/06-tooling.md +1 -3
  260. package/Dev/i18n/fr/Python/rules/08-quality-tools.md +1 -1
  261. package/Dev/i18n/fr/Python/rules/11-security-python.md +2 -2
  262. package/Dev/i18n/fr/React/agents/react-reviewer.md +9 -5
  263. package/Dev/i18n/fr/React/rules/06-tooling.md +0 -2
  264. package/Dev/i18n/fr/React/rules/11-security-react.md +9 -0
  265. package/Dev/i18n/fr/ReactNative/agents/reactnative-reviewer.md +4 -4
  266. package/Dev/i18n/fr/ReactNative/rules/06-tooling.md +19 -3
  267. package/Dev/i18n/fr/Symfony/agents/symfony-reviewer.md +5 -5
  268. package/Dev/i18n/fr/Symfony/checklists/README.md +1 -1
  269. package/Dev/i18n/fr/Symfony/checklists/new-feature.md +2 -2
  270. package/Dev/i18n/fr/Symfony/checklists/pre-commit.md +4 -4
  271. package/Dev/i18n/fr/Symfony/checklists/refactoring.md +1 -1
  272. package/Dev/i18n/fr/Symfony/commands/check-architecture.md +4 -4
  273. package/Dev/i18n/fr/Symfony/commands/check-code-quality.md +15 -15
  274. package/Dev/i18n/fr/Symfony/commands/check-security.md +32 -32
  275. package/Dev/i18n/fr/Symfony/commands/check-testing.md +16 -16
  276. package/Dev/i18n/fr/Symfony/rules/03-coding-standards.md +4 -4
  277. package/Dev/i18n/fr/Symfony/rules/06-docker-hadolint.md +0 -4
  278. package/Dev/i18n/fr/Symfony/rules/08-quality-tools.md +1 -1
  279. package/Dev/i18n/fr/Symfony/rules/16-i18n.md +2 -0
  280. package/Dev/i18n/fr/Symfony/rules/17-async.md +1 -0
  281. package/Dev/i18n/fr/Symfony/rules/19-aggregates.md +1 -0
  282. package/Dev/i18n/fr/Symfony/rules/20-domain-events.md +1 -0
  283. package/Dev/i18n/fr/Team/commands/delivery.md +1 -1
  284. package/Dev/i18n/fr/Vercel/CLAUDE.md.template +2 -2
  285. package/Dev/i18n/fr/Vercel/agents/vercel-reviewer.md +8 -8
  286. package/Dev/i18n/fr/Vite/CLAUDE.md.template +2 -2
  287. package/Dev/i18n/fr/Vite/agents/vite-reviewer.md +19 -17
  288. package/Dev/i18n/fr/Vite/commands/check-compliance.md +2 -2
  289. package/Dev/i18n/pt/Angular/agents/angular-reviewer.md +3 -3
  290. package/Dev/i18n/pt/Common/agents/devops-engineer.md +15 -1
  291. package/Dev/i18n/pt/Common/agents/ralph-conductor.md +11 -0
  292. package/Dev/i18n/pt/Common/agents/refactoring-specialist.md +9 -0
  293. package/Dev/i18n/pt/Common/agents/security-auditor.md +10 -7
  294. package/Dev/i18n/pt/Common/agents/tdd-coach.md +9 -0
  295. package/Dev/i18n/pt/Common/agents/uiux-orchestrator.md +10 -1
  296. package/Dev/i18n/pt/Common/commands/getting-started.md +2 -2
  297. package/Dev/i18n/pt/Common/commands/setup-rtk.md +2 -2
  298. package/Dev/i18n/pt/Common/rules/04-solid-principles.md +1 -1
  299. package/Dev/i18n/pt/Common/rules/05-kiss-dry-yagni.md +5 -2
  300. package/Dev/i18n/pt/Common/rules/10-documentation.md +1 -1
  301. package/Dev/i18n/pt/Common/rules/11-security.md +76 -73
  302. package/Dev/i18n/pt/Common/rules/12-context-management.md +29 -19
  303. package/Dev/i18n/pt/Common/templates/settings.json.template +6 -6
  304. package/Dev/i18n/pt/Flutter/agents/flutter-reviewer.md +4 -4
  305. package/Dev/i18n/pt/Flutter/rules/06-tooling.md +12 -6
  306. package/Dev/i18n/pt/Flutter/rules/08-quality-tools.md +1 -1
  307. package/Dev/i18n/pt/PHP/agents/php-reviewer.md +6 -6
  308. package/Dev/i18n/pt/PHP/commands/check-compliance.md +3 -3
  309. package/Dev/i18n/pt/PHP/rules/03-coding-standards.md +4 -2
  310. package/Dev/i18n/pt/PHP/rules/06-tooling.md +4 -7
  311. package/Dev/i18n/pt/PHP/rules/08-quality-tools.md +2 -2
  312. package/Dev/i18n/pt/Paperclip/CLAUDE.md.template +2 -2
  313. package/Dev/i18n/pt/Paperclip/README.md +1 -1
  314. package/Dev/i18n/pt/Paperclip/commands/setup-company.md +1 -1
  315. package/Dev/i18n/pt/Paperclip/rules/06-tooling.md +3 -3
  316. package/Dev/i18n/pt/Paperclip/rules/11-security-paperclip.md +9 -0
  317. package/Dev/i18n/pt/Paperclip/skills/coding-standards-ts/SKILL.md +1 -1
  318. package/Dev/i18n/pt/Python/commands/generate-model.md +3 -1
  319. package/Dev/i18n/pt/Python/rules/06-tooling.md +1 -1
  320. package/Dev/i18n/pt/Python/rules/08-quality-tools.md +1 -1
  321. package/Dev/i18n/pt/Python/rules/11-security-python.md +2 -2
  322. package/Dev/i18n/pt/React/agents/react-reviewer.md +9 -5
  323. package/Dev/i18n/pt/React/rules/06-tooling.md +0 -2
  324. package/Dev/i18n/pt/React/rules/11-security-react.md +9 -0
  325. package/Dev/i18n/pt/ReactNative/agents/reactnative-reviewer.md +4 -4
  326. package/Dev/i18n/pt/ReactNative/rules/06-tooling.md +19 -3
  327. package/Dev/i18n/pt/Symfony/agents/symfony-reviewer.md +5 -5
  328. package/Dev/i18n/pt/Symfony/checklists/README.md +1 -1
  329. package/Dev/i18n/pt/Symfony/checklists/new-feature.md +2 -2
  330. package/Dev/i18n/pt/Symfony/checklists/pre-commit.md +4 -4
  331. package/Dev/i18n/pt/Symfony/checklists/refactoring.md +1 -1
  332. package/Dev/i18n/pt/Symfony/commands/check-architecture.md +4 -4
  333. package/Dev/i18n/pt/Symfony/commands/check-code-quality.md +15 -15
  334. package/Dev/i18n/pt/Symfony/commands/check-security.md +32 -32
  335. package/Dev/i18n/pt/Symfony/commands/check-testing.md +16 -16
  336. package/Dev/i18n/pt/Symfony/rules/03-coding-standards.md +4 -4
  337. package/Dev/i18n/pt/Symfony/rules/06-docker-hadolint.md +0 -4
  338. package/Dev/i18n/pt/Symfony/rules/08-quality-tools.md +1 -1
  339. package/Dev/i18n/pt/Symfony/rules/16-i18n.md +2 -0
  340. package/Dev/i18n/pt/Symfony/rules/17-async.md +1 -0
  341. package/Dev/i18n/pt/Symfony/rules/19-aggregates.md +1 -0
  342. package/Dev/i18n/pt/Symfony/rules/20-domain-events.md +1 -0
  343. package/Dev/i18n/pt/Team/commands/delivery.md +1 -1
  344. package/Dev/i18n/pt/Vercel/CLAUDE.md.template +2 -2
  345. package/Dev/i18n/pt/Vercel/agents/vercel-reviewer.md +8 -8
  346. package/Dev/i18n/pt/Vite/CLAUDE.md.template +2 -2
  347. package/Dev/i18n/pt/Vite/agents/vite-reviewer.md +19 -17
  348. package/Dev/i18n/pt/Vite/commands/check-compliance.md +2 -2
  349. package/Dev/scripts/install-paperclip-rules.sh +5 -5
  350. package/Dev/scripts/install-vite-rules.sh +4 -4
  351. package/Infra/i18n/de/Ansible/agents/ansible-architect.md +2 -0
  352. package/Infra/i18n/de/Docker/commands/docker-architecture.md +0 -2
  353. package/Infra/i18n/de/Docker/commands/docker-compose-setup.md +0 -2
  354. package/Infra/i18n/de/FrankenPHP/agents/frankenphp-architect.md +4 -1
  355. package/Infra/i18n/de/FrankenPHP/agents/frankenphp-deployment.md +2 -2
  356. package/Infra/i18n/de/FrankenPHP/agents/frankenphp-security.md +1 -1
  357. package/Infra/i18n/de/FrankenPHP/commands/deploy-setup.md +1 -1
  358. package/Infra/i18n/de/Hcloud/agents/hcloud-architect.md +14 -4
  359. package/Infra/i18n/de/Hcloud/agents/hcloud-cost.md +1 -1
  360. package/Infra/i18n/de/Hcloud/agents/hcloud-debug.md +1 -1
  361. package/Infra/i18n/de/Hcloud/agents/hcloud-deployment.md +2 -2
  362. package/Infra/i18n/de/Hcloud/agents/hcloud-security.md +1 -1
  363. package/Infra/i18n/de/Hcloud/commands/architecture.md +3 -3
  364. package/Infra/i18n/de/Hcloud/commands/debug.md +1 -1
  365. package/Infra/i18n/de/Kubernetes/agents/kubernetes-architect.md +3 -3
  366. package/Infra/i18n/de/Kubernetes/commands/architecture.md +1 -1
  367. package/Infra/i18n/de/OpenTofu/agents/opentofu-architect.md +1 -1
  368. package/Infra/i18n/de/OpenTofu/agents/opentofu-deployment.md +2 -2
  369. package/Infra/i18n/de/PgBouncer/agents/pgbouncer-architect.md +11 -2
  370. package/Infra/i18n/de/PgBouncer/agents/pgbouncer-debug.md +1 -0
  371. package/Infra/i18n/de/PgBouncer/agents/pgbouncer-deployment.md +38 -30
  372. package/Infra/i18n/de/PgBouncer/commands/deploy-setup.md +1 -1
  373. package/Infra/i18n/en/Ansible/agents/ansible-architect.md +2 -0
  374. package/Infra/i18n/en/Docker/commands/docker-architecture.md +0 -2
  375. package/Infra/i18n/en/Docker/commands/docker-compose-setup.md +0 -2
  376. package/Infra/i18n/en/FrankenPHP/agents/frankenphp-architect.md +4 -1
  377. package/Infra/i18n/en/FrankenPHP/agents/frankenphp-deployment.md +2 -2
  378. package/Infra/i18n/en/FrankenPHP/agents/frankenphp-security.md +1 -1
  379. package/Infra/i18n/en/FrankenPHP/commands/deploy-setup.md +1 -1
  380. package/Infra/i18n/en/Hcloud/agents/hcloud-architect.md +14 -4
  381. package/Infra/i18n/en/Hcloud/agents/hcloud-cost.md +1 -1
  382. package/Infra/i18n/en/Hcloud/agents/hcloud-debug.md +1 -1
  383. package/Infra/i18n/en/Hcloud/agents/hcloud-deployment.md +2 -2
  384. package/Infra/i18n/en/Hcloud/agents/hcloud-security.md +1 -1
  385. package/Infra/i18n/en/Hcloud/commands/architecture.md +3 -3
  386. package/Infra/i18n/en/Hcloud/commands/debug.md +1 -1
  387. package/Infra/i18n/en/Kubernetes/agents/kubernetes-architect.md +3 -3
  388. package/Infra/i18n/en/Kubernetes/commands/architecture.md +1 -1
  389. package/Infra/i18n/en/OpenTofu/agents/opentofu-architect.md +1 -1
  390. package/Infra/i18n/en/OpenTofu/agents/opentofu-deployment.md +2 -2
  391. package/Infra/i18n/en/PgBouncer/agents/pgbouncer-architect.md +11 -2
  392. package/Infra/i18n/en/PgBouncer/agents/pgbouncer-debug.md +1 -0
  393. package/Infra/i18n/en/PgBouncer/agents/pgbouncer-deployment.md +38 -30
  394. package/Infra/i18n/en/PgBouncer/commands/deploy-setup.md +1 -1
  395. package/Infra/i18n/es/Ansible/agents/ansible-architect.md +2 -0
  396. package/Infra/i18n/es/Docker/commands/docker-architecture.md +0 -2
  397. package/Infra/i18n/es/Docker/commands/docker-compose-setup.md +0 -2
  398. package/Infra/i18n/es/FrankenPHP/agents/frankenphp-architect.md +4 -1
  399. package/Infra/i18n/es/FrankenPHP/agents/frankenphp-deployment.md +2 -2
  400. package/Infra/i18n/es/FrankenPHP/agents/frankenphp-security.md +1 -1
  401. package/Infra/i18n/es/FrankenPHP/commands/deploy-setup.md +1 -1
  402. package/Infra/i18n/es/Hcloud/agents/hcloud-architect.md +14 -4
  403. package/Infra/i18n/es/Hcloud/agents/hcloud-cost.md +1 -1
  404. package/Infra/i18n/es/Hcloud/agents/hcloud-debug.md +1 -1
  405. package/Infra/i18n/es/Hcloud/agents/hcloud-deployment.md +2 -2
  406. package/Infra/i18n/es/Hcloud/agents/hcloud-security.md +1 -1
  407. package/Infra/i18n/es/Hcloud/commands/architecture.md +3 -3
  408. package/Infra/i18n/es/Hcloud/commands/debug.md +1 -1
  409. package/Infra/i18n/es/Kubernetes/agents/kubernetes-architect.md +3 -3
  410. package/Infra/i18n/es/Kubernetes/commands/architecture.md +1 -1
  411. package/Infra/i18n/es/OpenTofu/agents/opentofu-architect.md +1 -1
  412. package/Infra/i18n/es/OpenTofu/agents/opentofu-deployment.md +2 -2
  413. package/Infra/i18n/es/PgBouncer/agents/pgbouncer-architect.md +11 -2
  414. package/Infra/i18n/es/PgBouncer/agents/pgbouncer-debug.md +1 -0
  415. package/Infra/i18n/es/PgBouncer/agents/pgbouncer-deployment.md +38 -30
  416. package/Infra/i18n/es/PgBouncer/commands/deploy-setup.md +1 -1
  417. package/Infra/i18n/fr/Ansible/agents/ansible-architect.md +2 -0
  418. package/Infra/i18n/fr/Docker/commands/docker-architecture.md +0 -2
  419. package/Infra/i18n/fr/Docker/commands/docker-compose-setup.md +0 -2
  420. package/Infra/i18n/fr/FrankenPHP/agents/frankenphp-architect.md +4 -1
  421. package/Infra/i18n/fr/FrankenPHP/agents/frankenphp-deployment.md +2 -2
  422. package/Infra/i18n/fr/FrankenPHP/agents/frankenphp-security.md +1 -1
  423. package/Infra/i18n/fr/FrankenPHP/commands/deploy-setup.md +1 -1
  424. package/Infra/i18n/fr/Hcloud/agents/hcloud-architect.md +14 -4
  425. package/Infra/i18n/fr/Hcloud/agents/hcloud-cost.md +1 -1
  426. package/Infra/i18n/fr/Hcloud/agents/hcloud-debug.md +1 -1
  427. package/Infra/i18n/fr/Hcloud/agents/hcloud-deployment.md +2 -2
  428. package/Infra/i18n/fr/Hcloud/agents/hcloud-security.md +1 -1
  429. package/Infra/i18n/fr/Hcloud/commands/architecture.md +3 -3
  430. package/Infra/i18n/fr/Hcloud/commands/debug.md +1 -1
  431. package/Infra/i18n/fr/Kubernetes/agents/kubernetes-architect.md +3 -3
  432. package/Infra/i18n/fr/Kubernetes/commands/architecture.md +1 -1
  433. package/Infra/i18n/fr/OpenTofu/agents/opentofu-architect.md +1 -1
  434. package/Infra/i18n/fr/OpenTofu/agents/opentofu-deployment.md +2 -2
  435. package/Infra/i18n/fr/PgBouncer/agents/pgbouncer-architect.md +11 -2
  436. package/Infra/i18n/fr/PgBouncer/agents/pgbouncer-debug.md +1 -0
  437. package/Infra/i18n/fr/PgBouncer/agents/pgbouncer-deployment.md +38 -30
  438. package/Infra/i18n/fr/PgBouncer/commands/deploy-setup.md +1 -1
  439. package/Infra/i18n/pt/Ansible/agents/ansible-architect.md +2 -0
  440. package/Infra/i18n/pt/Docker/commands/docker-architecture.md +0 -2
  441. package/Infra/i18n/pt/Docker/commands/docker-compose-setup.md +0 -2
  442. package/Infra/i18n/pt/FrankenPHP/agents/frankenphp-architect.md +4 -1
  443. package/Infra/i18n/pt/FrankenPHP/agents/frankenphp-deployment.md +2 -2
  444. package/Infra/i18n/pt/FrankenPHP/agents/frankenphp-security.md +1 -1
  445. package/Infra/i18n/pt/FrankenPHP/commands/deploy-setup.md +1 -1
  446. package/Infra/i18n/pt/Hcloud/agents/hcloud-architect.md +14 -4
  447. package/Infra/i18n/pt/Hcloud/agents/hcloud-cost.md +1 -1
  448. package/Infra/i18n/pt/Hcloud/agents/hcloud-debug.md +1 -1
  449. package/Infra/i18n/pt/Hcloud/agents/hcloud-deployment.md +2 -2
  450. package/Infra/i18n/pt/Hcloud/agents/hcloud-security.md +1 -1
  451. package/Infra/i18n/pt/Hcloud/commands/architecture.md +3 -3
  452. package/Infra/i18n/pt/Hcloud/commands/debug.md +1 -1
  453. package/Infra/i18n/pt/Kubernetes/agents/kubernetes-architect.md +3 -3
  454. package/Infra/i18n/pt/Kubernetes/commands/architecture.md +1 -1
  455. package/Infra/i18n/pt/OpenTofu/agents/opentofu-architect.md +1 -1
  456. package/Infra/i18n/pt/OpenTofu/agents/opentofu-deployment.md +2 -2
  457. package/Infra/i18n/pt/PgBouncer/agents/pgbouncer-architect.md +11 -2
  458. package/Infra/i18n/pt/PgBouncer/agents/pgbouncer-debug.md +1 -0
  459. package/Infra/i18n/pt/PgBouncer/agents/pgbouncer-deployment.md +38 -30
  460. package/Infra/i18n/pt/PgBouncer/commands/deploy-setup.md +1 -1
  461. package/README.md +30 -22
  462. package/Tools/Ralph/.ralph/hooks/pre-tool-context.sh +2 -2
  463. package/Tools/StatusLine/README.md +1 -1
  464. package/bundles/cursor/.cursorrules +32 -32
  465. package/bundles/windsurf/.windsurfrules +32 -32
  466. package/cli/lib/doctor.js +15 -15
  467. package/cli/lib/tech-registry.js +10 -10
  468. package/package.json +2 -1
@@ -88,7 +88,7 @@ private array $participants;
88
88
 
89
89
  ## 3. Coding Standards (PHP CS Fixer)
90
90
 
91
- ### ✅ Code formaté selon PSR-12
91
+ ### ✅ Code formaté selon PER-CS 3.0
92
92
 
93
93
  ```bash
94
94
  make cs-fix
@@ -97,7 +97,7 @@ make cs-fix
97
97
 
98
98
  **Critère de succès:**
99
99
  - ✅ Code formaté automatiquement
100
- - ✅ PSR-12 respecté
100
+ - ✅ PER-CS 3.0 respecté
101
101
  - ✅ Pas de trailing whitespace
102
102
  - ✅ Indentation cohérente (4 espaces)
103
103
 
@@ -135,7 +135,7 @@ make hadolint
135
135
  FROM php:fpm
136
136
 
137
137
  # ✅ Version explicite
138
- FROM php:8.2-fpm-alpine
138
+ FROM php:8.5-fpm-alpine
139
139
 
140
140
  # ❌ apt-get sans cleanup
141
141
  RUN apt-get install -y curl
@@ -514,7 +514,7 @@ make pre-commit && git commit
514
514
  ### ✅ Toujours commit
515
515
 
516
516
  - ✅ Tests qui passent
517
- - ✅ Code formaté (PSR-12)
517
+ - ✅ Code formaté (PER-CS 3.0)
518
518
  - ✅ PHPStan niveau 8 OK
519
519
  - ✅ Documentation à jour
520
520
  - ✅ Message de commit clair
@@ -897,7 +897,7 @@ Avant de merger le refactoring:
897
897
  - [ ] Code plus simple (KISS)
898
898
  - [ ] SOLID respecté
899
899
  - [ ] PHPStan niveau 8 OK
900
- - [ ] Code formaté (PSR-12)
900
+ - [ ] Code formaté (PER-CS 3.0)
901
901
  - [ ] Commits atomiques (1 changement = 1 commit)
902
902
  - [ ] Message de commit clair
903
903
  - [ ] Documentation si refactoring majeur (ADR)
@@ -97,7 +97,7 @@ Exécute Deptrac pour vérifier les dépendances entre couches :
97
97
 
98
98
  ```bash
99
99
  # Vérifier si deptrac.yaml existe
100
- docker run --rm -v $(pwd):/app php:8.2-cli test -f /app/deptrac.yaml && echo "✅ deptrac.yaml trouvé" || echo "❌ deptrac.yaml manquant"
100
+ docker run --rm -v $(pwd):/app php:8.5-cli test -f /app/deptrac.yaml && echo "✅ deptrac.yaml trouvé" || echo "❌ deptrac.yaml manquant"
101
101
 
102
102
  # Exécuter Deptrac
103
103
  docker run --rm -v $(pwd):/app qossmic/deptrac analyse
@@ -221,16 +221,16 @@ Outils :
221
221
 
222
222
  ```bash
223
223
  # Analyser la structure du projet
224
- docker run --rm -v $(pwd):/app php:8.2-cli find /app/src -type d -maxdepth 2
224
+ docker run --rm -v $(pwd):/app php:8.5-cli find /app/src -type d -maxdepth 2
225
225
 
226
226
  # Vérifier les dépendances avec Deptrac
227
227
  docker run --rm -v $(pwd):/app qossmic/deptrac analyse --no-progress
228
228
 
229
229
  # Lister les classes par namespace
230
- docker run --rm -v $(pwd):/app php:8.2-cli find /app/src -name "*.php" -exec grep -l "namespace" {} \;
230
+ docker run --rm -v $(pwd):/app php:8.5-cli find /app/src -name "*.php" -exec grep -l "namespace" {} \;
231
231
 
232
232
  # Vérifier la présence d'annotations Doctrine dans Domain
233
- docker run --rm -v $(pwd):/app php:8.2-cli grep -r "@ORM" /app/src/Domain/ || echo "✅ Pas d'annotations ORM dans Domain"
233
+ docker run --rm -v $(pwd):/app php:8.5-cli grep -r "@ORM" /app/src/Domain/ || echo "✅ Pas d'annotations ORM dans Domain"
234
234
  ```
235
235
 
236
236
  ## IMPORTANT
@@ -31,10 +31,10 @@ Exécute PHP_CodeSniffer pour vérifier le respect de PSR-12 :
31
31
 
32
32
  ```bash
33
33
  # Vérifier si phpcs est installé
34
- docker run --rm -v $(pwd):/app php:8.2-cli test -f /app/vendor/bin/phpcs && echo "✅ phpcs trouvé" || echo "❌ phpcs manquant"
34
+ docker run --rm -v $(pwd):/app php:8.5-cli test -f /app/vendor/bin/phpcs && echo "✅ phpcs trouvé" || echo "❌ phpcs manquant"
35
35
 
36
36
  # Exécuter phpcs
37
- docker run --rm -v $(pwd):/app php:8.2-cli /app/vendor/bin/phpcs --standard=PSR12 src/ --report=summary
37
+ docker run --rm -v $(pwd):/app php:8.5-cli /app/vendor/bin/phpcs --standard=PSR12 src/ --report=summary
38
38
  ```
39
39
 
40
40
  #### Standards PSR-12 (5 points)
@@ -58,7 +58,7 @@ Exécute PHPStan au niveau 10 :
58
58
 
59
59
  ```bash
60
60
  # Vérifier si PHPStan est installé
61
- docker run --rm -v $(pwd):/app php:8.2-cli test -f /app/vendor/bin/phpstan && echo "✅ PHPStan trouvé" || echo "❌ PHPStan manquant"
61
+ docker run --rm -v $(pwd):/app php:8.5-cli test -f /app/vendor/bin/phpstan && echo "✅ PHPStan trouvé" || echo "❌ PHPStan manquant"
62
62
 
63
63
  # Exécuter PHPStan niveau 10
64
64
  docker run --rm -v $(pwd):/app phpstan/phpstan analyse src --level=10 --error-format=table
@@ -100,10 +100,10 @@ Vérifie l'utilisation stricte des types :
100
100
 
101
101
  ```bash
102
102
  # Vérifier declare(strict_types=1)
103
- docker run --rm -v $(pwd):/app php:8.2-cli grep -r "declare(strict_types=1)" /app/src --include="*.php" | wc -l
103
+ docker run --rm -v $(pwd):/app php:8.5-cli grep -r "declare(strict_types=1)" /app/src --include="*.php" | wc -l
104
104
 
105
105
  # Compter le nombre de fichiers PHP
106
- docker run --rm -v $(pwd):/app php:8.2-cli find /app/src -name "*.php" | wc -l
106
+ docker run --rm -v $(pwd):/app php:8.5-cli find /app/src -name "*.php" | wc -l
107
107
 
108
108
  # Les deux nombres doivent être identiques
109
109
  ```
@@ -113,13 +113,13 @@ docker run --rm -v $(pwd):/app php:8.2-cli find /app/src -name "*.php" | wc -l
113
113
  - [ ] `declare(strict_types=1)` dans 100% des fichiers PHP
114
114
  - [ ] Type hints sur tous les paramètres de méthodes publiques
115
115
  - [ ] Type hints sur tous les retours de méthodes publiques
116
- - [ ] Type hints sur toutes les propriétés de classe (PHP 7.4+)
117
- - [ ] Utilisation des union types (PHP 8.0+) au lieu de mixed
116
+ - [ ] Type hints sur toutes les propriétés de classe
117
+ - [ ] Utilisation des union types au lieu de mixed
118
118
  - [ ] Pas de docblock @param/@return redondants avec les types natifs
119
- - [ ] Utilisation de readonly pour propriétés immuables (PHP 8.1+)
119
+ - [ ] Utilisation de readonly pour propriétés immuables
120
120
  - [ ] Pas de suppression d'erreurs avec @phpstan-ignore
121
121
  - [ ] Types stricts dans les tableaux : array<string, int>
122
- - [ ] Utilisation de never type pour méthodes qui ne retournent jamais (PHP 8.1+)
122
+ - [ ] Utilisation de never type pour méthodes qui ne retournent jamais
123
123
 
124
124
  **Points obtained** : ___/5
125
125
 
@@ -130,7 +130,7 @@ Analysis la complexité du code :
130
130
  ```bash
131
131
  # Installer phpmetrics si nécessaire
132
132
  # Analyser la complexité
133
- docker run --rm -v $(pwd):/app php:8.2-cli php -r "
133
+ docker run --rm -v $(pwd):/app php:8.5-cli php -r "
134
134
  require '/app/vendor/autoload.php';
135
135
  // Analyse basique de complexité
136
136
  "
@@ -262,7 +262,7 @@ Exemples :
262
262
 
263
263
  3. 🎯 [ACTION RECOMMANDÉE] - Formatter le code selon PSR-12
264
264
  Impact : ⭐⭐⭐ | Effort : 🔥
265
- Commande : docker run --rm -v $(pwd):/app php:8.2-cli /app/vendor/bin/phpcbf --standard=PSR12 src/
265
+ Commande : docker run --rm -v $(pwd):/app php:8.5-cli /app/vendor/bin/phpcbf --standard=PSR12 src/
266
266
 
267
267
  =================================================
268
268
  RECOMMANDATIONS
@@ -305,10 +305,10 @@ CI/CD :
305
305
 
306
306
  ```bash
307
307
  # Vérifier PSR-12
308
- docker run --rm -v $(pwd):/app php:8.2-cli /app/vendor/bin/phpcs --standard=PSR12 src/ --report=summary
308
+ docker run --rm -v $(pwd):/app php:8.5-cli /app/vendor/bin/phpcs --standard=PSR12 src/ --report=summary
309
309
 
310
310
  # Corriger automatiquement PSR-12
311
- docker run --rm -v $(pwd):/app php:8.2-cli /app/vendor/bin/phpcbf --standard=PSR12 src/
311
+ docker run --rm -v $(pwd):/app php:8.5-cli /app/vendor/bin/phpcbf --standard=PSR12 src/
312
312
 
313
313
  # PHPStan niveau 10
314
314
  docker run --rm -v $(pwd):/app phpstan/phpstan analyse src --level=10 --error-format=table
@@ -317,10 +317,10 @@ docker run --rm -v $(pwd):/app phpstan/phpstan analyse src --level=10 --error-fo
317
317
  docker run --rm -v $(pwd):/app phpstan/phpstan analyse src --level=10 --generate-baseline
318
318
 
319
319
  # PHP CS Fixer
320
- docker run --rm -v $(pwd):/app php:8.2-cli /app/vendor/bin/php-cs-fixer fix src --dry-run --diff
320
+ docker run --rm -v $(pwd):/app php:8.5-cli /app/vendor/bin/php-cs-fixer fix src --dry-run --diff
321
321
 
322
322
  # Vérifier declare(strict_types=1) partout
323
- docker run --rm -v $(pwd):/app php:8.2-cli sh -c 'for f in $(find /app/src -name "*.php"); do grep -q "declare(strict_types=1)" "$f" || echo "❌ Manquant: $f"; done'
323
+ docker run --rm -v $(pwd):/app php:8.5-cli sh -c 'for f in $(find /app/src -name "*.php"); do grep -q "declare(strict_types=1)" "$f" || echo "❌ Manquant: $f"; done'
324
324
  ```
325
325
 
326
326
  ## IMPORTANT
@@ -32,10 +32,10 @@ Vérifie la configuration du Security Bundle :
32
32
 
33
33
  ```bash
34
34
  # Vérifier si symfony/security-bundle est installé
35
- docker run --rm -v $(pwd):/app php:8.2-cli grep "symfony/security-bundle" /app/composer.json
35
+ docker run --rm -v $(pwd):/app php:8.5-cli grep "symfony/security-bundle" /app/composer.json
36
36
 
37
37
  # Lister les firewalls configurés
38
- docker run --rm -v $(pwd):/app php:8.2-cli cat /app/config/packages/security.yaml | grep -A 10 "firewalls:"
38
+ docker run --rm -v $(pwd):/app php:8.5-cli cat /app/config/packages/security.yaml | grep -A 10 "firewalls:"
39
39
  ```
40
40
 
41
41
  #### Configuration Security Bundle (5 points)
@@ -59,11 +59,11 @@ docker run --rm -v $(pwd):/app php:8.2-cli cat /app/config/packages/security.yam
59
59
 
60
60
  ```bash
61
61
  # Vérifier l'utilisation de requêtes préparées
62
- docker run --rm -v $(pwd):/app php:8.2-cli grep -r "->createQuery(" /app/src --include="*.php" | wc -l
63
- docker run --rm -v $(pwd):/app php:8.2-cli grep -r "->createNativeQuery(" /app/src --include="*.php" | wc -l
62
+ docker run --rm -v $(pwd):/app php:8.5-cli grep -r "->createQuery(" /app/src --include="*.php" | wc -l
63
+ docker run --rm -v $(pwd):/app php:8.5-cli grep -r "->createNativeQuery(" /app/src --include="*.php" | wc -l
64
64
 
65
65
  # Rechercher les concaténations de requêtes dangereuses
66
- docker run --rm -v $(pwd):/app php:8.2-cli grep -rE "\"SELECT.*\\..*\$" /app/src --include="*.php" || echo "✅ Pas de concaténation SQL détectée"
66
+ docker run --rm -v $(pwd):/app php:8.5-cli grep -rE "\"SELECT.*\\..*\$" /app/src --include="*.php" || echo "✅ Pas de concaténation SQL détectée"
67
67
  ```
68
68
 
69
69
  - [ ] Utilisation exclusive de requêtes préparées (Doctrine DQL/QueryBuilder)
@@ -85,10 +85,10 @@ docker run --rm -v $(pwd):/app php:8.2-cli grep -rE "\"SELECT.*\\..*\$" /app/src
85
85
 
86
86
  ```bash
87
87
  # Vérifier la configuration des mots de passe
88
- docker run --rm -v $(pwd):/app php:8.2-cli cat /app/config/packages/security.yaml | grep -A 5 "password_hashers:"
88
+ docker run --rm -v $(pwd):/app php:8.5-cli cat /app/config/packages/security.yaml | grep -A 5 "password_hashers:"
89
89
 
90
90
  # Vérifier la présence de rate limiting
91
- docker run --rm -v $(pwd):/app php:8.2-cli grep -r "RateLimiter" /app/config --include="*.yaml"
91
+ docker run --rm -v $(pwd):/app php:8.5-cli grep -r "RateLimiter" /app/config --include="*.yaml"
92
92
  ```
93
93
 
94
94
  - [ ] Hash de mot de passe fort (argon2i ou bcrypt avec coût élevé)
@@ -110,10 +110,10 @@ docker run --rm -v $(pwd):/app php:8.2-cli grep -r "RateLimiter" /app/config --i
110
110
 
111
111
  ```bash
112
112
  # Vérifier les secrets dans le code
113
- docker run --rm -v $(pwd):/app php:8.2-cli grep -rE "(password|secret|api_key|token).*=.*['\"]" /app/src --include="*.php" | grep -v "//.*password" || echo "✅ Pas de secrets en dur"
113
+ docker run --rm -v $(pwd):/app php:8.5-cli grep -rE "(password|secret|api_key|token).*=.*['\"]" /app/src --include="*.php" | grep -v "//.*password" || echo "✅ Pas de secrets en dur"
114
114
 
115
115
  # Vérifier HTTPS
116
- docker run --rm -v $(pwd):/app php:8.2-cli grep -r "SECURE_SCHEME" /app/.env.example || echo "⚠️ Configuration HTTPS non trouvée"
116
+ docker run --rm -v $(pwd):/app php:8.5-cli grep -r "SECURE_SCHEME" /app/.env.example || echo "⚠️ Configuration HTTPS non trouvée"
117
117
  ```
118
118
 
119
119
  - [ ] Secrets externalisés (.env, vault)
@@ -135,10 +135,10 @@ docker run --rm -v $(pwd):/app php:8.2-cli grep -r "SECURE_SCHEME" /app/.env.exa
135
135
 
136
136
  ```bash
137
137
  # Vérifier les Voters
138
- docker run --rm -v $(pwd):/app php:8.2-cli find /app/src -name "*Voter.php" | wc -l
138
+ docker run --rm -v $(pwd):/app php:8.5-cli find /app/src -name "*Voter.php" | wc -l
139
139
 
140
140
  # Vérifier les annotations @IsGranted
141
- docker run --rm -v $(pwd):/app php:8.2-cli grep -r "@IsGranted" /app/src --include="*.php" | wc -l
141
+ docker run --rm -v $(pwd):/app php:8.5-cli grep -r "@IsGranted" /app/src --include="*.php" | wc -l
142
142
  ```
143
143
 
144
144
  - [ ] Voters Symfony pour autorisations complexes
@@ -160,10 +160,10 @@ docker run --rm -v $(pwd):/app php:8.2-cli grep -r "@IsGranted" /app/src --inclu
160
160
 
161
161
  ```bash
162
162
  # Vérifier l'auto-échappement Twig
163
- docker run --rm -v $(pwd):/app php:8.2-cli grep -r "autoescape" /app/config/packages/twig.yaml
163
+ docker run --rm -v $(pwd):/app php:8.5-cli grep -r "autoescape" /app/config/packages/twig.yaml
164
164
 
165
165
  # Vérifier les |raw non sécurisés
166
- docker run --rm -v $(pwd):/app php:8.2-cli grep -r "|raw" /app/templates --include="*.twig" || echo "✅ Pas de |raw détecté"
166
+ docker run --rm -v $(pwd):/app php:8.5-cli grep -r "|raw" /app/templates --include="*.twig" || echo "✅ Pas de |raw détecté"
167
167
  ```
168
168
 
169
169
  - [ ] Auto-escape activé dans Twig
@@ -183,7 +183,7 @@ docker run --rm -v $(pwd):/app php:8.2-cli grep -r "|raw" /app/templates --inclu
183
183
 
184
184
  ```bash
185
185
  # Vérifier CSRF protection
186
- docker run --rm -v $(pwd):/app php:8.2-cli grep -r "csrf_protection" /app/config/packages/framework.yaml
186
+ docker run --rm -v $(pwd):/app php:8.5-cli grep -r "csrf_protection" /app/config/packages/framework.yaml
187
187
  ```
188
188
 
189
189
  - [ ] CSRF protection activée globalement
@@ -205,10 +205,10 @@ docker run --rm -v $(pwd):/app php:8.2-cli grep -r "csrf_protection" /app/config
205
205
 
206
206
  ```bash
207
207
  # Vérifier le mode debug
208
- docker run --rm -v $(pwd):/app php:8.2-cli grep "APP_ENV" /app/.env.example
208
+ docker run --rm -v $(pwd):/app php:8.5-cli grep "APP_ENV" /app/.env.example
209
209
 
210
210
  # Vérifier les dépendances vulnérables
211
- docker run --rm -v $(pwd):/app php:8.2-cli composer audit
211
+ docker run --rm -v $(pwd):/app php:8.5-cli composer audit
212
212
  ```
213
213
 
214
214
  - [ ] APP_ENV=prod en production
@@ -228,10 +228,10 @@ docker run --rm -v $(pwd):/app php:8.2-cli composer audit
228
228
 
229
229
  ```bash
230
230
  # Audit de sécurité Composer
231
- docker run --rm -v $(pwd):/app php:8.2-cli composer audit
231
+ docker run --rm -v $(pwd):/app php:8.5-cli composer audit
232
232
 
233
233
  # Vérifier les versions Symfony
234
- docker run --rm -v $(pwd):/app php:8.2-cli composer show symfony/* | grep "versions"
234
+ docker run --rm -v $(pwd):/app php:8.5-cli composer show symfony/* | grep "versions"
235
235
  ```
236
236
 
237
237
  - [ ] Symfony à jour (dernière version LTS ou stable)
@@ -253,10 +253,10 @@ docker run --rm -v $(pwd):/app php:8.2-cli composer show symfony/* | grep "versi
253
253
 
254
254
  ```bash
255
255
  # Rechercher le traitement des données personnelles
256
- docker run --rm -v $(pwd):/app php:8.2-cli grep -r "email\|phone\|address" /app/src/Domain/Entity --include="*.php"
256
+ docker run --rm -v $(pwd):/app php:8.5-cli grep -r "email\|phone\|address" /app/src/Domain/Entity --include="*.php"
257
257
 
258
258
  # Vérifier les mécanismes de consentement
259
- docker run --rm -v $(pwd):/app php:8.2-cli grep -r "consent\|gdpr" /app/src --include="*.php" -i
259
+ docker run --rm -v $(pwd):/app php:8.5-cli grep -r "consent\|gdpr" /app/src --include="*.php" -i
260
260
  ```
261
261
 
262
262
  - [ ] Consentement utilisateur pour collecte de données
@@ -278,7 +278,7 @@ docker run --rm -v $(pwd):/app php:8.2-cli grep -r "consent\|gdpr" /app/src --in
278
278
 
279
279
  ```bash
280
280
  # Vérifier la configuration des headers
281
- docker run --rm -v $(pwd):/app php:8.2-cli cat /app/config/packages/framework.yaml | grep -A 10 "headers:"
281
+ docker run --rm -v $(pwd):/app php:8.5-cli cat /app/config/packages/framework.yaml | grep -A 10 "headers:"
282
282
  ```
283
283
 
284
284
  - [ ] X-Content-Type-Options: nosniff
@@ -531,11 +531,11 @@ framework:
531
531
 
532
532
  ```bash
533
533
  # Audit Composer
534
- docker run --rm -v $(pwd):/app php:8.2-cli composer audit
534
+ docker run --rm -v $(pwd):/app php:8.5-cli composer audit
535
535
 
536
536
  # Security Checker Symfony
537
- docker run --rm -v $(pwd):/app php:8.2-cli composer require --dev symfony/security-checker
538
- docker run --rm -v $(pwd):/app php:8.2-cli ./vendor/bin/security-checker security:check
537
+ docker run --rm -v $(pwd):/app php:8.5-cli composer require --dev symfony/security-checker
538
+ docker run --rm -v $(pwd):/app php:8.5-cli ./vendor/bin/security-checker security:check
539
539
 
540
540
  # PHPStan pour détecter problèmes de sécurité
541
541
  docker run --rm -v $(pwd):/app phpstan/phpstan analyse src --level=9
@@ -557,26 +557,26 @@ docker run --rm -v $(pwd):/usr/src sonarqube:latest sonar-scanner
557
557
 
558
558
  ```bash
559
559
  # Audit des dépendances
560
- docker run --rm -v $(pwd):/app php:8.2-cli composer audit
560
+ docker run --rm -v $(pwd):/app php:8.5-cli composer audit
561
561
 
562
562
  # Check les secrets dans le code
563
- docker run --rm -v $(pwd):/app php:8.2-cli grep -rE "(password|secret|api_key|token).*=.*['\"]" /app/src --include="*.php"
563
+ docker run --rm -v $(pwd):/app php:8.5-cli grep -rE "(password|secret|api_key|token).*=.*['\"]" /app/src --include="*.php"
564
564
 
565
565
  # Check CSRF protection
566
- docker run --rm -v $(pwd):/app php:8.2-cli cat /app/config/packages/framework.yaml | grep csrf
566
+ docker run --rm -v $(pwd):/app php:8.5-cli cat /app/config/packages/framework.yaml | grep csrf
567
567
 
568
568
  # Check les Voters
569
- docker run --rm -v $(pwd):/app php:8.2-cli find /app/src -name "*Voter.php"
569
+ docker run --rm -v $(pwd):/app php:8.5-cli find /app/src -name "*Voter.php"
570
570
 
571
571
  # Check mode debug
572
- docker run --rm -v $(pwd):/app php:8.2-cli grep "APP_DEBUG" /app/.env
572
+ docker run --rm -v $(pwd):/app php:8.5-cli grep "APP_DEBUG" /app/.env
573
573
 
574
574
  # Check les requêtes SQL
575
- docker run --rm -v $(pwd):/app php:8.2-cli grep -r "createNativeQuery\|createQuery" /app/src --include="*.php"
575
+ docker run --rm -v $(pwd):/app php:8.5-cli grep -r "createNativeQuery\|createQuery" /app/src --include="*.php"
576
576
 
577
577
  # Security Checker
578
- docker run --rm -v $(pwd):/app php:8.2-cli composer require --dev symfony/security-checker
579
- docker run --rm -v $(pwd):/app php:8.2-cli ./vendor/bin/security-checker security:check composer.lock
578
+ docker run --rm -v $(pwd):/app php:8.5-cli composer require --dev symfony/security-checker
579
+ docker run --rm -v $(pwd):/app php:8.5-cli ./vendor/bin/security-checker security:check composer.lock
580
580
  ```
581
581
 
582
582
  ## IMPORTANT
@@ -32,7 +32,7 @@ Analysis la structure du dossier tests/ :
32
32
 
33
33
  ```bash
34
34
  # Lister la structure des tests
35
- docker run --rm -v $(pwd):/app php:8.2-cli find /app/tests -type d
35
+ docker run --rm -v $(pwd):/app php:8.5-cli find /app/tests -type d
36
36
  ```
37
37
 
38
38
  #### Organisation des Tests (3 points)
@@ -56,10 +56,10 @@ Exécute les tests unitaires :
56
56
 
57
57
  ```bash
58
58
  # Exécuter les tests unitaires uniquement
59
- docker run --rm -v $(pwd):/app php:8.2-cli /app/vendor/bin/phpunit tests/Unit --testdox
59
+ docker run --rm -v $(pwd):/app php:8.5-cli /app/vendor/bin/phpunit tests/Unit --testdox
60
60
 
61
61
  # Compter les tests unitaires
62
- docker run --rm -v $(pwd):/app php:8.2-cli /app/vendor/bin/phpunit tests/Unit --list-tests | wc -l
62
+ docker run --rm -v $(pwd):/app php:8.5-cli /app/vendor/bin/phpunit tests/Unit --list-tests | wc -l
63
63
  ```
64
64
 
65
65
  #### Tests Unitaires Domain (7 points)
@@ -86,7 +86,7 @@ Exécute les tests d'intégration :
86
86
 
87
87
  ```bash
88
88
  # Exécuter les tests d'intégration
89
- docker run --rm -v $(pwd):/app php:8.2-cli /app/vendor/bin/phpunit tests/Integration --testdox
89
+ docker run --rm -v $(pwd):/app php:8.5-cli /app/vendor/bin/phpunit tests/Integration --testdox
90
90
  ```
91
91
 
92
92
  #### Tests d'Intégration Infrastructure (5 points)
@@ -113,10 +113,10 @@ Exécute les tests fonctionnels :
113
113
 
114
114
  ```bash
115
115
  # Exécuter les tests fonctionnels
116
- docker run --rm -v $(pwd):/app php:8.2-cli /app/vendor/bin/phpunit tests/Functional --testdox
116
+ docker run --rm -v $(pwd):/app php:8.5-cli /app/vendor/bin/phpunit tests/Functional --testdox
117
117
 
118
118
  # Vérifier si Behat est installé
119
- docker run --rm -v $(pwd):/app php:8.2-cli test -f /app/vendor/bin/behat && echo "✅ Behat trouvé" || echo "⚠️ Behat manquant"
119
+ docker run --rm -v $(pwd):/app php:8.5-cli test -f /app/vendor/bin/behat && echo "✅ Behat trouvé" || echo "⚠️ Behat manquant"
120
120
  ```
121
121
 
122
122
  #### Tests Fonctionnels (5 points)
@@ -143,10 +143,10 @@ Génère le rapport de couverture :
143
143
 
144
144
  ```bash
145
145
  # Générer la couverture de code (nécessite xdebug ou pcov)
146
- docker run --rm -v $(pwd):/app php:8.2-cli php -d memory_limit=-1 /app/vendor/bin/phpunit --coverage-text --coverage-html=/app/var/coverage
146
+ docker run --rm -v $(pwd):/app php:8.5-cli php -d memory_limit=-1 /app/vendor/bin/phpunit --coverage-text --coverage-html=/app/var/coverage
147
147
 
148
148
  # Afficher le résumé de couverture
149
- docker run --rm -v $(pwd):/app php:8.2-cli /app/vendor/bin/phpunit --coverage-text | grep "Lines:"
149
+ docker run --rm -v $(pwd):/app php:8.5-cli /app/vendor/bin/phpunit --coverage-text | grep "Lines:"
150
150
  ```
151
151
 
152
152
  #### Couverture de Code (5 points)
@@ -193,7 +193,7 @@ Exécute les tests de mutation :
193
193
 
194
194
  ```bash
195
195
  # Vérifier si Infection est installé
196
- docker run --rm -v $(pwd):/app php:8.2-cli test -f /app/vendor/bin/infection && echo "✅ Infection trouvé" || echo "❌ Infection manquant"
196
+ docker run --rm -v $(pwd):/app php:8.5-cli test -f /app/vendor/bin/infection && echo "✅ Infection trouvé" || echo "❌ Infection manquant"
197
197
 
198
198
  # Exécuter Infection
199
199
  docker run --rm -v $(pwd):/app infection/infection --min-msi=70 --min-covered-msi=80 --threads=4
@@ -416,28 +416,28 @@ CI/CD :
416
416
 
417
417
  ```bash
418
418
  # Exécuter tous les tests
419
- docker run --rm -v $(pwd):/app php:8.2-cli /app/vendor/bin/phpunit
419
+ docker run --rm -v $(pwd):/app php:8.5-cli /app/vendor/bin/phpunit
420
420
 
421
421
  # Tests unitaires uniquement
422
- docker run --rm -v $(pwd):/app php:8.2-cli /app/vendor/bin/phpunit tests/Unit
422
+ docker run --rm -v $(pwd):/app php:8.5-cli /app/vendor/bin/phpunit tests/Unit
423
423
 
424
424
  # Tests avec couverture
425
- docker run --rm -v $(pwd):/app php:8.2-cli php -d xdebug.mode=coverage /app/vendor/bin/phpunit --coverage-text
425
+ docker run --rm -v $(pwd):/app php:8.5-cli php -d xdebug.mode=coverage /app/vendor/bin/phpunit --coverage-text
426
426
 
427
427
  # Infection (mutation testing)
428
428
  docker run --rm -v $(pwd):/app infection/infection --threads=4 --min-msi=70
429
429
 
430
430
  # Behat (tests BDD)
431
- docker run --rm -v $(pwd):/app php:8.2-cli /app/vendor/bin/behat
431
+ docker run --rm -v $(pwd):/app php:8.5-cli /app/vendor/bin/behat
432
432
 
433
433
  # Lister tous les tests
434
- docker run --rm -v $(pwd):/app php:8.2-cli /app/vendor/bin/phpunit --list-tests
434
+ docker run --rm -v $(pwd):/app php:8.5-cli /app/vendor/bin/phpunit --list-tests
435
435
 
436
436
  # Exécuter un test spécifique
437
- docker run --rm -v $(pwd):/app php:8.2-cli /app/vendor/bin/phpunit tests/Unit/Domain/Entity/UserTest.php
437
+ docker run --rm -v $(pwd):/app php:8.5-cli /app/vendor/bin/phpunit tests/Unit/Domain/Entity/UserTest.php
438
438
 
439
439
  # Tests avec sortie détaillée
440
- docker run --rm -v $(pwd):/app php:8.2-cli /app/vendor/bin/phpunit --testdox
440
+ docker run --rm -v $(pwd):/app php:8.5-cli /app/vendor/bin/phpunit --testdox
441
441
  ```
442
442
 
443
443
  ## IMPORTANT
@@ -4,10 +4,10 @@
4
4
 
5
5
  ## Principes Generaux
6
6
 
7
- ### PSR-12 + Symfony Coding Standards
7
+ ### PER-CS 3.0 + Symfony Coding Standards
8
8
 
9
9
  Le projet suit strictement :
10
- 1. **PSR-12** : Standard PHP officiel
10
+ 1. **PER-CS 3.0** : Standard PHP officiel
11
11
  2. **@Symfony** : Conventions Symfony
12
12
  3. **@Symfony:risky** : Regles strictes Symfony
13
13
  4. **@PHP85Migration** : Modernisation PHP 8.5+ (property hooks, pipe operator, `#[\NoDiscard]`)
@@ -311,7 +311,7 @@ Configuration PHP-CS-Fixer :
311
311
 
312
312
  ## Indentation et Formatage
313
313
 
314
- ### Regles PSR-12
314
+ ### Regles PER-CS 3.0
315
315
 
316
316
  ```php
317
317
  <?php
@@ -398,7 +398,7 @@ Voir `.claude/checklists/pre-commit.md` pour checklist complete.
398
398
 
399
399
  ## References
400
400
 
401
- - **PSR-12** : https://www.php-fig.org/psr/psr-12/
401
+ - **PER-CS 3.0** : https://www.php-fig.org/per/coding-style/
402
402
  - **Symfony Coding Standards** : https://symfony.com/doc/current/contributing/code/standards.html
403
403
  - **PHP-CS-Fixer** : https://github.com/PHP-CS-Fixer/PHP-CS-Fixer
404
404
  - **PHPStan** : https://phpstan.org/
@@ -548,8 +548,6 @@ CMD ["php-fpm"]
548
548
  ### docker-compose.yml (Production-ready)
549
549
 
550
550
  ```yaml
551
- version: '3.8'
552
-
553
551
  services:
554
552
  # PHP-FPM
555
553
  php:
@@ -668,8 +666,6 @@ networks:
668
666
  ### compose.override.yaml (Local)
669
667
 
670
668
  ```yaml
671
- version: '3.8'
672
-
673
669
  # Overrides locaux (gitignored)
674
670
  services:
675
671
  php:
@@ -240,7 +240,7 @@ $finder = Finder::create()
240
240
  return (new Config())
241
241
  ->setRules([
242
242
  '@Symfony' => true,
243
- '@PSR12' => true,
243
+ '@PER-CS3x0' => true,
244
244
 
245
245
  // ✅ Règles strictes supplémentaires
246
246
  'array_syntax' => ['syntax' => 'short'],
@@ -175,6 +175,8 @@ Usage :
175
175
  $this->translator->trans('client.created', [], 'messages', $locale);
176
176
  ```
177
177
 
178
+ Messages pluriels/genrés : ICU MessageFormat (MF1 via le domaine `+intl-icu` de Symfony) ; **MessageFormat 2.0** est stable dans CLDR 47 (mars 2025) — vérifier le support de la bibliothèque avant de migrer.
179
+
178
180
  ## Checklist i18n
179
181
 
180
182
  - [ ] Country enum utilisé partout
@@ -188,3 +188,4 @@ final class MessengerEventSubscriber implements EventSubscriberInterface
188
188
  - [ ] Workers supervisord en prod
189
189
  - [ ] Monitoring des failed messages
190
190
  - [ ] Tests avec `messenger:consume --limit=1`
191
+ - [ ] Messages exposed to other systems documented with AsyncAPI 3.x (3.1.0)
@@ -23,6 +23,7 @@ namespace App\Commercial\Domain\Client;
23
23
  use App\Shared\Domain\AggregateRoot;
24
24
  use Doctrine\Common\Collections\ArrayCollection;
25
25
  use Doctrine\Common\Collections\Collection;
26
+ use DateTimeImmutable;
26
27
 
27
28
  class Client extends AggregateRoot
28
29
  {
@@ -15,6 +15,7 @@ namespace App\Commercial\Domain\Client\Event;
15
15
 
16
16
  use App\Shared\Domain\DomainEvent;
17
17
  use DateTimeImmutable;
18
+ use DateTimeInterface;
18
19
 
19
20
  final readonly class ClientCreated implements DomainEvent
20
21
  {
@@ -517,7 +517,7 @@ For 1 EPIC, 5 US, ~25 tasks:
517
517
  | **Total time** | **~120 min** | **~55 min** | **~2.2x** |
518
518
  | Cost total* | ~$28 | ~$17 | **-38%** |
519
519
 
520
- *Cost savings because Sonnet ($3/$15/M) handles most work vs Opus ($15/$75/M) in sequential mode.
520
+ *Cost savings because Sonnet 5.5 ($2/$10/M) handles most work vs Opus 5.5 ($4/$20/M) in sequential mode.
521
521
 
522
522
  ## Performance Expectations
523
523
 
@@ -8,7 +8,7 @@
8
8
 
9
9
  **Scope**: framework-agnostic platform features only — vercel.json, Functions, ISR, Cron, Storage. Explicitly not Next.js, not any framework's own deploy adapter.
10
10
 
11
- > **Note:** Vercel (this stack) covers only the **framework-agnostic deployment-platform surface**: `vercel.json` configuration (rewrites, redirects, headers, regions), Serverless Functions on the Node.js runtime / Fluid Compute, ISR cache primitives, Cron Jobs, Vercel Storage (Blob native; Postgres/KV via Marketplace — Neon/Upstash), Analytics/Speed Insights, and environment-variable/Preview-Deployment workflow. It is **not** a Next.js stack — Next.js itself is out of scope and not a supported claude-craft technology (no `/nextjs:*` namespace exists). Framework-specific routing, rendering, or data-fetching patterns belong to each framework's own stack (`/react:*`, `/vuejs:*`, `/angular:*`) — consult that stack's `tooling.md` for how it integrates with Vercel's build output. Additionally, the Edge Runtime (`export const runtime = 'edge'`) is **deprecated by Vercel** as of 2026 in favor of Fluid Compute on the Node.js runtime; this stack documents Edge Runtime only to help identify and migrate legacy code, not as a recommended pattern for new work.
11
+ > **Note:** Vercel (this stack) covers only the **framework-agnostic deployment-platform surface**: `vercel.json` configuration (rewrites, redirects, headers, regions), Serverless Functions on the Node.js runtime / Fluid Compute, ISR cache primitives, Cron Jobs, Vercel Storage (Blob native; Postgres/KV via Marketplace — Neon/Upstash), Analytics/Speed Insights, and environment-variable/Preview-Deployment workflow. It is **not** a Next.js stack — Next.js itself is out of scope and not a supported claude-craft technology (no `/nextjs:*` namespace exists). Framework-specific routing, rendering, or data-fetching patterns belong to each framework's own stack (`/react:*`, `/vuejs:*`, `/angular:*`) — consult that stack's `tooling.md` for how it integrates with Vercel's build output. Additionally, the Edge Runtime (`export const runtime = 'edge'`) is **not recommended by Vercel**, which favors Fluid Compute on the Node.js runtime; this stack documents Edge Runtime only to help identify and migrate legacy code, not as a recommended pattern for new work.
12
12
 
13
13
  ### Project Structure
14
14
  ```
@@ -38,7 +38,7 @@ See `rules/02-architecture.md` for complete patterns.
38
38
  | Rule | Reason |
39
39
  |------|--------|
40
40
  | vercel.json validated against `$schema` | Catches typo'd globs/keys before they fail silently at deploy time |
41
- | Node.js/Fluid Compute is the runtime default | Edge Runtime (`runtime: 'edge'`) is deprecated — legacy migration target only |
41
+ | Node.js/Fluid Compute is the runtime default | Edge Runtime (`runtime: 'edge'`) is discouraged — legacy migration target only |
42
42
  | Env vars never hardcoded or committed | Secrets belong in Vercel's environment-variable store, scoped per environment |
43
43
  | Cron endpoints verify the secret header | An unguarded cron path can be triggered by anyone who finds it |
44
44
  | 80%+ coverage on handler logic | Quality assurance for Functions and middleware business logic |