@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
@@ -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
  ## Princípios Gerais
6
6
 
7
- ### PSR-12 + Symfony Coding Standards
7
+ ### PER-CS 3.0 + Symfony Coding Standards
8
8
 
9
9
  O projeto segue estritamente:
10
- 1. **PSR-12**: Padrão PHP oficial
10
+ 1. **PER-CS 3.0**: Padrão PHP oficial
11
11
  2. **@Symfony**: Convenções Symfony
12
12
  3. **@Symfony:risky**: Regras estritas Symfony
13
13
  4. **@PHP85Migration**: Modernização 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
+ - [ ] Mensagens expostas a outros sistemas documentadas com 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 @@ Para 1 EPIC, 5 US, ~25 tarefas:
517
517
  | **Tempo total** | **~120 min** | **~55 min** | **~2.2x** |
518
518
  | Custo total* | ~$28 | ~$17 | **-38%** |
519
519
 
520
- *Economia de custo porque Sonnet ($3/$15/M) trata a maior parte do trabalho vs Opus ($15/$75/M) no modo sequencial.
520
+ *Economia de custo porque Sonnet 5.5 ($2/$10/M) trata a maior parte do trabalho vs Opus 5.5 ($4/$20/M) no modo sequencial.
521
521
 
522
522
  ## Expectativas de Performance
523
523
 
@@ -8,7 +8,7 @@
8
8
 
9
9
  **Escopo**: apenas funcionalidades da plataforma agnósticas de framework — vercel.json, Functions, ISR, Cron, Storage. Explicitamente não cobre Next.js, nem o adaptador de deploy próprio de qualquer outro framework.
10
10
 
11
- > **Nota:** Vercel (esta stack) cobre apenas a **superfície da plataforma de deployment agnóstica de framework**: configuração do `vercel.json` (rewrites, redirects, headers, regions), Serverless Functions no runtime Node.js / Fluid Compute, primitivas de cache ISR, Cron Jobs, Vercel Storage (Blob nativo; Postgres/KV via Marketplace — Neon/Upstash), Analytics/Speed Insights, e o workflow de variáveis de ambiente/Preview Deployment. Esta **não** é uma stack Next.js — o Next.js em si está fora de escopo e não é uma tecnologia claude-craft suportada (não existe namespace `/nextjs:*`). Padrões de roteamento, renderização ou data-fetching específicos de framework pertencem à stack própria de cada framework (`/react:*`, `/vuejs:*`, `/angular:*`) — consulte o `tooling.md` dessa stack para saber como ela se integra ao build output da Vercel. Além disso, o Edge Runtime (`export const runtime = 'edge'`) foi **descontinuado pela Vercel** a partir de 2026 em favor do Fluid Compute no runtime Node.js; esta stack documenta o Edge Runtime apenas para ajudar a identificar e migrar código legado, não como um padrão recomendado para código novo.
11
+ > **Nota:** Vercel (esta stack) cobre apenas a **superfície da plataforma de deployment agnóstica de framework**: configuração do `vercel.json` (rewrites, redirects, headers, regions), Serverless Functions no runtime Node.js / Fluid Compute, primitivas de cache ISR, Cron Jobs, Vercel Storage (Blob nativo; Postgres/KV via Marketplace — Neon/Upstash), Analytics/Speed Insights, e o workflow de variáveis de ambiente/Preview Deployment. Esta **não** é uma stack Next.js — o Next.js em si está fora de escopo e não é uma tecnologia claude-craft suportada (não existe namespace `/nextjs:*`). Padrões de roteamento, renderização ou data-fetching específicos de framework pertencem à stack própria de cada framework (`/react:*`, `/vuejs:*`, `/angular:*`) — consulte o `tooling.md` dessa stack para saber como ela se integra ao build output da Vercel. Além disso, o Edge Runtime (`export const runtime = 'edge'`) **não é recomendado pela Vercel**, que prefere o Fluid Compute no runtime Node.js; esta stack documenta o Edge Runtime apenas para ajudar a identificar e migrar código legado, não como um padrão recomendado para código novo.
12
12
 
