@the-bearded-bear/claude-craft 3.4.0 → 3.5.0-next.ec45b1e

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 (530) hide show
  1. package/Dev/i18n/de/Common/skills/documentation/SKILL.md +1 -1
  2. package/Dev/i18n/de/Common/skills/git-workflow/SKILL.md +1 -1
  3. package/Dev/i18n/de/Common/skills/kiss-dry-yagni/SKILL.md +1 -1
  4. package/Dev/i18n/de/Common/skills/security/SKILL.md +1 -1
  5. package/Dev/i18n/de/Common/skills/solid-principles/SKILL.md +1 -1
  6. package/Dev/i18n/de/Common/skills/testing/SKILL.md +1 -1
  7. package/Dev/i18n/de/Common/skills/workflow-analysis/SKILL.md +1 -1
  8. package/Dev/i18n/de/Common/templates/CLAUDE.md.template +56 -39
  9. package/Dev/i18n/de/Flutter/skills/architecture/SKILL.md +1 -1
  10. package/Dev/i18n/de/Flutter/skills/coding-standards/SKILL.md +1 -1
  11. package/Dev/i18n/de/Flutter/skills/performance/SKILL.md +1 -1
  12. package/Dev/i18n/de/Flutter/skills/quality-tools/SKILL.md +1 -1
  13. package/Dev/i18n/de/Flutter/skills/security-flutter/SKILL.md +1 -1
  14. package/Dev/i18n/de/Flutter/skills/state-management/SKILL.md +1 -1
  15. package/Dev/i18n/de/Flutter/skills/testing-flutter/SKILL.md +1 -1
  16. package/Dev/i18n/de/Flutter/skills/tooling/SKILL.md +1 -1
  17. package/Dev/i18n/de/Python/skills/architecture/SKILL.md +1 -1
  18. package/Dev/i18n/de/Python/skills/coding-standards/SKILL.md +1 -1
  19. package/Dev/i18n/de/Python/skills/testing-python/SKILL.md +1 -1
  20. package/Dev/i18n/de/Python/skills/tooling/SKILL.md +1 -1
  21. package/Dev/i18n/de/React/skills/architecture/SKILL.md +1 -1
  22. package/Dev/i18n/de/React/skills/coding-standards/SKILL.md +1 -1
  23. package/Dev/i18n/de/React/skills/quality-tools/SKILL.md +1 -1
  24. package/Dev/i18n/de/React/skills/security-react/SKILL.md +1 -1
  25. package/Dev/i18n/de/React/skills/testing-react/SKILL.md +1 -1
  26. package/Dev/i18n/de/React/skills/tooling/SKILL.md +1 -1
  27. package/Dev/i18n/de/ReactNative/skills/architecture/SKILL.md +1 -1
  28. package/Dev/i18n/de/ReactNative/skills/coding-standards/SKILL.md +1 -1
  29. package/Dev/i18n/de/ReactNative/skills/navigation/SKILL.md +1 -1
  30. package/Dev/i18n/de/ReactNative/skills/performance/SKILL.md +1 -1
  31. package/Dev/i18n/de/ReactNative/skills/quality-tools/SKILL.md +1 -1
  32. package/Dev/i18n/de/ReactNative/skills/security-reactnative/SKILL.md +1 -1
  33. package/Dev/i18n/de/ReactNative/skills/state-management/SKILL.md +1 -1
  34. package/Dev/i18n/de/ReactNative/skills/testing-reactnative/SKILL.md +1 -1
  35. package/Dev/i18n/de/ReactNative/skills/tooling/SKILL.md +1 -1
  36. package/Dev/i18n/de/Symfony/skills/aggregates/SKILL.md +1 -1
  37. package/Dev/i18n/de/Symfony/skills/architecture-clean-ddd/SKILL.md +1 -1
  38. package/Dev/i18n/de/Symfony/skills/async/SKILL.md +1 -1
  39. package/Dev/i18n/de/Symfony/skills/coding-standards/SKILL.md +1 -1
  40. package/Dev/i18n/de/Symfony/skills/cqrs/SKILL.md +1 -1
  41. package/Dev/i18n/de/Symfony/skills/ddd-patterns/SKILL.md +1 -1
  42. package/Dev/i18n/de/Symfony/skills/docker-hadolint/SKILL.md +1 -1
  43. package/Dev/i18n/de/Symfony/skills/doctrine-extensions/SKILL.md +1 -1
  44. package/Dev/i18n/de/Symfony/skills/domain-events/SKILL.md +1 -1
  45. package/Dev/i18n/de/Symfony/skills/i18n/SKILL.md +1 -1
  46. package/Dev/i18n/de/Symfony/skills/multitenant/SKILL.md +1 -1
  47. package/Dev/i18n/de/Symfony/skills/performance/SKILL.md +1 -1
  48. package/Dev/i18n/de/Symfony/skills/quality-tools/SKILL.md +1 -1
  49. package/Dev/i18n/de/Symfony/skills/security-symfony/SKILL.md +1 -1
  50. package/Dev/i18n/de/Symfony/skills/testing-symfony/SKILL.md +1 -1
  51. package/Dev/i18n/de/Symfony/skills/value-objects/SKILL.md +1 -1
  52. package/Dev/i18n/en/Common/skills/documentation/SKILL.md +1 -1
  53. package/Dev/i18n/en/Common/skills/git-workflow/SKILL.md +1 -1
  54. package/Dev/i18n/en/Common/skills/kiss-dry-yagni/SKILL.md +1 -1
  55. package/Dev/i18n/en/Common/skills/security/SKILL.md +1 -1
  56. package/Dev/i18n/en/Common/skills/solid-principles/SKILL.md +1 -1
  57. package/Dev/i18n/en/Common/skills/testing/SKILL.md +1 -1
  58. package/Dev/i18n/en/Common/skills/workflow-analysis/SKILL.md +1 -1
  59. package/Dev/i18n/en/Flutter/skills/architecture/SKILL.md +1 -1
  60. package/Dev/i18n/en/Flutter/skills/coding-standards/SKILL.md +1 -1
  61. package/Dev/i18n/en/Flutter/skills/performance/SKILL.md +1 -1
  62. package/Dev/i18n/en/Flutter/skills/quality-tools/SKILL.md +1 -1
  63. package/Dev/i18n/en/Flutter/skills/security-flutter/SKILL.md +1 -1
  64. package/Dev/i18n/en/Flutter/skills/state-management/SKILL.md +1 -1
  65. package/Dev/i18n/en/Flutter/skills/testing-flutter/SKILL.md +1 -1
  66. package/Dev/i18n/en/Flutter/skills/tooling/SKILL.md +1 -1
  67. package/Dev/i18n/en/Python/skills/architecture/SKILL.md +1 -1
  68. package/Dev/i18n/en/Python/skills/coding-standards/SKILL.md +1 -1
  69. package/Dev/i18n/en/Python/skills/testing-python/SKILL.md +1 -1
  70. package/Dev/i18n/en/Python/skills/tooling/SKILL.md +1 -1
  71. package/Dev/i18n/en/React/skills/architecture/SKILL.md +1 -1
  72. package/Dev/i18n/en/React/skills/coding-standards/SKILL.md +1 -1
  73. package/Dev/i18n/en/React/skills/quality-tools/SKILL.md +1 -1
  74. package/Dev/i18n/en/React/skills/security-react/SKILL.md +1 -1
  75. package/Dev/i18n/en/React/skills/testing-react/SKILL.md +1 -1
  76. package/Dev/i18n/en/React/skills/tooling/SKILL.md +1 -1
  77. package/Dev/i18n/en/ReactNative/skills/architecture/SKILL.md +1 -1
  78. package/Dev/i18n/en/ReactNative/skills/coding-standards/SKILL.md +1 -1
  79. package/Dev/i18n/en/ReactNative/skills/navigation/SKILL.md +1 -1
  80. package/Dev/i18n/en/ReactNative/skills/performance/SKILL.md +1 -1
  81. package/Dev/i18n/en/ReactNative/skills/quality-tools/SKILL.md +1 -1
  82. package/Dev/i18n/en/ReactNative/skills/security-reactnative/SKILL.md +1 -1
  83. package/Dev/i18n/en/ReactNative/skills/state-management/SKILL.md +1 -1
  84. package/Dev/i18n/en/ReactNative/skills/testing-reactnative/SKILL.md +1 -1
  85. package/Dev/i18n/en/ReactNative/skills/tooling/SKILL.md +1 -1
  86. package/Dev/i18n/en/Symfony/skills/aggregates/SKILL.md +1 -1
  87. package/Dev/i18n/en/Symfony/skills/architecture-clean-ddd/SKILL.md +1 -1
  88. package/Dev/i18n/en/Symfony/skills/async/SKILL.md +1 -1
  89. package/Dev/i18n/en/Symfony/skills/coding-standards/SKILL.md +1 -1
  90. package/Dev/i18n/en/Symfony/skills/cqrs/SKILL.md +1 -1
  91. package/Dev/i18n/en/Symfony/skills/ddd-patterns/SKILL.md +1 -1
  92. package/Dev/i18n/en/Symfony/skills/docker-hadolint/SKILL.md +1 -1
  93. package/Dev/i18n/en/Symfony/skills/doctrine-extensions/SKILL.md +1 -1
  94. package/Dev/i18n/en/Symfony/skills/domain-events/SKILL.md +1 -1
  95. package/Dev/i18n/en/Symfony/skills/i18n/SKILL.md +1 -1
  96. package/Dev/i18n/en/Symfony/skills/multitenant/SKILL.md +1 -1
  97. package/Dev/i18n/en/Symfony/skills/performance/SKILL.md +1 -1
  98. package/Dev/i18n/en/Symfony/skills/quality-tools/SKILL.md +1 -1
  99. package/Dev/i18n/en/Symfony/skills/security-symfony/SKILL.md +1 -1
  100. package/Dev/i18n/en/Symfony/skills/testing-symfony/SKILL.md +1 -1
  101. package/Dev/i18n/en/Symfony/skills/value-objects/SKILL.md +1 -1
  102. package/Dev/i18n/es/Common/skills/documentation/SKILL.md +1 -1
  103. package/Dev/i18n/es/Common/skills/git-workflow/SKILL.md +1 -1
  104. package/Dev/i18n/es/Common/skills/kiss-dry-yagni/SKILL.md +1 -1
  105. package/Dev/i18n/es/Common/skills/security/SKILL.md +1 -1
  106. package/Dev/i18n/es/Common/skills/solid-principles/SKILL.md +1 -1
  107. package/Dev/i18n/es/Common/skills/testing/SKILL.md +1 -1
  108. package/Dev/i18n/es/Common/skills/workflow-analysis/SKILL.md +1 -1
  109. package/Dev/i18n/es/Common/templates/CLAUDE.md.template +57 -40
  110. package/Dev/i18n/es/Flutter/skills/architecture/SKILL.md +1 -1
  111. package/Dev/i18n/es/Flutter/skills/coding-standards/SKILL.md +1 -1
  112. package/Dev/i18n/es/Flutter/skills/performance/SKILL.md +1 -1
  113. package/Dev/i18n/es/Flutter/skills/quality-tools/SKILL.md +1 -1
  114. package/Dev/i18n/es/Flutter/skills/security-flutter/SKILL.md +1 -1
  115. package/Dev/i18n/es/Flutter/skills/state-management/SKILL.md +1 -1
  116. package/Dev/i18n/es/Flutter/skills/testing-flutter/SKILL.md +1 -1
  117. package/Dev/i18n/es/Flutter/skills/tooling/SKILL.md +1 -1
  118. package/Dev/i18n/es/Python/skills/architecture/SKILL.md +1 -1
  119. package/Dev/i18n/es/Python/skills/coding-standards/SKILL.md +1 -1
  120. package/Dev/i18n/es/Python/skills/testing-python/SKILL.md +1 -1
  121. package/Dev/i18n/es/Python/skills/tooling/SKILL.md +1 -1
  122. package/Dev/i18n/es/React/skills/architecture/SKILL.md +1 -1
  123. package/Dev/i18n/es/React/skills/coding-standards/SKILL.md +1 -1
  124. package/Dev/i18n/es/React/skills/quality-tools/SKILL.md +1 -1
  125. package/Dev/i18n/es/React/skills/security-react/SKILL.md +1 -1
  126. package/Dev/i18n/es/React/skills/testing-react/SKILL.md +1 -1
  127. package/Dev/i18n/es/React/skills/tooling/SKILL.md +1 -1
  128. package/Dev/i18n/es/ReactNative/skills/architecture/SKILL.md +1 -1
  129. package/Dev/i18n/es/ReactNative/skills/coding-standards/SKILL.md +1 -1
  130. package/Dev/i18n/es/ReactNative/skills/navigation/SKILL.md +1 -1
  131. package/Dev/i18n/es/ReactNative/skills/performance/SKILL.md +1 -1
  132. package/Dev/i18n/es/ReactNative/skills/quality-tools/SKILL.md +1 -1
  133. package/Dev/i18n/es/ReactNative/skills/security-reactnative/SKILL.md +1 -1
  134. package/Dev/i18n/es/ReactNative/skills/state-management/SKILL.md +1 -1
  135. package/Dev/i18n/es/ReactNative/skills/testing-reactnative/SKILL.md +1 -1
  136. package/Dev/i18n/es/ReactNative/skills/tooling/SKILL.md +1 -1
  137. package/Dev/i18n/es/Symfony/skills/aggregates/SKILL.md +1 -1
  138. package/Dev/i18n/es/Symfony/skills/architecture-clean-ddd/SKILL.md +1 -1
  139. package/Dev/i18n/es/Symfony/skills/async/SKILL.md +1 -1
  140. package/Dev/i18n/es/Symfony/skills/coding-standards/SKILL.md +1 -1
  141. package/Dev/i18n/es/Symfony/skills/cqrs/SKILL.md +1 -1
  142. package/Dev/i18n/es/Symfony/skills/ddd-patterns/SKILL.md +1 -1
  143. package/Dev/i18n/es/Symfony/skills/docker-hadolint/SKILL.md +1 -1
  144. package/Dev/i18n/es/Symfony/skills/doctrine-extensions/SKILL.md +1 -1
  145. package/Dev/i18n/es/Symfony/skills/domain-events/SKILL.md +1 -1
  146. package/Dev/i18n/es/Symfony/skills/i18n/SKILL.md +1 -1
  147. package/Dev/i18n/es/Symfony/skills/multitenant/SKILL.md +1 -1
  148. package/Dev/i18n/es/Symfony/skills/performance/SKILL.md +1 -1
  149. package/Dev/i18n/es/Symfony/skills/quality-tools/SKILL.md +1 -1
  150. package/Dev/i18n/es/Symfony/skills/security-symfony/SKILL.md +1 -1
  151. package/Dev/i18n/es/Symfony/skills/testing-symfony/SKILL.md +1 -1
  152. package/Dev/i18n/es/Symfony/skills/value-objects/SKILL.md +1 -1
  153. package/Dev/i18n/fr/Common/skills/documentation/SKILL.md +1 -1
  154. package/Dev/i18n/fr/Common/skills/git-workflow/SKILL.md +1 -1
  155. package/Dev/i18n/fr/Common/skills/kiss-dry-yagni/SKILL.md +1 -1
  156. package/Dev/i18n/fr/Common/skills/security/SKILL.md +1 -1
  157. package/Dev/i18n/fr/Common/skills/solid-principles/SKILL.md +1 -1
  158. package/Dev/i18n/fr/Common/skills/testing/SKILL.md +1 -1
  159. package/Dev/i18n/fr/Common/skills/workflow-analysis/SKILL.md +1 -1
  160. package/Dev/i18n/fr/Common/templates/CLAUDE.md.template +56 -39
  161. package/Dev/i18n/fr/Flutter/skills/architecture/SKILL.md +1 -1
  162. package/Dev/i18n/fr/Flutter/skills/coding-standards/SKILL.md +1 -1
  163. package/Dev/i18n/fr/Flutter/skills/performance/SKILL.md +1 -1
  164. package/Dev/i18n/fr/Flutter/skills/quality-tools/SKILL.md +1 -1
  165. package/Dev/i18n/fr/Flutter/skills/security-flutter/SKILL.md +1 -1
  166. package/Dev/i18n/fr/Flutter/skills/state-management/SKILL.md +1 -1
  167. package/Dev/i18n/fr/Flutter/skills/testing-flutter/SKILL.md +1 -1
  168. package/Dev/i18n/fr/Flutter/skills/tooling/SKILL.md +1 -1
  169. package/Dev/i18n/fr/Python/skills/architecture/SKILL.md +1 -1
  170. package/Dev/i18n/fr/Python/skills/coding-standards/SKILL.md +1 -1
  171. package/Dev/i18n/fr/Python/skills/testing-python/SKILL.md +1 -1
  172. package/Dev/i18n/fr/Python/skills/tooling/SKILL.md +1 -1
  173. package/Dev/i18n/fr/React/skills/architecture/SKILL.md +1 -1
  174. package/Dev/i18n/fr/React/skills/coding-standards/SKILL.md +1 -1
  175. package/Dev/i18n/fr/React/skills/quality-tools/SKILL.md +1 -1
  176. package/Dev/i18n/fr/React/skills/security-react/SKILL.md +1 -1
  177. package/Dev/i18n/fr/React/skills/testing-react/SKILL.md +1 -1
  178. package/Dev/i18n/fr/React/skills/tooling/SKILL.md +1 -1
  179. package/Dev/i18n/fr/ReactNative/skills/architecture/SKILL.md +1 -1
  180. package/Dev/i18n/fr/ReactNative/skills/coding-standards/SKILL.md +1 -1
  181. package/Dev/i18n/fr/ReactNative/skills/navigation/SKILL.md +1 -1
  182. package/Dev/i18n/fr/ReactNative/skills/performance/SKILL.md +1 -1
  183. package/Dev/i18n/fr/ReactNative/skills/quality-tools/SKILL.md +1 -1
  184. package/Dev/i18n/fr/ReactNative/skills/security-reactnative/SKILL.md +1 -1
  185. package/Dev/i18n/fr/ReactNative/skills/state-management/SKILL.md +1 -1
  186. package/Dev/i18n/fr/ReactNative/skills/testing-reactnative/SKILL.md +1 -1
  187. package/Dev/i18n/fr/ReactNative/skills/tooling/SKILL.md +1 -1
  188. package/Dev/i18n/fr/Symfony/skills/aggregates/SKILL.md +1 -1
  189. package/Dev/i18n/fr/Symfony/skills/architecture-clean-ddd/SKILL.md +1 -1
  190. package/Dev/i18n/fr/Symfony/skills/async/SKILL.md +1 -1
  191. package/Dev/i18n/fr/Symfony/skills/coding-standards/SKILL.md +1 -1
  192. package/Dev/i18n/fr/Symfony/skills/cqrs/SKILL.md +1 -1
  193. package/Dev/i18n/fr/Symfony/skills/ddd-patterns/SKILL.md +1 -1
  194. package/Dev/i18n/fr/Symfony/skills/docker-hadolint/SKILL.md +1 -1
  195. package/Dev/i18n/fr/Symfony/skills/doctrine-extensions/SKILL.md +1 -1
  196. package/Dev/i18n/fr/Symfony/skills/domain-events/SKILL.md +1 -1
  197. package/Dev/i18n/fr/Symfony/skills/i18n/SKILL.md +1 -1
  198. package/Dev/i18n/fr/Symfony/skills/multitenant/SKILL.md +1 -1
  199. package/Dev/i18n/fr/Symfony/skills/performance/SKILL.md +1 -1
  200. package/Dev/i18n/fr/Symfony/skills/quality-tools/SKILL.md +1 -1
  201. package/Dev/i18n/fr/Symfony/skills/security-symfony/SKILL.md +1 -1
  202. package/Dev/i18n/fr/Symfony/skills/testing-symfony/SKILL.md +1 -1
  203. package/Dev/i18n/fr/Symfony/skills/value-objects/SKILL.md +1 -1
  204. package/Dev/i18n/pt/Common/skills/documentation/SKILL.md +1 -1
  205. package/Dev/i18n/pt/Common/skills/git-workflow/SKILL.md +1 -1
  206. package/Dev/i18n/pt/Common/skills/kiss-dry-yagni/SKILL.md +1 -1
  207. package/Dev/i18n/pt/Common/skills/security/SKILL.md +1 -1
  208. package/Dev/i18n/pt/Common/skills/solid-principles/SKILL.md +1 -1
  209. package/Dev/i18n/pt/Common/skills/testing/SKILL.md +1 -1
  210. package/Dev/i18n/pt/Common/skills/workflow-analysis/SKILL.md +1 -1
  211. package/Dev/i18n/pt/Common/templates/CLAUDE.md.template +56 -39
  212. package/Dev/i18n/pt/Flutter/skills/architecture/SKILL.md +1 -1
  213. package/Dev/i18n/pt/Flutter/skills/coding-standards/SKILL.md +1 -1
  214. package/Dev/i18n/pt/Flutter/skills/performance/SKILL.md +1 -1
  215. package/Dev/i18n/pt/Flutter/skills/quality-tools/SKILL.md +1 -1
  216. package/Dev/i18n/pt/Flutter/skills/security-flutter/SKILL.md +1 -1
  217. package/Dev/i18n/pt/Flutter/skills/state-management/SKILL.md +1 -1
  218. package/Dev/i18n/pt/Flutter/skills/tooling/SKILL.md +1 -1
  219. package/Dev/i18n/pt/Python/skills/architecture/SKILL.md +1 -1
  220. package/Dev/i18n/pt/Python/skills/coding-standards/SKILL.md +1 -1
  221. package/Dev/i18n/pt/Python/skills/testing-python/SKILL.md +1 -1
  222. package/Dev/i18n/pt/Python/skills/tooling/SKILL.md +1 -1
  223. package/Dev/i18n/pt/React/skills/architecture/SKILL.md +1 -1
  224. package/Dev/i18n/pt/React/skills/coding-standards/SKILL.md +1 -1
  225. package/Dev/i18n/pt/React/skills/quality-tools/SKILL.md +1 -1
  226. package/Dev/i18n/pt/React/skills/security-react/SKILL.md +1 -1
  227. package/Dev/i18n/pt/React/skills/testing-react/SKILL.md +1 -1
  228. package/Dev/i18n/pt/React/skills/tooling/SKILL.md +1 -1
  229. package/Dev/i18n/pt/ReactNative/skills/architecture/SKILL.md +1 -1
  230. package/Dev/i18n/pt/ReactNative/skills/coding-standards/SKILL.md +1 -1
  231. package/Dev/i18n/pt/ReactNative/skills/navigation/SKILL.md +1 -1
  232. package/Dev/i18n/pt/ReactNative/skills/performance/SKILL.md +1 -1
  233. package/Dev/i18n/pt/ReactNative/skills/quality-tools/SKILL.md +1 -1
  234. package/Dev/i18n/pt/ReactNative/skills/security-reactnative/SKILL.md +1 -1
  235. package/Dev/i18n/pt/ReactNative/skills/state-management/SKILL.md +1 -1
  236. package/Dev/i18n/pt/ReactNative/skills/testing-reactnative/SKILL.md +1 -1
  237. package/Dev/i18n/pt/ReactNative/skills/tooling/SKILL.md +1 -1
  238. package/Dev/i18n/pt/Symfony/skills/aggregates/SKILL.md +1 -1
  239. package/Dev/i18n/pt/Symfony/skills/architecture-clean-ddd/SKILL.md +1 -1
  240. package/Dev/i18n/pt/Symfony/skills/async/SKILL.md +1 -1
  241. package/Dev/i18n/pt/Symfony/skills/coding-standards/SKILL.md +1 -1
  242. package/Dev/i18n/pt/Symfony/skills/cqrs/SKILL.md +1 -1
  243. package/Dev/i18n/pt/Symfony/skills/ddd-patterns/SKILL.md +1 -1
  244. package/Dev/i18n/pt/Symfony/skills/docker-hadolint/SKILL.md +1 -1
  245. package/Dev/i18n/pt/Symfony/skills/doctrine-extensions/SKILL.md +1 -1
  246. package/Dev/i18n/pt/Symfony/skills/domain-events/SKILL.md +1 -1
  247. package/Dev/i18n/pt/Symfony/skills/i18n/SKILL.md +1 -1
  248. package/Dev/i18n/pt/Symfony/skills/multitenant/SKILL.md +1 -1
  249. package/Dev/i18n/pt/Symfony/skills/performance/SKILL.md +1 -1
  250. package/Dev/i18n/pt/Symfony/skills/quality-tools/SKILL.md +1 -1
  251. package/Dev/i18n/pt/Symfony/skills/security-symfony/SKILL.md +1 -1
  252. package/Dev/i18n/pt/Symfony/skills/testing-symfony/SKILL.md +1 -1
  253. package/Dev/i18n/pt/Symfony/skills/value-objects/SKILL.md +1 -1
  254. package/Dev/scripts/install-angular-rules.sh +1 -1
  255. package/Dev/scripts/install-common-rules.sh +16 -2
  256. package/Dev/scripts/install-csharp-rules.sh +1 -1
  257. package/Dev/scripts/install-flutter-rules.sh +1 -1
  258. package/Dev/scripts/install-laravel-rules.sh +1 -1
  259. package/Dev/scripts/install-php-rules.sh +1 -1
  260. package/Dev/scripts/install-python-rules.sh +1 -1
  261. package/Dev/scripts/install-react-rules.sh +1 -1
  262. package/Dev/scripts/install-reactnative-rules.sh +1 -1
  263. package/Dev/scripts/install-symfony-rules.sh +1 -1
  264. package/Dev/scripts/install-vuejs-rules.sh +1 -1
  265. package/Dev/scripts/migrate-project.sh +3 -4
  266. package/package.json +1 -1
  267. package/Dev/i18n/de/Common/skills/documentation/REFERENCE.md +0 -555
  268. package/Dev/i18n/de/Common/skills/git-workflow/REFERENCE.md +0 -541
  269. package/Dev/i18n/de/Common/skills/kiss-dry-yagni/REFERENCE.md +0 -417
  270. package/Dev/i18n/de/Common/skills/security/REFERENCE.md +0 -540
  271. package/Dev/i18n/de/Common/skills/solid-principles/REFERENCE.md +0 -396
  272. package/Dev/i18n/de/Common/skills/testing/REFERENCE.md +0 -463
  273. package/Dev/i18n/de/Common/skills/workflow-analysis/REFERENCE.md +0 -226
  274. package/Dev/i18n/de/Flutter/skills/architecture/REFERENCE.md +0 -455
  275. package/Dev/i18n/de/Flutter/skills/coding-standards/REFERENCE.md +0 -247
  276. package/Dev/i18n/de/Flutter/skills/performance/REFERENCE.md +0 -230
  277. package/Dev/i18n/de/Flutter/skills/quality-tools/REFERENCE.md +0 -239
  278. package/Dev/i18n/de/Flutter/skills/security-flutter/REFERENCE.md +0 -247
  279. package/Dev/i18n/de/Flutter/skills/state-management/REFERENCE.md +0 -0
  280. package/Dev/i18n/de/Flutter/skills/testing-flutter/REFERENCE.md +0 -0
  281. package/Dev/i18n/de/Flutter/skills/tooling/REFERENCE.md +0 -542
  282. package/Dev/i18n/de/Python/skills/architecture/REFERENCE.md +0 -444
  283. package/Dev/i18n/de/Python/skills/coding-standards/REFERENCE.md +0 -572
  284. package/Dev/i18n/de/Python/skills/testing-python/REFERENCE.md +0 -387
  285. package/Dev/i18n/de/Python/skills/tooling/REFERENCE.md +0 -351
  286. package/Dev/i18n/de/React/skills/architecture/REFERENCE.md +0 -490
  287. package/Dev/i18n/de/React/skills/coding-standards/REFERENCE.md +0 -500
  288. package/Dev/i18n/de/React/skills/quality-tools/REFERENCE.md +0 -758
  289. package/Dev/i18n/de/React/skills/security-react/REFERENCE.md +0 -793
  290. package/Dev/i18n/de/React/skills/testing-react/REFERENCE.md +0 -999
  291. package/Dev/i18n/de/React/skills/tooling/REFERENCE.md +0 -777
  292. package/Dev/i18n/de/ReactNative/skills/architecture/REFERENCE.md +0 -1253
  293. package/Dev/i18n/de/ReactNative/skills/coding-standards/REFERENCE.md +0 -1230
  294. package/Dev/i18n/de/ReactNative/skills/navigation/REFERENCE.md +0 -601
  295. package/Dev/i18n/de/ReactNative/skills/performance/REFERENCE.md +0 -727
  296. package/Dev/i18n/de/ReactNative/skills/quality-tools/REFERENCE.md +0 -122
  297. package/Dev/i18n/de/ReactNative/skills/security-reactnative/REFERENCE.md +0 -719
  298. package/Dev/i18n/de/ReactNative/skills/state-management/REFERENCE.md +0 -607
  299. package/Dev/i18n/de/ReactNative/skills/testing-reactnative/REFERENCE.md +0 -386
  300. package/Dev/i18n/de/ReactNative/skills/tooling/REFERENCE.md +0 -281
  301. package/Dev/i18n/de/Symfony/skills/aggregates/REFERENCE.md +0 -115
  302. package/Dev/i18n/de/Symfony/skills/architecture-clean-ddd/REFERENCE.md +0 -813
  303. package/Dev/i18n/de/Symfony/skills/async/REFERENCE.md +0 -190
  304. package/Dev/i18n/de/Symfony/skills/coding-standards/REFERENCE.md +0 -402
  305. package/Dev/i18n/de/Symfony/skills/cqrs/REFERENCE.md +0 -426
  306. package/Dev/i18n/de/Symfony/skills/ddd-patterns/REFERENCE.md +0 -1220
  307. package/Dev/i18n/de/Symfony/skills/docker-hadolint/REFERENCE.md +0 -772
  308. package/Dev/i18n/de/Symfony/skills/doctrine-extensions/REFERENCE.md +0 -927
  309. package/Dev/i18n/de/Symfony/skills/domain-events/REFERENCE.md +0 -129
  310. package/Dev/i18n/de/Symfony/skills/i18n/REFERENCE.md +0 -185
  311. package/Dev/i18n/de/Symfony/skills/multitenant/REFERENCE.md +0 -432
  312. package/Dev/i18n/de/Symfony/skills/performance/REFERENCE.md +0 -888
  313. package/Dev/i18n/de/Symfony/skills/quality-tools/REFERENCE.md +0 -982
  314. package/Dev/i18n/de/Symfony/skills/security-symfony/REFERENCE.md +0 -353
  315. package/Dev/i18n/de/Symfony/skills/testing-symfony/REFERENCE.md +0 -452
  316. package/Dev/i18n/de/Symfony/skills/value-objects/REFERENCE.md +0 -536
  317. package/Dev/i18n/de/Symfony/templates/aggregate-examples.md +0 -1128
  318. package/Dev/i18n/de/Symfony/templates/domain-event-examples.md +0 -1091
  319. package/Dev/i18n/de/Symfony/templates/value-object-examples.md +0 -1129
  320. package/Dev/i18n/en/Common/skills/documentation/REFERENCE.md +0 -555
  321. package/Dev/i18n/en/Common/skills/git-workflow/REFERENCE.md +0 -541
  322. package/Dev/i18n/en/Common/skills/kiss-dry-yagni/REFERENCE.md +0 -417
  323. package/Dev/i18n/en/Common/skills/security/REFERENCE.md +0 -540
  324. package/Dev/i18n/en/Common/skills/solid-principles/REFERENCE.md +0 -396
  325. package/Dev/i18n/en/Common/skills/testing/REFERENCE.md +0 -463
  326. package/Dev/i18n/en/Common/skills/workflow-analysis/REFERENCE.md +0 -226
  327. package/Dev/i18n/en/Flutter/skills/architecture/REFERENCE.md +0 -455
  328. package/Dev/i18n/en/Flutter/skills/coding-standards/REFERENCE.md +0 -247
  329. package/Dev/i18n/en/Flutter/skills/performance/REFERENCE.md +0 -230
  330. package/Dev/i18n/en/Flutter/skills/quality-tools/REFERENCE.md +0 -239
  331. package/Dev/i18n/en/Flutter/skills/security-flutter/REFERENCE.md +0 -247
  332. package/Dev/i18n/en/Flutter/skills/state-management/REFERENCE.md +0 -0
  333. package/Dev/i18n/en/Flutter/skills/testing-flutter/REFERENCE.md +0 -0
  334. package/Dev/i18n/en/Flutter/skills/tooling/REFERENCE.md +0 -542
  335. package/Dev/i18n/en/Python/skills/architecture/REFERENCE.md +0 -444
  336. package/Dev/i18n/en/Python/skills/coding-standards/REFERENCE.md +0 -572
  337. package/Dev/i18n/en/Python/skills/testing-python/REFERENCE.md +0 -387
  338. package/Dev/i18n/en/Python/skills/tooling/REFERENCE.md +0 -351
  339. package/Dev/i18n/en/React/skills/architecture/REFERENCE.md +0 -651
  340. package/Dev/i18n/en/React/skills/coding-standards/REFERENCE.md +0 -716
  341. package/Dev/i18n/en/React/skills/quality-tools/REFERENCE.md +0 -758
  342. package/Dev/i18n/en/React/skills/security-react/REFERENCE.md +0 -793
  343. package/Dev/i18n/en/React/skills/testing-react/REFERENCE.md +0 -999
  344. package/Dev/i18n/en/React/skills/tooling/REFERENCE.md +0 -777
  345. package/Dev/i18n/en/ReactNative/skills/architecture/REFERENCE.md +0 -1253
  346. package/Dev/i18n/en/ReactNative/skills/coding-standards/REFERENCE.md +0 -1230
  347. package/Dev/i18n/en/ReactNative/skills/navigation/REFERENCE.md +0 -601
  348. package/Dev/i18n/en/ReactNative/skills/performance/REFERENCE.md +0 -727
  349. package/Dev/i18n/en/ReactNative/skills/quality-tools/REFERENCE.md +0 -122
  350. package/Dev/i18n/en/ReactNative/skills/security-reactnative/REFERENCE.md +0 -719
  351. package/Dev/i18n/en/ReactNative/skills/state-management/REFERENCE.md +0 -607
  352. package/Dev/i18n/en/ReactNative/skills/testing-reactnative/REFERENCE.md +0 -386
  353. package/Dev/i18n/en/ReactNative/skills/tooling/REFERENCE.md +0 -281
  354. package/Dev/i18n/en/Symfony/skills/aggregates/REFERENCE.md +0 -115
  355. package/Dev/i18n/en/Symfony/skills/architecture-clean-ddd/REFERENCE.md +0 -979
  356. package/Dev/i18n/en/Symfony/skills/async/REFERENCE.md +0 -190
  357. package/Dev/i18n/en/Symfony/skills/coding-standards/REFERENCE.md +0 -402
  358. package/Dev/i18n/en/Symfony/skills/cqrs/REFERENCE.md +0 -426
  359. package/Dev/i18n/en/Symfony/skills/ddd-patterns/REFERENCE.md +0 -1220
  360. package/Dev/i18n/en/Symfony/skills/docker-hadolint/REFERENCE.md +0 -767
  361. package/Dev/i18n/en/Symfony/skills/doctrine-extensions/REFERENCE.md +0 -927
  362. package/Dev/i18n/en/Symfony/skills/domain-events/REFERENCE.md +0 -129
  363. package/Dev/i18n/en/Symfony/skills/i18n/REFERENCE.md +0 -185
  364. package/Dev/i18n/en/Symfony/skills/multitenant/REFERENCE.md +0 -432
  365. package/Dev/i18n/en/Symfony/skills/performance/REFERENCE.md +0 -888
  366. package/Dev/i18n/en/Symfony/skills/quality-tools/REFERENCE.md +0 -982
  367. package/Dev/i18n/en/Symfony/skills/security-symfony/REFERENCE.md +0 -1055
  368. package/Dev/i18n/en/Symfony/skills/testing-symfony/REFERENCE.md +0 -1121
  369. package/Dev/i18n/en/Symfony/skills/value-objects/REFERENCE.md +0 -536
  370. package/Dev/i18n/en/Symfony/templates/aggregate-examples.md +0 -1128
  371. package/Dev/i18n/en/Symfony/templates/domain-event-examples.md +0 -1091
  372. package/Dev/i18n/en/Symfony/templates/value-object-examples.md +0 -1129
  373. package/Dev/i18n/es/Common/skills/documentation/REFERENCE.md +0 -555
  374. package/Dev/i18n/es/Common/skills/git-workflow/REFERENCE.md +0 -541
  375. package/Dev/i18n/es/Common/skills/kiss-dry-yagni/REFERENCE.md +0 -417
  376. package/Dev/i18n/es/Common/skills/security/REFERENCE.md +0 -540
  377. package/Dev/i18n/es/Common/skills/solid-principles/REFERENCE.md +0 -396
  378. package/Dev/i18n/es/Common/skills/testing/REFERENCE.md +0 -463
  379. package/Dev/i18n/es/Common/skills/workflow-analysis/REFERENCE.md +0 -226
  380. package/Dev/i18n/es/Flutter/skills/architecture/REFERENCE.md +0 -455
  381. package/Dev/i18n/es/Flutter/skills/coding-standards/REFERENCE.md +0 -247
  382. package/Dev/i18n/es/Flutter/skills/performance/REFERENCE.md +0 -230
  383. package/Dev/i18n/es/Flutter/skills/quality-tools/REFERENCE.md +0 -239
  384. package/Dev/i18n/es/Flutter/skills/security-flutter/REFERENCE.md +0 -247
  385. package/Dev/i18n/es/Flutter/skills/state-management/REFERENCE.md +0 -0
  386. package/Dev/i18n/es/Flutter/skills/testing-flutter/REFERENCE.md +0 -0
  387. package/Dev/i18n/es/Flutter/skills/tooling/REFERENCE.md +0 -542
  388. package/Dev/i18n/es/Python/skills/architecture/REFERENCE.md +0 -445
  389. package/Dev/i18n/es/Python/skills/coding-standards/REFERENCE.md +0 -572
  390. package/Dev/i18n/es/Python/skills/testing-python/REFERENCE.md +0 -387
  391. package/Dev/i18n/es/Python/skills/tooling/REFERENCE.md +0 -351
  392. package/Dev/i18n/es/React/skills/architecture/REFERENCE.md +0 -583
  393. package/Dev/i18n/es/React/skills/coding-standards/REFERENCE.md +0 -716
  394. package/Dev/i18n/es/React/skills/quality-tools/REFERENCE.md +0 -758
  395. package/Dev/i18n/es/React/skills/security-react/REFERENCE.md +0 -793
  396. package/Dev/i18n/es/React/skills/testing-react/REFERENCE.md +0 -999
  397. package/Dev/i18n/es/React/skills/tooling/REFERENCE.md +0 -777
  398. package/Dev/i18n/es/ReactNative/skills/architecture/REFERENCE.md +0 -1253
  399. package/Dev/i18n/es/ReactNative/skills/coding-standards/REFERENCE.md +0 -1230
  400. package/Dev/i18n/es/ReactNative/skills/navigation/REFERENCE.md +0 -601
  401. package/Dev/i18n/es/ReactNative/skills/performance/REFERENCE.md +0 -727
  402. package/Dev/i18n/es/ReactNative/skills/quality-tools/REFERENCE.md +0 -122
  403. package/Dev/i18n/es/ReactNative/skills/security-reactnative/REFERENCE.md +0 -719
  404. package/Dev/i18n/es/ReactNative/skills/state-management/REFERENCE.md +0 -607
  405. package/Dev/i18n/es/ReactNative/skills/testing-reactnative/REFERENCE.md +0 -386
  406. package/Dev/i18n/es/ReactNative/skills/tooling/REFERENCE.md +0 -281
  407. package/Dev/i18n/es/Symfony/skills/aggregates/REFERENCE.md +0 -115
  408. package/Dev/i18n/es/Symfony/skills/architecture-clean-ddd/REFERENCE.md +0 -270
  409. package/Dev/i18n/es/Symfony/skills/async/REFERENCE.md +0 -190
  410. package/Dev/i18n/es/Symfony/skills/coding-standards/REFERENCE.md +0 -402
  411. package/Dev/i18n/es/Symfony/skills/cqrs/REFERENCE.md +0 -426
  412. package/Dev/i18n/es/Symfony/skills/ddd-patterns/REFERENCE.md +0 -1220
  413. package/Dev/i18n/es/Symfony/skills/docker-hadolint/REFERENCE.md +0 -265
  414. package/Dev/i18n/es/Symfony/skills/doctrine-extensions/REFERENCE.md +0 -927
  415. package/Dev/i18n/es/Symfony/skills/domain-events/REFERENCE.md +0 -129
  416. package/Dev/i18n/es/Symfony/skills/i18n/REFERENCE.md +0 -185
  417. package/Dev/i18n/es/Symfony/skills/multitenant/REFERENCE.md +0 -432
  418. package/Dev/i18n/es/Symfony/skills/performance/REFERENCE.md +0 -888
  419. package/Dev/i18n/es/Symfony/skills/quality-tools/REFERENCE.md +0 -982
  420. package/Dev/i18n/es/Symfony/skills/security-symfony/REFERENCE.md +0 -1055
  421. package/Dev/i18n/es/Symfony/skills/testing-symfony/REFERENCE.md +0 -370
  422. package/Dev/i18n/es/Symfony/skills/value-objects/REFERENCE.md +0 -536
  423. package/Dev/i18n/es/Symfony/templates/aggregate-examples.md +0 -1128
  424. package/Dev/i18n/es/Symfony/templates/domain-event-examples.md +0 -375
  425. package/Dev/i18n/es/Symfony/templates/value-object-examples.md +0 -626
  426. package/Dev/i18n/fr/Common/skills/documentation/REFERENCE.md +0 -555
  427. package/Dev/i18n/fr/Common/skills/git-workflow/REFERENCE.md +0 -541
  428. package/Dev/i18n/fr/Common/skills/kiss-dry-yagni/REFERENCE.md +0 -417
  429. package/Dev/i18n/fr/Common/skills/security/REFERENCE.md +0 -540
  430. package/Dev/i18n/fr/Common/skills/solid-principles/REFERENCE.md +0 -396
  431. package/Dev/i18n/fr/Common/skills/testing/REFERENCE.md +0 -463
  432. package/Dev/i18n/fr/Common/skills/workflow-analysis/REFERENCE.md +0 -226
  433. package/Dev/i18n/fr/Flutter/skills/architecture/REFERENCE.md +0 -1763
  434. package/Dev/i18n/fr/Flutter/skills/coding-standards/REFERENCE.md +0 -1147
  435. package/Dev/i18n/fr/Flutter/skills/performance/REFERENCE.md +0 -230
  436. package/Dev/i18n/fr/Flutter/skills/quality-tools/REFERENCE.md +0 -239
  437. package/Dev/i18n/fr/Flutter/skills/security-flutter/REFERENCE.md +0 -247
  438. package/Dev/i18n/fr/Flutter/skills/state-management/REFERENCE.md +0 -408
  439. package/Dev/i18n/fr/Flutter/skills/testing-flutter/REFERENCE.md +0 -692
  440. package/Dev/i18n/fr/Flutter/skills/tooling/REFERENCE.md +0 -542
  441. package/Dev/i18n/fr/Python/skills/architecture/REFERENCE.md +0 -1383
  442. package/Dev/i18n/fr/Python/skills/coding-standards/REFERENCE.md +0 -934
  443. package/Dev/i18n/fr/Python/skills/testing-python/REFERENCE.md +0 -778
  444. package/Dev/i18n/fr/Python/skills/tooling/REFERENCE.md +0 -730
  445. package/Dev/i18n/fr/React/skills/architecture/REFERENCE.md +0 -1005
  446. package/Dev/i18n/fr/React/skills/coding-standards/REFERENCE.md +0 -995
  447. package/Dev/i18n/fr/React/skills/quality-tools/REFERENCE.md +0 -758
  448. package/Dev/i18n/fr/React/skills/security-react/REFERENCE.md +0 -793
  449. package/Dev/i18n/fr/React/skills/testing-react/REFERENCE.md +0 -999
  450. package/Dev/i18n/fr/React/skills/tooling/REFERENCE.md +0 -777
  451. package/Dev/i18n/fr/ReactNative/skills/architecture/REFERENCE.md +0 -1253
  452. package/Dev/i18n/fr/ReactNative/skills/coding-standards/REFERENCE.md +0 -1230
  453. package/Dev/i18n/fr/ReactNative/skills/navigation/REFERENCE.md +0 -601
  454. package/Dev/i18n/fr/ReactNative/skills/performance/REFERENCE.md +0 -727
  455. package/Dev/i18n/fr/ReactNative/skills/quality-tools/REFERENCE.md +0 -122
  456. package/Dev/i18n/fr/ReactNative/skills/security-reactnative/REFERENCE.md +0 -719
  457. package/Dev/i18n/fr/ReactNative/skills/state-management/REFERENCE.md +0 -607
  458. package/Dev/i18n/fr/ReactNative/skills/testing-reactnative/REFERENCE.md +0 -386
  459. package/Dev/i18n/fr/ReactNative/skills/tooling/REFERENCE.md +0 -281
  460. package/Dev/i18n/fr/Symfony/skills/aggregates/REFERENCE.md +0 -115
  461. package/Dev/i18n/fr/Symfony/skills/architecture-clean-ddd/REFERENCE.md +0 -979
  462. package/Dev/i18n/fr/Symfony/skills/async/REFERENCE.md +0 -190
  463. package/Dev/i18n/fr/Symfony/skills/coding-standards/REFERENCE.md +0 -402
  464. package/Dev/i18n/fr/Symfony/skills/cqrs/REFERENCE.md +0 -426
  465. package/Dev/i18n/fr/Symfony/skills/ddd-patterns/REFERENCE.md +0 -1220
  466. package/Dev/i18n/fr/Symfony/skills/docker-hadolint/REFERENCE.md +0 -767
  467. package/Dev/i18n/fr/Symfony/skills/doctrine-extensions/REFERENCE.md +0 -927
  468. package/Dev/i18n/fr/Symfony/skills/domain-events/REFERENCE.md +0 -129
  469. package/Dev/i18n/fr/Symfony/skills/i18n/REFERENCE.md +0 -185
  470. package/Dev/i18n/fr/Symfony/skills/multitenant/REFERENCE.md +0 -432
  471. package/Dev/i18n/fr/Symfony/skills/performance/REFERENCE.md +0 -888
  472. package/Dev/i18n/fr/Symfony/skills/quality-tools/REFERENCE.md +0 -982
  473. package/Dev/i18n/fr/Symfony/skills/security-symfony/REFERENCE.md +0 -1055
  474. package/Dev/i18n/fr/Symfony/skills/testing-symfony/REFERENCE.md +0 -1121
  475. package/Dev/i18n/fr/Symfony/skills/value-objects/REFERENCE.md +0 -536
  476. package/Dev/i18n/fr/Symfony/templates/aggregate-examples.md +0 -1128
  477. package/Dev/i18n/fr/Symfony/templates/domain-event-examples.md +0 -1091
  478. package/Dev/i18n/fr/Symfony/templates/value-object-examples.md +0 -1129
  479. package/Dev/i18n/pt/Common/skills/documentation/REFERENCE.md +0 -555
  480. package/Dev/i18n/pt/Common/skills/git-workflow/REFERENCE.md +0 -541
  481. package/Dev/i18n/pt/Common/skills/kiss-dry-yagni/REFERENCE.md +0 -417
  482. package/Dev/i18n/pt/Common/skills/security/REFERENCE.md +0 -540
  483. package/Dev/i18n/pt/Common/skills/solid-principles/REFERENCE.md +0 -396
  484. package/Dev/i18n/pt/Common/skills/testing/REFERENCE.md +0 -463
  485. package/Dev/i18n/pt/Common/skills/workflow-analysis/REFERENCE.md +0 -226
  486. package/Dev/i18n/pt/Flutter/skills/architecture/REFERENCE.md +0 -455
  487. package/Dev/i18n/pt/Flutter/skills/coding-standards/REFERENCE.md +0 -247
  488. package/Dev/i18n/pt/Flutter/skills/performance/REFERENCE.md +0 -230
  489. package/Dev/i18n/pt/Flutter/skills/quality-tools/REFERENCE.md +0 -239
  490. package/Dev/i18n/pt/Flutter/skills/security-flutter/REFERENCE.md +0 -247
  491. package/Dev/i18n/pt/Flutter/skills/state-management/REFERENCE.md +0 -408
  492. package/Dev/i18n/pt/Flutter/skills/tooling/REFERENCE.md +0 -542
  493. package/Dev/i18n/pt/Python/skills/architecture/REFERENCE.md +0 -444
  494. package/Dev/i18n/pt/Python/skills/coding-standards/REFERENCE.md +0 -572
  495. package/Dev/i18n/pt/Python/skills/testing-python/REFERENCE.md +0 -387
  496. package/Dev/i18n/pt/Python/skills/tooling/REFERENCE.md +0 -351
  497. package/Dev/i18n/pt/React/skills/architecture/REFERENCE.md +0 -651
  498. package/Dev/i18n/pt/React/skills/coding-standards/REFERENCE.md +0 -716
  499. package/Dev/i18n/pt/React/skills/quality-tools/REFERENCE.md +0 -758
  500. package/Dev/i18n/pt/React/skills/security-react/REFERENCE.md +0 -793
  501. package/Dev/i18n/pt/React/skills/testing-react/REFERENCE.md +0 -999
  502. package/Dev/i18n/pt/React/skills/tooling/REFERENCE.md +0 -777
  503. package/Dev/i18n/pt/ReactNative/skills/architecture/REFERENCE.md +0 -200
  504. package/Dev/i18n/pt/ReactNative/skills/coding-standards/REFERENCE.md +0 -1230
  505. package/Dev/i18n/pt/ReactNative/skills/navigation/REFERENCE.md +0 -601
  506. package/Dev/i18n/pt/ReactNative/skills/performance/REFERENCE.md +0 -727
  507. package/Dev/i18n/pt/ReactNative/skills/quality-tools/REFERENCE.md +0 -122
  508. package/Dev/i18n/pt/ReactNative/skills/security-reactnative/REFERENCE.md +0 -719
  509. package/Dev/i18n/pt/ReactNative/skills/state-management/REFERENCE.md +0 -566
  510. package/Dev/i18n/pt/ReactNative/skills/testing-reactnative/REFERENCE.md +0 -386
  511. package/Dev/i18n/pt/ReactNative/skills/tooling/REFERENCE.md +0 -281
  512. package/Dev/i18n/pt/Symfony/skills/aggregates/REFERENCE.md +0 -115
  513. package/Dev/i18n/pt/Symfony/skills/architecture-clean-ddd/REFERENCE.md +0 -979
  514. package/Dev/i18n/pt/Symfony/skills/async/REFERENCE.md +0 -190
  515. package/Dev/i18n/pt/Symfony/skills/coding-standards/REFERENCE.md +0 -402
  516. package/Dev/i18n/pt/Symfony/skills/cqrs/REFERENCE.md +0 -426
  517. package/Dev/i18n/pt/Symfony/skills/ddd-patterns/REFERENCE.md +0 -1220
  518. package/Dev/i18n/pt/Symfony/skills/docker-hadolint/REFERENCE.md +0 -767
  519. package/Dev/i18n/pt/Symfony/skills/doctrine-extensions/REFERENCE.md +0 -927
  520. package/Dev/i18n/pt/Symfony/skills/domain-events/REFERENCE.md +0 -129
  521. package/Dev/i18n/pt/Symfony/skills/i18n/REFERENCE.md +0 -185
  522. package/Dev/i18n/pt/Symfony/skills/multitenant/REFERENCE.md +0 -432
  523. package/Dev/i18n/pt/Symfony/skills/performance/REFERENCE.md +0 -888
  524. package/Dev/i18n/pt/Symfony/skills/quality-tools/REFERENCE.md +0 -982
  525. package/Dev/i18n/pt/Symfony/skills/security-symfony/REFERENCE.md +0 -1055
  526. package/Dev/i18n/pt/Symfony/skills/testing-symfony/REFERENCE.md +0 -1121
  527. package/Dev/i18n/pt/Symfony/skills/value-objects/REFERENCE.md +0 -536
  528. package/Dev/i18n/pt/Symfony/templates/aggregate-examples.md +0 -1128
  529. package/Dev/i18n/pt/Symfony/templates/domain-event-examples.md +0 -1091
  530. package/Dev/i18n/pt/Symfony/templates/value-object-examples.md +0 -1129
