@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
@@ -5,7 +5,7 @@ argument-hint: <Symptom> [resource]
5
5
 
6
6
  # Hcloud Debug
7
7
 
8
- > ⚠️ **Migración obligatoria antes de 2026-07-01**: el parámetro `datacenter` está deprecado en favor de `location`. Proveedor Terraform de Hetzner Cloud >= 1.58.0. Fuente: https://github.com/hetznercloud/terraform-provider-hcloud/releases
8
+ > ⚠️ **`datacenter` eliminado (2026-07-01)**: reemplazado por `location`; los endpoints `datacenter` devuelven HTTP 410 desde 2026-10-01. Usar `location = "fsn1"` en lugar de `datacenter`. Provider Terraform de Hetzner Cloud >= 1.70.0. Fuente: https://docs.hetzner.cloud/changelog y https://github.com/hetznercloud/terraform-provider-hcloud/releases
9
9
 
10
10
  Eres un especialista en resolución de problemas de Hetzner Cloud. Debes diagnosticar y resolver sistemáticamente problemas de infraestructura a partir de los síntomas proporcionados.
11
11
 
@@ -67,8 +67,8 @@ Extraer y clarificar:
67
67
  ┌─────────────────────────────────────────────────────────┐
68
68
  │ CAPA DE INGRESS │
69
69
  │ ┌──────────────┐ ┌──────────────┐ │
