@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
@@ -897,7 +897,7 @@ Antes de mergear el refactoring:
897
897
  - [ ] Código más simple (KISS)
898
898
  - [ ] SOLID respetado
899
899
  - [ ] PHPStan nivel 8 OK
900
- - [ ] Código formateado (PSR-12)
900
+ - [ ] Código formateado (PER-CS 3.0)
901
901
  - [ ] Commits atómicos (1 cambio = 1 commit)
902
902
  - [ ] Mensaje de commit claro
903
903
  - [ ] Documentación si refactoring mayor (ADR)
@@ -97,7 +97,7 @@ Ejecuta Deptrac para verificar las dependencias entre capas:
97
97
 
98
98
  ```bash
99
99
  # Verificar si deptrac.yaml existe
100
- docker run --rm -v $(pwd):/app php:8.2-cli test -f /app/deptrac.yaml && echo "✅ deptrac.yaml encontrado" || echo "❌ deptrac.yaml faltante"
100
+ docker run --rm -v $(pwd):/app php:8.5-cli test -f /app/deptrac.yaml && echo "✅ deptrac.yaml encontrado" || echo "❌ deptrac.yaml faltante"
101
101
 
102
102
  # Ejecutar Deptrac
103
103
  docker run --rm -v $(pwd):/app qossmic/deptrac analyse
@@ -221,16 +221,16 @@ Herramientas:
221
221
 
222
222
  ```bash
223
223
  # Analizar la estructura del proyecto
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
  # Verificar las dependencias con Deptrac
227
227
  docker run --rm -v $(pwd):/app qossmic/deptrac analyse --no-progress
228
228
 
229
229
  # Listar las clases por 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
  # Verificar la presencia de anotaciones Doctrine en Domain
233
- docker run --rm -v $(pwd):/app php:8.2-cli grep -r "@ORM" /app/src/Domain/ || echo "✅ No hay anotaciones ORM en Domain"
233
+ docker run --rm -v $(pwd):/app php:8.5-cli grep -r "@ORM" /app/src/Domain/ || echo "✅ No hay anotaciones ORM en Domain"
234
234
  ```
235
235
 
236
236
  ## IMPORTANTE
@@ -31,10 +31,10 @@ Ejecuta PHP_CodeSniffer para verificar el respeto de PSR-12:
31
31
 
32
32
  ```bash
33
33
  # Verificar si phpcs está instalado
34
- docker run --rm -v $(pwd):/app php:8.2-cli test -f /app/vendor/bin/phpcs && echo "✅ phpcs encontrado" || echo "❌ phpcs faltante"
34
+ docker run --rm -v $(pwd):/app php:8.5-cli test -f /app/vendor/bin/phpcs && echo "✅ phpcs encontrado" || echo "❌ phpcs faltante"
35
35
 
36
36
  # Ejecutar 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
  #### Estándares PSR-12 (5 puntos)
@@ -58,7 +58,7 @@ Ejecuta PHPStan al nivel 10:
58
58
 
59
59
  ```bash
60
60
  # Verificar si PHPStan está instalado
61
- docker run --rm -v $(pwd):/app php:8.2-cli test -f /app/vendor/bin/phpstan && echo "✅ PHPStan encontrado" || echo "❌ PHPStan faltante"
61
+ docker run --rm -v $(pwd):/app php:8.5-cli test -f /app/vendor/bin/phpstan && echo "✅ PHPStan encontrado" || echo "❌ PHPStan faltante"
62
62
 
63
63
  # Ejecutar PHPStan nivel 10
64
64
  docker run --rm -v $(pwd):/app phpstan/phpstan analyse src --level=10 --error-format=table
@@ -100,10 +100,10 @@ Verifica el uso estricto de tipos:
100
100
 
101
101
  ```bash