@@ -1,982 +0,0 @@
1
- # Outils de qualité - Atoll Tourisme
2
-
3
- ## Vue d'ensemble
4
-
5
- L'utilisation des outils de qualité est **OBLIGATOIRE** pour garantir un code maintenable, sûr et performant.
6
-
7
- **Objectifs:**
8
- - ✅ PHPStan niveau max (aucune erreur tolérée)
9
- - ✅ PHP-CS-Fixer automatique
10
- - ✅ Rector pour modernisation du code
11
- - ✅ Deptrac pour validation architecture
12
- - ✅ Infection pour mutation testing
13
-
14
- > **Références:**
15
- > - `03-coding-standards.md` - Standards de code
16
- > - `07-testing-tdd-bdd.md` - Tests et couverture
17
- > - `02-architecture-clean-ddd.md` - Architecture validée
18
-
19
- ---
20
-
21
- ## Table des matières
22
-
23
- 1. [PHPStan - Analyse statique](#phpstan---analyse-statique)
24
- 2. [PHP-CS-Fixer - Code style](#php-cs-fixer---code-style)
25
- 3. [Rector - Refactoring automatique](#rector---refactoring-automatique)
26
- 4. [Deptrac - Architecture boundaries](#deptrac---architecture-boundaries)
27
- 5. [Infection - Mutation testing](#infection---mutation-testing)
28
- 6. [PHPCPD - Détection duplication](#phpcpd---détection-duplication)
29
- 7. [PHPMetrics - Métriques](#phpmetrics---métriques)
30
- 8. [Pipeline de qualité](#pipeline-de-qualité)
31
-
32
- ---
33
-
34
- ## PHPStan - Analyse statique
35
-
36
- ### Configuration phpstan.neon
37
-
38
- ```neon
39
- # phpstan.neon - Configuration stricte pour Atoll Tourisme
40
-
41
- parameters:
42
- # ✅ OBLIGATOIRE: Niveau maximum
43
- level: max
44
-
45
- paths:
46
- - src
47
- - tests
48
-
49
- # Exclusions justifiées
50
- excludePaths:
51
- - src/Kernel.php
52
- - tests/bootstrap.php
53
-
54
- # ✅ Checks supplémentaires stricts
55
- checkAlwaysTrueCheckTypeFunctionCall: true
56
- checkAlwaysTrueInstanceof: true
57
- checkAlwaysTrueStrictComparison: true
58
- checkExplicitMixedMissingReturn: true
59
- checkFunctionNameCase: true
60
- checkInternalClassCaseSensitivity: true
61
- checkMissingIterableValueType: true
62
- checkMissingVarTagTypehint: true
63
- checkTooWideReturnTypesInProtectedAndPublicMethods: true
64
- checkUninitializedProperties: true
65
- checkDynamicProperties: true
66
-
67
- # ✅ Règles Doctrine strictes
68
- doctrine:
69
- repositoryClass: App\Infrastructure\Persistence\Doctrine\Repository\DoctrineReservationRepository
70
- objectManagerLoader: tests/object-manager.php
71
-
72
- # ✅ Règles Symfony strictes
73
- symfony:
74
- containerXmlPath: var/cache/dev/App_KernelDevDebugContainer.xml
75
- consoleApplicationLoader: tests/console-application.php
76
-
77
- # Baseline pour migration progressive (à éliminer)
78
- # includes:
79
- # - phpstan-baseline.neon
80
-
81
- # ✅ Extensions obligatoires
82
- # (installées via composer)
83
- # - phpstan/phpstan-doctrine
84
- # - phpstan/phpstan-symfony
85
- # - phpstan/phpstan-phpunit
86
- # - phpstan/phpstan-strict-rules
87
- # - phpstan/phpstan-deprecation-rules
88
-
89
- # Ignorer certains patterns temporairement
90
- ignoreErrors:
91
- # Exemple: erreurs legacy (à corriger progressivement)
92
- # - '#Call to an undefined method.*Repository::findCustom#'
93
-
94
- # Report des erreurs non matchées (détecte baseline obsolète)
95
- reportUnmatchedIgnoredErrors: true
96
-
97
- # Parallélisation
98
- parallel:
99
- jobSize: 20
100
- maximumNumberOfProcesses: 4
101
- minimumNumberOfJobsPerProcess: 2
102
- ```
103
-
104
- ### Extensions PHPStan obligatoires
105
-
106
- ```bash
107
- # Installation via Composer
108
- make composer-require-dev PKG="phpstan/phpstan"
109
- make composer-require-dev PKG="phpstan/extension-installer"
110
- make composer-require-dev PKG="phpstan/phpstan-doctrine"
111
- make composer-require-dev PKG="phpstan/phpstan-symfony"
112
- make composer-require-dev PKG="phpstan/phpstan-phpunit"
113
- make composer-require-dev PKG="phpstan/phpstan-strict-rules"
114
- make composer-require-dev PKG="phpstan/phpstan-deprecation-rules"
115
- ```
116
-
117
- ### Utilisation
118
-
119
- ```bash
120
- # Analyse complète
121
- make phpstan
122
-
123
- # Génération baseline (UNIQUEMENT pour migration)
124
- make phpstan-baseline
125
-
126
- # ⚠️ La baseline doit être éliminée progressivement
127
- # Objectif: 0 erreur sans baseline
128
- ```
129
-
130
- ### Exemples d'erreurs détectées
131
-
132
- #### ❌ Type mixte non documenté
133
-
134
- ```php
135
- <?php
136
-
137
- class ReservationService
138
- {
139
- // ❌ PHPStan erreur: Missing return type
140
- public function calculate($reservation)
141
- {
142
- return $reservation->getTotal();
143
- }
144
- }
145
- ```
146
-
147
- #### ✅ Correction: Types explicites
148
-
149
- ```php
150
- <?php
151
-
152
- final readonly class ReservationService
153
- {
154
- // ✅ Types explicites
155
- public function calculate(Reservation $reservation): Money
156
- {
157
- return $reservation->getTotal();
158
- }
159
- }
160
- ```
161
-
162
- #### ❌ Property non initialisée
163
-
164
- ```php
165
- <?php
166
-
167
- class Reservation
168
- {
169
- // ❌ PHPStan erreur: Property not initialized
170
- private Money $montantTotal;
171
-
172
- public function __construct()
173
- {
174
- // Oubli d'initialisation
175
- }
176
- }
177
- ```
178
-
179
- #### ✅ Correction: Initialisation obligatoire
180
-
181
- ```php
182
- <?php
183
-
184
- final class Reservation
185
- {
186
- // ✅ Initialisé dans le constructeur
187
- private Money $montantTotal;
188
-
189
- public function __construct(Money $montantTotal)
190
- {
191
- $this->montantTotal = $montantTotal;
192
- }
193
- }
194
-
195
- // Ou avec readonly property (PHP 8.2+)
196
- final readonly class Reservation
197
- {
198
- // ✅ readonly force l'initialisation
199
- public function __construct(
200
- private Money $montantTotal,
201
- ) {}
202
- }
203
- ```
204
-
205
- ### Métriques PHPStan
206
-
207
- | État | Erreurs | Action |
208
- |------|---------|--------|
209
- | 🔴 BLOQUANT | > 0 | Corriger immédiatement |
210
- | 🟢 OK | 0 | Maintenir |
211
-
212
- **Règle d'or: ZERO erreur PHPStan niveau max**
213
-
214
- ---
215
-
216
- ## PHP-CS-Fixer - Code style
217
-
218
- ### Configuration .php-cs-fixer.dist.php
219
-
220
- ```php
221
- <?php
222
-
223
- // .php-cs-fixer.dist.php
224
-
225
- declare(strict_types=1);
226
-
227
- use PhpCsFixer\Config;
228
- use PhpCsFixer\Finder;
229
-
230
- $finder = Finder::create()
231
- ->in(__DIR__ . '/src')
232
- ->in(__DIR__ . '/tests')
233
- ->exclude('var')
234
- ->exclude('vendor')
235
- ->name('*.php')
236
- ->notName('*.blade.php')
237
- ->ignoreDotFiles(true)
238
- ->ignoreVCS(true);
239
-
240
- return (new Config())
241
- ->setRules([
242
- '@Symfony' => true,
243
- '@PSR12' => true,
244
-
245
- // ✅ Règles strictes supplémentaires
246
- 'array_syntax' => ['syntax' => 'short'],
247
- 'declare_strict_types' => true,
248
- 'final_class' => true,
249
- 'final_internal_class' => true,
250
- 'global_namespace_import' => [
251
- 'import_classes' => true,
252
- 'import_constants' => true,
253
- 'import_functions' => true,
254
- ],
255
- 'no_unused_imports' => true,
256
- 'ordered_imports' => [
257
- 'imports_order' => ['class', 'function', 'const'],
258
- 'sort_algorithm' => 'alpha',
259
- ],
260
- 'php_unit_test_class_requires_covers' => false,
261
- 'phpdoc_align' => ['align' => 'left'],
262
- 'phpdoc_order' => true,
263
- 'phpdoc_to_comment' => false,
264
- 'strict_comparison' => true,
265
- 'strict_param' => true,
266
-
267
- // ✅ Void return type
268
- 'void_return' => true,
269
-
270
- // ✅ Type hints stricts
271
- 'fully_qualified_strict_types' => true,
272
-
273
- // ✅ Trailing comma dans les tableaux multilignes
274
- 'trailing_comma_in_multiline' => [
275
- 'elements' => ['arrays', 'arguments', 'parameters'],
276
- ],
277
-
278
- // ✅ Visibilité obligatoire
279
- 'visibility_required' => [
280
- 'elements' => ['const', 'method', 'property'],
281
- ],
282
-
283
- // ✅ Readonly properties (PHP 8.1+)
284
- 'readonly_property' => true,
285
- ])
286
- ->setFinder($finder)
287
- ->setRiskyAllowed(true)
288
- ->setUsingCache(true)
289
- ->setCacheFile(__DIR__ . '/var/.php-cs-fixer.cache');
290
- ```
291
-
292
- ### Utilisation
293
-
294
- ```bash
295
- # Dry-run (vérification sans modification)
296
- make cs-fixer-dry
297
-
298
- # Application des corrections
299
- make cs-fixer
300
-
301
- # Output:
302
- # Loaded config default.
303
- # Using cache file ".php-cs-fixer.cache".
304
- #
305
- # Legend: ?-unknown, I-invalid file syntax, file ignored, S-skipped, .-no changes, F-fixed, E-error
306
- #
307
- # ................F.F........F...
308
- #
309
- # Fixed 3 files in 2.5 seconds
310
- ```
311
-
312
- ### Exemples de corrections automatiques
313
-
314
- #### Avant PHP-CS-Fixer
315
-
316
- ```php
317
- <?php
318
-
319
- namespace App\Domain\Reservation\Entity;
320
-
321
- use App\Domain\Reservation\ValueObject\Money;
322
- use App\Domain\Reservation\ValueObject\ReservationId;
323
-
324
- class Reservation {
325
-
326
- private $id;
327
- private $montantTotal;
328
-
329
- function __construct(ReservationId $id, Money $montantTotal) {
330
- $this->id = $id;
331
- $this->montantTotal = $montantTotal;
332
- }
333
-
334
- public function getId()
335
- {
336
- return $this->id;
337
- }
338
- }
339
- ```
340
-
341
- #### Après PHP-CS-Fixer
342
-
343
- ```php
344
- <?php
345
-
346
- declare(strict_types=1);
347
-
348
- namespace App\Domain\Reservation\Entity;
349
-
350
- use App\Domain\Reservation\ValueObject\Money;
351
- use App\Domain\Reservation\ValueObject\ReservationId;
352
-
353
- final class Reservation
354
- {
355
- private ReservationId $id;
356
- private Money $montantTotal;
357
-
358
- public function __construct(ReservationId $id, Money $montantTotal)
359
- {
360
- $this->id = $id;
361
- $this->montantTotal = $montantTotal;
362
- }
363
-
364
- public function getId(): ReservationId
365
- {
366
- return $this->id;
367
- }
368
- }
369
- ```
370
-
371
- ---
372
-
373
- ## Rector - Refactoring automatique
374
-
375
- ### Configuration rector.php
376
-
377
- ```php
378
- <?php
379
-
380
- // rector.php
381
-
382
- declare(strict_types=1);
383
-
384
- use Rector\Config\RectorConfig;
385
- use Rector\Doctrine\Set\DoctrineSetList;
386
- use Rector\Symfony\Set\SymfonySetList;
387
- use Rector\Symfony\Set\SymfonyLevelSetList;
388
- use Rector\PHPUnit\Set\PHPUnitSetList;
389
- use Rector\Set\ValueObject\LevelSetList;
390
- use Rector\Set\ValueObject\SetList;
391
-
392
- return RectorConfig::configure()
393
- ->withPaths([
394
- __DIR__ . '/src',
395
- __DIR__ . '/tests',
396
- ])
397
- ->withSkip([
398
- __DIR__ . '/src/Kernel.php',
399
- ])
400
- ->withPhpSets(php82: true)
401
- ->withPreparedSets(
402
- deadCode: true,
403
- codeQuality: true,
404
- codingStyle: true,
405
- typeDeclarations: true,
406
- privatization: true,
407
- naming: true,
408
- instanceOf: true,
409
- earlyReturn: true,
410
- strictBooleans: true,
411
- )
412
- ->withSets([
413
- // ✅ Symfony 6.4
414
- SymfonyLevelSetList::UP_TO_SYMFONY_64,
415
- SymfonySetList::SYMFONY_CODE_QUALITY,
416
- SymfonySetList::SYMFONY_CONSTRUCTOR_INJECTION,
417
-
418
- // ✅ Doctrine 2.17
419
- DoctrineSetList::DOCTRINE_CODE_QUALITY,
420
- DoctrineSetList::DOCTRINE_ORM_214,
421
-
422
- // ✅ PHPUnit 10
423
- PHPUnitSetList::PHPUNIT_100,
424
- PHPUnitSetList::PHPUNIT_CODE_QUALITY,
425
-
426
- // ✅ PHP 8.2
427
- LevelSetList::UP_TO_PHP_82,
428
- SetList::PHP_82,
429
- ])
430
- ->withImportNames(
431
- importNames: true,
432
- importDocBlockNames: true,
433
- importShortClasses: false,
434
- removeUnusedImports: true,
435
- );
436
- ```
437
-
438
- ### Utilisation
439
-
440
- ```bash
441
- # Dry-run (preview des changements)
442
- make rector-dry
443
-
444
- # Application des modifications
445
- make rector
446
-
447
- # Output:
448
- # [OK] Rector is done! 25 files changed
449
- #
450
- # Changes:
451
- # - src/Domain/Reservation/Entity/Reservation.php:15
452
- # Array to readonly property
453
- # - src/Application/UseCase/CreateReservation.php:23
454
- # Constructor injection instead of setter injection
455
- ```
456
-
457
- ### Exemples de refactoring Rector
458
-
459
- #### Avant Rector
460
-
461
- ```php
462
- <?php
463
-
464
- class ReservationService
465
- {
466
- private ReservationRepository $repository;
467
-
468
- // ❌ Setter injection
469
- public function setRepository(ReservationRepository $repository): void
470
- {
471
- $this->repository = $repository;
472
- }
473
-
474
- public function find(string $id): ?Reservation
475
- {
476
- // ❌ Pas de type de retour explicite
477
- return $this->repository->find($id);
478
- }
479
- }
480
- ```
481
-
482
- #### Après Rector
483
-
484
- ```php
485
- <?php
486
-
487
- final readonly class ReservationService
488
- {
489
- // ✅ Constructor injection
490
- public function __construct(
491
- private ReservationRepository $repository,
492
- ) {}
493
-
494
- // ✅ Type de retour explicite
495
- public function find(string $id): ?Reservation
496
- {
497
- return $this->repository->find($id);
498
- }
499
- }
500
- ```
501
-
502
- ---
503
-
504
- ## Deptrac - Architecture boundaries
505
-
506
- ### Configuration deptrac.yaml
507
-
508
- ```yaml
509
- # deptrac.yaml - Validation architecture DDD
510
-
511
- deptrac:
512
- paths:
513
- - ./src
514
-
515
- exclude_files:
516
- - '#.*test.*#'
517
-
518
- layers:
519
- - name: Domain
520
- collectors:
521
- - type: directory
522
- value: src/Domain/.*
523
-
524
- - name: Application
525
- collectors:
526
- - type: directory
527
- value: src/Application/.*
528
-
529
- - name: Infrastructure
530
- collectors:
531
- - type: directory
532
- value: src/Infrastructure/.*
533
-
534
- - name: Presentation
535
- collectors:
536
- - type: directory
537
- value: src/Presentation/.*
538
-
539
- ruleset:
540
- # ✅ Domain ne dépend de RIEN
541
- Domain: []
542
-
543
- # ✅ Application dépend uniquement de Domain
544
- Application:
545
- - Domain
546
-
547
- # ✅ Infrastructure dépend de Domain et Application
548
- Infrastructure:
549
- - Domain
550
- - Application
551
-
552
- # ✅ Presentation dépend de Application, Infrastructure et Domain
553
- Presentation:
554
- - Application
555
- - Infrastructure
556
- - Domain
557
-
558
- # Formatters pour les rapports
559
- formatters:
560
- graphviz:
561
- hidden_layers: []
562
- groups: []
563
- pointToGroups: false
564
-
565
- # Analyser les vendor si nécessaire
566
- analyser:
567
- types:
568
- - class
569
- - class_superglobal
570
- - function
571
- - function_superglobal
572
- ```
573
-
574
- ### Utilisation
575
-
576
- ```bash
577
- # Validation architecture
578
- make deptrac
579
-
580
- # Output attendu (succès):
581
- # ✅ Domain layer: 0 violations
582
- # ✅ Application layer: 0 violations
583
- # ✅ Infrastructure layer: 0 violations
584
- # ✅ Presentation layer: 0 violations
585
- #
586
- # All rules validated successfully!
587
-
588
- # Output (violation détectée):
589
- # ❌ Domain layer: 1 violation
590
- #
591
- # src/Domain/Reservation/Entity/Reservation.php:5
592
- # Domain must not depend on Infrastructure
593
- # Doctrine\ORM\Mapping\Entity
594
- ```
595
-
596
- ### Exemples de violations
597
-
598
- #### ❌ VIOLATION: Domain dépend de Doctrine
599
-
600
- ```php
601
- <?php
602
-
603
- namespace App\Domain\Reservation\Entity;
604
-
605
- use Doctrine\ORM\Mapping as ORM; // ❌ VIOLATION
606
-
607
- #[ORM\Entity]
608
- class Reservation
609
- {
610
- // ...
611
- }
612
- ```
613
-
614
- #### ✅ CORRECTION: Mapping XML séparé (Infrastructure)
615
-
616
- ```php
617
- <?php
618
-
619
- namespace App\Domain\Reservation\Entity;
620
-
621
- // ✅ Pas de dépendance Doctrine
622
- final class Reservation
623
- {
624
- private ReservationId $id;
625
- // ...
626
- }
627
- ```
628
-
629
- ```xml
630
- <!-- Infrastructure/Persistence/Doctrine/Mapping/Reservation.orm.xml -->
631
- <doctrine-mapping>
632
- <entity name="App\Domain\Reservation\Entity\Reservation" table="reservation">
633
- <id name="id" type="reservation_id"/>
634
- </entity>
635
- </doctrine-mapping>
636
- ```
637
-
638
- ---
639
-
640
- ## Infection - Mutation testing
641
-
642
- ### Configuration infection.json5
643
-
644
- ```json5
645
- {
646
- "$schema": "vendor/infection/infection/resources/schema.json",
647
-
648
- "source": {
649
- "directories": ["src"],
650
- "excludes": [
651
- "Kernel.php",
652
- "DataFixtures"
653
- ]
654
- },
655
-
656
- "timeout": 10,
657
-
658
- "logs": {
659
- "text": "var/infection/infection.log",
660
- "html": "var/infection/index.html",
661
- "summary": "var/infection/summary.log",
662
- "json": "var/infection/infection.json",
663
- "github": true,
664
- "badge": {
665
- "branch": "main"
666
- }
667
- },
668
-
669
- "tmpDir": "var/infection",
670
-
671
- "mutators": {
672
- "@default": true,
673
-
674
- // ✅ Mutateurs supplémentaires stricts
675
- "@function_signature": true,
676
- "@number": true,
677
- "@operator": true,
678
- "@regex": true,
679
- "@unwrap": true,
680
- "@cast": true,
681
-
682
- // Ignorer certains mutateurs si nécessaire
683
- "MethodCallRemoval": {
684
- "ignore": [
685
- // "Symfony\\Component\\HttpFoundation\\Response::setStatusCode"
686
- ]
687
- }
688
- },
689
-
690
- // ✅ Scores minimums OBLIGATOIRES
691
- "minMsi": 80,
692
- "minCoveredMsi": 90,
693
-
694
- // Parallélisation
695
- "threads": 4,
696
-
697
- // Bootstrap pour tests
698
- "bootstrap": "tests/bootstrap.php",
699
-
700
- // Ignorer certains fichiers
701
- "ignore": {
702
- "sourceFiles": []
703
- },
704
-
705
- // Utiliser PHPUnit
706
- "testFramework": "phpunit",
707
- "testFrameworkOptions": "--configuration=phpunit.xml.dist"
708
- }
709
- ```
710
-
711
- ### Utilisation
712
-
713
- ```bash
714
- # Mutation testing complet
715
- make infection
716
-
717
- # Avec filtre sur fichiers
718
- docker-compose exec php vendor/bin/infection \
719
- --filter=src/Domain/Reservation/ValueObject/Money.php
720
-
721
- # Output:
722
- # Infection - PHP Mutation Testing Framework
723
- #
724
- # You are running Infection with xdebug enabled.
725
- #
726
- # Running mutation tests...
727
- #
728
- # 150/150 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100% 2 mins
729
- #
730
- # Metrics:
731
- # Mutation Score Indicator (MSI): 82%
732
- # Mutation Code Coverage: 95%
733
- # Covered Code MSI: 92%
734
- #
735
- # Mutations:
736
- # Total: 150
737
- # Killed: 123 (82%)
738
- # Errors: 5 (3.3%)
739
- # Escaped: 15 (10%)
740
- # Timed Out: 7 (4.7%)
741
- # Not Covered: 0 (0%)
742
- ```
743
-
744
- ### Analyse des mutations
745
-
746
- #### Mutation tuée (✅ BON)
747
-
748
- ```php
749
- // Code original
750
- if ($amount > 0) {
751
- return true;
752
- }
753
-
754
- // Mutation: Opérateur changé
755
- if ($amount >= 0) { // ✅ KILLED par le test
756
- return true;
757
- }
758
-
759
- // Test qui tue la mutation:
760
- public function testAmountMustBeStrictlyPositive(): void
761
- {
762
- self::assertTrue(Money::fromEuros(1)->isPositive());
763
- self::assertFalse(Money::fromEuros(0)->isPositive()); // ✅ Détecte >= au lieu de >
764
- }
765
- ```
766
-
767
- #### Mutation échappée (❌ MAUVAIS)
768
-
769
- ```php
770
- // Code original
771
- public function add(Money $other): Money
772
- {
773
- return new Money($this->amount + $other->amount);
774
- }
775
-
776
- // Mutation: Opérateur changé
777
- public function add(Money $other): Money
778
- {
779
- return new Money($this->amount - $other->amount); // ❌ ESCAPED
780
- }
781
-
782
- // ❌ Pas de test vérifiant l'addition correcte!
783
- // ✅ CORRECTION: Ajouter ce test
784
- public function testAddTwoMoneyAmounts(): void
785
- {
786
- $money1 = Money::fromEuros(100);
787
- $money2 = Money::fromEuros(50);
788
-
789
- $result = $money1->add($money2);
790
-
791
- self::assertEquals(150, $result->getAmountEuros());
792
- }
793
- ```
794
-
795
- ---
796
-
797
- ## PHPCPD - Détection duplication
798
-
799
- ### Utilisation
800
-
801
- ```bash
802
- # Détection duplication de code
803
- make phpcpd
804
-
805
- # Output:
806
- # phpcpd 6.0.3 by Sebastian Bergmann.
807
- #
808
- # Found 2 clones with 45 duplicated lines in 4 files:
809
- #
810
- # - src/Domain/Reservation/Service/PricingService.php:23-35
811
- # src/Domain/Sejour/Service/PricingService.php:28-40
812
- #
813
- # 0.50% duplicated lines out of 9000 total lines of code.
814
- ```
815
-
816
- ### Seuils acceptables
817
-
818
- | Duplication | État | Action |
819
- |-------------|------|--------|
820
- | 0% | 🟢 EXCELLENT | Maintenir |
821
- | < 3% | 🟡 ACCEPTABLE | Surveiller |
822
- | 3-5% | 🟠 ATTENTION | Refactorer |
823
- | > 5% | 🔴 BLOQUANT | Corriger immédiatement |
824
-
825
- ---
826
-
827
- ## PHPMetrics - Métriques
828
-
829
- ### Utilisation
830
-
831
- ```bash
832
- # Génération des métriques
833
- make phpmetrics
834
-
835
- # Ouvre: var/phpmetrics/index.html
836
- ```
837
-
838
- ### Métriques suivies
839
-
840
- | Métrique | Cible | Limite |
841
- |----------|-------|--------|
842
- | Complexité cyclomatique | < 5 | < 10 |
843
- | Maintenabilité (0-100) | > 80 | > 60 |
844
- | LOC par classe | < 150 | < 200 |
845
- | Couplage (afferent) | < 5 | < 10 |
846
- | Couplage (efferent) | < 5 | < 10 |
847
-
848
- ---
849
-
850
- ## Pipeline de qualité
851
-
852
- ### Makefile: make quality
853
-
854
- ```makefile
855
- quality: phpstan cs-fixer-dry rector-dry deptrac phpcpd
856
- @echo "✅ All quality checks passed"
857
-
858
- quality-fix: cs-fixer rector
859
- @echo "✅ Code automatically fixed"
860
- ```
861
-
862
- ### Utilisation
863
-
864
- ```bash
865
- # Vérification (dry-run)
866
- make quality
867
-
868
- # Corrections automatiques
869
- make quality-fix
870
-
871
- # Pipeline complète CI
872
- make ci
873
- ```
874
-
875
- ### Pipeline CI (.github/workflows/ci.yml)
876
-
877
- ```yaml
878
- name: CI
879
-
880
- on: [push, pull_request]
881
-
882
- jobs:
883
- quality:
884
- runs-on: ubuntu-latest
885
-
886
- steps:
887
- - uses: actions/checkout@v4
888
-
889
- - name: Build Docker
890
- run: make build
891
-
892
- - name: Start services
893
- run: make up
894
-
895
- - name: Install dependencies
896
- run: make composer-install
897
-
898
- - name: PHPStan
899
- run: make phpstan
900
-
901
- - name: CS-Fixer (dry-run)
902
- run: make cs-fixer-dry
903
-
904
- - name: Rector (dry-run)
905
- run: make rector-dry
906
-
907
- - name: Deptrac
908
- run: make deptrac
909
-
910
- - name: PHPCPD
911
- run: make phpcpd
912
-
913
- tests:
914
- runs-on: ubuntu-latest
915
-
916
- steps:
917
- - uses: actions/checkout@v4
918
-
919
- - name: Build Docker
920
- run: make build
921
-
922
- - name: Start services
923
- run: make up
924
-
925
- - name: Install dependencies
926
- run: make composer-install
927
-
928
- - name: Reset database
929
- run: make db-reset
930
-
931
- - name: PHPUnit
932
- run: make test-coverage
933
-
934
- - name: Infection
935
- run: make infection
936
-
937
- - name: Behat
938
- run: make behat
939
- ```
940
-
941
- ---
942
-
943
- ## Checklist de validation
944
-
945
- ### Avant chaque commit
946
-
947
- - [ ] **PHPStan:** `make phpstan` → 0 erreur
948
- - [ ] **CS-Fixer:** `make cs-fixer-dry` → 0 violation
949
- - [ ] **Rector:** `make rector-dry` → 0 suggestion
950
- - [ ] **Deptrac:** `make deptrac` → 0 violation architecture
951
- - [ ] **PHPCPD:** Duplication < 3%
952
- - [ ] **Tests:** Coverage > 80%
953
- - [ ] **Infection:** MSI > 80%
954
-
955
- ### Commandes rapides
956
-
957
- ```bash
958
- # ✅ Pipeline qualité complète
959
- make quality
960
-
961
- # ✅ Corrections automatiques
962
- make quality-fix
963
-
964
- # ✅ Tests + qualité
965
- make ci
966
- ```
967
-
968
- ---
969
-
970
- ## Ressources
971
-
972
- - **PHPStan:** [Documentation](https://phpstan.org/user-guide/getting-started)
973
- - **PHP-CS-Fixer:** [Documentation](https://cs.symfony.com/)
974
- - **Rector:** [Documentation](https://getrector.org/documentation)
975
- - **Deptrac:** [Documentation](https://qossmic.github.io/deptrac/)
976
- - **Infection:** [Documentation](https://infection.github.io/guide/)
977
-
978
- ---
979
-
980
- **Date de dernière mise à jour:** 2025-01-26
981
- **Version:** 1.0.0
982
- **Auteur:** The Bearded CTO