13
13
  ### Estrutura do Projeto
14
14
  ```
@@ -38,7 +38,7 @@ Ver `rules/02-architecture.md` para os padrões completos.
38
38
  | Regra | Motivo |
39
39
  |------|--------|
40
40
  | vercel.json validado contra `$schema` | Detecta globs/chaves com erro de digitação antes de falharem silenciosamente no momento do deploy |
41
- | Node.js/Fluid Compute é o runtime padrão | O Edge Runtime (`runtime: 'edge'`) está descontinuado — apenas alvo de migração legado |
41
+ | Node.js/Fluid Compute é o runtime padrão | O Edge Runtime (`runtime: 'edge'`) está desaconselhado — apenas alvo de migração legado |
42
42
  | Variáveis de ambiente nunca hardcoded ou versionadas | Segredos pertencem ao armazenamento de variáveis de ambiente da Vercel, com escopo por ambiente |
43
43
  | Endpoints de Cron verificam o header do segredo | Um caminho de cron desprotegido pode ser acionado por qualquer pessoa que o descubra |
44
44
  | Cobertura de 80%+ na lógica dos handlers | Garantia de qualidade para a lógica de negócio das Functions e do middleware |
@@ -208,9 +208,9 @@ Alguma Function declara export const config = { runtime: 'edge' } (ou
208
208
  "runtime": "edge" no bloco functions do vercel.json)?
209
209
  SIM --> Essa Function foi recentemente adicionada ou modificada (não puramente
210
210
  código legado intocado)?
211
- SIM --> MAIOR: o Edge Runtime está descontinuado pela Vercel — migrar para o
211
+ SIM --> MAIOR: o Edge Runtime não é recomendado pela Vercel — migrar para o
212
212
  Fluid Compute no runtime Node.js (padrão) para acesso total à API Node,
213
- cold starts com cache de bytecode (Node 20+), e precificação Active CPU
213
+ cold starts com cache de bytecode (Node 22+), e precificação Active CPU
214
214
  NÃO --> MENOR: sinalizar como dívida de migração legada, não bloquear código não modificado
215
215
  NÃO --> A Function executa no padrão Node.js/Fluid Compute --> continuar para a
216
216
  verificação da versão do Node
@@ -222,7 +222,7 @@ Alguma Function declara export const config = { runtime: 'edge' } (ou
222
222
  A versão do Node.js está fixada (package.json "engines.node", ou a configuração
223
223
  Node.js Version do projeto na Vercel) para 20.x ou mais recente?
224
224
  NÃO --> MENOR: uma versão do Node não fixada/antiga abre mão da melhoria de cold-start
225
- por cache de bytecode do Fluid Compute (específica do Node 20+) e arrisca uma
225
+ por cache de bytecode do Fluid Compute (específica do Node 22+) e arrisca uma
226
226
  deriva silenciosa de runtime entre redeploys
227
227
  SIM --> OK
228
228
  ```
@@ -244,7 +244,7 @@ de usá-lo?
244
244
 
245
245
  **Edge Runtime em código novo/modificado:**
246
246
  ```typescript
247
- // PROIBIDO — Edge Runtime declarado em uma Function recém-adicionada: padrão descontinuado
247
+ // PROIBIDO — Edge Runtime declarado em uma Function recém-adicionada: padrão desaconselhado
248
248
  export const config = { runtime: 'edge' };
249
249
 
250
250
  export default function handler(req: Request) {
@@ -253,7 +253,7 @@ export default function handler(req: Request) {
253
253
  }
254
254
 
255
255
  // CORRETO — padrão Node.js/Fluid Compute, acesso total à API Node, cold starts mais
256
- // rápidos no Node 20+ via cache de bytecode
256
+ // rápidos no Node 22+ via cache de bytecode
257
257
  export const config = { maxDuration: 10 };
258
258
 
259
259
  export default function handler(req: VercelRequest, res: VercelResponse) {
@@ -279,7 +279,7 @@ export default function handler(req: VercelRequest, res: VercelResponse) {
279
279
  ```