102
102
  # Verificar 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
  # Contar el número de archivos 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
  # Los dos números deben ser idénticos
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)` en 100% de los archivos PHP
114
114
  - [ ] Type hints en todos los parámetros de métodos públicos
115
115
  - [ ] Type hints en todos los retornos de métodos públicos
116
- - [ ] Type hints en todas las propiedades de clase (PHP 7.4+)
117
- - [ ] Uso de union types (PHP 8.0+) en lugar de mixed
116
+ - [ ] Type hints en todas las propiedades de clase
117
+ - [ ] Uso de union types en lugar de mixed
118
118
  - [ ] No hay docblock @param/@return redundantes con los tipos nativos
119
- - [ ] Uso de readonly para propiedades inmutables (PHP 8.1+)
119
+ - [ ] Uso de readonly para propiedades inmutables
120
120
  - [ ] No hay supresión de errores con @phpstan-ignore
121
121
  - [ ] Tipos estrictos en los arrays: array<string, int>
122
- - [ ] Uso del tipo never para métodos que nunca retornan (PHP 8.1+)
122
+ - [ ] Uso del tipo never para métodos que nunca retornan
123
123
 
124
124
  **Puntos obtenidos**: ___/5
125
125
 
@@ -130,7 +130,7 @@ Analiza la complejidad del código:
130
130
  ```bash
131
131
  # Instalar phpmetrics si es necesario
132
132
  # Analizar la complejidad
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
  // Análisis básico de complejidad
136
136
  "
@@ -262,7 +262,7 @@ Ejemplos:
262
262
 
263
263
  3. 🎯 [ACCIÓN RECOMENDADA] - Formatear el código según PSR-12
264
264
  Impacto: ⭐⭐⭐ | Esfuerzo: 🔥
265
- Comando: docker run --rm -v $(pwd):/app php:8.2-cli /app/vendor/bin/phpcbf --standard=PSR12 src/
265
+ Comando: docker run --rm -v $(pwd):/app php:8.5-cli /app/vendor/bin/phpcbf --standard=PSR12 src/
266
266
 
267
267
  =================================================
268
268
  RECOMENDACIONES
@@ -305,10 +305,10 @@ CI/CD:
305
305
 
306
306
  ```bash
307
307
  # Verificar 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
  # Corregir automáticamente 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 nivel 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
  # Verificar declare(strict_types=1) en todos los archivos
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 "❌ Faltante: $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 "❌ Faltante: $f"; done'
324
324
  ```
325
325
 
326
326
  ## IMPORTANTE
@@ -32,10 +32,10 @@ Verifica la configuración del Security Bundle:
32
32
 
33
33
  ```bash
34
34
  # Verificar si symfony/security-bundle está instalado
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
  # Listar los firewalls configurados
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
  #### Configuración Security Bundle (5 puntos)
@@ -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
  # Verificar el uso de consultas preparadas
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
  # Buscar concatenaciones de consultas peligrosas
66
- docker run --rm -v $(pwd):/app php:8.2-cli grep -rE "\"SELECT.*\\..*\$" /app/src --include="*.php" || echo "✅ No se detectó concatenación SQL"
66
+ docker run --rm -v $(pwd):/app php:8.5-cli grep -rE "\"SELECT.*\\..*\$" /app/src --include="*.php" || echo "✅ No se detectó concatenación SQL"
67
67
  ```
68
68
 