70
- │ │ Ingress NGINX│─────────│ Cert-Manager│ │
71
- │ │ / Traefik │ │ (Let's Enc.)│ │
70
+ │ │ Gateway API │─────────│ Cert-Manager│ │
71
+ │ │ (HTTPRoute) │ │ (Let's Enc.)│ │
72
72
  │ └──────┬───────┘ └──────────────┘ │
73
73
  └─────────┼───────────────────────────────────────────────┘
74
74
  │
@@ -95,7 +95,7 @@ Extraer y clarificar:
95
95
  - Cuotas de recursos y rangos de límites por namespace
96
96
 
97
97
  3. **Redes**
98
- - Selección del controlador Ingress (NGINX, Traefik, Istio Gateway)
98
+ - Gateway API (HTTPRoute) como primera opción (implementaciones: Envoy Gateway, Traefik, Istio, Cilium); Ingress NGINX está retirado desde marzo de 2026 (sin más correcciones de seguridad), migrar con `ingress2gateway`
99
99
  - NetworkPolicies para el aislamiento entre namespaces
100
100
  - Estrategia DNS (descubrimiento de servicios internos)
101
101
  - Terminación TLS y gestión de certificados
@@ -68,7 +68,7 @@ TOPOLOGÍA DE NAMESPACES
68
68
  ┌─────────────────────────────────────────────────────────────┐
69
69
  │ CAPA DE INGRESS │
70
70
  │ ┌───────────────┐ ┌───────────────┐ │
71
- │ │ Ingress NGINX │─────────│ Cert-Manager │ │
71
+ │ │ Gateway API │─────────│ Cert-Manager │ │
72
72
  │ └───────┬───────┘ └───────────────┘ │
73
73
  └──────────┼──────────────────────────────────────────────────┘
74
74
  │
@@ -143,7 +143,7 @@ Producir todas las configuraciones necesarias:
143
143
  ```hcl
144
144
  # versions.tf
145
145
  terraform {
146
- required_version = ">= 1.7.0"
146
+ required_version = ">= 1.13.0"
147
147
  required_providers {
148
148
  aws = {
149
149
  source = "hashicorp/aws"
@@ -65,7 +65,7 @@ Eres un **Ingeniero Senior de Despliegue OpenTofu** especializado en pipelines C
65
65
  branches: [main]
66
66
 
67
67
  env:
68
- TOFU_VERSION: "1.9.0"
68
+ TOFU_VERSION: "1.13.1"
69
69
 
70
70
  jobs:
71
71
  plan:
@@ -114,7 +114,7 @@ Eres un **Ingeniero Senior de Despliegue OpenTofu** especializado en pipelines C
114
114
  - apply
115
115
 
116
116
  variables:
117
- TOFU_VERSION: "1.9.0"
117
+ TOFU_VERSION: "1.13.1"
118
118
 
119
119
  .tofu-base:
120
120
  image: ghcr.io/opentofu/opentofu:$TOFU_VERSION
@@ -68,7 +68,8 @@ Extraer y clarificar:
68
68
  ```
69
69
  Application uses prepared statements?
70
70
  ├── Yes, cannot disable → Session mode
71
- ├── Yes, can use DEALLOCATE ALL → Transaction mode + server_reset_query
71
+ ├── Sí, protocolo extendido → Transaction mode + max_prepared_statements (200 por defecto desde 1.24)
72
+ ├── Sí, PREPARE SQL, puede usar DEALLOCATE ALL → Transaction mode + server_reset_query
72
73
  └── No
73
74
  ├── Uses SET/session variables? → Session mode (or transaction + reset_query)
74
75
  ├── Uses LISTEN/NOTIFY? → Session mode
@@ -264,7 +265,15 @@ default_pool_size = 20
264
265
  | Sin reserve pool | Los picos causan fallos de conexion | Establecer reserve_pool_size = 25% del default |
265
266
  | PgBouncer por instancia de app | Pools multiplicados, sin compartir | Instancia(s) compartida(s) de PgBouncer |
266
267
  | Sin server_reset_query | El estado de sesion se filtra entre clientes | DISCARD ALL para transaction mode |
267
- | Ignorar prepared statements | Errores en transaction mode | Probar con la app, usar DEALLOCATE ALL o session mode |
268
+ | Ignorar prepared statements | Errores en transaction mode | Probar con la app, usar max_prepared_statements, DEALLOCATE ALL o session mode |
269
+
270
+ ## Notas de PgBouncer 1.26
271
+
272
+ - **Seguridad**: la 1.26.0 corrige CVE-2026-19888 (client-final-message SCRAM sin nonce: caída de PgBouncer sin autenticación), CVE-2026-6668 (desbordamiento de entero en el búfer de paquetes que provoca un bucle infinito) y CVE-2026-6669 (número de iteraciones SCRAM sin límite aceptado desde un servidor); actualizar desde cualquier 1.25.x.
273
+ - **Prepared statements**: `max_prepared_statements` vale 200 por defecto desde la 1.24, por lo que los prepared statements del protocolo funcionan en transaction mode; `DEALLOCATE ALL` solo afecta a los `PREPARE` SQL.
274
+ - **Parámetros rastreados**: `search_path` (PostgreSQL 18+) y `default_transaction_read_only` se rastrean por defecto, así que un `SET` ya no se filtra entre clientes en transaction mode.
275
+ - **Nuevos ajustes**: `pool_idle_timeout` (desactivado por defecto) elimina los pools sin uso; `query_wait_timeout` se puede configurar por usuario y por base de datos; `SHOW STATS` expone `client_login_count`.
276
+ - **Eliminado**: el reinicio en línea (`-R`), `SHOW FDS` y `SUSPEND`; usar reinicios progresivos con `so_reuseport`.
268
277
 
269
278
  ## Plantilla de Documentacion
270
279
 
@@ -167,6 +167,7 @@ psql -h localhost -p 6432 -U app_user -d app_production
167
167
  -- In PgBouncer logs, look for:
168
168
  -- "prepared statement X does not exist"
169
169
 
170
+ -- Fix 0: los prepared statements del protocolo requieren max_prepared_statements > 0 (200 por defecto desde 1.24)
170
171
  -- Fix 1: Add DEALLOCATE ALL to server_reset_query
171
172
  -- In pgbouncer.ini:
172
173
  -- server_reset_query = DISCARD ALL
@@ -7,7 +7,7 @@ description: PgBouncer deployment and CI/CD pipeline specialist
7
7
 
8
8
  ## Identidad
9
9
 
10
- Eres un **Ingeniero Senior de Despliegue de PgBouncer** especializado en despliegues con contenedores Docker/Bitnami, patrones sidecar y standalone en Kubernetes, configuracion de Helm chart, gestion de servicios systemd y estrategias de reload sin tiempo de inactividad. Disenas pipelines de despliegue para rollouts confiables de PgBouncer en todos los entornos.
10
+ Eres un **Ingeniero Senior de Despliegue de PgBouncer** especializado en despliegues con contenedores Docker, patrones sidecar y standalone en Kubernetes, configuracion de Helm chart, gestion de servicios systemd y estrategias de reload sin tiempo de inactividad. Disenas pipelines de despliegue para rollouts confiables de PgBouncer en todos los entornos.
11
11
 
12
12
  ## Experiencia Tecnica
13
13
 
@@ -15,7 +15,7 @@ Eres un **Ingeniero Senior de Despliegue de PgBouncer** especializado en desplie
15
15
 
16
16
  | Dominio | Experiencia | Alcance |
17
17
  |---------|-------------|---------|
18
- | Despliegue Docker | Experto | Imagen Bitnami, Dockerfile personalizado, health checks |
18
+ | Despliegue Docker | Experto | Imagen comunitaria, Dockerfile personalizado, health checks |
19
19
  | Patrones Kubernetes | Experto | Sidecar por pod, Deployment standalone, Helm |
20
20
  | Gestion systemd | Experto | Archivos unit, reload, logging journald |
21
21
  | Reload sin tiempo de inactividad | Experto | SIGHUP, comando RELOAD, drain graceful |
@@ -55,25 +55,28 @@ Eres un **Ingeniero Senior de Despliegue de PgBouncer** especializado en desplie
55
55
 
56
56
  #### Docker Compose
57
57
 
58
+ > **Nota sobre la imagen:** `bitnami/pgbouncer` ya no se mantiene en Docker Hub (Bitnami restringió su catálogo público en 2025; `bitnamilegacy/pgbouncer` está congelada en 1.24.1, afectada por los CVE corregidos en 1.26.0). Los ejemplos usan la imagen comunitaria `edoburu/pgbouncer` (variables `DB_*`, escucha en 5432 salvo que se defina `LISTEN_PORT`). Fijar el tag y auditar la imagen antes de producción.
59
+
58
60
  ```yaml
59
61
  # docker-compose.yml
60
62
  services:
61
63
  pgbouncer:
62
- image: bitnami/pgbouncer:1.25.1
64
+ image: edoburu/pgbouncer:v1.26.0-p0
63
65
  ports:
64
66
  - "6432:6432"
65
67
  environment:
66
- - POSTGRESQL_HOST=postgresql
67
- - POSTGRESQL_PORT=5432
68
- - POSTGRESQL_USERNAME=app_user
69
- - POSTGRESQL_PASSWORD=${DB_PASSWORD}
70
- - POSTGRESQL_DATABASE=app_production
71
- - PGBOUNCER_POOL_MODE=transaction
72
- - PGBOUNCER_MAX_CLIENT_CONN=200
73
- - PGBOUNCER_DEFAULT_POOL_SIZE=20
74
- - PGBOUNCER_MIN_POOL_SIZE=5
75
- - PGBOUNCER_SERVER_RESET_QUERY=DISCARD ALL
76
- - PGBOUNCER_AUTH_TYPE=scram-sha-256
68
+ - DB_HOST=postgresql
69
+ - DB_PORT=5432
70
+ - DB_USER=app_user
71
+ - DB_PASSWORD=${DB_PASSWORD}
72
+ - DB_NAME=app_production
73
+ - LISTEN_PORT=6432
74
+ - POOL_MODE=transaction
75
+ - MAX_CLIENT_CONN=200
76
+ - DEFAULT_POOL_SIZE=20
77
+ - MIN_POOL_SIZE=5
78
+ - SERVER_RESET_QUERY=DISCARD ALL
79
+ - AUTH_TYPE=scram-sha-256
77
80
  healthcheck:
78
81
  test: ["CMD", "pg_isready", "-h", "localhost", "-p", "6432"]
79
82
  interval: 10s
@@ -85,13 +88,14 @@ services:
85
88
  restart: unless-stopped
86
89
 
87
90
  postgresql:
88
- image: postgres:17
91
+ image: postgres:18
89
92
  environment:
90
93
  - POSTGRES_DB=app_production
91
94
  - POSTGRES_USER=app_user
92
95
  - POSTGRES_PASSWORD=${DB_PASSWORD}
93
96
  volumes:
94
- - pgdata:/var/lib/postgresql/data
97
+ # PostgreSQL 18+ images keep data under /var/lib/postgresql/<major>/
98
+ - pgdata:/var/lib/postgresql
95
99
  healthcheck:
96
100
  test: ["CMD-SHELL", "pg_isready -U app_user"]
97
101
  interval: 10s
@@ -124,31 +128,33 @@ spec:
124
128
  spec:
125
129
  containers:
126
130
  - name: pgbouncer
127
- image: bitnami/pgbouncer:1.25.1
131
+ image: edoburu/pgbouncer:v1.26.0-p0
128
132
  ports:
129
133
  - containerPort: 6432
130
134
  env:
131
- - name: POSTGRESQL_HOST
135
+ - name: DB_HOST
132
136
  value: postgresql.database.svc.cluster.local
133
- - name: POSTGRESQL_PORT
137
+ - name: DB_PORT
134
138
  value: "5432"
135
- - name: POSTGRESQL_DATABASE
139
+ - name: DB_NAME
136
140
  value: app_production
137
- - name: POSTGRESQL_USERNAME
141
+ - name: DB_USER
138
142
  valueFrom:
139
143
  secretKeyRef:
140
144
  name: pgbouncer-secrets
141
145
  key: db-username
142
- - name: POSTGRESQL_PASSWORD
146
+ - name: DB_PASSWORD
143
147
  valueFrom:
144
148
  secretKeyRef:
145
149
  name: pgbouncer-secrets
146
150
  key: db-password
147
- - name: PGBOUNCER_POOL_MODE
151
+ - name: LISTEN_PORT
152
+ value: "6432"
153
+ - name: POOL_MODE
148
154
  value: transaction
149
- - name: PGBOUNCER_MAX_CLIENT_CONN
155
+ - name: MAX_CLIENT_CONN
150
156
  value: "200"
151
- - name: PGBOUNCER_DEFAULT_POOL_SIZE
157
+ - name: DEFAULT_POOL_SIZE
152
158
  value: "20"
153
159
  livenessProbe:
154
160
  tcpSocket:
@@ -204,17 +210,19 @@ spec:
204
210
  - name: DATABASE_URL
205
211
  value: "postgresql://app_user:$(DB_PASSWORD)@localhost:6432/app_production"
206
212
  - name: pgbouncer
207
- image: bitnami/pgbouncer:1.25.1
213
+ image: edoburu/pgbouncer:v1.26.0-p0
208
214
  ports:
209
215
  - containerPort: 6432
210
216
  env:
211
- - name: POSTGRESQL_HOST
217
+ - name: DB_HOST
212
218
  value: postgresql.database.svc.cluster.local
213
- - name: PGBOUNCER_POOL_MODE
219
+ - name: LISTEN_PORT
220
+ value: "6432"
221
+ - name: POOL_MODE
214
222
  value: transaction
215
- - name: PGBOUNCER_MAX_CLIENT_CONN
223
+ - name: MAX_CLIENT_CONN
216
224
  value: "100"
217
- - name: PGBOUNCER_DEFAULT_POOL_SIZE
225
+ - name: DEFAULT_POOL_SIZE
218
226
  value: "10"
219
227
  resources:
220
228
  requests:
@@ -54,7 +54,7 @@ ESTRATEGIA DE DESPLIEGUE
54
54
 
55
55
  Metodo: {Docker Compose / K8s Standalone / K8s Sidecar / Systemd}
56
56
  HA: {Active-passive / Multiples replicas / Instancia unica}
57
- Imagen: bitnami/pgbouncer:1.25.1
57
+ Imagen: edoburu/pgbouncer:v1.26.0-p0
58
58
 
59
59
  | Decision | Eleccion | Justificacion |
60
60
  |----------|----------|---------------|
@@ -32,6 +32,8 @@ Vous etes un **Architecte Ansible Senior** capable de concevoir des architecture
32
32
  | Multi-environnement | Separation dev / staging / production | Haute |
33
33
  | Hierarchique (Landscape/Type/Function) | Gestion de datacenter d'entreprise | Haute |
34
34
 
35
+ > Hetzner Cloud : utiliser la collection `hetzner.hcloud` (7.2.0) avec ansible-core 2.21.5, pinnée dans `requirements.yml`.
36
+
35
37
  ## Methodologie
36
38
 
37
39
  ### Phase 1 -- Decouverte
@@ -142,8 +142,6 @@ project/
142
142
 
143
143
  ```yaml
144
144
  # docker-compose.yml
145
- version: "3.8"
146
-
147
145
  services:
148
146
  # ═══════════════════════════════════════════════════════════
149
147
  # REVERSE PROXY
@@ -51,8 +51,6 @@ Stack : {stack}
51
51
 
52
52
  ```yaml
53
53
  # docker-compose.yml - Base commune
54
- version: "3.8"
55
-
56
54
  services:
57
55
  app:
58
56
  build:
@@ -7,7 +7,7 @@ description: FrankenPHP Caddyfile design, worker topology, and framework integra
7
7
 
8
8
  ## Identite
9
9
 
10
- Vous etes un **Architecte Senior FrankenPHP** capable de concevoir des topologies completes de serveur PHP en utilisant FrankenPHP 1.12+. Vous coordonnez les decisions worker mode vs classic mode, le dimensionnement des threads, la conception du Caddyfile, l'integration des frameworks (Symfony, Laravel), la configuration Mercure pour le temps reel et la configuration Early Hints (103) pour livrer des deploiements FrankenPHP prets pour la production.
10
+ Vous etes un **Architecte Senior FrankenPHP** capable de concevoir des topologies completes de serveur PHP en utilisant FrankenPHP 1.13+. Vous coordonnez les decisions worker mode vs classic mode, le dimensionnement des threads, la conception du Caddyfile, l'integration des frameworks (Symfony, Laravel), la configuration Mercure pour le temps reel et la configuration Early Hints (103) pour livrer des deploiements FrankenPHP prets pour la production.
11
11
 
12
12
  ## Expertise technique
13
13
 
@@ -120,6 +120,9 @@ Extraire et clarifier :
120
120
  - `max_requests = 500` pour prevenir l'accumulation memoire
121
121
  - Benchmark avec `wrk` ou `k6`, ajuster a la hausse/baisse
122
122
  - Surveiller : memoire RSS par worker, temps de reponse p99
123
+ - Utiliser FrankenPHP 1.13.0+ : la 1.12.4 est vulnérable (correctifs de sécurité en 1.12.5 : phpinfo dans l'image par défaut, fuite d'ID de session en worker mode, timeout du body ; 5 advisories dont 2 high en 1.13.0)
124
+ - FrankenPHP 1.13+ : `num_threads` ne compte que les threads pour les requêtes qu'aucun worker ne sert ; les threads de worker s'ajoutent, et le démarrage échoue si `max_threads` < `num_threads` + threads de worker
125
+ - Le hot reload en développement passe par Mercure 1.0 : `$_SERVER['FRANKENPHP_HOT_RELOAD']` annonce désormais `/.well-known/mercure?match=<topic>` (ne pas coder `?topic=` en dur)
123
126
 
124
127
  ### Phase 3 -- Plan d'implementation
125
128
 
@@ -59,7 +59,7 @@ Vous etes un **Ingenieur Senior de Deploiement FrankenPHP** specialise dans les
59
59
  # docker-compose.yml
60
60
  services:
61
61
  app:
62
- image: dunglas/frankenphp:1.12-php8.5-bookworm
62
+ image: dunglas/frankenphp:1.13-php8.5-bookworm
63
63
  ports:
64
64
  - "80:80"
65
65
  - "443:443"
@@ -88,7 +88,7 @@ volumes:
88
88
 
89
89
  ```dockerfile
90
90
  # Stage 1: Dependencies
91
- FROM dunglas/frankenphp:1.12-php8.5-bookworm AS base
91
+ FROM dunglas/frankenphp:1.13-php8.5-bookworm AS base
92
92
 
93
93
  # Install PHP extensions
94
94
  RUN install-php-extensions \
@@ -185,7 +185,7 @@ example.com {
185
185
 
186
186
  ```dockerfile
187
187
  # Dockerfile - FrankenPHP non-root
188
- FROM dunglas/frankenphp:1.12-php8.5-bookworm
188
+ FROM dunglas/frankenphp:1.13-php8.5-bookworm
189
189
 
190
190
  # Installer les extensions
191
191
  RUN install-php-extensions pdo_pgsql intl opcache
@@ -53,7 +53,7 @@ STRATEGIE DE DEPLOIEMENT
53
53
  ──────────────────────────────────────────────────────────────
54
54
 
55
55
  Methode : {Docker Compose / Kubernetes / Binaire standalone}
56
- Image : dunglas/frankenphp:1.12-php8.5-bookworm
56
+ Image : dunglas/frankenphp:1.13-php8.5-bookworm
57
57
  Worker mode : {oui/non}
58
58
 
59
59
  | Decision | Choix | Justification |
@@ -5,7 +5,7 @@ description: Hetzner Cloud infrastructure architecture designer
5
5
 
6
6
  # Hcloud Architect
7
7
 
8
- > ⚠️ **Migration obligatoire avant 2026-07-01** : le paramètre `datacenter` est déprécié au profit de `location`. Provider Terraform Hetzner Cloud >= 1.58.0. Source : https://github.com/hetznercloud/terraform-provider-hcloud/releases
8
+ > ⚠️ **`datacenter` supprimé (2026-07-01)** : remplacé par `location` ; les endpoints `datacenter` renvoient HTTP 410 depuis le 2026-10-01. Utiliser `location = "fsn1"` au lieu de `datacenter`. Provider Terraform Hetzner Cloud >= 1.70.0. Source : https://docs.hetzner.cloud/changelog et https://github.com/hetznercloud/terraform-provider-hcloud/releases
9
9
 
10
10
  ## Identite
11
11
 
@@ -135,7 +135,7 @@ hcloud placement-group create --name web-spread --type spread
135
135
  # Serveurs
136
136
  hcloud server create \
137
137
  --name web-01 \
138
- --type cx22 \
138
+ --type cx23 \
139
139
  --image ubuntu-24.04 \
140
140
  --location fsn1 \
141
141
  --ssh-key deploy-key \
@@ -199,13 +199,23 @@ hcloud network add-subnet primary-net --type cloud --network-zone eu-central --i
199
199
 
200
200
  # Serveurs dans differentes localisations avec placement groups
201
201
  hcloud placement-group create --name pg-primary --type spread
202
- hcloud server create --name app-fsn-01 --type cpx31 --image ubuntu-24.04 \
202
+ hcloud server create --name app-fsn-01 --type cpx32 --image ubuntu-24.04 \
203
203
  --location fsn1 --placement-group pg-primary --network primary-net
204
204
 
205
- hcloud server create --name app-hel-01 --type cpx31 --image ubuntu-24.04 \
205
+ hcloud server create --name app-hel-01 --type cpx32 --image ubuntu-24.04 \
206
206
  --location hel1 --network primary-net
207
207
  ```
208
208
 
209
+ ## Changements de l'API Hetzner à prendre en compte (2026)
210
+
211
+ - Les Load Balancers acceptent des Primary IP existantes à la création (`public_net.ipv4` / `public_net.ipv6` ; provider >= 1.70.0 : `ipv4_id` / `ipv6_id`) ; l'affectation n'est plus modifiable ensuite (changelog 2026-10-05)
212
+ - Les Primary IP et Floating IP doivent être désassignées avant suppression : l'API renvoie `must_be_unassigned` (depuis le 2026-05-01)
213
+ - `dns_ptr` est obligatoire dans les requêtes de modification (Primary IP, Floating IP, Servers, Load Balancers) depuis le 2026-09-30 ; `null` réinitialise le pointeur
214
+ - Le champ `deprecated` des server types est supprimé le 2026-11-02 : lire `locations[].deprecation` à la place (`null` = non déprécié)
215
+ - Le provider Terraform 1.69 abandonne Terraform 1.14 (1.16 ajouté) ; garder le provider hcloud à `>= 1.70.0`, CLI hcloud 1.70.1
216
+ - Les server types cx22/cx32/cx42/cx52 et cpx11-cpx51 ne sont plus commandables depuis le 2026-01-01 : utiliser cx23/cx33/cx43/cx53 et cpx12/cpx22/cpx32/cpx42/cpx52/cpx62
217
+ - Ansible : utiliser la collection `hetzner.hcloud` (7.2.0, nécessite un ansible-core récent, ex. 2.21.5) et la pinner dans `requirements.yml`
218
+
209
219
  ## Checklist d'architecture
210
220
 
211
221
  ### Conception
@@ -5,7 +5,7 @@ description: Hetzner Cloud cost optimization and right-sizing specialist
5
5
 
6
6
  # Hcloud Cost Specialist
7
7
 
8
- > ⚠️ **Migration obligatoire avant 2026-07-01** : le paramètre `datacenter` est déprécié au profit de `location`. Provider Terraform Hetzner Cloud >= 1.58.0. Source : https://github.com/hetznercloud/terraform-provider-hcloud/releases
8
+ > ⚠️ **`datacenter` supprimé (2026-07-01)** : remplacé par `location` ; les endpoints `datacenter` renvoient HTTP 410 depuis le 2026-10-01. Utiliser `location = "fsn1"` au lieu de `datacenter`. Provider Terraform Hetzner Cloud >= 1.70.0. Source : https://docs.hetzner.cloud/changelog et https://github.com/hetznercloud/terraform-provider-hcloud/releases
9
9
 
10
10
  ## Identite
11
11
 
@@ -5,7 +5,7 @@ description: Hetzner Cloud troubleshooting specialist
5
5
 
6
6
  # Hcloud Debug Specialist
7
7
 
8
- > ⚠️ **Migration obligatoire avant 2026-07-01** : le paramètre `datacenter` est déprécié au profit de `location`. Provider Terraform Hetzner Cloud >= 1.58.0. Source : https://github.com/hetznercloud/terraform-provider-hcloud/releases
8
+ > ⚠️ **`datacenter` supprimé (2026-07-01)** : remplacé par `location` ; les endpoints `datacenter` renvoient HTTP 410 depuis le 2026-10-01. Utiliser `location = "fsn1"` au lieu de `datacenter`. Provider Terraform Hetzner Cloud >= 1.70.0. Source : https://docs.hetzner.cloud/changelog et https://github.com/hetznercloud/terraform-provider-hcloud/releases
9
9
 
10
10
  ## Identite
11
11
 
@@ -137,7 +137,7 @@ Vous etes un **Ingenieur Senior Deploiement Hetzner Cloud** specialise dans l'in
137
137
  # Creer un nouveau serveur a partir de l'image
138
138
  hcloud server create \
139
139
  --name prod-blue-$(date +%s) \
140
- --type cpx31 \
140
+ --type cpx32 \
141
141
  --image ${{ needs.build-image.outputs.image_id }} \
142
142
  --location fsn1 \
143
143
  --ssh-key deploy \
@@ -189,7 +189,7 @@ source "hcloud" "app" {
189
189
  token = var.hcloud_token
190
190
  image = "ubuntu-24.04"
191
191
  location = "fsn1"
192
- server_type = "cx22"
192
+ server_type = "cx23"
193
193
  server_name = "packer-build-{{timestamp}}"
194
194
  ssh_username = "root"
195
195
  snapshot_name = "app-{{timestamp}}"
@@ -5,7 +5,7 @@ description: Hetzner Cloud security and firewall specialist
5
5
 
6
6
  # Hcloud Security Specialist
7
7
 
8
- > ⚠️ **Migration obligatoire avant 2026-07-01** : le paramètre `datacenter` est déprécié au profit de `location`. Provider Terraform Hetzner Cloud >= 1.58.0. Source : https://github.com/hetznercloud/terraform-provider-hcloud/releases
8
+ > ⚠️ **`datacenter` supprimé (2026-07-01)** : remplacé par `location` ; les endpoints `datacenter` renvoient HTTP 410 depuis le 2026-10-01. Utiliser `location = "fsn1"` au lieu de `datacenter`. Provider Terraform Hetzner Cloud >= 1.70.0. Source : https://docs.hetzner.cloud/changelog et https://github.com/hetznercloud/terraform-provider-hcloud/releases
9
9
 
10
10
  ## Identite
11
11
 
@@ -5,7 +5,7 @@ argument-hint: <Project> [constraints]
5
5
 
6
6
  # Hcloud Architecture
7
7
 
8
- > ⚠️ **Migration obligatoire avant 2026-07-01** : le paramètre `datacenter` est déprécié au profit de `location`. Provider Terraform Hetzner Cloud >= 1.58.0. Source : https://github.com/hetznercloud/terraform-provider-hcloud/releases
8
+ > ⚠️ **`datacenter` supprimé (2026-07-01)** : remplacé par `location` ; les endpoints `datacenter` renvoient HTTP 410 depuis le 2026-10-01. Utiliser `location = "fsn1"` au lieu de `datacenter`. Provider Terraform Hetzner Cloud >= 1.70.0. Source : https://docs.hetzner.cloud/changelog et https://github.com/hetznercloud/terraform-provider-hcloud/releases
9
9
 
10
10
  Vous etes un architecte senior Hetzner Cloud. Vous devez concevoir une architecture d'infrastructure cloud complete a partir des specifications du projet.
11
11
 
@@ -83,8 +83,8 @@ SELECTION DES TYPES DE SERVEURS
83
83
 
84
84
  | Role | Server Type | Count | Justification |
85
85
  |------|-------------|-------|---------------|
86
- | Web | {cax21/cx22} | {n} | {raison} |
87
- | App | {cpx31/cax31} | {n} | {raison} |
86
+ | Web | {cax21/cx23} | {n} | {raison} |
87
+ | App | {cpx32/cax31} | {n} | {raison} |
88
88
  | DB | {ccx23/ccx33} | {n} | {raison} |
89
89
 
90
90
  ──────────────────────────────────────────────────────────────
@@ -5,7 +5,7 @@ argument-hint: <Symptom> [resource]
5
5
 
6
6
  # Hcloud Debug
7
7
 
8
- > ⚠️ **Migration obligatoire avant 2026-07-01** : le paramètre `datacenter` est déprécié au profit de `location`. Provider Terraform Hetzner Cloud >= 1.58.0. Source : https://github.com/hetznercloud/terraform-provider-hcloud/releases
8
+ > ⚠️ **`datacenter` supprimé (2026-07-01)** : remplacé par `location` ; les endpoints `datacenter` renvoient HTTP 410 depuis le 2026-10-01. Utiliser `location = "fsn1"` au lieu de `datacenter`. Provider Terraform Hetzner Cloud >= 1.70.0. Source : https://docs.hetzner.cloud/changelog et https://github.com/hetznercloud/terraform-provider-hcloud/releases
9
9
 
10
10
  Vous etes un specialiste du troubleshooting Hetzner Cloud. Vous devez diagnostiquer et resoudre systematiquement les problemes d'infrastructure a partir des symptomes donnes.
11
11
 
@@ -67,8 +67,8 @@ Extraire et clarifier :
67
67
  ┌─────────────────────────────────────────────────────────┐
68
68
  │ COUCHE INGRESS │
69
69
  │ ┌──────────────┐ ┌──────────────┐ │
70
- │ │ Ingress NGINX│─────────│ Cert-Manager│ │
71
- │ │ / Traefik │ │ (Let's Enc.)│ │
70
+ │ │ Gateway API │─────────│ Cert-Manager│ │
71
+ │ │ (HTTPRoute) │ │ (Let's Enc.)│ │
72
72
  │ └──────┬───────┘ └──────────────┘ │
73
73
  └─────────┼───────────────────────────────────────────────┘
74
74
  │
@@ -95,7 +95,7 @@ Extraire et clarifier :
95
95
  - Quotas de ressources et limites par namespace
96
96
 
97
97
  3. **Réseau**
98
- - Sélection du contrôleur Ingress (NGINX, Traefik, Istio Gateway)
98
+ - Gateway API (HTTPRoute) en premier choix (implémentations : Envoy Gateway, Traefik, Istio, Cilium) ; Ingress NGINX est retiré depuis mars 2026 (plus de correctifs de sécurité), migrer avec `ingress2gateway`
99
99
  - NetworkPolicies pour l'isolation inter-namespaces
100
100
  - Stratégie DNS (découverte de services interne)
101
101
  - Terminaison TLS et gestion des certificats
@@ -68,7 +68,7 @@ TOPOLOGIE DES NAMESPACES
68
68
  ┌─────────────────────────────────────────────────────────────┐
69
69
  │ COUCHE INGRESS │
70
70
  │ ┌───────────────┐ ┌───────────────┐ │
71
- │ │ Ingress NGINX │─────────│ Cert-Manager │ │
71
+ │ │ Gateway API │─────────│ Cert-Manager │ │
72
72
  │ └───────┬───────┘ └───────────────┘ │
73
73
  └──────────┼──────────────────────────────────────────────────┘
74
74
  │
@@ -143,7 +143,7 @@ Produire toutes les configurations necessaires :
143
143
  ```hcl
144
144
  # versions.tf
145
145
  terraform {
146
- required_version = ">= 1.7.0"
146
+ required_version = ">= 1.13.0"
147
147
  required_providers {
148
148
  aws = {
149
149
  source = "hashicorp/aws"
@@ -65,7 +65,7 @@ Vous etes un **Ingenieur Senior en Deploiement OpenTofu** specialise dans les pi
65
65
  branches: [main]
66
66
 
67
67
  env:
68
- TOFU_VERSION: "1.9.0"
68
+ TOFU_VERSION: "1.13.1"
69
69
 
70
70
  jobs:
71
71
  plan:
@@ -114,7 +114,7 @@ Vous etes un **Ingenieur Senior en Deploiement OpenTofu** specialise dans les pi
114
114
  - apply
115
115
 
116
116
  variables:
117
- TOFU_VERSION: "1.9.0"
117
+ TOFU_VERSION: "1.13.1"
118
118
 
119
119
  .tofu-base:
120
120
  image: ghcr.io/opentofu/opentofu:$TOFU_VERSION
@@ -68,7 +68,8 @@ Extraire et clarifier :
68
68
  ```
69
69
  L'application utilise des prepared statements ?
70
70
  ├── Oui, impossible de desactiver → Session mode
71
- ├── Oui, peut utiliser DEALLOCATE ALL → Transaction mode + server_reset_query
71
+ ├── Oui, protocole étendu → Transaction mode + max_prepared_statements (200 par défaut depuis 1.24)
72
+ ├── Oui, PREPARE SQL, peut utiliser DEALLOCATE ALL → Transaction mode + server_reset_query
72
73
  └── Non
73
74
  ├── Utilise SET/variables de session ? → Session mode (ou transaction + reset_query)
74
75
  ├── Utilise LISTEN/NOTIFY ? → Session mode
@@ -264,7 +265,15 @@ default_pool_size = 20
264
265
  | Pas de reserve pool | Les pics causent des echecs de connexion | Definir reserve_pool_size = 25% du default |
265
266
  | PgBouncer par instance applicative | Pools multiplies, pas de partage | Instance(s) PgBouncer partagee(s) |
266
267
  | Pas de server_reset_query | Fuite d'etat de session entre clients | DISCARD ALL pour le transaction mode |
267
- | Ignorer les prepared statements | Erreurs en transaction mode | Tester avec l'app, utiliser DEALLOCATE ALL ou session mode |
268
+ | Ignorer les prepared statements | Erreurs en transaction mode | Tester avec l'app, utiliser max_prepared_statements, DEALLOCATE ALL ou session mode |
269
+
270
+ ## Notes PgBouncer 1.26
271
+
272
+ - **Sécurité** : la 1.26.0 corrige CVE-2026-19888 (client-final-message SCRAM sans nonce : crash de PgBouncer sans authentification), CVE-2026-6668 (dépassement d'entier du tampon de paquets provoquant une boucle infinie) et CVE-2026-6669 (nombre d'itérations SCRAM non borné accepté depuis un serveur) ; mettre à jour depuis toute 1.25.x.
273
+ - **Prepared statements** : `max_prepared_statements` vaut 200 par défaut depuis la 1.24, donc les prepared statements du protocole fonctionnent en transaction mode ; `DEALLOCATE ALL` ne concerne que les `PREPARE` SQL.
274
+ - **Paramètres suivis** : `search_path` (PostgreSQL 18+) et `default_transaction_read_only` sont suivis par défaut, un `SET` ne fuit donc plus entre clients en transaction mode.
275
+ - **Nouveaux réglages** : `pool_idle_timeout` (désactivé par défaut) supprime les pools inutilisés ; `query_wait_timeout` est configurable par utilisateur et par base ; `SHOW STATS` expose `client_login_count`.
276
+ - **Supprimé** : le redémarrage en ligne (`-R`), `SHOW FDS` et `SUSPEND` ; utiliser des redémarrages progressifs avec `so_reuseport`.
268
277
 
269
278
  ## Template de documentation
270
279
 
@@ -167,6 +167,7 @@ psql -h localhost -p 6432 -U app_user -d app_production
167
167
  -- Dans les logs PgBouncer, chercher :
168
168
  -- "prepared statement X does not exist"
169
169
 
170
+ -- Correctif 0 : les prepared statements du protocole nécessitent max_prepared_statements > 0 (200 par défaut depuis 1.24)
170
171
  -- Correctif 1 : Ajouter DEALLOCATE ALL a server_reset_query
171
172
  -- Dans pgbouncer.ini :
172
173
  -- server_reset_query = DISCARD ALL