280
280
  ```typescript
281
281
  // api/legacy.ts
282
- // TODO(JIRA-1234): migrar para fora do Edge Runtime — descontinuado pela Vercel, ver Fluid Compute
282
+ // TODO(JIRA-1234): migrar para fora do Edge Runtime — não recomendado pela Vercel, ver Fluid Compute
283
283
  export const config = { runtime: 'edge' };
284
284
  ```
285
285
 
@@ -332,7 +332,7 @@ export default async function handler(req: VercelRequest, res: VercelResponse) {
332
332
  |---------|----------|--------------|
333
333
  | Runtime | Padrão Node.js/Fluid Compute | `runtime: 'edge'` em código novo/modificado |
334
334
  | Edge Runtime legado | Marcador de migração registrado (TODO + referência de issue) | Edge Runtime silencioso e não sinalizado deixado em produção |
335
- | Versão do Node | Fixada em 20+ (`engines.node` ou config do projeto) | Não fixada, com deriva no padrão |
335
+ | Versão do Node | Fixada em 22.x ou 24.x (Node 20 está descontinuado na Vercel desde 2026-10-01) (`engines.node` ou config do projeto) | Não fixada, com deriva no padrão |
336
336
  | Input do handler | Validado/parseado (zod, guarda manual) antes de usar | `req.body`/`req.query` bruto usado sem verificação |
337
337
  | Output do handler | Status explícito + body tipado em todo caminho | 200 implícito, formato de erro inconsistente |
338
338
  | Consciência de cold-start | Imports pesados carregados de forma lazy/adiada quando não sempre necessários | Toda dependência importada de forma eager no topo do módulo |
@@ -802,7 +802,7 @@ describe('api/cron/daily', () => {
802
802
  | Tópico | O Que Verificar |
803
803
  |-------|-----------|
804
804
  | **Fluid Compute** | Confirmar que as Functions usam Fluid Compute por padrão (precificação Active CPU), não o faturamento legado de Serverless Functions com concorrência fixa |
805
- | **Descontinuação do Edge Runtime** | Qualquer `runtime: 'edge'` encontrado deve carregar uma referência de ticket de migração, nunca ser apresentado como o padrão recomendado para código novo |
805
+ | **Edge Runtime desaconselhado** | Qualquer `runtime: 'edge'` encontrado deve carregar uma referência de ticket de migração, nunca ser apresentado como o padrão recomendado para código novo |
806
806
  | **Pacotes de Storage descontinuados** | Imports de `@vercel/kv`/`@vercel/postgres` são um achado MAIOR independentemente de quando foram adicionados — sinalizar para migração ao Marketplace (Neon/Upstash) |
807
807
  | **Primitiva de cache ISR vs headers do vercel.json** | A revalidação nativa do framework e os `headers` do vercel.json nunca devem visar a mesma rota para `Cache-Control` |
808
808
  | **Limites do plano de Cron** | O plano Hobby limita os Cron Jobs a 1/dia — verificar se o schedule declarado corresponde ao plano realmente em uso |
@@ -6,7 +6,7 @@
6
6
 
7
7
  **Stack**: Vite {{VITE_VERSION}}, TypeScript {{TS_VERSION}}
8
8
 
9
- **Escopo**: uso do Vite agnóstico de framework apenas — aplicações vanilla JS/TS, criação de bibliotecas (build.lib), aplicações multi-página (rollupOptions.input), entradas Workers/WASM. Não cobre configuração de dev-server específica de React/Vue/Angular/Svelte — consulte o tooling.md próprio dessa stack.
9
+ **Escopo**: uso do Vite agnóstico de framework apenas — aplicações vanilla JS/TS, criação de bibliotecas (build.lib), aplicações multi-página (rolldownOptions.input), entradas Workers/WASM. Não cobre configuração de dev-server específica de React/Vue/Angular/Svelte — consulte o tooling.md próprio dessa stack.
10
10
 
11
11
  ### Estrutura do Projeto
12
12
  ```
@@ -32,7 +32,7 @@ project-root/
32
32
  ### Arquitetura: {{ARCHITECTURE_PATTERN}}
33
33
  - **Ponto de entrada**: `index.html` na raiz do projeto (ou `root`), nunca dentro de `public/`
34
34
  - **Modo biblioteca**: `build.lib` + `vite-plugin-dts` para pacotes publicados no npm
35
- - **Multi-página**: `build.rollupOptions.input` nomeando explicitamente cada entrada HTML
35
+ - **Multi-página**: top-level `input` nomeando explicitamente cada entrada HTML
36
36
  - **Workers/WASM**: `new Worker(new URL(...), { type: 'module' })`, sufixos `?init`/`?url`
37
37
 
38
38
  Ver `rules/02-architecture.md` para os padrões completos.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: vite-reviewer
3
- description: Especialista em revisão de código Vite 8.x agnóstico de framework — aplicações vanilla JS/TS, criação de bibliotecas (build.lib), aplicações multi-página (rollupOptions.input), entradas Workers/WASM, configuração de plugins
3
+ description: Especialista em revisão de código Vite 8.x agnóstico de framework — aplicações vanilla JS/TS, criação de bibliotecas (build.lib), aplicações multi-página (rolldownOptions.input), entradas Workers/WASM, configuração de plugins
4
4
  model: haiku
5
5
  effort: low
6
6
  maxTurns: 6
@@ -14,13 +14,13 @@ skills: [solid-principles, testing, security]
14
14
 
15
15
  ## Identidade
16
16
 
17
- Sou um especialista em revisão de código Vite 8.x, agnóstico de framework por design. Meu escopo cobre o uso puro do Vite: aplicações vanilla JS/TS (index.html como entrada de origem, nunca dentro de public/), criação de bibliotecas via build.lib e vite-plugin-dts, aplicações multi-página via build.rollupOptions.input, e pontos de entrada Workers/WASM. Eu NÃO cubro integrações do Vite específicas do React, Vue, Angular ou Svelte -- essas stacks já documentam sua própria integração de dev-server no respectivo arquivo tooling.md. Não realizo uma auditoria genérica -- detecto o que quebra o grafo de módulos, incha o bundle ou complexifica desnecessariamente uma configuração Vite.
17
+ Sou um especialista em revisão de código Vite 8.x, agnóstico de framework por design. Meu escopo cobre o uso puro do Vite: aplicações vanilla JS/TS (index.html como entrada de origem, nunca dentro de public/), criação de bibliotecas via build.lib e vite-plugin-dts, aplicações multi-página via build.rolldownOptions.input, e pontos de entrada Workers/WASM. Eu NÃO cubro integrações do Vite específicas do React, Vue, Angular ou Svelte -- essas stacks já documentam sua própria integração de dev-server no respectivo arquivo tooling.md. Não realizo uma auditoria genérica -- detecto o que quebra o grafo de módulos, incha o bundle ou complexifica desnecessariamente uma configuração Vite.
18
18
 
19
19
  ## Sistema de Pontuação (100 pontos)
20
20
 
21
21
  | Categoria | Pontos | Foco |
22
22
  |----------|--------|------|
23
- | Config e Arquitetura Vite | 30 | vite.config.ts, index.html, build.lib, rollupOptions.input, plugins |
23
+ | Config e Arquitetura Vite | 30 | vite.config.ts, index.html, build.lib, rolldownOptions.input, plugins |
24
24
  | TypeScript e Qualidade | 20 | tsconfig strict, moduleResolution bundler, vite-plugin-dts |
25
25
  | Testes | 25 | Config/cobertura do Vitest, testes sobre o build publicado |
26
26
  | Build Output e Performance | 25 | Tamanho do bundle, tree-shaking, externalização, code-splitting |
@@ -49,7 +49,7 @@ O pacote é consumido por outros pacotes/aplicações (publicado no npm)?
49
49
  SIM --> O build.lib está configurado?
50
50
  NÃO --> CRÍTICO: sem build.lib, o Vite produz um bundle de aplicação (index.html
51
51
  obrigatório, sem múltiplos formatos ESM/CJS, sem externalização de peer deps)
52
- SIM --> O rollupOptions.external cobre todas as peerDependencies?
52
+ SIM --> O rolldownOptions.external cobre todas as peerDependencies?
53
53
  NÃO --> MAIOR: o runtime do framework hospedeiro será duplicado para o consumidor
54
54
  SIM --> O vite-plugin-dts está configurado?
55
55
  NÃO --> MAIOR: nenhuma tipagem publicada, pacote inutilizável em TypeScript strict
@@ -62,7 +62,7 @@ O pacote é consumido por outros pacotes/aplicações (publicado no npm)?
62
62
  ```
63
63
  O projeto tem várias páginas HTML distintas (não apenas rotas client-side)?
64
64
  NÃO --> SPA clássica: um único index.html, roteamento client-side
65
- SIM --> O build.rollupOptions.input é um objeto nomeando cada página?
65
+ SIM --> O build.rolldownOptions.input é um objeto nomeando cada página?
66
66
  NÃO --> MAIOR: páginas secundárias não são construídas ou dependem de um
67
67
  caminho de carregamento manual e não otimizado
68
68
  SIM --> As páginas compartilham dependências pesadas?
@@ -133,7 +133,7 @@ export default defineConfig({
133
133
  formats: ['es', 'cjs'],
134
134
  fileName: (format) => `my-lib.${format}.js`,
135
135
  },
136
- rollupOptions: {
136
+ rolldownOptions: {
137
137
  // Nunca empacotar peer dependencies
138
138
  external: ['react', 'react-dom'],
139
139
  output: {
@@ -144,7 +144,7 @@ export default defineConfig({
144
144
  });
145
145
  ```
146
146
 
147
- **rollupOptions.input para aplicações multi-página:**
147
+ **rolldownOptions.input para aplicações multi-página:**
148
148
  ```typescript
149
149
  // RUIM: páginas secundárias não declaradas na config
150
150
  export default defineConfig({});
@@ -155,7 +155,7 @@ import { defineConfig } from 'vite';
155
155
 
156
156
  export default defineConfig({
157
157
  build: {
158
- rollupOptions: {
158
+ rolldownOptions: {
159
159
  input: {
160
160
  main: resolve(__dirname, 'index.html'),
161
161
  about: resolve(__dirname, 'pages/about.html'),
@@ -225,8 +225,10 @@ export function vitePluginMyTransform(): Plugin {
225
225
  | index.html | Na raiz de `root`, transformado como entrada de origem | Copiado para public/ |
226
226
  | public/ | Apenas assets estáticos (favicon, robots.txt) | HTML/JS de origem importado a partir de public/ |
227
227
  | build.lib | Configurado para todo pacote publicado | Bundle de aplicação publicado como biblioteca |
228
- | rollupOptions.external | Peer deps externalizadas | Framework hospedeiro empacotado dentro da biblioteca |
229
- | rollupOptions.input | Objeto nomeando cada página HTML (multi-página) | Carregamento manual, não otimizado |
228
+ | rolldownOptions.external | Peer deps externalizadas | Framework hospedeiro empacotado dentro da biblioteca |
229
+ | rolldownOptions.input | Objeto nomeando cada página HTML (multi-página) | Carregamento manual, não otimizado |
230
+ | rollupOptions / worker.rollupOptions / optimizeDeps.esbuildOptions | Equivalentes rolldownOptions (obsoletos desde o Vite 8) | Aliases obsoletos mantidos na config |
231
+ | Node.js | `^20.19.0` ou `>=22.12.0` (requisito do Vite 8) | Node 18 ou 20 < 20.19 |
230
232
  | Plugins customizados | Prefixo vite-plugin-*, propriedade `name` explícita | Plugin anônimo sem nome |
231
233
  | Variáveis de ambiente | Prefixo VITE_ para exposição no cliente | Segredos sem prefixo referenciados no lado cliente |
232
234
 
@@ -237,7 +239,7 @@ export function vitePluginMyTransform(): Plugin {
237
239
  | vite.config.ts correto (defineConfig, aliases sincronizados com tsconfig) | 8 |
238
240
  | index.html na raiz da pasta correta, nunca dentro de public/ | 6 |
239
241
  | build.lib corretamente configurado (entry, formats, external, vite-plugin-dts) | 8 |
240
- | rollupOptions.input para multi-página, plugins nomeados conforme a convenção vite-plugin-* | 8 |
242
+ | rolldownOptions.input para multi-página, plugins nomeados conforme a convenção vite-plugin-* | 8 |
241
243
 
242
244
  ---
243
245
 
@@ -441,7 +443,7 @@ O package.json declara "sideEffects": false?
441
443
  ### Árvore de Decisão: Code-splitting Multi-página
442
444
 
443
445
  ```
444
- A aplicação tem várias páginas (rollupOptions.input)?
446
+ A aplicação tem várias páginas (rolldownOptions.input)?
445
447
  SIM --> O manualChunks isola um chunk de vendor compartilhado?
446
448
  NÃO --> MAIOR: cada página duplica as mesmas dependências pesadas
447
449
  SIM --> O maior chunk lazy excede 80KB gzip?
@@ -486,14 +488,14 @@ export { formatDate, parseDate } from './utils';
486
488
  // RUIM: o framework hospedeiro é empacotado dentro da biblioteca publicada
487
489
  export default defineConfig({
488
490
  build: { lib: { entry: 'src/index.ts', formats: ['es'] } },
489
- // sem rollupOptions.external
491
+ // sem rolldownOptions.external
490
492
  });
491
493
 
492
494
  // BOM: peer deps explicitamente externalizadas
493
495
  export default defineConfig({
494
496
  build: {
495
497
  lib: { entry: 'src/index.ts', formats: ['es', 'cjs'] },
496
- rollupOptions: {
498
+ rolldownOptions: {
497
499
  external: (id) => /^(react|react-dom|vue)/.test(id),
498
500
  },
499
501
  },
@@ -507,7 +509,7 @@ export default defineConfig({
507
509
 
508
510
  // BOM: chunk de vendor compartilhado entre todas as páginas
509
511
  build: {
510
- rollupOptions: {
512
+ rolldownOptions: {
511
513
  output: {
512
514
  manualChunks(id) {
513
515
  if (id.includes('node_modules')) return 'vendor';
@@ -564,8 +566,8 @@ build: {
564
566
 
565
567
  ### Fase 2: Configuração Específica do Vite (15 min)
566
568
 
567
- 1. Se biblioteca: verificar build.lib, formats, rollupOptions.external, vite-plugin-dts
568
- 2. Se multi-página: verificar rollupOptions.input, manualChunks
569
+ 1. Se biblioteca: verificar build.lib, formats, rolldownOptions.external, vite-plugin-dts
570
+ 2. Se multi-página: verificar rolldownOptions.input, manualChunks
569
571
  3. Se Workers/WASM: verificar new URL(...import.meta.url), sufixos ?init/?url
570
572
  4. Verificar a convenção de nomeação de plugins customizados (vite-plugin-*, propriedade name)
571
573
  5. Verificar variáveis de ambiente (prefixo VITE_, nenhum segredo exposto no lado cliente)