69
69
  - [ ] Uso exclusivo de consultas preparadas (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
  # Verificar la configuración de contraseñas
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
  # Verificar la presencia 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 contraseña fuerte (argon2i o bcrypt con coste elevado)
@@ -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
  # Verificar secretos en el código
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 "✅ No se encontraron secretos en el código"
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 "✅ No se encontraron secretos en el código"
114
114
 
115
115
  # Verificar HTTPS
116
- docker run --rm -v $(pwd):/app php:8.2-cli grep -r "SECURE_SCHEME" /app/.env.example || echo "⚠️ Configuración HTTPS no encontrada"
116
+ docker run --rm -v $(pwd):/app php:8.5-cli grep -r "SECURE_SCHEME" /app/.env.example || echo "⚠️ Configuración HTTPS no encontrada"
117
117
  ```
118
118
 
119
119
  - [ ] Secretos externalizados (.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
  # Verificar los 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
  # Verificar las anotaciones @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 para autorizaciones complejas
@@ -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
  # Verificar el auto-escape de 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
  # Verificar los |raw no seguros
166
- docker run --rm -v $(pwd):/app php:8.2-cli grep -r "|raw" /app/templates --include="*.twig" || echo "✅ No se detectó |raw"
166
+ docker run --rm -v $(pwd):/app php:8.5-cli grep -r "|raw" /app/templates --include="*.twig" || echo "✅ No se detectó |raw"
167
167
  ```
168
168
 
169
169
  - [ ] Auto-escape activado en 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
  # Verificar la protección CSRF
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
  - [ ] Protección CSRF activada globalmente
@@ -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
  # Verificar el modo 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
  # Verificar dependencias vulnerables
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 producción
@@ -228,10 +228,10 @@ docker run --rm -v $(pwd):/app php:8.2-cli composer audit
228
228
 
229
229
  ```bash
230
230
  # Auditoría de seguridad 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
  # Verificar versiones 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 actualizado (última versión LTS o estable)
@@ -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
  # Buscar el tratamiento de datos personales
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
  # Verificar los mecanismos de consentimiento
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
  - [ ] Consentimiento del usuario para recolección de datos
@@ -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
  # Verificar la configuración de cabeceras
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
  # Auditoría 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 para detectar problemas de seguridad
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
  # Auditoría de dependencias
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
  # Verificar secretos en el código
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
  # Verificar protección CSRF
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
  # Verificar los 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
  # Verificar modo 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
  # Verificar consultas 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
  ## IMPORTANTE
@@ -32,7 +32,7 @@ Analizar la estructura del directorio tests/:
32
32
 
33
33
  ```bash
34
34
  # Listar la estructura de las pruebas
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
  #### Organización de las Pruebas (3 puntos)
@@ -56,10 +56,10 @@ Ejecutar las pruebas unitarias:
56
56
 
57
57
  ```bash
58
58
  # Ejecutar solo las pruebas unitarias
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
  # Contar las pruebas unitarias
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
  #### Pruebas Unitarias del Dominio (7 puntos)
@@ -86,7 +86,7 @@ Ejecutar las pruebas de integración:
86
86
 
87
87
  ```bash
88
88
  # Ejecutar las pruebas de integración
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
  #### Pruebas de Integración de Infraestructura (5 puntos)
@@ -113,10 +113,10 @@ Ejecutar las pruebas funcionales:
113
113
 
114
114
  ```bash
115
115
  # Ejecutar las pruebas funcionales
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
  # Verificar si Behat está instalado
119
- docker run --rm -v $(pwd):/app php:8.2-cli test -f /app/vendor/bin/behat && echo "✅ Behat encontrado" || echo "⚠️ Behat ausente"
119
+ docker run --rm -v $(pwd):/app php:8.5-cli test -f /app/vendor/bin/behat && echo "✅ Behat encontrado" || echo "⚠️ Behat ausente"
120
120
  ```
121
121
 
122
122
  #### Pruebas Funcionales (5 puntos)
@@ -143,10 +143,10 @@ Generar el informe de cobertura:
143
143
 
144
144
  ```bash
145
145
  # Generar la cobertura de código (requiere xdebug o 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
  # Mostrar el resumen de cobertura
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
  #### Cobertura de Código (5 puntos)
@@ -193,7 +193,7 @@ Ejecutar las pruebas de mutación:
193
193
 
194
194
  ```bash
195
195
  # Verificar si Infection está instalado
196
- docker run --rm -v $(pwd):/app php:8.2-cli test -f /app/vendor/bin/infection && echo "✅ Infection encontrado" || echo "❌ Infection ausente"
196
+ docker run --rm -v $(pwd):/app php:8.5-cli test -f /app/vendor/bin/infection && echo "✅ Infection encontrado" || echo "❌ Infection ausente"
197
197
 
198
198
  # Ejecutar 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
  # Ejecutar todas las pruebas
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
  # Solo pruebas unitarias
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
  # Pruebas con cobertura
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 (pruebas 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
  # Listar todas las pruebas
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
  # Ejecutar una prueba específica
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
  # Pruebas con salida detallada
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
  ## IMPORTANTE
@@ -4,10 +4,10 @@
4
4
 
5
5
  ## Principios Generales
6
6
 
7
- ### PSR-12 + Symfony Coding Standards
7
+ ### PER-CS 3.0 + Symfony Coding Standards
8
8
 
9
9
  El proyecto sigue estrictamente:
10
- 1. **PSR-12**: Estándar PHP oficial
10
+ 1. **PER-CS 3.0**: Estándar PHP oficial
11
11
  2. **@Symfony**: Convenciones Symfony
12
12
  3. **@Symfony:risky**: Reglas estrictas Symfony
13
13
  4. **@PHP85Migration**: Modernización PHP 8.5+ (property hooks, pipe operator, `#[\NoDiscard]`)
@@ -311,7 +311,7 @@ Configuración PHP-CS-Fixer:
311
311
 
312
312
  ## Indentación y Formateo
313
313
 
314
- ### Reglas PSR-12
314
+ ### Reglas PER-CS 3.0
315
315
 
316
316
  ```php
317
317
  <?php
@@ -398,7 +398,7 @@ Ver `.claude/checklists/pre-commit.md` para checklist completa.
398
398
 
399
399
  ## Referencias
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 locales (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
  // ✅ Reglas estrictas adicionales
246
246
  'array_syntax' => ['syntax' => 'short'],
@@ -175,6 +175,8 @@ Uso:
175
175
  $this->translator->trans('client.created', [], 'messages', $locale);
176
176
  ```
177
177
 
178
+ Mensajes con plurales/género: ICU MessageFormat (MF1 mediante el dominio `+intl-icu` de Symfony); **MessageFormat 2.0** es estable en CLDR 47 (marzo 2025) — verificar el soporte de la biblioteca antes de migrar.
179
+
178
180
  ## Checklist i18n
179
181
 
180
182
  - [ ] Country enum utilizado en todas partes
@@ -188,3 +188,4 @@ final class MessengerEventSubscriber implements EventSubscriberInterface
188
188
  - [ ] Workers supervisord en producción
189
189
  - [ ] Monitoring de failed messages
190
190
  - [ ] Tests con `messenger:consume --limit=1`
191
+ - [ ] Mensajes expuestos a otros sistemas documentados con 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
  {
@@ -494,7 +494,7 @@ Para 1 EPIC, 5 US, ~25 tareas:
494
494
  | **Tiempo total** | **~120 min** | **~55 min** | **~2.2x** |
495
495
  | Costo total* | ~$28 | ~$17 | **-38%** |
496
496
 
497
- *Ahorro de costos porque Sonnet ($3/$15/M) gestiona la mayoria del trabajo vs Opus ($15/$75/M) en modo secuencial.
497
+ *Ahorro de costos porque Sonnet 5.5 ($2/$10/M) gestiona la mayoria del trabajo vs Opus 5.5 ($4/$20/M) en modo secuencial.
498
498
 
499
499
  ## Expectativas de rendimiento
500
500
 
@@ -8,7 +8,7 @@
8
8
 
9
9
  **Alcance**: únicamente funcionalidades de plataforma agnósticas de framework — vercel.json, Functions, ISR, Cron, Storage. Explícitamente no cubre Next.js, ni el adaptador de despliegue propio de ningún framework.
10
10
 
11
- > **Nota:** Vercel (este stack) cubre únicamente la **superficie de plataforma de despliegue agnóstica de framework**: la configuración de `vercel.json` (rewrites, redirects, headers, regions), las Serverless Functions en el runtime de Node.js / Fluid Compute, las primitivas de caché ISR, los Cron Jobs, Vercel Storage (Blob nativo; Postgres/KV vía Marketplace — Neon/Upstash), Analytics/Speed Insights, y el flujo de trabajo de variables de entorno/Preview Deployment. **No** es un stack de Next.js — Next.js en sí queda fuera de alcance y no es una tecnología soportada por claude-craft (no existe ningún namespace `/nextjs:*`). Los patrones de enrutamiento, renderizado o data-fetching específicos de cada framework pertenecen al stack propio de ese framework (`/react:*`, `/vuejs:*`, `/angular:*`) — consultar el `tooling.md` de ese stack para saber cómo se integra con el build output de Vercel. Además, el Edge Runtime (`export const runtime = 'edge'`) está **deprecado por Vercel** desde 2026 en favor de Fluid Compute sobre el runtime de Node.js; este stack documenta el Edge Runtime únicamente para ayudar a identificar y migrar código legacy, no como un patrón recomendado para trabajo nuevo.
11
+ > **Nota:** Vercel (este stack) cubre únicamente la **superficie de plataforma de despliegue agnóstica de framework**: la configuración de `vercel.json` (rewrites, redirects, headers, regions), las Serverless Functions en el runtime de Node.js / Fluid Compute, las primitivas de caché ISR, los Cron Jobs, Vercel Storage (Blob nativo; Postgres/KV vía Marketplace — Neon/Upstash), Analytics/Speed Insights, y el flujo de trabajo de variables de entorno/Preview Deployment. **No** es un stack de Next.js — Next.js en sí queda fuera de alcance y no es una tecnología soportada por claude-craft (no existe ningún namespace `/nextjs:*`). Los patrones de enrutamiento, renderizado o data-fetching específicos de cada framework pertenecen al stack propio de ese framework (`/react:*`, `/vuejs:*`, `/angular:*`) — consultar el `tooling.md` de ese stack para saber cómo se integra con el build output de Vercel. Además, el Edge Runtime (`export const runtime = 'edge'`) **no es recomendado por Vercel**, que prefiere Fluid Compute sobre el runtime de Node.js; este stack documenta el Edge Runtime únicamente para ayudar a identificar y migrar código legacy, no como un patrón recomendado para trabajo nuevo.
12
12
 
13
13
  ### Estructura del Proyecto
14
14
  ```
@@ -38,7 +38,7 @@ Ver `rules/02-architecture.md` para patrones completos.
38
38
  | Regla | Motivo |
39
39
  |------|--------|
40
40
  | vercel.json validado contra `$schema` | Detecta globs/claves con errores tipográficos antes de que fallen silenciosamente en tiempo de deploy |
41
- | Node.js/Fluid Compute es el runtime por defecto | El Edge Runtime (`runtime: 'edge'`) está deprecado — es únicamente un objetivo de migración legacy |
41
+ | Node.js/Fluid Compute es el runtime por defecto | El Edge Runtime (`runtime: 'edge'`) está desaconsejado — es únicamente un objetivo de migración legacy |
42
42
  | Variables de entorno nunca hardcodeadas ni commiteadas | Los secretos pertenecen al almacén de variables de entorno de Vercel, con alcance por entorno |
43
43
  | Los endpoints de Cron verifican el header secreto | Una ruta de cron sin protección puede ser disparada por cualquiera que la descubra |
44
44
  | Cobertura del 80%+ en la lógica de los handlers | Garantía de calidad para la lógica de negocio de Functions y middleware |
@@ -211,9 +211,9 @@ Clasificar el proyecto: static-only / Functions-only / ISR-enabled / Cron-enable
211
211
  "runtime": "edge" en el bloque functions de vercel.json)?
212
212
  SÍ --> ¿Esta Function fue recién añadida o modificada recientemente (no es código
213
213
  puramente legacy sin tocar)?
214
- SÍ --> MAYOR: el Edge Runtime está deprecado por Vercel — migrar a Fluid
214
+ SÍ --> MAYOR: el Edge Runtime no está recomendado por Vercel — migrar a Fluid
215
215
  Compute sobre el runtime de Node.js (por defecto) para acceso completo
216
- a las APIs de Node, cold starts con caché de bytecode (Node 20+), y
216
+ a las APIs de Node, cold starts con caché de bytecode (Node 22+), y
217
217
  pricing por Active CPU
218
218
  NO --> MENOR: marcar como deuda de migración legacy, no bloquear código no modificado
219
219
  NO --> La Function corre en el runtime por defecto Node.js/Fluid Compute --> continuar
@@ -226,7 +226,7 @@ Clasificar el proyecto: static-only / Functions-only / ISR-enabled / Cron-enable
226
226
  ¿La versión de Node.js está fijada ("engines.node" en package.json, o el ajuste
227
227
  Node.js Version del proyecto en Vercel) a 20.x o superior?
228
228
  NO --> MENOR: una versión de Node no fijada/antigua renuncia a la mejora de cold-start
229
- por caché de bytecode de Fluid Compute (específica de Node 20+) y arriesga una
229
+ por caché de bytecode de Fluid Compute (específica de Node 22+) y arriesga una
230
230
  deriva silenciosa de runtime entre redeploys
231
231
  SÍ --> OK
232
232
  ```
@@ -247,7 +247,7 @@ Node.js Version del proyecto en Vercel) a 20.x o superior?
247
247
 
248
248
  **Edge Runtime en código nuevo/modificado:**
249
249
  ```typescript
250
- // PROHIBIDO — Edge Runtime declarado en una Function recién añadida: patrón deprecado
250
+ // PROHIBIDO — Edge Runtime declarado en una Function recién añadida: patrón desaconsejado
251
251
  export const config = { runtime: 'edge' };
252
252
 
253
253
  export default function handler(req: Request) {
@@ -256,7 +256,7 @@ export default function handler(req: Request) {
256
256
  }
257
257
 
258
258
  // CORRECTO — runtime por defecto Node.js/Fluid Compute, acceso completo a las APIs de Node,
259
- // cold starts más rápidos en Node 20+ vía caché de bytecode
259
+ // cold starts más rápidos en Node 22+ vía caché de bytecode
260
260
  export const config = { maxDuration: 10 };
261
261
 
262
262
  export default function handler(req: VercelRequest, res: VercelResponse) {
@@ -282,7 +282,7 @@ export default function handler(req: VercelRequest, res: VercelResponse) {
282
282
  ```
283
283
  ```typescript
284
284
  // api/legacy.ts
285
- // TODO(JIRA-1234): migrar fuera del Edge Runtime — deprecado por Vercel, ver Fluid Compute
285
+ // TODO(JIRA-1234): migrar fuera del Edge Runtime — no recomendado por Vercel, ver Fluid Compute
286
286
  export const config = { runtime: 'edge' };
287
287
  ```
288
288
 
@@ -335,7 +335,7 @@ export default async function handler(req: VercelRequest, res: VercelResponse) {
335
335
  |---------|----------|--------------|
336
336
  | Runtime | Por defecto Node.js/Fluid Compute | `runtime: 'edge'` en código nuevo/modificado |
337
337
  | Edge Runtime legacy | Marcador de migración ticketado (TODO + referencia de issue) | Edge Runtime silencioso y sin marcar dejado en el sitio |
338
- | Versión de Node | Fijada a 20+ (`engines.node` o ajuste del proyecto) | Sin fijar, deriva del valor por defecto |
338
+ | Versión de Node | Fijada a 22.x o 24.x (Node 20 está deprecado en Vercel desde 2026-10-01) (`engines.node` o ajuste del proyecto) | Sin fijar, deriva del valor por defecto |
339
339
  | Input del handler | Validado/parseado (zod, guarda manual) antes de usarlo | `req.body`/`req.query` crudo usado sin verificar |
340
340
  | Output del handler | Status explícito + body tipado en cada ruta | 200 implícito, forma de error inconsistente |
341
341
  | Conciencia del cold-start | Imports pesados cargados de forma diferida cuando no siempre se necesitan | Cada dependencia importada de forma eager en la cabecera del módulo |
@@ -6,7 +6,7 @@
6
6
 
7
7
  **Stack**: Vite {{VITE_VERSION}}, TypeScript {{TS_VERSION}}
8
8
 
9
- **Alcance**: uso de Vite agnóstico de framework únicamente — aplicaciones vanilla JS/TS, creación de librerías (build.lib), aplicaciones multi-página (rollupOptions.input), entradas Workers/WASM. No aplica a la configuración del servidor de desarrollo de React/Vue/Angular/Svelte — consultar el tooling.md propio de cada stack.
9
+ **Alcance**: uso de Vite agnóstico de framework únicamente — aplicaciones vanilla JS/TS, creación de librerías (build.lib), aplicaciones multi-página (rolldownOptions.input), entradas Workers/WASM. No aplica a la configuración del servidor de desarrollo de React/Vue/Angular/Svelte — consultar el tooling.md propio de cada stack.
10
10
 
11
11
  ### Estructura del Proyecto
12
12
  ```
@@ -32,7 +32,7 @@ project-root/
32
32
  ### Arquitectura: {{ARCHITECTURE_PATTERN}}
33
33
  - **Punto de entrada**: `index.html` en la raíz del proyecto (o `root`), nunca dentro de `public/`
34
34
  - **Modo librería**: `build.lib` + `vite-plugin-dts` para paquetes publicados en npm
35
- - **Multi-página**: `build.rollupOptions.input` nombrando explícitamente cada entrada HTML
35
+ - **Multi-página**: top-level `input` nombrando explícitamente cada entrada HTML
36
36
  - **Workers/WASM**: `new Worker(new URL(...), { type: 'module' })`, sufijos `?init`/`?url`
37
37
 
38
38
  Ver `rules/02-architecture.md` para patrones completos.