@the-bearded-bear/claude-craft 3.0.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 (1926) hide show
  1. package/Dev/i18n/de/Common/agents/accessibility-expert.md +230 -0
  2. package/Dev/i18n/de/Common/agents/api-designer.md +396 -0
  3. package/Dev/i18n/de/Common/agents/database-architect.md +263 -0
  4. package/Dev/i18n/de/Common/agents/devops-engineer.md +207 -0
  5. package/Dev/i18n/de/Common/agents/performance-auditor.md +300 -0
  6. package/Dev/i18n/de/Common/agents/refactoring-specialist.md +236 -0
  7. package/Dev/i18n/de/Common/agents/research-assistant.md +224 -0
  8. package/Dev/i18n/de/Common/agents/tdd-coach.md +230 -0
  9. package/Dev/i18n/de/Common/agents/ui-designer.md +192 -0
  10. package/Dev/i18n/de/Common/agents/uiux-orchestrator.md +122 -0
  11. package/Dev/i18n/de/Common/agents/ux-ergonome.md +187 -0
  12. package/Dev/i18n/de/Common/agents/workflow-orchestrator.md +225 -0
  13. package/Dev/i18n/de/Common/checklists/code-review.md +153 -0
  14. package/Dev/i18n/de/Common/checklists/definition-of-done.md +104 -0
  15. package/Dev/i18n/de/Common/checklists/release.md +176 -0
  16. package/Dev/i18n/de/Common/checklists/security-review.md +167 -0
  17. package/Dev/i18n/de/Common/commands/a11y-audit.md +98 -0
  18. package/Dev/i18n/de/Common/commands/a11y-component.md +138 -0
  19. package/Dev/i18n/de/Common/commands/architecture-decision.md +366 -0
  20. package/Dev/i18n/de/Common/commands/daily-standup.md +216 -0
  21. package/Dev/i18n/de/Common/commands/docker-optimize.md +392 -0
  22. package/Dev/i18n/de/Common/commands/fix-bug-tdd.md +383 -0
  23. package/Dev/i18n/de/Common/commands/full-audit.md +191 -0
  24. package/Dev/i18n/de/Common/commands/generate-changelog.md +237 -0
  25. package/Dev/i18n/de/Common/commands/pre-commit-check.md +205 -0
  26. package/Dev/i18n/de/Common/commands/pre-merge-check.md +237 -0
  27. package/Dev/i18n/de/Common/commands/release-checklist.md +245 -0
  28. package/Dev/i18n/de/Common/commands/research-context7.md +253 -0
  29. package/Dev/i18n/de/Common/commands/setup-ci.md +339 -0
  30. package/Dev/i18n/de/Common/commands/sprint-retro.md +288 -0
  31. package/Dev/i18n/de/Common/commands/sprint-review.md +299 -0
  32. package/Dev/i18n/de/Common/commands/sprint-start.md +285 -0
  33. package/Dev/i18n/de/Common/commands/ui-design-tokens.md +118 -0
  34. package/Dev/i18n/de/Common/commands/uiux-audit.md +189 -0
  35. package/Dev/i18n/de/Common/commands/uiux-component-spec.md +264 -0
  36. package/Dev/i18n/de/Common/commands/uiux-orchestrator.md +98 -0
  37. package/Dev/i18n/de/Common/commands/ux-user-flow.md +109 -0
  38. package/Dev/i18n/de/Common/commands/workflow-analyze.md +204 -0
  39. package/Dev/i18n/de/Common/commands/workflow-design.md +275 -0
  40. package/Dev/i18n/de/Common/commands/workflow-implement.md +241 -0
  41. package/Dev/i18n/de/Common/commands/workflow-init.md +257 -0
  42. package/Dev/i18n/de/Common/commands/workflow-plan.md +224 -0
  43. package/Dev/i18n/de/Common/commands/workflow-status.md +292 -0
  44. package/Dev/i18n/de/Common/hooks/HOOKS-QUICKSTART.md +46 -0
  45. package/Dev/i18n/de/Common/hooks/scripts/block-dangerous-commands.sh +45 -0
  46. package/Dev/i18n/de/Common/hooks/scripts/notify-slack.sh +38 -0
  47. package/Dev/i18n/de/Common/hooks/scripts/post-edit-lint.sh +58 -0
  48. package/Dev/i18n/de/Common/hooks/scripts/pre-commit-check.sh +72 -0
  49. package/Dev/i18n/de/Common/hooks/scripts/quality-gate.sh +98 -0
  50. package/Dev/i18n/de/Common/hooks/scripts/session-init.sh +77 -0
  51. package/Dev/i18n/de/Common/hooks/templates/settings-hooks.json +75 -0
  52. package/Dev/i18n/de/Common/mcp/MCP-QUICKSTART.md +79 -0
  53. package/Dev/i18n/de/Common/mcp/templates/context7.mcp.json +9 -0
  54. package/Dev/i18n/de/Common/mcp/templates/full-stack.mcp.json +27 -0
  55. package/Dev/i18n/de/Common/mcp/templates/github.mcp.json +12 -0
  56. package/Dev/i18n/de/Common/mcp/templates/postgres.mcp.json +12 -0
  57. package/Dev/i18n/de/Common/mcp/templates/slack.mcp.json +13 -0
  58. package/Dev/i18n/de/Common/rules/00-project-context.md.template +118 -0
  59. package/Dev/i18n/de/Common/rules/01-workflow-analysis.md +226 -0
  60. package/Dev/i18n/de/Common/rules/04-solid-principles.md +396 -0
  61. package/Dev/i18n/de/Common/rules/05-kiss-dry-yagni.md +417 -0
  62. package/Dev/i18n/de/Common/rules/07-testing.md +463 -0
  63. package/Dev/i18n/de/Common/rules/09-git-workflow.md +541 -0
  64. package/Dev/i18n/de/Common/rules/10-documentation.md +555 -0
  65. package/Dev/i18n/de/Common/rules/11-security.md +540 -0
  66. package/Dev/i18n/de/Common/skills/documentation/REFERENCE.md +555 -0
  67. package/Dev/i18n/de/Common/skills/documentation/SKILL.md +10 -0
  68. package/Dev/i18n/de/Common/skills/git-workflow/REFERENCE.md +541 -0
  69. package/Dev/i18n/de/Common/skills/git-workflow/SKILL.md +10 -0
  70. package/Dev/i18n/de/Common/skills/kiss-dry-yagni/REFERENCE.md +417 -0
  71. package/Dev/i18n/de/Common/skills/kiss-dry-yagni/SKILL.md +10 -0
  72. package/Dev/i18n/de/Common/skills/security/REFERENCE.md +540 -0
  73. package/Dev/i18n/de/Common/skills/security/SKILL.md +10 -0
  74. package/Dev/i18n/de/Common/skills/solid-principles/REFERENCE.md +396 -0
  75. package/Dev/i18n/de/Common/skills/solid-principles/SKILL.md +10 -0
  76. package/Dev/i18n/de/Common/skills/testing/REFERENCE.md +463 -0
  77. package/Dev/i18n/de/Common/skills/testing/SKILL.md +10 -0
  78. package/Dev/i18n/de/Common/skills/workflow-analysis/REFERENCE.md +226 -0
  79. package/Dev/i18n/de/Common/skills/workflow-analysis/SKILL.md +10 -0
  80. package/Dev/i18n/de/Common/templates/CLAUDE.md.template +58 -0
  81. package/Dev/i18n/de/Common/templates/bug-report.md +64 -0
  82. package/Dev/i18n/de/Common/templates/feature-request.md +71 -0
  83. package/Dev/i18n/de/Common/templates/pull-request-template.md +84 -0
  84. package/Dev/i18n/de/Common/templates/settings.json.template +55 -0
  85. package/Dev/i18n/de/Common/templates/settings.local.json.template +10 -0
  86. package/Dev/i18n/de/Flutter/CLAUDE.md.template +447 -0
  87. package/Dev/i18n/de/Flutter/INDEX.md +392 -0
  88. package/Dev/i18n/de/Flutter/README.md +330 -0
  89. package/Dev/i18n/de/Flutter/STRUCTURE.md +289 -0
  90. package/Dev/i18n/de/Flutter/SUMMARY.md +348 -0
  91. package/Dev/i18n/de/Flutter/agents/flutter-reviewer.md +590 -0
  92. package/Dev/i18n/de/Flutter/checklists/new-feature.md +55 -0
  93. package/Dev/i18n/de/Flutter/checklists/pre-commit.md +52 -0
  94. package/Dev/i18n/de/Flutter/checklists/refactoring.md +30 -0
  95. package/Dev/i18n/de/Flutter/checklists/security.md +47 -0
  96. package/Dev/i18n/de/Flutter/commands/analyze-performance.md +357 -0
  97. package/Dev/i18n/de/Flutter/commands/check-architecture.md +92 -0
  98. package/Dev/i18n/de/Flutter/commands/check-code-quality.md +120 -0
  99. package/Dev/i18n/de/Flutter/commands/check-compliance.md +350 -0
  100. package/Dev/i18n/de/Flutter/commands/check-security.md +180 -0
  101. package/Dev/i18n/de/Flutter/commands/check-testing.md +140 -0
  102. package/Dev/i18n/de/Flutter/commands/generate-feature.md +540 -0
  103. package/Dev/i18n/de/Flutter/commands/generate-widget.md +557 -0
  104. package/Dev/i18n/de/Flutter/commands/golden-update.md +357 -0
  105. package/Dev/i18n/de/Flutter/commands/localization-check.md +316 -0
  106. package/Dev/i18n/de/Flutter/rules/00-project-context.md.template +511 -0
  107. package/Dev/i18n/de/Flutter/rules/02-architecture.md +455 -0
  108. package/Dev/i18n/de/Flutter/rules/03-coding-standards.md +247 -0
  109. package/Dev/i18n/de/Flutter/rules/06-tooling.md +542 -0
  110. package/Dev/i18n/de/Flutter/rules/07-testing-flutter.md +0 -0
  111. package/Dev/i18n/de/Flutter/rules/08-quality-tools.md +239 -0
  112. package/Dev/i18n/de/Flutter/rules/11-security-flutter.md +247 -0
  113. package/Dev/i18n/de/Flutter/rules/12-performance.md +230 -0
  114. package/Dev/i18n/de/Flutter/rules/13-state-management.md +0 -0
  115. package/Dev/i18n/de/Flutter/skills/architecture/REFERENCE.md +455 -0
  116. package/Dev/i18n/de/Flutter/skills/architecture/SKILL.md +10 -0
  117. package/Dev/i18n/de/Flutter/skills/coding-standards/REFERENCE.md +247 -0
  118. package/Dev/i18n/de/Flutter/skills/coding-standards/SKILL.md +10 -0
  119. package/Dev/i18n/de/Flutter/skills/performance/REFERENCE.md +230 -0
  120. package/Dev/i18n/de/Flutter/skills/performance/SKILL.md +10 -0
  121. package/Dev/i18n/de/Flutter/skills/quality-tools/REFERENCE.md +239 -0
  122. package/Dev/i18n/de/Flutter/skills/quality-tools/SKILL.md +10 -0
  123. package/Dev/i18n/de/Flutter/skills/security-flutter/REFERENCE.md +247 -0
  124. package/Dev/i18n/de/Flutter/skills/security-flutter/SKILL.md +10 -0
  125. package/Dev/i18n/de/Flutter/skills/state-management/REFERENCE.md +0 -0
  126. package/Dev/i18n/de/Flutter/skills/state-management/SKILL.md +10 -0
  127. package/Dev/i18n/de/Flutter/skills/testing-flutter/REFERENCE.md +0 -0
  128. package/Dev/i18n/de/Flutter/skills/testing-flutter/SKILL.md +10 -0
  129. package/Dev/i18n/de/Flutter/skills/tooling/REFERENCE.md +542 -0
  130. package/Dev/i18n/de/Flutter/skills/tooling/SKILL.md +10 -0
  131. package/Dev/i18n/de/Flutter/templates/bloc.md +118 -0
  132. package/Dev/i18n/de/Flutter/templates/repository.md +113 -0
  133. package/Dev/i18n/de/Flutter/templates/test-unit.md +67 -0
  134. package/Dev/i18n/de/Flutter/templates/test-widget.md +71 -0
  135. package/Dev/i18n/de/Flutter/templates/widget.md +119 -0
  136. package/Dev/i18n/de/Python/CLAUDE.md.template +442 -0
  137. package/Dev/i18n/de/Python/README.md +369 -0
  138. package/Dev/i18n/de/Python/SUMMARY.md +352 -0
  139. package/Dev/i18n/de/Python/agents/python-reviewer.md +118 -0
  140. package/Dev/i18n/de/Python/checklists/new-feature.md +148 -0
  141. package/Dev/i18n/de/Python/checklists/pre-commit.md +358 -0
  142. package/Dev/i18n/de/Python/commands/async-check.md +84 -0
  143. package/Dev/i18n/de/Python/commands/check-architecture.md +138 -0
  144. package/Dev/i18n/de/Python/commands/check-code-quality.md +174 -0
  145. package/Dev/i18n/de/Python/commands/check-compliance.md +84 -0
  146. package/Dev/i18n/de/Python/commands/check-security.md +91 -0
  147. package/Dev/i18n/de/Python/commands/check-testing.md +79 -0
  148. package/Dev/i18n/de/Python/commands/dependency-audit.md +64 -0
  149. package/Dev/i18n/de/Python/commands/generate-endpoint.md +68 -0
  150. package/Dev/i18n/de/Python/commands/generate-model.md +49 -0
  151. package/Dev/i18n/de/Python/commands/type-coverage.md +60 -0
  152. package/Dev/i18n/de/Python/examples/Makefile.example +435 -0
  153. package/Dev/i18n/de/Python/rules/00-project-context.md.template +190 -0
  154. package/Dev/i18n/de/Python/rules/02-architecture.md +444 -0
  155. package/Dev/i18n/de/Python/rules/03-coding-standards.md +572 -0
  156. package/Dev/i18n/de/Python/rules/06-tooling.md +351 -0
  157. package/Dev/i18n/de/Python/rules/07-testing-python.md +387 -0
  158. package/Dev/i18n/de/Python/skills/architecture/REFERENCE.md +444 -0
  159. package/Dev/i18n/de/Python/skills/architecture/SKILL.md +10 -0
  160. package/Dev/i18n/de/Python/skills/coding-standards/REFERENCE.md +572 -0
  161. package/Dev/i18n/de/Python/skills/coding-standards/SKILL.md +10 -0
  162. package/Dev/i18n/de/Python/skills/testing-python/REFERENCE.md +387 -0
  163. package/Dev/i18n/de/Python/skills/testing-python/SKILL.md +10 -0
  164. package/Dev/i18n/de/Python/skills/tooling/REFERENCE.md +351 -0
  165. package/Dev/i18n/de/Python/skills/tooling/SKILL.md +10 -0
  166. package/Dev/i18n/de/Python/templates/repository.md +120 -0
  167. package/Dev/i18n/de/Python/templates/service.md +125 -0
  168. package/Dev/i18n/de/React/CLAUDE.md.template +530 -0
  169. package/Dev/i18n/de/React/README.md +295 -0
  170. package/Dev/i18n/de/React/agents/react-reviewer.md +355 -0
  171. package/Dev/i18n/de/React/checklists/new-feature.md +109 -0
  172. package/Dev/i18n/de/React/checklists/pre-commit.md +142 -0
  173. package/Dev/i18n/de/React/commands/accessibility-check.md +66 -0
  174. package/Dev/i18n/de/React/commands/bundle-analyze.md +63 -0
  175. package/Dev/i18n/de/React/commands/check-architecture.md +78 -0
  176. package/Dev/i18n/de/React/commands/check-code-quality.md +97 -0
  177. package/Dev/i18n/de/React/commands/check-compliance.md +118 -0
  178. package/Dev/i18n/de/React/commands/check-security.md +142 -0
  179. package/Dev/i18n/de/React/commands/check-testing.md +150 -0
  180. package/Dev/i18n/de/React/commands/generate-component.md +123 -0
  181. package/Dev/i18n/de/React/commands/generate-hook.md +125 -0
  182. package/Dev/i18n/de/React/commands/storybook-story.md +151 -0
  183. package/Dev/i18n/de/React/rules/00-project-context.md.template +223 -0
  184. package/Dev/i18n/de/React/rules/02-architecture.md +490 -0
  185. package/Dev/i18n/de/React/rules/03-coding-standards.md +500 -0
  186. package/Dev/i18n/de/React/rules/06-tooling.md +777 -0
  187. package/Dev/i18n/de/React/rules/07-testing-react.md +999 -0
  188. package/Dev/i18n/de/React/rules/08-quality-tools.md +758 -0
  189. package/Dev/i18n/de/React/rules/11-security-react.md +793 -0
  190. package/Dev/i18n/de/React/skills/architecture/REFERENCE.md +490 -0
  191. package/Dev/i18n/de/React/skills/architecture/SKILL.md +10 -0
  192. package/Dev/i18n/de/React/skills/coding-standards/REFERENCE.md +500 -0
  193. package/Dev/i18n/de/React/skills/coding-standards/SKILL.md +10 -0
  194. package/Dev/i18n/de/React/skills/quality-tools/REFERENCE.md +758 -0
  195. package/Dev/i18n/de/React/skills/quality-tools/SKILL.md +10 -0
  196. package/Dev/i18n/de/React/skills/security-react/REFERENCE.md +793 -0
  197. package/Dev/i18n/de/React/skills/security-react/SKILL.md +10 -0
  198. package/Dev/i18n/de/React/skills/testing-react/REFERENCE.md +999 -0
  199. package/Dev/i18n/de/React/skills/testing-react/SKILL.md +10 -0
  200. package/Dev/i18n/de/React/skills/tooling/REFERENCE.md +777 -0
  201. package/Dev/i18n/de/React/skills/tooling/SKILL.md +10 -0
  202. package/Dev/i18n/de/React/templates/component.md +283 -0
  203. package/Dev/i18n/de/React/templates/hook.md +393 -0
  204. package/Dev/i18n/de/ReactNative/CLAUDE.md.template +543 -0
  205. package/Dev/i18n/de/ReactNative/FILES.md +144 -0
  206. package/Dev/i18n/de/ReactNative/INSTALLATION.md +407 -0
  207. package/Dev/i18n/de/ReactNative/README.md +437 -0
  208. package/Dev/i18n/de/ReactNative/SUMMARY.md +599 -0
  209. package/Dev/i18n/de/ReactNative/agents/reactnative-reviewer.md +380 -0
  210. package/Dev/i18n/de/ReactNative/checklists/new-feature.md +223 -0
  211. package/Dev/i18n/de/ReactNative/checklists/pre-commit.md +100 -0
  212. package/Dev/i18n/de/ReactNative/checklists/refactoring.md +303 -0
  213. package/Dev/i18n/de/ReactNative/checklists/security.md +380 -0
  214. package/Dev/i18n/de/ReactNative/commands/app-size.md +465 -0
  215. package/Dev/i18n/de/ReactNative/commands/check-architecture.md +220 -0
  216. package/Dev/i18n/de/ReactNative/commands/check-code-quality.md +287 -0
  217. package/Dev/i18n/de/ReactNative/commands/check-compliance.md +235 -0
  218. package/Dev/i18n/de/ReactNative/commands/check-security.md +438 -0
  219. package/Dev/i18n/de/ReactNative/commands/check-testing.md +316 -0
  220. package/Dev/i18n/de/ReactNative/commands/deep-link.md +568 -0
  221. package/Dev/i18n/de/ReactNative/commands/generate-screen.md +583 -0
  222. package/Dev/i18n/de/ReactNative/commands/native-module.md +596 -0
  223. package/Dev/i18n/de/ReactNative/commands/store-prepare.md +483 -0
  224. package/Dev/i18n/de/ReactNative/rules/00-project-context.md.template +425 -0
  225. package/Dev/i18n/de/ReactNative/rules/02-architecture.md +1253 -0
  226. package/Dev/i18n/de/ReactNative/rules/03-coding-standards.md +1230 -0
  227. package/Dev/i18n/de/ReactNative/rules/06-tooling.md +281 -0
  228. package/Dev/i18n/de/ReactNative/rules/07-testing-reactnative.md +386 -0
  229. package/Dev/i18n/de/ReactNative/rules/08-quality-tools.md +122 -0
  230. package/Dev/i18n/de/ReactNative/rules/11-security-reactnative.md +719 -0
  231. package/Dev/i18n/de/ReactNative/rules/12-performance.md +727 -0
  232. package/Dev/i18n/de/ReactNative/rules/13-state-management.md +607 -0
  233. package/Dev/i18n/de/ReactNative/rules/14-navigation.md +601 -0
  234. package/Dev/i18n/de/ReactNative/skills/architecture/REFERENCE.md +1253 -0
  235. package/Dev/i18n/de/ReactNative/skills/architecture/SKILL.md +10 -0
  236. package/Dev/i18n/de/ReactNative/skills/coding-standards/REFERENCE.md +1230 -0
  237. package/Dev/i18n/de/ReactNative/skills/coding-standards/SKILL.md +10 -0
  238. package/Dev/i18n/de/ReactNative/skills/navigation/REFERENCE.md +601 -0
  239. package/Dev/i18n/de/ReactNative/skills/navigation/SKILL.md +10 -0
  240. package/Dev/i18n/de/ReactNative/skills/performance/REFERENCE.md +727 -0
  241. package/Dev/i18n/de/ReactNative/skills/performance/SKILL.md +10 -0
  242. package/Dev/i18n/de/ReactNative/skills/quality-tools/REFERENCE.md +122 -0
  243. package/Dev/i18n/de/ReactNative/skills/quality-tools/SKILL.md +10 -0
  244. package/Dev/i18n/de/ReactNative/skills/security-reactnative/REFERENCE.md +719 -0
  245. package/Dev/i18n/de/ReactNative/skills/security-reactnative/SKILL.md +10 -0
  246. package/Dev/i18n/de/ReactNative/skills/state-management/REFERENCE.md +607 -0
  247. package/Dev/i18n/de/ReactNative/skills/state-management/SKILL.md +10 -0
  248. package/Dev/i18n/de/ReactNative/skills/testing-reactnative/REFERENCE.md +386 -0
  249. package/Dev/i18n/de/ReactNative/skills/testing-reactnative/SKILL.md +10 -0
  250. package/Dev/i18n/de/ReactNative/skills/tooling/REFERENCE.md +281 -0
  251. package/Dev/i18n/de/ReactNative/skills/tooling/SKILL.md +10 -0
  252. package/Dev/i18n/de/ReactNative/templates/component.md +170 -0
  253. package/Dev/i18n/de/ReactNative/templates/hook.md +204 -0
  254. package/Dev/i18n/de/ReactNative/templates/screen.md +159 -0
  255. package/Dev/i18n/de/ReactNative/templates/test-component.md +225 -0
  256. package/Dev/i18n/de/Symfony/CLAUDE.md.template +238 -0
  257. package/Dev/i18n/de/Symfony/adr/README.md +230 -0
  258. package/Dev/i18n/de/Symfony/adr/template.md +237 -0
  259. package/Dev/i18n/de/Symfony/agents/symfony-reviewer.md +408 -0
  260. package/Dev/i18n/de/Symfony/checklists/README.md +429 -0
  261. package/Dev/i18n/de/Symfony/checklists/new-feature.md +765 -0
  262. package/Dev/i18n/de/Symfony/checklists/pre-commit.md +527 -0
  263. package/Dev/i18n/de/Symfony/checklists/refactoring.md +975 -0
  264. package/Dev/i18n/de/Symfony/checklists/security-rgpd.md +920 -0
  265. package/Dev/i18n/de/Symfony/commands/api-endpoint.md +476 -0
  266. package/Dev/i18n/de/Symfony/commands/check-architecture.md +237 -0
  267. package/Dev/i18n/de/Symfony/commands/check-code-quality.md +327 -0
  268. package/Dev/i18n/de/Symfony/commands/check-compliance.md +177 -0
  269. package/Dev/i18n/de/Symfony/commands/check-security.md +582 -0
  270. package/Dev/i18n/de/Symfony/commands/check-testing.md +445 -0
  271. package/Dev/i18n/de/Symfony/commands/generate-command.md +350 -0
  272. package/Dev/i18n/de/Symfony/commands/generate-crud.md +440 -0
  273. package/Dev/i18n/de/Symfony/commands/migration-plan.md +347 -0
  274. package/Dev/i18n/de/Symfony/commands/optimize-doctrine.md +327 -0
  275. package/Dev/i18n/de/Symfony/examples/aggregate-examples.md +1128 -0
  276. package/Dev/i18n/de/Symfony/examples/clean-architecture-structure.md +645 -0
  277. package/Dev/i18n/de/Symfony/examples/domain-event-examples.md +1091 -0
  278. package/Dev/i18n/de/Symfony/examples/value-object-examples.md +1129 -0
  279. package/Dev/i18n/de/Symfony/rules/00-project-context.md.template +118 -0
  280. package/Dev/i18n/de/Symfony/rules/02-architecture-clean-ddd.md +813 -0
  281. package/Dev/i18n/de/Symfony/rules/03-coding-standards.md +402 -0
  282. package/Dev/i18n/de/Symfony/rules/06-docker-hadolint.md +772 -0
  283. package/Dev/i18n/de/Symfony/rules/07-testing-symfony.md +452 -0
  284. package/Dev/i18n/de/Symfony/rules/08-quality-tools.md +982 -0
  285. package/Dev/i18n/de/Symfony/rules/11-security-symfony.md +353 -0
  286. package/Dev/i18n/de/Symfony/rules/12-performance.md +888 -0
  287. package/Dev/i18n/de/Symfony/rules/13-ddd-patterns.md +1220 -0
  288. package/Dev/i18n/de/Symfony/rules/14-multitenant.md +432 -0
  289. package/Dev/i18n/de/Symfony/rules/15-doctrine-extensions.md +927 -0
  290. package/Dev/i18n/de/Symfony/rules/16-i18n.md +185 -0
  291. package/Dev/i18n/de/Symfony/rules/17-async.md +190 -0
  292. package/Dev/i18n/de/Symfony/rules/18-value-objects.md +536 -0
  293. package/Dev/i18n/de/Symfony/rules/19-aggregates.md +115 -0
  294. package/Dev/i18n/de/Symfony/rules/20-domain-events.md +129 -0
  295. package/Dev/i18n/de/Symfony/rules/21-cqrs.md +426 -0
  296. package/Dev/i18n/de/Symfony/skills/aggregates/REFERENCE.md +115 -0
  297. package/Dev/i18n/de/Symfony/skills/aggregates/SKILL.md +10 -0
  298. package/Dev/i18n/de/Symfony/skills/architecture-clean-ddd/REFERENCE.md +813 -0
  299. package/Dev/i18n/de/Symfony/skills/architecture-clean-ddd/SKILL.md +10 -0
  300. package/Dev/i18n/de/Symfony/skills/async/REFERENCE.md +190 -0
  301. package/Dev/i18n/de/Symfony/skills/async/SKILL.md +10 -0
  302. package/Dev/i18n/de/Symfony/skills/coding-standards/REFERENCE.md +402 -0
  303. package/Dev/i18n/de/Symfony/skills/coding-standards/SKILL.md +10 -0
  304. package/Dev/i18n/de/Symfony/skills/cqrs/REFERENCE.md +426 -0
  305. package/Dev/i18n/de/Symfony/skills/cqrs/SKILL.md +10 -0
  306. package/Dev/i18n/de/Symfony/skills/ddd-patterns/REFERENCE.md +1220 -0
  307. package/Dev/i18n/de/Symfony/skills/ddd-patterns/SKILL.md +10 -0
  308. package/Dev/i18n/de/Symfony/skills/docker-hadolint/REFERENCE.md +772 -0
  309. package/Dev/i18n/de/Symfony/skills/docker-hadolint/SKILL.md +10 -0
  310. package/Dev/i18n/de/Symfony/skills/doctrine-extensions/REFERENCE.md +927 -0
  311. package/Dev/i18n/de/Symfony/skills/doctrine-extensions/SKILL.md +10 -0
  312. package/Dev/i18n/de/Symfony/skills/domain-events/REFERENCE.md +129 -0
  313. package/Dev/i18n/de/Symfony/skills/domain-events/SKILL.md +10 -0
  314. package/Dev/i18n/de/Symfony/skills/i18n/REFERENCE.md +185 -0
  315. package/Dev/i18n/de/Symfony/skills/i18n/SKILL.md +10 -0
  316. package/Dev/i18n/de/Symfony/skills/multitenant/REFERENCE.md +432 -0
  317. package/Dev/i18n/de/Symfony/skills/multitenant/SKILL.md +10 -0
  318. package/Dev/i18n/de/Symfony/skills/performance/REFERENCE.md +888 -0
  319. package/Dev/i18n/de/Symfony/skills/performance/SKILL.md +10 -0
  320. package/Dev/i18n/de/Symfony/skills/quality-tools/REFERENCE.md +982 -0
  321. package/Dev/i18n/de/Symfony/skills/quality-tools/SKILL.md +10 -0
  322. package/Dev/i18n/de/Symfony/skills/security-symfony/REFERENCE.md +353 -0
  323. package/Dev/i18n/de/Symfony/skills/security-symfony/SKILL.md +10 -0
  324. package/Dev/i18n/de/Symfony/skills/testing-symfony/REFERENCE.md +452 -0
  325. package/Dev/i18n/de/Symfony/skills/testing-symfony/SKILL.md +10 -0
  326. package/Dev/i18n/de/Symfony/skills/value-objects/REFERENCE.md +536 -0
  327. package/Dev/i18n/de/Symfony/skills/value-objects/SKILL.md +10 -0
  328. package/Dev/i18n/de/Symfony/templates/README.md +279 -0
  329. package/Dev/i18n/de/Symfony/templates/aggregate-examples.md +1128 -0
  330. package/Dev/i18n/de/Symfony/templates/aggregate-root.md +785 -0
  331. package/Dev/i18n/de/Symfony/templates/analysis.md +485 -0
  332. package/Dev/i18n/de/Symfony/templates/clean-architecture-structure.md +645 -0
  333. package/Dev/i18n/de/Symfony/templates/domain-event-examples.md +1091 -0
  334. package/Dev/i18n/de/Symfony/templates/domain-event.md +681 -0
  335. package/Dev/i18n/de/Symfony/templates/service.md +527 -0
  336. package/Dev/i18n/de/Symfony/templates/template.md +237 -0
  337. package/Dev/i18n/de/Symfony/templates/test-behat.md +674 -0
  338. package/Dev/i18n/de/Symfony/templates/test-integration.md +698 -0
  339. package/Dev/i18n/de/Symfony/templates/test-unit.md +735 -0
  340. package/Dev/i18n/de/Symfony/templates/value-object-examples.md +1129 -0
  341. package/Dev/i18n/de/Symfony/templates/value-object.md +534 -0
  342. package/Dev/i18n/en/Common/agents/accessibility-expert.md +230 -0
  343. package/Dev/i18n/en/Common/agents/api-designer.md +396 -0
  344. package/Dev/i18n/en/Common/agents/database-architect.md +263 -0
  345. package/Dev/i18n/en/Common/agents/devops-engineer.md +207 -0
  346. package/Dev/i18n/en/Common/agents/performance-auditor.md +375 -0
  347. package/Dev/i18n/en/Common/agents/refactoring-specialist.md +303 -0
  348. package/Dev/i18n/en/Common/agents/research-assistant.md +256 -0
  349. package/Dev/i18n/en/Common/agents/tdd-coach.md +230 -0
  350. package/Dev/i18n/en/Common/agents/ui-designer.md +192 -0
  351. package/Dev/i18n/en/Common/agents/uiux-orchestrator.md +143 -0
  352. package/Dev/i18n/en/Common/agents/ux-ergonome.md +187 -0
  353. package/Dev/i18n/en/Common/agents/workflow-orchestrator.md +225 -0
  354. package/Dev/i18n/en/Common/checklists/code-review.md +153 -0
  355. package/Dev/i18n/en/Common/checklists/definition-of-done.md +104 -0
  356. package/Dev/i18n/en/Common/checklists/release.md +176 -0
  357. package/Dev/i18n/en/Common/checklists/security-review.md +167 -0
  358. package/Dev/i18n/en/Common/commands/a11y-audit.md +282 -0
  359. package/Dev/i18n/en/Common/commands/a11y-component.md +396 -0
  360. package/Dev/i18n/en/Common/commands/architecture-decision.md +366 -0
  361. package/Dev/i18n/en/Common/commands/daily-standup.md +216 -0
  362. package/Dev/i18n/en/Common/commands/docker-optimize.md +392 -0
  363. package/Dev/i18n/en/Common/commands/fix-bug-tdd.md +383 -0
  364. package/Dev/i18n/en/Common/commands/full-audit.md +191 -0
  365. package/Dev/i18n/en/Common/commands/generate-changelog.md +237 -0
  366. package/Dev/i18n/en/Common/commands/pre-commit-check.md +205 -0
  367. package/Dev/i18n/en/Common/commands/pre-merge-check.md +237 -0
  368. package/Dev/i18n/en/Common/commands/release-checklist.md +245 -0
  369. package/Dev/i18n/en/Common/commands/research-context7.md +253 -0
  370. package/Dev/i18n/en/Common/commands/setup-ci.md +522 -0
  371. package/Dev/i18n/en/Common/commands/sprint-retro.md +329 -0
  372. package/Dev/i18n/en/Common/commands/sprint-review.md +0 -0
  373. package/Dev/i18n/en/Common/commands/sprint-start.md +0 -0
  374. package/Dev/i18n/en/Common/commands/ui-design-tokens.md +282 -0
  375. package/Dev/i18n/en/Common/commands/uiux-audit.md +189 -0
  376. package/Dev/i18n/en/Common/commands/uiux-component-spec.md +264 -0
  377. package/Dev/i18n/en/Common/commands/uiux-orchestrator.md +98 -0
  378. package/Dev/i18n/en/Common/commands/ux-user-flow.md +272 -0
  379. package/Dev/i18n/en/Common/commands/workflow-analyze.md +204 -0
  380. package/Dev/i18n/en/Common/commands/workflow-design.md +275 -0
  381. package/Dev/i18n/en/Common/commands/workflow-implement.md +241 -0
  382. package/Dev/i18n/en/Common/commands/workflow-init.md +257 -0
  383. package/Dev/i18n/en/Common/commands/workflow-plan.md +224 -0
  384. package/Dev/i18n/en/Common/commands/workflow-status.md +292 -0
  385. package/Dev/i18n/en/Common/hooks/HOOKS-QUICKSTART.md +46 -0
  386. package/Dev/i18n/en/Common/hooks/scripts/block-dangerous-commands.sh +45 -0
  387. package/Dev/i18n/en/Common/hooks/scripts/notify-slack.sh +38 -0
  388. package/Dev/i18n/en/Common/hooks/scripts/post-edit-lint.sh +58 -0
  389. package/Dev/i18n/en/Common/hooks/scripts/pre-commit-check.sh +72 -0
  390. package/Dev/i18n/en/Common/hooks/scripts/quality-gate.sh +98 -0
  391. package/Dev/i18n/en/Common/hooks/scripts/session-init.sh +77 -0
  392. package/Dev/i18n/en/Common/hooks/templates/settings-hooks.json +75 -0
  393. package/Dev/i18n/en/Common/mcp/MCP-QUICKSTART.md +79 -0
  394. package/Dev/i18n/en/Common/mcp/templates/context7.mcp.json +9 -0
  395. package/Dev/i18n/en/Common/mcp/templates/full-stack.mcp.json +27 -0
  396. package/Dev/i18n/en/Common/mcp/templates/github.mcp.json +12 -0
  397. package/Dev/i18n/en/Common/mcp/templates/postgres.mcp.json +12 -0
  398. package/Dev/i18n/en/Common/mcp/templates/slack.mcp.json +13 -0
  399. package/Dev/i18n/en/Common/rules/00-project-context.md.template +118 -0
  400. package/Dev/i18n/en/Common/rules/01-workflow-analysis.md +226 -0
  401. package/Dev/i18n/en/Common/rules/04-solid-principles.md +396 -0
  402. package/Dev/i18n/en/Common/rules/05-kiss-dry-yagni.md +417 -0
  403. package/Dev/i18n/en/Common/rules/07-testing.md +463 -0
  404. package/Dev/i18n/en/Common/rules/09-git-workflow.md +541 -0
  405. package/Dev/i18n/en/Common/rules/10-documentation.md +555 -0
  406. package/Dev/i18n/en/Common/rules/11-security.md +540 -0
  407. package/Dev/i18n/en/Common/skills/documentation/REFERENCE.md +555 -0
  408. package/Dev/i18n/en/Common/skills/documentation/SKILL.md +10 -0
  409. package/Dev/i18n/en/Common/skills/git-workflow/REFERENCE.md +541 -0
  410. package/Dev/i18n/en/Common/skills/git-workflow/SKILL.md +10 -0
  411. package/Dev/i18n/en/Common/skills/kiss-dry-yagni/REFERENCE.md +417 -0
  412. package/Dev/i18n/en/Common/skills/kiss-dry-yagni/SKILL.md +10 -0
  413. package/Dev/i18n/en/Common/skills/security/REFERENCE.md +540 -0
  414. package/Dev/i18n/en/Common/skills/security/SKILL.md +10 -0
  415. package/Dev/i18n/en/Common/skills/solid-principles/REFERENCE.md +396 -0
  416. package/Dev/i18n/en/Common/skills/solid-principles/SKILL.md +10 -0
  417. package/Dev/i18n/en/Common/skills/testing/REFERENCE.md +463 -0
  418. package/Dev/i18n/en/Common/skills/testing/SKILL.md +10 -0
  419. package/Dev/i18n/en/Common/skills/workflow-analysis/REFERENCE.md +226 -0
  420. package/Dev/i18n/en/Common/skills/workflow-analysis/SKILL.md +10 -0
  421. package/Dev/i18n/en/Common/templates/CLAUDE.md.template +58 -0
  422. package/Dev/i18n/en/Common/templates/bug-report.md +64 -0
  423. package/Dev/i18n/en/Common/templates/feature-request.md +71 -0
  424. package/Dev/i18n/en/Common/templates/pull-request-template.md +84 -0
  425. package/Dev/i18n/en/Common/templates/settings.json.template +55 -0
  426. package/Dev/i18n/en/Common/templates/settings.local.json.template +10 -0
  427. package/Dev/i18n/en/Flutter/CLAUDE.md.template +447 -0
  428. package/Dev/i18n/en/Flutter/INDEX.md +392 -0
  429. package/Dev/i18n/en/Flutter/README.md +330 -0
  430. package/Dev/i18n/en/Flutter/STRUCTURE.md +289 -0
  431. package/Dev/i18n/en/Flutter/SUMMARY.md +348 -0
  432. package/Dev/i18n/en/Flutter/agents/flutter-reviewer.md +590 -0
  433. package/Dev/i18n/en/Flutter/checklists/new-feature.md +55 -0
  434. package/Dev/i18n/en/Flutter/checklists/pre-commit.md +52 -0
  435. package/Dev/i18n/en/Flutter/checklists/refactoring.md +30 -0
  436. package/Dev/i18n/en/Flutter/checklists/security.md +47 -0
  437. package/Dev/i18n/en/Flutter/commands/analyze-performance.md +357 -0
  438. package/Dev/i18n/en/Flutter/commands/check-architecture.md +92 -0
  439. package/Dev/i18n/en/Flutter/commands/check-code-quality.md +120 -0
  440. package/Dev/i18n/en/Flutter/commands/check-compliance.md +350 -0
  441. package/Dev/i18n/en/Flutter/commands/check-security.md +180 -0
  442. package/Dev/i18n/en/Flutter/commands/check-testing.md +140 -0
  443. package/Dev/i18n/en/Flutter/commands/generate-feature.md +540 -0
  444. package/Dev/i18n/en/Flutter/commands/generate-widget.md +557 -0
  445. package/Dev/i18n/en/Flutter/commands/golden-update.md +357 -0
  446. package/Dev/i18n/en/Flutter/commands/localization-check.md +316 -0
  447. package/Dev/i18n/en/Flutter/rules/00-project-context.md.template +511 -0
  448. package/Dev/i18n/en/Flutter/rules/02-architecture.md +455 -0
  449. package/Dev/i18n/en/Flutter/rules/03-coding-standards.md +247 -0
  450. package/Dev/i18n/en/Flutter/rules/06-tooling.md +542 -0
  451. package/Dev/i18n/en/Flutter/rules/07-testing-flutter.md +0 -0
  452. package/Dev/i18n/en/Flutter/rules/08-quality-tools.md +239 -0
  453. package/Dev/i18n/en/Flutter/rules/11-security-flutter.md +247 -0
  454. package/Dev/i18n/en/Flutter/rules/12-performance.md +230 -0
  455. package/Dev/i18n/en/Flutter/rules/13-state-management.md +0 -0
  456. package/Dev/i18n/en/Flutter/skills/architecture/REFERENCE.md +455 -0
  457. package/Dev/i18n/en/Flutter/skills/architecture/SKILL.md +10 -0
  458. package/Dev/i18n/en/Flutter/skills/coding-standards/REFERENCE.md +247 -0
  459. package/Dev/i18n/en/Flutter/skills/coding-standards/SKILL.md +10 -0
  460. package/Dev/i18n/en/Flutter/skills/performance/REFERENCE.md +230 -0
  461. package/Dev/i18n/en/Flutter/skills/performance/SKILL.md +10 -0
  462. package/Dev/i18n/en/Flutter/skills/quality-tools/REFERENCE.md +239 -0
  463. package/Dev/i18n/en/Flutter/skills/quality-tools/SKILL.md +10 -0
  464. package/Dev/i18n/en/Flutter/skills/security-flutter/REFERENCE.md +247 -0
  465. package/Dev/i18n/en/Flutter/skills/security-flutter/SKILL.md +10 -0
  466. package/Dev/i18n/en/Flutter/skills/state-management/REFERENCE.md +0 -0
  467. package/Dev/i18n/en/Flutter/skills/state-management/SKILL.md +10 -0
  468. package/Dev/i18n/en/Flutter/skills/testing-flutter/REFERENCE.md +0 -0
  469. package/Dev/i18n/en/Flutter/skills/testing-flutter/SKILL.md +10 -0
  470. package/Dev/i18n/en/Flutter/skills/tooling/REFERENCE.md +542 -0
  471. package/Dev/i18n/en/Flutter/skills/tooling/SKILL.md +10 -0
  472. package/Dev/i18n/en/Flutter/templates/bloc.md +118 -0
  473. package/Dev/i18n/en/Flutter/templates/repository.md +113 -0
  474. package/Dev/i18n/en/Flutter/templates/test-unit.md +67 -0
  475. package/Dev/i18n/en/Flutter/templates/test-widget.md +71 -0
  476. package/Dev/i18n/en/Flutter/templates/widget.md +119 -0
  477. package/Dev/i18n/en/Python/CLAUDE.md.template +442 -0
  478. package/Dev/i18n/en/Python/README.md +369 -0
  479. package/Dev/i18n/en/Python/SUMMARY.md +352 -0
  480. package/Dev/i18n/en/Python/agents/python-reviewer.md +118 -0
  481. package/Dev/i18n/en/Python/checklists/new-feature.md +423 -0
  482. package/Dev/i18n/en/Python/checklists/pre-commit.md +358 -0
  483. package/Dev/i18n/en/Python/commands/async-check.md +84 -0
  484. package/Dev/i18n/en/Python/commands/check-architecture.md +138 -0
  485. package/Dev/i18n/en/Python/commands/check-code-quality.md +174 -0
  486. package/Dev/i18n/en/Python/commands/check-compliance.md +260 -0
  487. package/Dev/i18n/en/Python/commands/check-security.md +207 -0
  488. package/Dev/i18n/en/Python/commands/check-testing.md +184 -0
  489. package/Dev/i18n/en/Python/commands/dependency-audit.md +198 -0
  490. package/Dev/i18n/en/Python/commands/generate-endpoint.md +90 -0
  491. package/Dev/i18n/en/Python/commands/generate-model.md +96 -0
  492. package/Dev/i18n/en/Python/commands/type-coverage.md +119 -0
  493. package/Dev/i18n/en/Python/examples/Makefile.example +435 -0
  494. package/Dev/i18n/en/Python/rules/00-project-context.md.template +190 -0
  495. package/Dev/i18n/en/Python/rules/02-architecture.md +444 -0
  496. package/Dev/i18n/en/Python/rules/03-coding-standards.md +572 -0
  497. package/Dev/i18n/en/Python/rules/06-tooling.md +351 -0
  498. package/Dev/i18n/en/Python/rules/07-testing-python.md +387 -0
  499. package/Dev/i18n/en/Python/skills/architecture/REFERENCE.md +444 -0
  500. package/Dev/i18n/en/Python/skills/architecture/SKILL.md +10 -0
  501. package/Dev/i18n/en/Python/skills/coding-standards/REFERENCE.md +572 -0
  502. package/Dev/i18n/en/Python/skills/coding-standards/SKILL.md +10 -0
  503. package/Dev/i18n/en/Python/skills/testing-python/REFERENCE.md +387 -0
  504. package/Dev/i18n/en/Python/skills/testing-python/SKILL.md +10 -0
  505. package/Dev/i18n/en/Python/skills/tooling/REFERENCE.md +351 -0
  506. package/Dev/i18n/en/Python/skills/tooling/SKILL.md +10 -0
  507. package/Dev/i18n/en/Python/templates/repository.md +120 -0
  508. package/Dev/i18n/en/Python/templates/service.md +125 -0
  509. package/Dev/i18n/en/React/CLAUDE.md.template +530 -0
  510. package/Dev/i18n/en/React/README.md +295 -0
  511. package/Dev/i18n/en/React/agents/react-reviewer.md +355 -0
  512. package/Dev/i18n/en/React/checklists/new-feature.md +109 -0
  513. package/Dev/i18n/en/React/checklists/pre-commit.md +142 -0
  514. package/Dev/i18n/en/React/commands/accessibility-check.md +234 -0
  515. package/Dev/i18n/en/React/commands/bundle-analyze.md +330 -0
  516. package/Dev/i18n/en/React/commands/check-architecture.md +390 -0
  517. package/Dev/i18n/en/React/commands/check-code-quality.md +466 -0
  518. package/Dev/i18n/en/React/commands/check-compliance.md +447 -0
  519. package/Dev/i18n/en/React/commands/check-security.md +397 -0
  520. package/Dev/i18n/en/React/commands/check-testing.md +488 -0
  521. package/Dev/i18n/en/React/commands/generate-component.md +516 -0
  522. package/Dev/i18n/en/React/commands/generate-hook.md +540 -0
  523. package/Dev/i18n/en/React/commands/storybook-story.md +618 -0
  524. package/Dev/i18n/en/React/rules/00-project-context.md.template +223 -0
  525. package/Dev/i18n/en/React/rules/02-architecture.md +651 -0
  526. package/Dev/i18n/en/React/rules/03-coding-standards.md +716 -0
  527. package/Dev/i18n/en/React/rules/06-tooling.md +777 -0
  528. package/Dev/i18n/en/React/rules/07-testing-react.md +999 -0
  529. package/Dev/i18n/en/React/rules/08-quality-tools.md +758 -0
  530. package/Dev/i18n/en/React/rules/11-security-react.md +793 -0
  531. package/Dev/i18n/en/React/skills/architecture/REFERENCE.md +651 -0
  532. package/Dev/i18n/en/React/skills/architecture/SKILL.md +10 -0
  533. package/Dev/i18n/en/React/skills/coding-standards/REFERENCE.md +716 -0
  534. package/Dev/i18n/en/React/skills/coding-standards/SKILL.md +10 -0
  535. package/Dev/i18n/en/React/skills/quality-tools/REFERENCE.md +758 -0
  536. package/Dev/i18n/en/React/skills/quality-tools/SKILL.md +10 -0
  537. package/Dev/i18n/en/React/skills/security-react/REFERENCE.md +793 -0
  538. package/Dev/i18n/en/React/skills/security-react/SKILL.md +10 -0
  539. package/Dev/i18n/en/React/skills/testing-react/REFERENCE.md +999 -0
  540. package/Dev/i18n/en/React/skills/testing-react/SKILL.md +10 -0
  541. package/Dev/i18n/en/React/skills/tooling/REFERENCE.md +777 -0
  542. package/Dev/i18n/en/React/skills/tooling/SKILL.md +10 -0
  543. package/Dev/i18n/en/React/templates/component.md +283 -0
  544. package/Dev/i18n/en/React/templates/hook.md +393 -0
  545. package/Dev/i18n/en/ReactNative/CLAUDE.md.template +543 -0
  546. package/Dev/i18n/en/ReactNative/FILES.md +143 -0
  547. package/Dev/i18n/en/ReactNative/INSTALLATION.md +407 -0
  548. package/Dev/i18n/en/ReactNative/README.md +437 -0
  549. package/Dev/i18n/en/ReactNative/SUMMARY.md +599 -0
  550. package/Dev/i18n/en/ReactNative/agents/reactnative-reviewer.md +380 -0
  551. package/Dev/i18n/en/ReactNative/checklists/new-feature.md +223 -0
  552. package/Dev/i18n/en/ReactNative/checklists/pre-commit.md +100 -0
  553. package/Dev/i18n/en/ReactNative/checklists/refactoring.md +303 -0
  554. package/Dev/i18n/en/ReactNative/checklists/security.md +380 -0
  555. package/Dev/i18n/en/ReactNative/commands/app-size.md +465 -0
  556. package/Dev/i18n/en/ReactNative/commands/check-architecture.md +220 -0
  557. package/Dev/i18n/en/ReactNative/commands/check-code-quality.md +287 -0
  558. package/Dev/i18n/en/ReactNative/commands/check-compliance.md +235 -0
  559. package/Dev/i18n/en/ReactNative/commands/check-security.md +438 -0
  560. package/Dev/i18n/en/ReactNative/commands/check-testing.md +316 -0
  561. package/Dev/i18n/en/ReactNative/commands/deep-link.md +568 -0
  562. package/Dev/i18n/en/ReactNative/commands/generate-screen.md +583 -0
  563. package/Dev/i18n/en/ReactNative/commands/native-module.md +596 -0
  564. package/Dev/i18n/en/ReactNative/commands/store-prepare.md +483 -0
  565. package/Dev/i18n/en/ReactNative/rules/00-project-context.md.template +425 -0
  566. package/Dev/i18n/en/ReactNative/rules/02-architecture.md +1253 -0
  567. package/Dev/i18n/en/ReactNative/rules/03-coding-standards.md +1230 -0
  568. package/Dev/i18n/en/ReactNative/rules/06-tooling.md +281 -0
  569. package/Dev/i18n/en/ReactNative/rules/07-testing-reactnative.md +386 -0
  570. package/Dev/i18n/en/ReactNative/rules/08-quality-tools.md +122 -0
  571. package/Dev/i18n/en/ReactNative/rules/11-security-reactnative.md +719 -0
  572. package/Dev/i18n/en/ReactNative/rules/12-performance.md +727 -0
  573. package/Dev/i18n/en/ReactNative/rules/13-state-management.md +607 -0
  574. package/Dev/i18n/en/ReactNative/rules/14-navigation.md +601 -0
  575. package/Dev/i18n/en/ReactNative/skills/architecture/REFERENCE.md +1253 -0
  576. package/Dev/i18n/en/ReactNative/skills/architecture/SKILL.md +10 -0
  577. package/Dev/i18n/en/ReactNative/skills/coding-standards/REFERENCE.md +1230 -0
  578. package/Dev/i18n/en/ReactNative/skills/coding-standards/SKILL.md +10 -0
  579. package/Dev/i18n/en/ReactNative/skills/navigation/REFERENCE.md +601 -0
  580. package/Dev/i18n/en/ReactNative/skills/navigation/SKILL.md +10 -0
  581. package/Dev/i18n/en/ReactNative/skills/performance/REFERENCE.md +727 -0
  582. package/Dev/i18n/en/ReactNative/skills/performance/SKILL.md +10 -0
  583. package/Dev/i18n/en/ReactNative/skills/quality-tools/REFERENCE.md +122 -0
  584. package/Dev/i18n/en/ReactNative/skills/quality-tools/SKILL.md +10 -0
  585. package/Dev/i18n/en/ReactNative/skills/security-reactnative/REFERENCE.md +719 -0
  586. package/Dev/i18n/en/ReactNative/skills/security-reactnative/SKILL.md +10 -0
  587. package/Dev/i18n/en/ReactNative/skills/state-management/REFERENCE.md +607 -0
  588. package/Dev/i18n/en/ReactNative/skills/state-management/SKILL.md +10 -0
  589. package/Dev/i18n/en/ReactNative/skills/testing-reactnative/REFERENCE.md +386 -0
  590. package/Dev/i18n/en/ReactNative/skills/testing-reactnative/SKILL.md +10 -0
  591. package/Dev/i18n/en/ReactNative/skills/tooling/REFERENCE.md +281 -0
  592. package/Dev/i18n/en/ReactNative/skills/tooling/SKILL.md +10 -0
  593. package/Dev/i18n/en/ReactNative/templates/component.md +170 -0
  594. package/Dev/i18n/en/ReactNative/templates/hook.md +204 -0
  595. package/Dev/i18n/en/ReactNative/templates/screen.md +159 -0
  596. package/Dev/i18n/en/ReactNative/templates/test-component.md +225 -0
  597. package/Dev/i18n/en/Symfony/CLAUDE.md.template +238 -0
  598. package/Dev/i18n/en/Symfony/adr/README.md +230 -0
  599. package/Dev/i18n/en/Symfony/adr/template.md +237 -0
  600. package/Dev/i18n/en/Symfony/agents/symfony-reviewer.md +406 -0
  601. package/Dev/i18n/en/Symfony/checklists/README.md +429 -0
  602. package/Dev/i18n/en/Symfony/checklists/new-feature.md +765 -0
  603. package/Dev/i18n/en/Symfony/checklists/pre-commit.md +527 -0
  604. package/Dev/i18n/en/Symfony/checklists/refactoring.md +975 -0
  605. package/Dev/i18n/en/Symfony/checklists/security-rgpd.md +920 -0
  606. package/Dev/i18n/en/Symfony/commands/api-endpoint.md +476 -0
  607. package/Dev/i18n/en/Symfony/commands/check-architecture.md +237 -0
  608. package/Dev/i18n/en/Symfony/commands/check-code-quality.md +327 -0
  609. package/Dev/i18n/en/Symfony/commands/check-compliance.md +177 -0
  610. package/Dev/i18n/en/Symfony/commands/check-security.md +582 -0
  611. package/Dev/i18n/en/Symfony/commands/check-testing.md +445 -0
  612. package/Dev/i18n/en/Symfony/commands/generate-command.md +350 -0
  613. package/Dev/i18n/en/Symfony/commands/generate-crud.md +440 -0
  614. package/Dev/i18n/en/Symfony/commands/migration-plan.md +347 -0
  615. package/Dev/i18n/en/Symfony/commands/optimize-doctrine.md +327 -0
  616. package/Dev/i18n/en/Symfony/examples/aggregate-examples.md +1128 -0
  617. package/Dev/i18n/en/Symfony/examples/clean-architecture-structure.md +645 -0
  618. package/Dev/i18n/en/Symfony/examples/domain-event-examples.md +1091 -0
  619. package/Dev/i18n/en/Symfony/examples/value-object-examples.md +1129 -0
  620. package/Dev/i18n/en/Symfony/rules/00-project-context.md.template +118 -0
  621. package/Dev/i18n/en/Symfony/rules/02-architecture-clean-ddd.md +979 -0
  622. package/Dev/i18n/en/Symfony/rules/03-coding-standards.md +402 -0
  623. package/Dev/i18n/en/Symfony/rules/06-docker-hadolint.md +767 -0
  624. package/Dev/i18n/en/Symfony/rules/07-testing-symfony.md +1121 -0
  625. package/Dev/i18n/en/Symfony/rules/08-quality-tools.md +982 -0
  626. package/Dev/i18n/en/Symfony/rules/11-security-symfony.md +1055 -0
  627. package/Dev/i18n/en/Symfony/rules/12-performance.md +888 -0
  628. package/Dev/i18n/en/Symfony/rules/13-ddd-patterns.md +1220 -0
  629. package/Dev/i18n/en/Symfony/rules/14-multitenant.md +432 -0
  630. package/Dev/i18n/en/Symfony/rules/15-doctrine-extensions.md +927 -0
  631. package/Dev/i18n/en/Symfony/rules/16-i18n.md +185 -0
  632. package/Dev/i18n/en/Symfony/rules/17-async.md +190 -0
  633. package/Dev/i18n/en/Symfony/rules/18-value-objects.md +536 -0
  634. package/Dev/i18n/en/Symfony/rules/19-aggregates.md +115 -0
  635. package/Dev/i18n/en/Symfony/rules/20-domain-events.md +129 -0
  636. package/Dev/i18n/en/Symfony/rules/21-cqrs.md +426 -0
  637. package/Dev/i18n/en/Symfony/skills/aggregates/REFERENCE.md +115 -0
  638. package/Dev/i18n/en/Symfony/skills/aggregates/SKILL.md +10 -0
  639. package/Dev/i18n/en/Symfony/skills/architecture-clean-ddd/REFERENCE.md +979 -0
  640. package/Dev/i18n/en/Symfony/skills/architecture-clean-ddd/SKILL.md +10 -0
  641. package/Dev/i18n/en/Symfony/skills/async/REFERENCE.md +190 -0
  642. package/Dev/i18n/en/Symfony/skills/async/SKILL.md +10 -0
  643. package/Dev/i18n/en/Symfony/skills/coding-standards/REFERENCE.md +402 -0
  644. package/Dev/i18n/en/Symfony/skills/coding-standards/SKILL.md +10 -0
  645. package/Dev/i18n/en/Symfony/skills/cqrs/REFERENCE.md +426 -0
  646. package/Dev/i18n/en/Symfony/skills/cqrs/SKILL.md +10 -0
  647. package/Dev/i18n/en/Symfony/skills/ddd-patterns/REFERENCE.md +1220 -0
  648. package/Dev/i18n/en/Symfony/skills/ddd-patterns/SKILL.md +10 -0
  649. package/Dev/i18n/en/Symfony/skills/docker-hadolint/REFERENCE.md +767 -0
  650. package/Dev/i18n/en/Symfony/skills/docker-hadolint/SKILL.md +10 -0
  651. package/Dev/i18n/en/Symfony/skills/doctrine-extensions/REFERENCE.md +927 -0
  652. package/Dev/i18n/en/Symfony/skills/doctrine-extensions/SKILL.md +10 -0
  653. package/Dev/i18n/en/Symfony/skills/domain-events/REFERENCE.md +129 -0
  654. package/Dev/i18n/en/Symfony/skills/domain-events/SKILL.md +10 -0
  655. package/Dev/i18n/en/Symfony/skills/i18n/REFERENCE.md +185 -0
  656. package/Dev/i18n/en/Symfony/skills/i18n/SKILL.md +10 -0
  657. package/Dev/i18n/en/Symfony/skills/multitenant/REFERENCE.md +432 -0
  658. package/Dev/i18n/en/Symfony/skills/multitenant/SKILL.md +10 -0
  659. package/Dev/i18n/en/Symfony/skills/performance/REFERENCE.md +888 -0
  660. package/Dev/i18n/en/Symfony/skills/performance/SKILL.md +10 -0
  661. package/Dev/i18n/en/Symfony/skills/quality-tools/REFERENCE.md +982 -0
  662. package/Dev/i18n/en/Symfony/skills/quality-tools/SKILL.md +10 -0
  663. package/Dev/i18n/en/Symfony/skills/security-symfony/REFERENCE.md +1055 -0
  664. package/Dev/i18n/en/Symfony/skills/security-symfony/SKILL.md +10 -0
  665. package/Dev/i18n/en/Symfony/skills/testing-symfony/REFERENCE.md +1121 -0
  666. package/Dev/i18n/en/Symfony/skills/testing-symfony/SKILL.md +10 -0
  667. package/Dev/i18n/en/Symfony/skills/value-objects/REFERENCE.md +536 -0
  668. package/Dev/i18n/en/Symfony/skills/value-objects/SKILL.md +10 -0
  669. package/Dev/i18n/en/Symfony/templates/README.md +279 -0
  670. package/Dev/i18n/en/Symfony/templates/aggregate-examples.md +1128 -0
  671. package/Dev/i18n/en/Symfony/templates/aggregate-root.md +860 -0
  672. package/Dev/i18n/en/Symfony/templates/analysis.md +323 -0
  673. package/Dev/i18n/en/Symfony/templates/clean-architecture-structure.md +645 -0
  674. package/Dev/i18n/en/Symfony/templates/domain-event-examples.md +1091 -0
  675. package/Dev/i18n/en/Symfony/templates/domain-event.md +681 -0
  676. package/Dev/i18n/en/Symfony/templates/service.md +527 -0
  677. package/Dev/i18n/en/Symfony/templates/template.md +237 -0
  678. package/Dev/i18n/en/Symfony/templates/test-behat.md +674 -0
  679. package/Dev/i18n/en/Symfony/templates/test-integration.md +698 -0
  680. package/Dev/i18n/en/Symfony/templates/test-unit.md +735 -0
  681. package/Dev/i18n/en/Symfony/templates/value-object-examples.md +1129 -0
  682. package/Dev/i18n/en/Symfony/templates/value-object.md +534 -0
  683. package/Dev/i18n/es/Common/agents/accessibility-expert.md +230 -0
  684. package/Dev/i18n/es/Common/agents/api-designer.md +396 -0
  685. package/Dev/i18n/es/Common/agents/database-architect.md +263 -0
  686. package/Dev/i18n/es/Common/agents/devops-engineer.md +207 -0
  687. package/Dev/i18n/es/Common/agents/performance-auditor.md +375 -0
  688. package/Dev/i18n/es/Common/agents/refactoring-specialist.md +303 -0
  689. package/Dev/i18n/es/Common/agents/research-assistant.md +320 -0
  690. package/Dev/i18n/es/Common/agents/tdd-coach.md +230 -0
  691. package/Dev/i18n/es/Common/agents/ui-designer.md +192 -0
  692. package/Dev/i18n/es/Common/agents/uiux-orchestrator.md +122 -0
  693. package/Dev/i18n/es/Common/agents/ux-ergonome.md +187 -0
  694. package/Dev/i18n/es/Common/agents/workflow-orchestrator.md +225 -0
  695. package/Dev/i18n/es/Common/checklists/code-review.md +153 -0
  696. package/Dev/i18n/es/Common/checklists/definition-of-done.md +104 -0
  697. package/Dev/i18n/es/Common/checklists/release.md +176 -0
  698. package/Dev/i18n/es/Common/checklists/security-review.md +167 -0
  699. package/Dev/i18n/es/Common/commands/a11y-audit.md +98 -0
  700. package/Dev/i18n/es/Common/commands/a11y-component.md +138 -0
  701. package/Dev/i18n/es/Common/commands/architecture-decision.md +366 -0
  702. package/Dev/i18n/es/Common/commands/daily-standup.md +216 -0
  703. package/Dev/i18n/es/Common/commands/docker-optimize.md +392 -0
  704. package/Dev/i18n/es/Common/commands/fix-bug-tdd.md +383 -0
  705. package/Dev/i18n/es/Common/commands/full-audit.md +191 -0
  706. package/Dev/i18n/es/Common/commands/generate-changelog.md +237 -0
  707. package/Dev/i18n/es/Common/commands/pre-commit-check.md +205 -0
  708. package/Dev/i18n/es/Common/commands/pre-merge-check.md +237 -0
  709. package/Dev/i18n/es/Common/commands/release-checklist.md +245 -0
  710. package/Dev/i18n/es/Common/commands/research-context7.md +253 -0
  711. package/Dev/i18n/es/Common/commands/setup-ci.md +522 -0
  712. package/Dev/i18n/es/Common/commands/sprint-retro.md +50 -0
  713. package/Dev/i18n/es/Common/commands/sprint-review.md +42 -0
  714. package/Dev/i18n/es/Common/commands/sprint-start.md +56 -0
  715. package/Dev/i18n/es/Common/commands/ui-design-tokens.md +118 -0
  716. package/Dev/i18n/es/Common/commands/uiux-audit.md +189 -0
  717. package/Dev/i18n/es/Common/commands/uiux-component-spec.md +264 -0
  718. package/Dev/i18n/es/Common/commands/uiux-orchestrator.md +98 -0
  719. package/Dev/i18n/es/Common/commands/ux-user-flow.md +109 -0
  720. package/Dev/i18n/es/Common/commands/workflow-analyze.md +204 -0
  721. package/Dev/i18n/es/Common/commands/workflow-design.md +275 -0
  722. package/Dev/i18n/es/Common/commands/workflow-implement.md +241 -0
  723. package/Dev/i18n/es/Common/commands/workflow-init.md +257 -0
  724. package/Dev/i18n/es/Common/commands/workflow-plan.md +224 -0
  725. package/Dev/i18n/es/Common/commands/workflow-status.md +292 -0
  726. package/Dev/i18n/es/Common/hooks/HOOKS-QUICKSTART.md +46 -0
  727. package/Dev/i18n/es/Common/hooks/scripts/block-dangerous-commands.sh +45 -0
  728. package/Dev/i18n/es/Common/hooks/scripts/notify-slack.sh +38 -0
  729. package/Dev/i18n/es/Common/hooks/scripts/post-edit-lint.sh +58 -0
  730. package/Dev/i18n/es/Common/hooks/scripts/pre-commit-check.sh +72 -0
  731. package/Dev/i18n/es/Common/hooks/scripts/quality-gate.sh +98 -0
  732. package/Dev/i18n/es/Common/hooks/scripts/session-init.sh +77 -0
  733. package/Dev/i18n/es/Common/hooks/templates/settings-hooks.json +75 -0
  734. package/Dev/i18n/es/Common/mcp/MCP-QUICKSTART.md +79 -0
  735. package/Dev/i18n/es/Common/mcp/templates/context7.mcp.json +9 -0
  736. package/Dev/i18n/es/Common/mcp/templates/full-stack.mcp.json +27 -0
  737. package/Dev/i18n/es/Common/mcp/templates/github.mcp.json +12 -0
  738. package/Dev/i18n/es/Common/mcp/templates/postgres.mcp.json +12 -0
  739. package/Dev/i18n/es/Common/mcp/templates/slack.mcp.json +13 -0
  740. package/Dev/i18n/es/Common/rules/00-project-context.md.template +118 -0
  741. package/Dev/i18n/es/Common/rules/01-workflow-analysis.md +226 -0
  742. package/Dev/i18n/es/Common/rules/04-solid-principles.md +396 -0
  743. package/Dev/i18n/es/Common/rules/05-kiss-dry-yagni.md +417 -0
  744. package/Dev/i18n/es/Common/rules/07-testing.md +463 -0
  745. package/Dev/i18n/es/Common/rules/09-git-workflow.md +541 -0
  746. package/Dev/i18n/es/Common/rules/10-documentation.md +555 -0
  747. package/Dev/i18n/es/Common/rules/11-security.md +540 -0
  748. package/Dev/i18n/es/Common/skills/documentation/REFERENCE.md +555 -0
  749. package/Dev/i18n/es/Common/skills/documentation/SKILL.md +10 -0
  750. package/Dev/i18n/es/Common/skills/git-workflow/REFERENCE.md +541 -0
  751. package/Dev/i18n/es/Common/skills/git-workflow/SKILL.md +10 -0
  752. package/Dev/i18n/es/Common/skills/kiss-dry-yagni/REFERENCE.md +417 -0
  753. package/Dev/i18n/es/Common/skills/kiss-dry-yagni/SKILL.md +10 -0
  754. package/Dev/i18n/es/Common/skills/security/REFERENCE.md +540 -0
  755. package/Dev/i18n/es/Common/skills/security/SKILL.md +10 -0
  756. package/Dev/i18n/es/Common/skills/solid-principles/REFERENCE.md +396 -0
  757. package/Dev/i18n/es/Common/skills/solid-principles/SKILL.md +10 -0
  758. package/Dev/i18n/es/Common/skills/testing/REFERENCE.md +463 -0
  759. package/Dev/i18n/es/Common/skills/testing/SKILL.md +10 -0
  760. package/Dev/i18n/es/Common/skills/workflow-analysis/REFERENCE.md +226 -0
  761. package/Dev/i18n/es/Common/skills/workflow-analysis/SKILL.md +10 -0
  762. package/Dev/i18n/es/Common/templates/CLAUDE.md.template +58 -0
  763. package/Dev/i18n/es/Common/templates/bug-report.md +46 -0
  764. package/Dev/i18n/es/Common/templates/feature-request.md +47 -0
  765. package/Dev/i18n/es/Common/templates/pull-request-template.md +59 -0
  766. package/Dev/i18n/es/Common/templates/settings.json.template +55 -0
  767. package/Dev/i18n/es/Common/templates/settings.local.json.template +10 -0
  768. package/Dev/i18n/es/Flutter/CLAUDE.md.template +447 -0
  769. package/Dev/i18n/es/Flutter/INDEX.md +392 -0
  770. package/Dev/i18n/es/Flutter/README.md +330 -0
  771. package/Dev/i18n/es/Flutter/STRUCTURE.md +289 -0
  772. package/Dev/i18n/es/Flutter/SUMMARY.md +348 -0
  773. package/Dev/i18n/es/Flutter/TRANSLATION_STATUS.md +99 -0
  774. package/Dev/i18n/es/Flutter/agents/flutter-reviewer.md +590 -0
  775. package/Dev/i18n/es/Flutter/checklists/new-feature.md +55 -0
  776. package/Dev/i18n/es/Flutter/checklists/pre-commit.md +52 -0
  777. package/Dev/i18n/es/Flutter/checklists/refactoring.md +30 -0
  778. package/Dev/i18n/es/Flutter/checklists/security.md +47 -0
  779. package/Dev/i18n/es/Flutter/commands/analyze-performance.md +357 -0
  780. package/Dev/i18n/es/Flutter/commands/check-architecture.md +92 -0
  781. package/Dev/i18n/es/Flutter/commands/check-code-quality.md +120 -0
  782. package/Dev/i18n/es/Flutter/commands/check-compliance.md +350 -0
  783. package/Dev/i18n/es/Flutter/commands/check-security.md +180 -0
  784. package/Dev/i18n/es/Flutter/commands/check-testing.md +140 -0
  785. package/Dev/i18n/es/Flutter/commands/generate-feature.md +540 -0
  786. package/Dev/i18n/es/Flutter/commands/generate-widget.md +557 -0
  787. package/Dev/i18n/es/Flutter/commands/golden-update.md +357 -0
  788. package/Dev/i18n/es/Flutter/commands/localization-check.md +316 -0
  789. package/Dev/i18n/es/Flutter/rules/00-project-context.md.template +511 -0
  790. package/Dev/i18n/es/Flutter/rules/02-architecture.md +455 -0
  791. package/Dev/i18n/es/Flutter/rules/03-coding-standards.md +247 -0
  792. package/Dev/i18n/es/Flutter/rules/06-tooling.md +542 -0
  793. package/Dev/i18n/es/Flutter/rules/07-testing-flutter.md +0 -0
  794. package/Dev/i18n/es/Flutter/rules/08-quality-tools.md +239 -0
  795. package/Dev/i18n/es/Flutter/rules/11-security-flutter.md +247 -0
  796. package/Dev/i18n/es/Flutter/rules/12-performance.md +230 -0
  797. package/Dev/i18n/es/Flutter/rules/13-state-management.md +0 -0
  798. package/Dev/i18n/es/Flutter/skills/architecture/REFERENCE.md +455 -0
  799. package/Dev/i18n/es/Flutter/skills/architecture/SKILL.md +10 -0
  800. package/Dev/i18n/es/Flutter/skills/coding-standards/REFERENCE.md +247 -0
  801. package/Dev/i18n/es/Flutter/skills/coding-standards/SKILL.md +10 -0
  802. package/Dev/i18n/es/Flutter/skills/performance/REFERENCE.md +230 -0
  803. package/Dev/i18n/es/Flutter/skills/performance/SKILL.md +10 -0
  804. package/Dev/i18n/es/Flutter/skills/quality-tools/REFERENCE.md +239 -0
  805. package/Dev/i18n/es/Flutter/skills/quality-tools/SKILL.md +10 -0
  806. package/Dev/i18n/es/Flutter/skills/security-flutter/REFERENCE.md +247 -0
  807. package/Dev/i18n/es/Flutter/skills/security-flutter/SKILL.md +10 -0
  808. package/Dev/i18n/es/Flutter/skills/state-management/REFERENCE.md +0 -0
  809. package/Dev/i18n/es/Flutter/skills/state-management/SKILL.md +10 -0
  810. package/Dev/i18n/es/Flutter/skills/testing-flutter/REFERENCE.md +0 -0
  811. package/Dev/i18n/es/Flutter/skills/testing-flutter/SKILL.md +10 -0
  812. package/Dev/i18n/es/Flutter/skills/tooling/REFERENCE.md +542 -0
  813. package/Dev/i18n/es/Flutter/skills/tooling/SKILL.md +10 -0
  814. package/Dev/i18n/es/Flutter/templates/bloc.md +118 -0
  815. package/Dev/i18n/es/Flutter/templates/repository.md +113 -0
  816. package/Dev/i18n/es/Flutter/templates/test-unit.md +67 -0
  817. package/Dev/i18n/es/Flutter/templates/test-widget.md +71 -0
  818. package/Dev/i18n/es/Flutter/templates/widget.md +119 -0
  819. package/Dev/i18n/es/Python/CLAUDE.md.template +442 -0
  820. package/Dev/i18n/es/Python/README.md +369 -0
  821. package/Dev/i18n/es/Python/SUMMARY.md +352 -0
  822. package/Dev/i18n/es/Python/agents/python-reviewer.md +118 -0
  823. package/Dev/i18n/es/Python/checklists/new-feature.md +423 -0
  824. package/Dev/i18n/es/Python/checklists/pre-commit.md +358 -0
  825. package/Dev/i18n/es/Python/commands/async-check.md +84 -0
  826. package/Dev/i18n/es/Python/commands/check-architecture.md +138 -0
  827. package/Dev/i18n/es/Python/commands/check-code-quality.md +174 -0
  828. package/Dev/i18n/es/Python/commands/check-compliance.md +199 -0
  829. package/Dev/i18n/es/Python/commands/check-security.md +207 -0
  830. package/Dev/i18n/es/Python/commands/check-testing.md +184 -0
  831. package/Dev/i18n/es/Python/commands/dependency-audit.md +198 -0
  832. package/Dev/i18n/es/Python/commands/generate-endpoint.md +90 -0
  833. package/Dev/i18n/es/Python/commands/generate-model.md +96 -0
  834. package/Dev/i18n/es/Python/commands/type-coverage.md +119 -0
  835. package/Dev/i18n/es/Python/examples/Makefile.example +435 -0
  836. package/Dev/i18n/es/Python/rules/00-project-context.md.template +190 -0
  837. package/Dev/i18n/es/Python/rules/02-architecture.md +445 -0
  838. package/Dev/i18n/es/Python/rules/03-coding-standards.md +572 -0
  839. package/Dev/i18n/es/Python/rules/06-tooling.md +351 -0
  840. package/Dev/i18n/es/Python/rules/07-testing-python.md +387 -0
  841. package/Dev/i18n/es/Python/skills/architecture/REFERENCE.md +445 -0
  842. package/Dev/i18n/es/Python/skills/architecture/SKILL.md +10 -0
  843. package/Dev/i18n/es/Python/skills/coding-standards/REFERENCE.md +572 -0
  844. package/Dev/i18n/es/Python/skills/coding-standards/SKILL.md +10 -0
  845. package/Dev/i18n/es/Python/skills/testing-python/REFERENCE.md +387 -0
  846. package/Dev/i18n/es/Python/skills/testing-python/SKILL.md +10 -0
  847. package/Dev/i18n/es/Python/skills/tooling/REFERENCE.md +351 -0
  848. package/Dev/i18n/es/Python/skills/tooling/SKILL.md +10 -0
  849. package/Dev/i18n/es/Python/templates/repository.md +120 -0
  850. package/Dev/i18n/es/Python/templates/service.md +125 -0
  851. package/Dev/i18n/es/React/CLAUDE.md.template +530 -0
  852. package/Dev/i18n/es/React/README.md +295 -0
  853. package/Dev/i18n/es/React/agents/react-reviewer.md +355 -0
  854. package/Dev/i18n/es/React/checklists/new-feature.md +296 -0
  855. package/Dev/i18n/es/React/checklists/pre-commit.md +250 -0
  856. package/Dev/i18n/es/React/commands/accessibility-check.md +345 -0
  857. package/Dev/i18n/es/React/commands/bundle-analyze.md +441 -0
  858. package/Dev/i18n/es/React/commands/check-architecture.md +452 -0
  859. package/Dev/i18n/es/React/commands/check-code-quality.md +466 -0
  860. package/Dev/i18n/es/React/commands/check-compliance.md +447 -0
  861. package/Dev/i18n/es/React/commands/check-security.md +353 -0
  862. package/Dev/i18n/es/React/commands/check-testing.md +394 -0
  863. package/Dev/i18n/es/React/commands/generate-component.md +402 -0
  864. package/Dev/i18n/es/React/commands/generate-hook.md +505 -0
  865. package/Dev/i18n/es/React/commands/storybook-story.md +522 -0
  866. package/Dev/i18n/es/React/rules/00-project-context.md.template +223 -0
  867. package/Dev/i18n/es/React/rules/02-architecture.md +583 -0
  868. package/Dev/i18n/es/React/rules/03-coding-standards.md +716 -0
  869. package/Dev/i18n/es/React/rules/06-tooling.md +777 -0
  870. package/Dev/i18n/es/React/rules/07-testing-react.md +999 -0
  871. package/Dev/i18n/es/React/rules/08-quality-tools.md +758 -0
  872. package/Dev/i18n/es/React/rules/11-security-react.md +793 -0
  873. package/Dev/i18n/es/React/skills/architecture/REFERENCE.md +583 -0
  874. package/Dev/i18n/es/React/skills/architecture/SKILL.md +10 -0
  875. package/Dev/i18n/es/React/skills/coding-standards/REFERENCE.md +716 -0
  876. package/Dev/i18n/es/React/skills/coding-standards/SKILL.md +10 -0
  877. package/Dev/i18n/es/React/skills/quality-tools/REFERENCE.md +758 -0
  878. package/Dev/i18n/es/React/skills/quality-tools/SKILL.md +10 -0
  879. package/Dev/i18n/es/React/skills/security-react/REFERENCE.md +793 -0
  880. package/Dev/i18n/es/React/skills/security-react/SKILL.md +10 -0
  881. package/Dev/i18n/es/React/skills/testing-react/REFERENCE.md +999 -0
  882. package/Dev/i18n/es/React/skills/testing-react/SKILL.md +10 -0
  883. package/Dev/i18n/es/React/skills/tooling/REFERENCE.md +777 -0
  884. package/Dev/i18n/es/React/skills/tooling/SKILL.md +10 -0
  885. package/Dev/i18n/es/React/templates/component.md +283 -0
  886. package/Dev/i18n/es/React/templates/hook.md +393 -0
  887. package/Dev/i18n/es/ReactNative/CLAUDE.md.template +543 -0
  888. package/Dev/i18n/es/ReactNative/FILES.md +144 -0
  889. package/Dev/i18n/es/ReactNative/INSTALLATION.md +407 -0
  890. package/Dev/i18n/es/ReactNative/README.md +437 -0
  891. package/Dev/i18n/es/ReactNative/SUMMARY.md +599 -0
  892. package/Dev/i18n/es/ReactNative/agents/reactnative-reviewer.md +380 -0
  893. package/Dev/i18n/es/ReactNative/checklists/new-feature.md +223 -0
  894. package/Dev/i18n/es/ReactNative/checklists/pre-commit.md +100 -0
  895. package/Dev/i18n/es/ReactNative/checklists/refactoring.md +303 -0
  896. package/Dev/i18n/es/ReactNative/checklists/security.md +380 -0
  897. package/Dev/i18n/es/ReactNative/commands/app-size.md +465 -0
  898. package/Dev/i18n/es/ReactNative/commands/check-architecture.md +220 -0
  899. package/Dev/i18n/es/ReactNative/commands/check-code-quality.md +287 -0
  900. package/Dev/i18n/es/ReactNative/commands/check-compliance.md +235 -0
  901. package/Dev/i18n/es/ReactNative/commands/check-security.md +177 -0
  902. package/Dev/i18n/es/ReactNative/commands/check-testing.md +258 -0
  903. package/Dev/i18n/es/ReactNative/commands/deep-link.md +132 -0
  904. package/Dev/i18n/es/ReactNative/commands/generate-screen.md +157 -0
  905. package/Dev/i18n/es/ReactNative/commands/native-module.md +249 -0
  906. package/Dev/i18n/es/ReactNative/commands/store-prepare.md +254 -0
  907. package/Dev/i18n/es/ReactNative/rules/00-project-context.md.template +425 -0
  908. package/Dev/i18n/es/ReactNative/rules/02-architecture.md +1253 -0
  909. package/Dev/i18n/es/ReactNative/rules/03-coding-standards.md +1230 -0
  910. package/Dev/i18n/es/ReactNative/rules/06-tooling.md +281 -0
  911. package/Dev/i18n/es/ReactNative/rules/07-testing-reactnative.md +386 -0
  912. package/Dev/i18n/es/ReactNative/rules/08-quality-tools.md +122 -0
  913. package/Dev/i18n/es/ReactNative/rules/11-security-reactnative.md +719 -0
  914. package/Dev/i18n/es/ReactNative/rules/12-performance.md +727 -0
  915. package/Dev/i18n/es/ReactNative/rules/13-state-management.md +607 -0
  916. package/Dev/i18n/es/ReactNative/rules/14-navigation.md +601 -0
  917. package/Dev/i18n/es/ReactNative/skills/architecture/REFERENCE.md +1253 -0
  918. package/Dev/i18n/es/ReactNative/skills/architecture/SKILL.md +10 -0
  919. package/Dev/i18n/es/ReactNative/skills/coding-standards/REFERENCE.md +1230 -0
  920. package/Dev/i18n/es/ReactNative/skills/coding-standards/SKILL.md +10 -0
  921. package/Dev/i18n/es/ReactNative/skills/navigation/REFERENCE.md +601 -0
  922. package/Dev/i18n/es/ReactNative/skills/navigation/SKILL.md +10 -0
  923. package/Dev/i18n/es/ReactNative/skills/performance/REFERENCE.md +727 -0
  924. package/Dev/i18n/es/ReactNative/skills/performance/SKILL.md +10 -0
  925. package/Dev/i18n/es/ReactNative/skills/quality-tools/REFERENCE.md +122 -0
  926. package/Dev/i18n/es/ReactNative/skills/quality-tools/SKILL.md +10 -0
  927. package/Dev/i18n/es/ReactNative/skills/security-reactnative/REFERENCE.md +719 -0
  928. package/Dev/i18n/es/ReactNative/skills/security-reactnative/SKILL.md +10 -0
  929. package/Dev/i18n/es/ReactNative/skills/state-management/REFERENCE.md +607 -0
  930. package/Dev/i18n/es/ReactNative/skills/state-management/SKILL.md +10 -0
  931. package/Dev/i18n/es/ReactNative/skills/testing-reactnative/REFERENCE.md +386 -0
  932. package/Dev/i18n/es/ReactNative/skills/testing-reactnative/SKILL.md +10 -0
  933. package/Dev/i18n/es/ReactNative/skills/tooling/REFERENCE.md +281 -0
  934. package/Dev/i18n/es/ReactNative/skills/tooling/SKILL.md +10 -0
  935. package/Dev/i18n/es/ReactNative/templates/component.md +170 -0
  936. package/Dev/i18n/es/ReactNative/templates/hook.md +204 -0
  937. package/Dev/i18n/es/ReactNative/templates/screen.md +159 -0
  938. package/Dev/i18n/es/ReactNative/templates/test-component.md +225 -0
  939. package/Dev/i18n/es/Symfony/CLAUDE.md.template +238 -0
  940. package/Dev/i18n/es/Symfony/adr/README.md +230 -0
  941. package/Dev/i18n/es/Symfony/adr/template.md +237 -0
  942. package/Dev/i18n/es/Symfony/agents/symfony-reviewer.md +406 -0
  943. package/Dev/i18n/es/Symfony/checklists/README.md +429 -0
  944. package/Dev/i18n/es/Symfony/checklists/new-feature.md +765 -0
  945. package/Dev/i18n/es/Symfony/checklists/pre-commit.md +527 -0
  946. package/Dev/i18n/es/Symfony/checklists/refactoring.md +975 -0
  947. package/Dev/i18n/es/Symfony/checklists/security-rgpd.md +920 -0
  948. package/Dev/i18n/es/Symfony/commands/api-endpoint.md +476 -0
  949. package/Dev/i18n/es/Symfony/commands/check-architecture.md +237 -0
  950. package/Dev/i18n/es/Symfony/commands/check-code-quality.md +327 -0
  951. package/Dev/i18n/es/Symfony/commands/check-compliance.md +177 -0
  952. package/Dev/i18n/es/Symfony/commands/check-security.md +138 -0
  953. package/Dev/i18n/es/Symfony/commands/check-testing.md +246 -0
  954. package/Dev/i18n/es/Symfony/commands/generate-command.md +350 -0
  955. package/Dev/i18n/es/Symfony/commands/generate-crud.md +127 -0
  956. package/Dev/i18n/es/Symfony/commands/migration-plan.md +114 -0
  957. package/Dev/i18n/es/Symfony/commands/optimize-doctrine.md +100 -0
  958. package/Dev/i18n/es/Symfony/examples/aggregate-examples.md +1128 -0
  959. package/Dev/i18n/es/Symfony/examples/clean-architecture-structure.md +645 -0
  960. package/Dev/i18n/es/Symfony/examples/domain-event-examples.md +1091 -0
  961. package/Dev/i18n/es/Symfony/examples/value-object-examples.md +1129 -0
  962. package/Dev/i18n/es/Symfony/rules/00-project-context.md.template +118 -0
  963. package/Dev/i18n/es/Symfony/rules/02-architecture-clean-ddd.md +270 -0
  964. package/Dev/i18n/es/Symfony/rules/03-coding-standards.md +402 -0
  965. package/Dev/i18n/es/Symfony/rules/06-docker-hadolint.md +265 -0
  966. package/Dev/i18n/es/Symfony/rules/07-testing-symfony.md +370 -0
  967. package/Dev/i18n/es/Symfony/rules/08-quality-tools.md +982 -0
  968. package/Dev/i18n/es/Symfony/rules/11-security-symfony.md +1055 -0
  969. package/Dev/i18n/es/Symfony/rules/12-performance.md +888 -0
  970. package/Dev/i18n/es/Symfony/rules/13-ddd-patterns.md +1220 -0
  971. package/Dev/i18n/es/Symfony/rules/14-multitenant.md +432 -0
  972. package/Dev/i18n/es/Symfony/rules/15-doctrine-extensions.md +927 -0
  973. package/Dev/i18n/es/Symfony/rules/16-i18n.md +185 -0
  974. package/Dev/i18n/es/Symfony/rules/17-async.md +190 -0
  975. package/Dev/i18n/es/Symfony/rules/18-value-objects.md +536 -0
  976. package/Dev/i18n/es/Symfony/rules/19-aggregates.md +115 -0
  977. package/Dev/i18n/es/Symfony/rules/20-domain-events.md +129 -0
  978. package/Dev/i18n/es/Symfony/rules/21-cqrs.md +426 -0
  979. package/Dev/i18n/es/Symfony/skills/aggregates/REFERENCE.md +115 -0
  980. package/Dev/i18n/es/Symfony/skills/aggregates/SKILL.md +10 -0
  981. package/Dev/i18n/es/Symfony/skills/architecture-clean-ddd/REFERENCE.md +270 -0
  982. package/Dev/i18n/es/Symfony/skills/architecture-clean-ddd/SKILL.md +10 -0
  983. package/Dev/i18n/es/Symfony/skills/async/REFERENCE.md +190 -0
  984. package/Dev/i18n/es/Symfony/skills/async/SKILL.md +10 -0
  985. package/Dev/i18n/es/Symfony/skills/coding-standards/REFERENCE.md +402 -0
  986. package/Dev/i18n/es/Symfony/skills/coding-standards/SKILL.md +10 -0
  987. package/Dev/i18n/es/Symfony/skills/cqrs/REFERENCE.md +426 -0
  988. package/Dev/i18n/es/Symfony/skills/cqrs/SKILL.md +10 -0
  989. package/Dev/i18n/es/Symfony/skills/ddd-patterns/REFERENCE.md +1220 -0
  990. package/Dev/i18n/es/Symfony/skills/ddd-patterns/SKILL.md +10 -0
  991. package/Dev/i18n/es/Symfony/skills/docker-hadolint/REFERENCE.md +265 -0
  992. package/Dev/i18n/es/Symfony/skills/docker-hadolint/SKILL.md +10 -0
  993. package/Dev/i18n/es/Symfony/skills/doctrine-extensions/REFERENCE.md +927 -0
  994. package/Dev/i18n/es/Symfony/skills/doctrine-extensions/SKILL.md +10 -0
  995. package/Dev/i18n/es/Symfony/skills/domain-events/REFERENCE.md +129 -0
  996. package/Dev/i18n/es/Symfony/skills/domain-events/SKILL.md +10 -0
  997. package/Dev/i18n/es/Symfony/skills/i18n/REFERENCE.md +185 -0
  998. package/Dev/i18n/es/Symfony/skills/i18n/SKILL.md +10 -0
  999. package/Dev/i18n/es/Symfony/skills/multitenant/REFERENCE.md +432 -0
  1000. package/Dev/i18n/es/Symfony/skills/multitenant/SKILL.md +10 -0
  1001. package/Dev/i18n/es/Symfony/skills/performance/REFERENCE.md +888 -0
  1002. package/Dev/i18n/es/Symfony/skills/performance/SKILL.md +10 -0
  1003. package/Dev/i18n/es/Symfony/skills/quality-tools/REFERENCE.md +982 -0
  1004. package/Dev/i18n/es/Symfony/skills/quality-tools/SKILL.md +10 -0
  1005. package/Dev/i18n/es/Symfony/skills/security-symfony/REFERENCE.md +1055 -0
  1006. package/Dev/i18n/es/Symfony/skills/security-symfony/SKILL.md +10 -0
  1007. package/Dev/i18n/es/Symfony/skills/testing-symfony/REFERENCE.md +370 -0
  1008. package/Dev/i18n/es/Symfony/skills/testing-symfony/SKILL.md +10 -0
  1009. package/Dev/i18n/es/Symfony/skills/value-objects/REFERENCE.md +536 -0
  1010. package/Dev/i18n/es/Symfony/skills/value-objects/SKILL.md +10 -0
  1011. package/Dev/i18n/es/Symfony/templates/README.md +279 -0
  1012. package/Dev/i18n/es/Symfony/templates/aggregate-examples.md +1128 -0
  1013. package/Dev/i18n/es/Symfony/templates/aggregate-root.md +226 -0
  1014. package/Dev/i18n/es/Symfony/templates/analysis.md +323 -0
  1015. package/Dev/i18n/es/Symfony/templates/clean-architecture-structure.md +226 -0
  1016. package/Dev/i18n/es/Symfony/templates/domain-event-examples.md +375 -0
  1017. package/Dev/i18n/es/Symfony/templates/domain-event.md +95 -0
  1018. package/Dev/i18n/es/Symfony/templates/service.md +123 -0
  1019. package/Dev/i18n/es/Symfony/templates/template.md +223 -0
  1020. package/Dev/i18n/es/Symfony/templates/test-behat.md +191 -0
  1021. package/Dev/i18n/es/Symfony/templates/test-integration.md +124 -0
  1022. package/Dev/i18n/es/Symfony/templates/test-unit.md +138 -0
  1023. package/Dev/i18n/es/Symfony/templates/value-object-examples.md +626 -0
  1024. package/Dev/i18n/es/Symfony/templates/value-object.md +136 -0
  1025. package/Dev/i18n/fr/Common/agents/accessibility-expert.md +230 -0
  1026. package/Dev/i18n/fr/Common/agents/api-designer.md +396 -0
  1027. package/Dev/i18n/fr/Common/agents/database-architect.md +263 -0
  1028. package/Dev/i18n/fr/Common/agents/devops-engineer.md +207 -0
  1029. package/Dev/i18n/fr/Common/agents/performance-auditor.md +375 -0
  1030. package/Dev/i18n/fr/Common/agents/refactoring-specialist.md +303 -0
  1031. package/Dev/i18n/fr/Common/agents/research-assistant.md +256 -0
  1032. package/Dev/i18n/fr/Common/agents/tdd-coach.md +230 -0
  1033. package/Dev/i18n/fr/Common/agents/ui-designer.md +192 -0
  1034. package/Dev/i18n/fr/Common/agents/uiux-orchestrator.md +143 -0
  1035. package/Dev/i18n/fr/Common/agents/ux-ergonome.md +187 -0
  1036. package/Dev/i18n/fr/Common/agents/workflow-orchestrator.md +225 -0
  1037. package/Dev/i18n/fr/Common/checklists/code-review.md +153 -0
  1038. package/Dev/i18n/fr/Common/checklists/definition-of-done.md +104 -0
  1039. package/Dev/i18n/fr/Common/checklists/release.md +176 -0
  1040. package/Dev/i18n/fr/Common/checklists/security-review.md +167 -0
  1041. package/Dev/i18n/fr/Common/commands/a11y-audit.md +282 -0
  1042. package/Dev/i18n/fr/Common/commands/a11y-component.md +396 -0
  1043. package/Dev/i18n/fr/Common/commands/architecture-decision.md +366 -0
  1044. package/Dev/i18n/fr/Common/commands/daily-standup.md +216 -0
  1045. package/Dev/i18n/fr/Common/commands/docker-optimize.md +392 -0
  1046. package/Dev/i18n/fr/Common/commands/fix-bug-tdd.md +383 -0
  1047. package/Dev/i18n/fr/Common/commands/full-audit.md +191 -0
  1048. package/Dev/i18n/fr/Common/commands/generate-changelog.md +237 -0
  1049. package/Dev/i18n/fr/Common/commands/pre-commit-check.md +205 -0
  1050. package/Dev/i18n/fr/Common/commands/pre-merge-check.md +237 -0
  1051. package/Dev/i18n/fr/Common/commands/release-checklist.md +245 -0
  1052. package/Dev/i18n/fr/Common/commands/research-context7.md +253 -0
  1053. package/Dev/i18n/fr/Common/commands/setup-ci.md +522 -0
  1054. package/Dev/i18n/fr/Common/commands/sprint-retro.md +329 -0
  1055. package/Dev/i18n/fr/Common/commands/sprint-review.md +313 -0
  1056. package/Dev/i18n/fr/Common/commands/sprint-start.md +285 -0
  1057. package/Dev/i18n/fr/Common/commands/ui-design-tokens.md +282 -0
  1058. package/Dev/i18n/fr/Common/commands/uiux-audit.md +189 -0
  1059. package/Dev/i18n/fr/Common/commands/uiux-component-spec.md +264 -0
  1060. package/Dev/i18n/fr/Common/commands/uiux-orchestrator.md +98 -0
  1061. package/Dev/i18n/fr/Common/commands/ux-user-flow.md +272 -0
  1062. package/Dev/i18n/fr/Common/commands/workflow-analyze.md +204 -0
  1063. package/Dev/i18n/fr/Common/commands/workflow-design.md +275 -0
  1064. package/Dev/i18n/fr/Common/commands/workflow-implement.md +241 -0
  1065. package/Dev/i18n/fr/Common/commands/workflow-init.md +257 -0
  1066. package/Dev/i18n/fr/Common/commands/workflow-plan.md +224 -0
  1067. package/Dev/i18n/fr/Common/commands/workflow-status.md +292 -0
  1068. package/Dev/i18n/fr/Common/hooks/HOOKS-QUICKSTART.md +46 -0
  1069. package/Dev/i18n/fr/Common/hooks/scripts/block-dangerous-commands.sh +45 -0
  1070. package/Dev/i18n/fr/Common/hooks/scripts/notify-slack.sh +38 -0
  1071. package/Dev/i18n/fr/Common/hooks/scripts/post-edit-lint.sh +58 -0
  1072. package/Dev/i18n/fr/Common/hooks/scripts/pre-commit-check.sh +72 -0
  1073. package/Dev/i18n/fr/Common/hooks/scripts/quality-gate.sh +98 -0
  1074. package/Dev/i18n/fr/Common/hooks/scripts/session-init.sh +77 -0
  1075. package/Dev/i18n/fr/Common/hooks/templates/settings-hooks.json +75 -0
  1076. package/Dev/i18n/fr/Common/mcp/MCP-QUICKSTART.md +79 -0
  1077. package/Dev/i18n/fr/Common/mcp/templates/context7.mcp.json +9 -0
  1078. package/Dev/i18n/fr/Common/mcp/templates/full-stack.mcp.json +27 -0
  1079. package/Dev/i18n/fr/Common/mcp/templates/github.mcp.json +12 -0
  1080. package/Dev/i18n/fr/Common/mcp/templates/postgres.mcp.json +12 -0
  1081. package/Dev/i18n/fr/Common/mcp/templates/slack.mcp.json +13 -0
  1082. package/Dev/i18n/fr/Common/rules/00-project-context.md.template +118 -0
  1083. package/Dev/i18n/fr/Common/rules/01-workflow-analysis.md +226 -0
  1084. package/Dev/i18n/fr/Common/rules/04-solid-principles.md +396 -0
  1085. package/Dev/i18n/fr/Common/rules/05-kiss-dry-yagni.md +417 -0
  1086. package/Dev/i18n/fr/Common/rules/07-testing.md +463 -0
  1087. package/Dev/i18n/fr/Common/rules/09-git-workflow.md +541 -0
  1088. package/Dev/i18n/fr/Common/rules/10-documentation.md +555 -0
  1089. package/Dev/i18n/fr/Common/rules/11-security.md +540 -0
  1090. package/Dev/i18n/fr/Common/skills/documentation/REFERENCE.md +555 -0
  1091. package/Dev/i18n/fr/Common/skills/documentation/SKILL.md +10 -0
  1092. package/Dev/i18n/fr/Common/skills/git-workflow/REFERENCE.md +541 -0
  1093. package/Dev/i18n/fr/Common/skills/git-workflow/SKILL.md +10 -0
  1094. package/Dev/i18n/fr/Common/skills/kiss-dry-yagni/REFERENCE.md +417 -0
  1095. package/Dev/i18n/fr/Common/skills/kiss-dry-yagni/SKILL.md +10 -0
  1096. package/Dev/i18n/fr/Common/skills/security/REFERENCE.md +540 -0
  1097. package/Dev/i18n/fr/Common/skills/security/SKILL.md +10 -0
  1098. package/Dev/i18n/fr/Common/skills/solid-principles/REFERENCE.md +396 -0
  1099. package/Dev/i18n/fr/Common/skills/solid-principles/SKILL.md +10 -0
  1100. package/Dev/i18n/fr/Common/skills/testing/REFERENCE.md +463 -0
  1101. package/Dev/i18n/fr/Common/skills/testing/SKILL.md +10 -0
  1102. package/Dev/i18n/fr/Common/skills/workflow-analysis/REFERENCE.md +226 -0
  1103. package/Dev/i18n/fr/Common/skills/workflow-analysis/SKILL.md +10 -0
  1104. package/Dev/i18n/fr/Common/templates/CLAUDE.md.template +58 -0
  1105. package/Dev/i18n/fr/Common/templates/bug-report.md +64 -0
  1106. package/Dev/i18n/fr/Common/templates/feature-request.md +71 -0
  1107. package/Dev/i18n/fr/Common/templates/pull-request-template.md +84 -0
  1108. package/Dev/i18n/fr/Common/templates/settings.json.template +55 -0
  1109. package/Dev/i18n/fr/Common/templates/settings.local.json.template +10 -0
  1110. package/Dev/i18n/fr/Flutter/CLAUDE.md.template +447 -0
  1111. package/Dev/i18n/fr/Flutter/INDEX.md +392 -0
  1112. package/Dev/i18n/fr/Flutter/README.md +330 -0
  1113. package/Dev/i18n/fr/Flutter/STRUCTURE.md +289 -0
  1114. package/Dev/i18n/fr/Flutter/SUMMARY.md +348 -0
  1115. package/Dev/i18n/fr/Flutter/agents/flutter-reviewer.md +590 -0
  1116. package/Dev/i18n/fr/Flutter/checklists/new-feature.md +55 -0
  1117. package/Dev/i18n/fr/Flutter/checklists/pre-commit.md +52 -0
  1118. package/Dev/i18n/fr/Flutter/checklists/refactoring.md +30 -0
  1119. package/Dev/i18n/fr/Flutter/checklists/security.md +47 -0
  1120. package/Dev/i18n/fr/Flutter/commands/analyze-performance.md +357 -0
  1121. package/Dev/i18n/fr/Flutter/commands/check-architecture.md +92 -0
  1122. package/Dev/i18n/fr/Flutter/commands/check-code-quality.md +120 -0
  1123. package/Dev/i18n/fr/Flutter/commands/check-compliance.md +350 -0
  1124. package/Dev/i18n/fr/Flutter/commands/check-security.md +180 -0
  1125. package/Dev/i18n/fr/Flutter/commands/check-testing.md +140 -0
  1126. package/Dev/i18n/fr/Flutter/commands/generate-feature.md +540 -0
  1127. package/Dev/i18n/fr/Flutter/commands/generate-widget.md +557 -0
  1128. package/Dev/i18n/fr/Flutter/commands/golden-update.md +357 -0
  1129. package/Dev/i18n/fr/Flutter/commands/localization-check.md +316 -0
  1130. package/Dev/i18n/fr/Flutter/rules/00-project-context.md.template +511 -0
  1131. package/Dev/i18n/fr/Flutter/rules/02-architecture.md +1763 -0
  1132. package/Dev/i18n/fr/Flutter/rules/03-coding-standards.md +1147 -0
  1133. package/Dev/i18n/fr/Flutter/rules/06-tooling.md +542 -0
  1134. package/Dev/i18n/fr/Flutter/rules/07-testing-flutter.md +692 -0
  1135. package/Dev/i18n/fr/Flutter/rules/08-quality-tools.md +239 -0
  1136. package/Dev/i18n/fr/Flutter/rules/11-security-flutter.md +247 -0
  1137. package/Dev/i18n/fr/Flutter/rules/12-performance.md +230 -0
  1138. package/Dev/i18n/fr/Flutter/rules/13-state-management.md +408 -0
  1139. package/Dev/i18n/fr/Flutter/skills/architecture/REFERENCE.md +1763 -0
  1140. package/Dev/i18n/fr/Flutter/skills/architecture/SKILL.md +10 -0
  1141. package/Dev/i18n/fr/Flutter/skills/coding-standards/REFERENCE.md +1147 -0
  1142. package/Dev/i18n/fr/Flutter/skills/coding-standards/SKILL.md +10 -0
  1143. package/Dev/i18n/fr/Flutter/skills/performance/REFERENCE.md +230 -0
  1144. package/Dev/i18n/fr/Flutter/skills/performance/SKILL.md +10 -0
  1145. package/Dev/i18n/fr/Flutter/skills/quality-tools/REFERENCE.md +239 -0
  1146. package/Dev/i18n/fr/Flutter/skills/quality-tools/SKILL.md +10 -0
  1147. package/Dev/i18n/fr/Flutter/skills/security-flutter/REFERENCE.md +247 -0
  1148. package/Dev/i18n/fr/Flutter/skills/security-flutter/SKILL.md +10 -0
  1149. package/Dev/i18n/fr/Flutter/skills/state-management/REFERENCE.md +408 -0
  1150. package/Dev/i18n/fr/Flutter/skills/state-management/SKILL.md +10 -0
  1151. package/Dev/i18n/fr/Flutter/skills/testing-flutter/REFERENCE.md +692 -0
  1152. package/Dev/i18n/fr/Flutter/skills/testing-flutter/SKILL.md +10 -0
  1153. package/Dev/i18n/fr/Flutter/skills/tooling/REFERENCE.md +542 -0
  1154. package/Dev/i18n/fr/Flutter/skills/tooling/SKILL.md +10 -0
  1155. package/Dev/i18n/fr/Flutter/templates/bloc.md +118 -0
  1156. package/Dev/i18n/fr/Flutter/templates/repository.md +113 -0
  1157. package/Dev/i18n/fr/Flutter/templates/test-unit.md +67 -0
  1158. package/Dev/i18n/fr/Flutter/templates/test-widget.md +71 -0
  1159. package/Dev/i18n/fr/Flutter/templates/widget.md +119 -0
  1160. package/Dev/i18n/fr/Python/CLAUDE.md.template +442 -0
  1161. package/Dev/i18n/fr/Python/README.md +369 -0
  1162. package/Dev/i18n/fr/Python/SUMMARY.md +352 -0
  1163. package/Dev/i18n/fr/Python/agents/python-reviewer.md +396 -0
  1164. package/Dev/i18n/fr/Python/checklists/new-feature.md +423 -0
  1165. package/Dev/i18n/fr/Python/checklists/pre-commit.md +358 -0
  1166. package/Dev/i18n/fr/Python/commands/async-check.md +557 -0
  1167. package/Dev/i18n/fr/Python/commands/check-architecture.md +138 -0
  1168. package/Dev/i18n/fr/Python/commands/check-code-quality.md +174 -0
  1169. package/Dev/i18n/fr/Python/commands/check-compliance.md +357 -0
  1170. package/Dev/i18n/fr/Python/commands/check-security.md +207 -0
  1171. package/Dev/i18n/fr/Python/commands/check-testing.md +184 -0
  1172. package/Dev/i18n/fr/Python/commands/dependency-audit.md +398 -0
  1173. package/Dev/i18n/fr/Python/commands/generate-endpoint.md +538 -0
  1174. package/Dev/i18n/fr/Python/commands/generate-model.md +410 -0
  1175. package/Dev/i18n/fr/Python/commands/type-coverage.md +509 -0
  1176. package/Dev/i18n/fr/Python/examples/Makefile.example +435 -0
  1177. package/Dev/i18n/fr/Python/rules/00-project-context.md.template +190 -0
  1178. package/Dev/i18n/fr/Python/rules/02-architecture.md +1383 -0
  1179. package/Dev/i18n/fr/Python/rules/03-coding-standards.md +934 -0
  1180. package/Dev/i18n/fr/Python/rules/06-tooling.md +730 -0
  1181. package/Dev/i18n/fr/Python/rules/07-testing-python.md +778 -0
  1182. package/Dev/i18n/fr/Python/skills/architecture/REFERENCE.md +1383 -0
  1183. package/Dev/i18n/fr/Python/skills/architecture/SKILL.md +10 -0
  1184. package/Dev/i18n/fr/Python/skills/coding-standards/REFERENCE.md +934 -0
  1185. package/Dev/i18n/fr/Python/skills/coding-standards/SKILL.md +10 -0
  1186. package/Dev/i18n/fr/Python/skills/testing-python/REFERENCE.md +778 -0
  1187. package/Dev/i18n/fr/Python/skills/testing-python/SKILL.md +10 -0
  1188. package/Dev/i18n/fr/Python/skills/tooling/REFERENCE.md +730 -0
  1189. package/Dev/i18n/fr/Python/skills/tooling/SKILL.md +10 -0
  1190. package/Dev/i18n/fr/Python/templates/repository.md +529 -0
  1191. package/Dev/i18n/fr/Python/templates/service.md +365 -0
  1192. package/Dev/i18n/fr/React/CLAUDE.md.template +530 -0
  1193. package/Dev/i18n/fr/React/README.md +295 -0
  1194. package/Dev/i18n/fr/React/agents/react-reviewer.md +355 -0
  1195. package/Dev/i18n/fr/React/checklists/new-feature.md +314 -0
  1196. package/Dev/i18n/fr/React/checklists/pre-commit.md +196 -0
  1197. package/Dev/i18n/fr/React/commands/accessibility-check.md +608 -0
  1198. package/Dev/i18n/fr/React/commands/bundle-analyze.md +474 -0
  1199. package/Dev/i18n/fr/React/commands/check-architecture.md +130 -0
  1200. package/Dev/i18n/fr/React/commands/check-code-quality.md +172 -0
  1201. package/Dev/i18n/fr/React/commands/check-compliance.md +375 -0
  1202. package/Dev/i18n/fr/React/commands/check-security.md +279 -0
  1203. package/Dev/i18n/fr/React/commands/check-testing.md +217 -0
  1204. package/Dev/i18n/fr/React/commands/generate-component.md +607 -0
  1205. package/Dev/i18n/fr/React/commands/generate-hook.md +677 -0
  1206. package/Dev/i18n/fr/React/commands/storybook-story.md +533 -0
  1207. package/Dev/i18n/fr/React/rules/00-project-context.md.template +223 -0
  1208. package/Dev/i18n/fr/React/rules/02-architecture.md +1005 -0
  1209. package/Dev/i18n/fr/React/rules/03-coding-standards.md +995 -0
  1210. package/Dev/i18n/fr/React/rules/06-tooling.md +777 -0
  1211. package/Dev/i18n/fr/React/rules/07-testing-react.md +999 -0
  1212. package/Dev/i18n/fr/React/rules/08-quality-tools.md +758 -0
  1213. package/Dev/i18n/fr/React/rules/11-security-react.md +793 -0
  1214. package/Dev/i18n/fr/React/skills/architecture/REFERENCE.md +1005 -0
  1215. package/Dev/i18n/fr/React/skills/architecture/SKILL.md +10 -0
  1216. package/Dev/i18n/fr/React/skills/coding-standards/REFERENCE.md +995 -0
  1217. package/Dev/i18n/fr/React/skills/coding-standards/SKILL.md +10 -0
  1218. package/Dev/i18n/fr/React/skills/quality-tools/REFERENCE.md +758 -0
  1219. package/Dev/i18n/fr/React/skills/quality-tools/SKILL.md +10 -0
  1220. package/Dev/i18n/fr/React/skills/security-react/REFERENCE.md +793 -0
  1221. package/Dev/i18n/fr/React/skills/security-react/SKILL.md +10 -0
  1222. package/Dev/i18n/fr/React/skills/testing-react/REFERENCE.md +999 -0
  1223. package/Dev/i18n/fr/React/skills/testing-react/SKILL.md +10 -0
  1224. package/Dev/i18n/fr/React/skills/tooling/REFERENCE.md +777 -0
  1225. package/Dev/i18n/fr/React/skills/tooling/SKILL.md +10 -0
  1226. package/Dev/i18n/fr/React/templates/component.md +283 -0
  1227. package/Dev/i18n/fr/React/templates/hook.md +393 -0
  1228. package/Dev/i18n/fr/ReactNative/CLAUDE.md.template +543 -0
  1229. package/Dev/i18n/fr/ReactNative/FILES.md +144 -0
  1230. package/Dev/i18n/fr/ReactNative/INSTALLATION.md +407 -0
  1231. package/Dev/i18n/fr/ReactNative/README.md +437 -0
  1232. package/Dev/i18n/fr/ReactNative/SUMMARY.md +599 -0
  1233. package/Dev/i18n/fr/ReactNative/agents/reactnative-reviewer.md +380 -0
  1234. package/Dev/i18n/fr/ReactNative/checklists/new-feature.md +223 -0
  1235. package/Dev/i18n/fr/ReactNative/checklists/pre-commit.md +100 -0
  1236. package/Dev/i18n/fr/ReactNative/checklists/refactoring.md +303 -0
  1237. package/Dev/i18n/fr/ReactNative/checklists/security.md +380 -0
  1238. package/Dev/i18n/fr/ReactNative/commands/app-size.md +465 -0
  1239. package/Dev/i18n/fr/ReactNative/commands/check-architecture.md +220 -0
  1240. package/Dev/i18n/fr/ReactNative/commands/check-code-quality.md +287 -0
  1241. package/Dev/i18n/fr/ReactNative/commands/check-compliance.md +192 -0
  1242. package/Dev/i18n/fr/ReactNative/commands/check-security.md +438 -0
  1243. package/Dev/i18n/fr/ReactNative/commands/check-testing.md +316 -0
  1244. package/Dev/i18n/fr/ReactNative/commands/deep-link.md +568 -0
  1245. package/Dev/i18n/fr/ReactNative/commands/generate-screen.md +583 -0
  1246. package/Dev/i18n/fr/ReactNative/commands/native-module.md +596 -0
  1247. package/Dev/i18n/fr/ReactNative/commands/store-prepare.md +483 -0
  1248. package/Dev/i18n/fr/ReactNative/rules/00-project-context.md.template +425 -0
  1249. package/Dev/i18n/fr/ReactNative/rules/02-architecture.md +1253 -0
  1250. package/Dev/i18n/fr/ReactNative/rules/03-coding-standards.md +1230 -0
  1251. package/Dev/i18n/fr/ReactNative/rules/06-tooling.md +281 -0
  1252. package/Dev/i18n/fr/ReactNative/rules/07-testing-reactnative.md +386 -0
  1253. package/Dev/i18n/fr/ReactNative/rules/08-quality-tools.md +122 -0
  1254. package/Dev/i18n/fr/ReactNative/rules/11-security-reactnative.md +719 -0
  1255. package/Dev/i18n/fr/ReactNative/rules/12-performance.md +727 -0
  1256. package/Dev/i18n/fr/ReactNative/rules/13-state-management.md +607 -0
  1257. package/Dev/i18n/fr/ReactNative/rules/14-navigation.md +601 -0
  1258. package/Dev/i18n/fr/ReactNative/skills/architecture/REFERENCE.md +1253 -0
  1259. package/Dev/i18n/fr/ReactNative/skills/architecture/SKILL.md +10 -0
  1260. package/Dev/i18n/fr/ReactNative/skills/coding-standards/REFERENCE.md +1230 -0
  1261. package/Dev/i18n/fr/ReactNative/skills/coding-standards/SKILL.md +10 -0
  1262. package/Dev/i18n/fr/ReactNative/skills/navigation/REFERENCE.md +601 -0
  1263. package/Dev/i18n/fr/ReactNative/skills/navigation/SKILL.md +10 -0
  1264. package/Dev/i18n/fr/ReactNative/skills/performance/REFERENCE.md +727 -0
  1265. package/Dev/i18n/fr/ReactNative/skills/performance/SKILL.md +10 -0
  1266. package/Dev/i18n/fr/ReactNative/skills/quality-tools/REFERENCE.md +122 -0
  1267. package/Dev/i18n/fr/ReactNative/skills/quality-tools/SKILL.md +10 -0
  1268. package/Dev/i18n/fr/ReactNative/skills/security-reactnative/REFERENCE.md +719 -0
  1269. package/Dev/i18n/fr/ReactNative/skills/security-reactnative/SKILL.md +10 -0
  1270. package/Dev/i18n/fr/ReactNative/skills/state-management/REFERENCE.md +607 -0
  1271. package/Dev/i18n/fr/ReactNative/skills/state-management/SKILL.md +10 -0
  1272. package/Dev/i18n/fr/ReactNative/skills/testing-reactnative/REFERENCE.md +386 -0
  1273. package/Dev/i18n/fr/ReactNative/skills/testing-reactnative/SKILL.md +10 -0
  1274. package/Dev/i18n/fr/ReactNative/skills/tooling/REFERENCE.md +281 -0
  1275. package/Dev/i18n/fr/ReactNative/skills/tooling/SKILL.md +10 -0
  1276. package/Dev/i18n/fr/ReactNative/templates/component.md +170 -0
  1277. package/Dev/i18n/fr/ReactNative/templates/hook.md +204 -0
  1278. package/Dev/i18n/fr/ReactNative/templates/screen.md +159 -0
  1279. package/Dev/i18n/fr/ReactNative/templates/test-component.md +225 -0
  1280. package/Dev/i18n/fr/Symfony/CLAUDE.md.template +238 -0
  1281. package/Dev/i18n/fr/Symfony/adr/README.md +279 -0
  1282. package/Dev/i18n/fr/Symfony/adr/template.md +237 -0
  1283. package/Dev/i18n/fr/Symfony/agents/symfony-reviewer.md +406 -0
  1284. package/Dev/i18n/fr/Symfony/checklists/README.md +429 -0
  1285. package/Dev/i18n/fr/Symfony/checklists/new-feature.md +765 -0
  1286. package/Dev/i18n/fr/Symfony/checklists/pre-commit.md +527 -0
  1287. package/Dev/i18n/fr/Symfony/checklists/refactoring.md +975 -0
  1288. package/Dev/i18n/fr/Symfony/checklists/security-rgpd.md +920 -0
  1289. package/Dev/i18n/fr/Symfony/commands/api-endpoint.md +476 -0
  1290. package/Dev/i18n/fr/Symfony/commands/check-architecture.md +237 -0
  1291. package/Dev/i18n/fr/Symfony/commands/check-code-quality.md +327 -0
  1292. package/Dev/i18n/fr/Symfony/commands/check-compliance.md +177 -0
  1293. package/Dev/i18n/fr/Symfony/commands/check-security.md +582 -0
  1294. package/Dev/i18n/fr/Symfony/commands/check-testing.md +445 -0
  1295. package/Dev/i18n/fr/Symfony/commands/generate-command.md +350 -0
  1296. package/Dev/i18n/fr/Symfony/commands/generate-crud.md +440 -0
  1297. package/Dev/i18n/fr/Symfony/commands/migration-plan.md +347 -0
  1298. package/Dev/i18n/fr/Symfony/commands/optimize-doctrine.md +327 -0
  1299. package/Dev/i18n/fr/Symfony/examples/aggregate-examples.md +1128 -0
  1300. package/Dev/i18n/fr/Symfony/examples/clean-architecture-structure.md +645 -0
  1301. package/Dev/i18n/fr/Symfony/examples/domain-event-examples.md +1091 -0
  1302. package/Dev/i18n/fr/Symfony/examples/value-object-examples.md +1129 -0
  1303. package/Dev/i18n/fr/Symfony/rules/00-project-context.md.template +118 -0
  1304. package/Dev/i18n/fr/Symfony/rules/02-architecture-clean-ddd.md +979 -0
  1305. package/Dev/i18n/fr/Symfony/rules/03-coding-standards.md +402 -0
  1306. package/Dev/i18n/fr/Symfony/rules/06-docker-hadolint.md +767 -0
  1307. package/Dev/i18n/fr/Symfony/rules/07-testing-symfony.md +1121 -0
  1308. package/Dev/i18n/fr/Symfony/rules/08-quality-tools.md +982 -0
  1309. package/Dev/i18n/fr/Symfony/rules/11-security-symfony.md +1055 -0
  1310. package/Dev/i18n/fr/Symfony/rules/12-performance.md +888 -0
  1311. package/Dev/i18n/fr/Symfony/rules/13-ddd-patterns.md +1220 -0
  1312. package/Dev/i18n/fr/Symfony/rules/14-multitenant.md +432 -0
  1313. package/Dev/i18n/fr/Symfony/rules/15-doctrine-extensions.md +927 -0
  1314. package/Dev/i18n/fr/Symfony/rules/16-i18n.md +185 -0
  1315. package/Dev/i18n/fr/Symfony/rules/17-async.md +190 -0
  1316. package/Dev/i18n/fr/Symfony/rules/18-value-objects.md +536 -0
  1317. package/Dev/i18n/fr/Symfony/rules/19-aggregates.md +115 -0
  1318. package/Dev/i18n/fr/Symfony/rules/20-domain-events.md +129 -0
  1319. package/Dev/i18n/fr/Symfony/rules/21-cqrs.md +426 -0
  1320. package/Dev/i18n/fr/Symfony/skills/aggregates/REFERENCE.md +115 -0
  1321. package/Dev/i18n/fr/Symfony/skills/aggregates/SKILL.md +10 -0
  1322. package/Dev/i18n/fr/Symfony/skills/architecture-clean-ddd/REFERENCE.md +979 -0
  1323. package/Dev/i18n/fr/Symfony/skills/architecture-clean-ddd/SKILL.md +10 -0
  1324. package/Dev/i18n/fr/Symfony/skills/async/REFERENCE.md +190 -0
  1325. package/Dev/i18n/fr/Symfony/skills/async/SKILL.md +10 -0
  1326. package/Dev/i18n/fr/Symfony/skills/coding-standards/REFERENCE.md +402 -0
  1327. package/Dev/i18n/fr/Symfony/skills/coding-standards/SKILL.md +10 -0
  1328. package/Dev/i18n/fr/Symfony/skills/cqrs/REFERENCE.md +426 -0
  1329. package/Dev/i18n/fr/Symfony/skills/cqrs/SKILL.md +10 -0
  1330. package/Dev/i18n/fr/Symfony/skills/ddd-patterns/REFERENCE.md +1220 -0
  1331. package/Dev/i18n/fr/Symfony/skills/ddd-patterns/SKILL.md +10 -0
  1332. package/Dev/i18n/fr/Symfony/skills/docker-hadolint/REFERENCE.md +767 -0
  1333. package/Dev/i18n/fr/Symfony/skills/docker-hadolint/SKILL.md +10 -0
  1334. package/Dev/i18n/fr/Symfony/skills/doctrine-extensions/REFERENCE.md +927 -0
  1335. package/Dev/i18n/fr/Symfony/skills/doctrine-extensions/SKILL.md +10 -0
  1336. package/Dev/i18n/fr/Symfony/skills/domain-events/REFERENCE.md +129 -0
  1337. package/Dev/i18n/fr/Symfony/skills/domain-events/SKILL.md +10 -0
  1338. package/Dev/i18n/fr/Symfony/skills/i18n/REFERENCE.md +185 -0
  1339. package/Dev/i18n/fr/Symfony/skills/i18n/SKILL.md +10 -0
  1340. package/Dev/i18n/fr/Symfony/skills/multitenant/REFERENCE.md +432 -0
  1341. package/Dev/i18n/fr/Symfony/skills/multitenant/SKILL.md +10 -0
  1342. package/Dev/i18n/fr/Symfony/skills/performance/REFERENCE.md +888 -0
  1343. package/Dev/i18n/fr/Symfony/skills/performance/SKILL.md +10 -0
  1344. package/Dev/i18n/fr/Symfony/skills/quality-tools/REFERENCE.md +982 -0
  1345. package/Dev/i18n/fr/Symfony/skills/quality-tools/SKILL.md +10 -0
  1346. package/Dev/i18n/fr/Symfony/skills/security-symfony/REFERENCE.md +1055 -0
  1347. package/Dev/i18n/fr/Symfony/skills/security-symfony/SKILL.md +10 -0
  1348. package/Dev/i18n/fr/Symfony/skills/testing-symfony/REFERENCE.md +1121 -0
  1349. package/Dev/i18n/fr/Symfony/skills/testing-symfony/SKILL.md +10 -0
  1350. package/Dev/i18n/fr/Symfony/skills/value-objects/REFERENCE.md +536 -0
  1351. package/Dev/i18n/fr/Symfony/skills/value-objects/SKILL.md +10 -0
  1352. package/Dev/i18n/fr/Symfony/templates/README.md +279 -0
  1353. package/Dev/i18n/fr/Symfony/templates/aggregate-examples.md +1128 -0
  1354. package/Dev/i18n/fr/Symfony/templates/aggregate-root.md +860 -0
  1355. package/Dev/i18n/fr/Symfony/templates/analysis.md +323 -0
  1356. package/Dev/i18n/fr/Symfony/templates/clean-architecture-structure.md +645 -0
  1357. package/Dev/i18n/fr/Symfony/templates/domain-event-examples.md +1091 -0
  1358. package/Dev/i18n/fr/Symfony/templates/domain-event.md +681 -0
  1359. package/Dev/i18n/fr/Symfony/templates/service.md +527 -0
  1360. package/Dev/i18n/fr/Symfony/templates/template.md +237 -0
  1361. package/Dev/i18n/fr/Symfony/templates/test-behat.md +674 -0
  1362. package/Dev/i18n/fr/Symfony/templates/test-integration.md +698 -0
  1363. package/Dev/i18n/fr/Symfony/templates/test-unit.md +735 -0
  1364. package/Dev/i18n/fr/Symfony/templates/value-object-examples.md +1129 -0
  1365. package/Dev/i18n/fr/Symfony/templates/value-object.md +534 -0
  1366. package/Dev/i18n/messages/de.sh +91 -0
  1367. package/Dev/i18n/messages/en.sh +91 -0
  1368. package/Dev/i18n/messages/es.sh +91 -0
  1369. package/Dev/i18n/messages/fr.sh +91 -0
  1370. package/Dev/i18n/messages/pt.sh +91 -0
  1371. package/Dev/i18n/pt/Common/agents/accessibility-expert.md +230 -0
  1372. package/Dev/i18n/pt/Common/agents/api-designer.md +396 -0
  1373. package/Dev/i18n/pt/Common/agents/database-architect.md +263 -0
  1374. package/Dev/i18n/pt/Common/agents/devops-engineer.md +207 -0
  1375. package/Dev/i18n/pt/Common/agents/performance-auditor.md +375 -0
  1376. package/Dev/i18n/pt/Common/agents/refactoring-specialist.md +303 -0
  1377. package/Dev/i18n/pt/Common/agents/research-assistant.md +256 -0
  1378. package/Dev/i18n/pt/Common/agents/tdd-coach.md +230 -0
  1379. package/Dev/i18n/pt/Common/agents/ui-designer.md +192 -0
  1380. package/Dev/i18n/pt/Common/agents/uiux-orchestrator.md +122 -0
  1381. package/Dev/i18n/pt/Common/agents/ux-ergonome.md +187 -0
  1382. package/Dev/i18n/pt/Common/agents/workflow-orchestrator.md +225 -0
  1383. package/Dev/i18n/pt/Common/checklists/code-review.md +153 -0
  1384. package/Dev/i18n/pt/Common/checklists/definition-of-done.md +104 -0
  1385. package/Dev/i18n/pt/Common/checklists/release.md +176 -0
  1386. package/Dev/i18n/pt/Common/checklists/security-review.md +167 -0
  1387. package/Dev/i18n/pt/Common/commands/a11y-audit.md +98 -0
  1388. package/Dev/i18n/pt/Common/commands/a11y-component.md +138 -0
  1389. package/Dev/i18n/pt/Common/commands/architecture-decision.md +366 -0
  1390. package/Dev/i18n/pt/Common/commands/daily-standup.md +216 -0
  1391. package/Dev/i18n/pt/Common/commands/docker-optimize.md +392 -0
  1392. package/Dev/i18n/pt/Common/commands/fix-bug-tdd.md +383 -0
  1393. package/Dev/i18n/pt/Common/commands/full-audit.md +191 -0
  1394. package/Dev/i18n/pt/Common/commands/generate-changelog.md +237 -0
  1395. package/Dev/i18n/pt/Common/commands/pre-commit-check.md +205 -0
  1396. package/Dev/i18n/pt/Common/commands/pre-merge-check.md +237 -0
  1397. package/Dev/i18n/pt/Common/commands/release-checklist.md +245 -0
  1398. package/Dev/i18n/pt/Common/commands/research-context7.md +253 -0
  1399. package/Dev/i18n/pt/Common/commands/setup-ci.md +522 -0
  1400. package/Dev/i18n/pt/Common/commands/sprint-retro.md +329 -0
  1401. package/Dev/i18n/pt/Common/commands/sprint-review.md +313 -0
  1402. package/Dev/i18n/pt/Common/commands/sprint-start.md +285 -0
  1403. package/Dev/i18n/pt/Common/commands/ui-design-tokens.md +118 -0
  1404. package/Dev/i18n/pt/Common/commands/uiux-audit.md +189 -0
  1405. package/Dev/i18n/pt/Common/commands/uiux-component-spec.md +264 -0
  1406. package/Dev/i18n/pt/Common/commands/uiux-orchestrator.md +98 -0
  1407. package/Dev/i18n/pt/Common/commands/ux-user-flow.md +109 -0
  1408. package/Dev/i18n/pt/Common/commands/workflow-analyze.md +204 -0
  1409. package/Dev/i18n/pt/Common/commands/workflow-design.md +275 -0
  1410. package/Dev/i18n/pt/Common/commands/workflow-implement.md +241 -0
  1411. package/Dev/i18n/pt/Common/commands/workflow-init.md +257 -0
  1412. package/Dev/i18n/pt/Common/commands/workflow-plan.md +224 -0
  1413. package/Dev/i18n/pt/Common/commands/workflow-status.md +292 -0
  1414. package/Dev/i18n/pt/Common/hooks/HOOKS-QUICKSTART.md +46 -0
  1415. package/Dev/i18n/pt/Common/hooks/scripts/block-dangerous-commands.sh +45 -0
  1416. package/Dev/i18n/pt/Common/hooks/scripts/notify-slack.sh +38 -0
  1417. package/Dev/i18n/pt/Common/hooks/scripts/post-edit-lint.sh +58 -0
  1418. package/Dev/i18n/pt/Common/hooks/scripts/pre-commit-check.sh +72 -0
  1419. package/Dev/i18n/pt/Common/hooks/scripts/quality-gate.sh +98 -0
  1420. package/Dev/i18n/pt/Common/hooks/scripts/session-init.sh +77 -0
  1421. package/Dev/i18n/pt/Common/hooks/templates/settings-hooks.json +75 -0
  1422. package/Dev/i18n/pt/Common/mcp/MCP-QUICKSTART.md +79 -0
  1423. package/Dev/i18n/pt/Common/mcp/templates/context7.mcp.json +9 -0
  1424. package/Dev/i18n/pt/Common/mcp/templates/full-stack.mcp.json +27 -0
  1425. package/Dev/i18n/pt/Common/mcp/templates/github.mcp.json +12 -0
  1426. package/Dev/i18n/pt/Common/mcp/templates/postgres.mcp.json +12 -0
  1427. package/Dev/i18n/pt/Common/mcp/templates/slack.mcp.json +13 -0
  1428. package/Dev/i18n/pt/Common/rules/00-project-context.md.template +118 -0
  1429. package/Dev/i18n/pt/Common/rules/01-workflow-analysis.md +226 -0
  1430. package/Dev/i18n/pt/Common/rules/04-solid-principles.md +396 -0
  1431. package/Dev/i18n/pt/Common/rules/05-kiss-dry-yagni.md +417 -0
  1432. package/Dev/i18n/pt/Common/rules/07-testing.md +463 -0
  1433. package/Dev/i18n/pt/Common/rules/09-git-workflow.md +541 -0
  1434. package/Dev/i18n/pt/Common/rules/10-documentation.md +555 -0
  1435. package/Dev/i18n/pt/Common/rules/11-security.md +540 -0
  1436. package/Dev/i18n/pt/Common/skills/documentation/REFERENCE.md +555 -0
  1437. package/Dev/i18n/pt/Common/skills/documentation/SKILL.md +10 -0
  1438. package/Dev/i18n/pt/Common/skills/git-workflow/REFERENCE.md +541 -0
  1439. package/Dev/i18n/pt/Common/skills/git-workflow/SKILL.md +10 -0
  1440. package/Dev/i18n/pt/Common/skills/kiss-dry-yagni/REFERENCE.md +417 -0
  1441. package/Dev/i18n/pt/Common/skills/kiss-dry-yagni/SKILL.md +10 -0
  1442. package/Dev/i18n/pt/Common/skills/security/REFERENCE.md +540 -0
  1443. package/Dev/i18n/pt/Common/skills/security/SKILL.md +10 -0
  1444. package/Dev/i18n/pt/Common/skills/solid-principles/REFERENCE.md +396 -0
  1445. package/Dev/i18n/pt/Common/skills/solid-principles/SKILL.md +10 -0
  1446. package/Dev/i18n/pt/Common/skills/testing/REFERENCE.md +463 -0
  1447. package/Dev/i18n/pt/Common/skills/testing/SKILL.md +10 -0
  1448. package/Dev/i18n/pt/Common/skills/workflow-analysis/REFERENCE.md +226 -0
  1449. package/Dev/i18n/pt/Common/skills/workflow-analysis/SKILL.md +10 -0
  1450. package/Dev/i18n/pt/Common/templates/CLAUDE.md.template +58 -0
  1451. package/Dev/i18n/pt/Common/templates/bug-report.md +64 -0
  1452. package/Dev/i18n/pt/Common/templates/feature-request.md +71 -0
  1453. package/Dev/i18n/pt/Common/templates/pull-request-template.md +84 -0
  1454. package/Dev/i18n/pt/Common/templates/settings.json.template +55 -0
  1455. package/Dev/i18n/pt/Common/templates/settings.local.json.template +10 -0
  1456. package/Dev/i18n/pt/Flutter/CLAUDE.md.template +447 -0
  1457. package/Dev/i18n/pt/Flutter/INDEX.md +392 -0
  1458. package/Dev/i18n/pt/Flutter/README.md +330 -0
  1459. package/Dev/i18n/pt/Flutter/STRUCTURE.md +289 -0
  1460. package/Dev/i18n/pt/Flutter/SUMMARY.md +348 -0
  1461. package/Dev/i18n/pt/Flutter/agents/flutter-reviewer.md +590 -0
  1462. package/Dev/i18n/pt/Flutter/checklists/new-feature.md +55 -0
  1463. package/Dev/i18n/pt/Flutter/checklists/pre-commit.md +52 -0
  1464. package/Dev/i18n/pt/Flutter/checklists/refactoring.md +30 -0
  1465. package/Dev/i18n/pt/Flutter/checklists/security.md +47 -0
  1466. package/Dev/i18n/pt/Flutter/commands/analyze-performance.md +72 -0
  1467. package/Dev/i18n/pt/Flutter/commands/check-architecture.md +62 -0
  1468. package/Dev/i18n/pt/Flutter/commands/check-code-quality.md +61 -0
  1469. package/Dev/i18n/pt/Flutter/commands/check-compliance.md +44 -0
  1470. package/Dev/i18n/pt/Flutter/commands/check-security.md +62 -0
  1471. package/Dev/i18n/pt/Flutter/commands/check-testing.md +61 -0
  1472. package/Dev/i18n/pt/Flutter/commands/generate-feature.md +65 -0
  1473. package/Dev/i18n/pt/Flutter/commands/generate-widget.md +69 -0
  1474. package/Dev/i18n/pt/Flutter/commands/golden-update.md +81 -0
  1475. package/Dev/i18n/pt/Flutter/commands/localization-check.md +75 -0
  1476. package/Dev/i18n/pt/Flutter/rules/00-project-context.md.template +511 -0
  1477. package/Dev/i18n/pt/Flutter/rules/02-architecture.md +455 -0
  1478. package/Dev/i18n/pt/Flutter/rules/03-coding-standards.md +247 -0
  1479. package/Dev/i18n/pt/Flutter/rules/06-tooling.md +542 -0
  1480. package/Dev/i18n/pt/Flutter/rules/08-quality-tools.md +239 -0
  1481. package/Dev/i18n/pt/Flutter/rules/11-security-flutter.md +247 -0
  1482. package/Dev/i18n/pt/Flutter/rules/12-performance.md +230 -0
  1483. package/Dev/i18n/pt/Flutter/rules/13-state-management.md +408 -0
  1484. package/Dev/i18n/pt/Flutter/skills/architecture/REFERENCE.md +455 -0
  1485. package/Dev/i18n/pt/Flutter/skills/architecture/SKILL.md +10 -0
  1486. package/Dev/i18n/pt/Flutter/skills/coding-standards/REFERENCE.md +247 -0
  1487. package/Dev/i18n/pt/Flutter/skills/coding-standards/SKILL.md +10 -0
  1488. package/Dev/i18n/pt/Flutter/skills/performance/REFERENCE.md +230 -0
  1489. package/Dev/i18n/pt/Flutter/skills/performance/SKILL.md +10 -0
  1490. package/Dev/i18n/pt/Flutter/skills/quality-tools/REFERENCE.md +239 -0
  1491. package/Dev/i18n/pt/Flutter/skills/quality-tools/SKILL.md +10 -0
  1492. package/Dev/i18n/pt/Flutter/skills/security-flutter/REFERENCE.md +247 -0
  1493. package/Dev/i18n/pt/Flutter/skills/security-flutter/SKILL.md +10 -0
  1494. package/Dev/i18n/pt/Flutter/skills/state-management/REFERENCE.md +408 -0
  1495. package/Dev/i18n/pt/Flutter/skills/state-management/SKILL.md +10 -0
  1496. package/Dev/i18n/pt/Flutter/skills/tooling/REFERENCE.md +542 -0
  1497. package/Dev/i18n/pt/Flutter/skills/tooling/SKILL.md +10 -0
  1498. package/Dev/i18n/pt/Flutter/templates/bloc.md +118 -0
  1499. package/Dev/i18n/pt/Flutter/templates/repository.md +113 -0
  1500. package/Dev/i18n/pt/Flutter/templates/test-unit.md +67 -0
  1501. package/Dev/i18n/pt/Flutter/templates/test-widget.md +71 -0
  1502. package/Dev/i18n/pt/Flutter/templates/widget.md +119 -0
  1503. package/Dev/i18n/pt/Python/CLAUDE.md.template +442 -0
  1504. package/Dev/i18n/pt/Python/README.md +369 -0
  1505. package/Dev/i18n/pt/Python/SUMMARY.md +352 -0
  1506. package/Dev/i18n/pt/Python/agents/python-reviewer.md +118 -0
  1507. package/Dev/i18n/pt/Python/checklists/new-feature.md +423 -0
  1508. package/Dev/i18n/pt/Python/checklists/pre-commit.md +358 -0
  1509. package/Dev/i18n/pt/Python/commands/async-check.md +84 -0
  1510. package/Dev/i18n/pt/Python/commands/check-architecture.md +138 -0
  1511. package/Dev/i18n/pt/Python/commands/check-code-quality.md +174 -0
  1512. package/Dev/i18n/pt/Python/commands/check-compliance.md +260 -0
  1513. package/Dev/i18n/pt/Python/commands/check-security.md +207 -0
  1514. package/Dev/i18n/pt/Python/commands/check-testing.md +184 -0
  1515. package/Dev/i18n/pt/Python/commands/dependency-audit.md +198 -0
  1516. package/Dev/i18n/pt/Python/commands/generate-endpoint.md +90 -0
  1517. package/Dev/i18n/pt/Python/commands/generate-model.md +96 -0
  1518. package/Dev/i18n/pt/Python/commands/type-coverage.md +119 -0
  1519. package/Dev/i18n/pt/Python/examples/Makefile.example +435 -0
  1520. package/Dev/i18n/pt/Python/rules/00-project-context.md.template +190 -0
  1521. package/Dev/i18n/pt/Python/rules/02-architecture.md +444 -0
  1522. package/Dev/i18n/pt/Python/rules/03-coding-standards.md +572 -0
  1523. package/Dev/i18n/pt/Python/rules/06-tooling.md +351 -0
  1524. package/Dev/i18n/pt/Python/rules/07-testing-python.md +387 -0
  1525. package/Dev/i18n/pt/Python/skills/architecture/REFERENCE.md +444 -0
  1526. package/Dev/i18n/pt/Python/skills/architecture/SKILL.md +10 -0
  1527. package/Dev/i18n/pt/Python/skills/coding-standards/REFERENCE.md +572 -0
  1528. package/Dev/i18n/pt/Python/skills/coding-standards/SKILL.md +10 -0
  1529. package/Dev/i18n/pt/Python/skills/testing-python/REFERENCE.md +387 -0
  1530. package/Dev/i18n/pt/Python/skills/testing-python/SKILL.md +10 -0
  1531. package/Dev/i18n/pt/Python/skills/tooling/REFERENCE.md +351 -0
  1532. package/Dev/i18n/pt/Python/skills/tooling/SKILL.md +10 -0
  1533. package/Dev/i18n/pt/Python/templates/repository.md +120 -0
  1534. package/Dev/i18n/pt/Python/templates/service.md +125 -0
  1535. package/Dev/i18n/pt/React/CLAUDE.md.template +530 -0
  1536. package/Dev/i18n/pt/React/README.md +295 -0
  1537. package/Dev/i18n/pt/React/TRANSLATION_STATUS.md +65 -0
  1538. package/Dev/i18n/pt/React/agents/react-reviewer.md +295 -0
  1539. package/Dev/i18n/pt/React/checklists/new-feature.md +205 -0
  1540. package/Dev/i18n/pt/React/checklists/pre-commit.md +190 -0
  1541. package/Dev/i18n/pt/React/commands/accessibility-check.md +125 -0
  1542. package/Dev/i18n/pt/React/commands/bundle-analyze.md +55 -0
  1543. package/Dev/i18n/pt/React/commands/check-architecture.md +55 -0
  1544. package/Dev/i18n/pt/React/commands/check-code-quality.md +60 -0
  1545. package/Dev/i18n/pt/React/commands/check-compliance.md +79 -0
  1546. package/Dev/i18n/pt/React/commands/check-security.md +58 -0
  1547. package/Dev/i18n/pt/React/commands/check-testing.md +58 -0
  1548. package/Dev/i18n/pt/React/commands/generate-component.md +81 -0
  1549. package/Dev/i18n/pt/React/commands/generate-hook.md +139 -0
  1550. package/Dev/i18n/pt/React/commands/storybook-story.md +133 -0
  1551. package/Dev/i18n/pt/React/rules/00-project-context.md.template +223 -0
  1552. package/Dev/i18n/pt/React/rules/02-architecture.md +651 -0
  1553. package/Dev/i18n/pt/React/rules/03-coding-standards.md +716 -0
  1554. package/Dev/i18n/pt/React/rules/06-tooling.md +777 -0
  1555. package/Dev/i18n/pt/React/rules/07-testing-react.md +999 -0
  1556. package/Dev/i18n/pt/React/rules/08-quality-tools.md +758 -0
  1557. package/Dev/i18n/pt/React/rules/11-security-react.md +793 -0
  1558. package/Dev/i18n/pt/React/skills/architecture/REFERENCE.md +651 -0
  1559. package/Dev/i18n/pt/React/skills/architecture/SKILL.md +10 -0
  1560. package/Dev/i18n/pt/React/skills/coding-standards/REFERENCE.md +716 -0
  1561. package/Dev/i18n/pt/React/skills/coding-standards/SKILL.md +10 -0
  1562. package/Dev/i18n/pt/React/skills/quality-tools/REFERENCE.md +758 -0
  1563. package/Dev/i18n/pt/React/skills/quality-tools/SKILL.md +10 -0
  1564. package/Dev/i18n/pt/React/skills/security-react/REFERENCE.md +793 -0
  1565. package/Dev/i18n/pt/React/skills/security-react/SKILL.md +10 -0
  1566. package/Dev/i18n/pt/React/skills/testing-react/REFERENCE.md +999 -0
  1567. package/Dev/i18n/pt/React/skills/testing-react/SKILL.md +10 -0
  1568. package/Dev/i18n/pt/React/skills/tooling/REFERENCE.md +777 -0
  1569. package/Dev/i18n/pt/React/skills/tooling/SKILL.md +10 -0
  1570. package/Dev/i18n/pt/React/templates/component.md +283 -0
  1571. package/Dev/i18n/pt/React/templates/hook.md +393 -0
  1572. package/Dev/i18n/pt/ReactNative/CLAUDE.md.template +543 -0
  1573. package/Dev/i18n/pt/ReactNative/FILES.md +144 -0
  1574. package/Dev/i18n/pt/ReactNative/INSTALLATION.md +407 -0
  1575. package/Dev/i18n/pt/ReactNative/README.md +437 -0
  1576. package/Dev/i18n/pt/ReactNative/SUMMARY.md +599 -0
  1577. package/Dev/i18n/pt/ReactNative/agents/reactnative-reviewer.md +167 -0
  1578. package/Dev/i18n/pt/ReactNative/checklists/new-feature.md +278 -0
  1579. package/Dev/i18n/pt/ReactNative/checklists/pre-commit.md +270 -0
  1580. package/Dev/i18n/pt/ReactNative/checklists/refactoring.md +388 -0
  1581. package/Dev/i18n/pt/ReactNative/checklists/security.md +357 -0
  1582. package/Dev/i18n/pt/ReactNative/commands/app-size.md +494 -0
  1583. package/Dev/i18n/pt/ReactNative/commands/check-architecture.md +203 -0
  1584. package/Dev/i18n/pt/ReactNative/commands/check-code-quality.md +116 -0
  1585. package/Dev/i18n/pt/ReactNative/commands/check-compliance.md +129 -0
  1586. package/Dev/i18n/pt/ReactNative/commands/check-security.md +190 -0
  1587. package/Dev/i18n/pt/ReactNative/commands/check-testing.md +126 -0
  1588. package/Dev/i18n/pt/ReactNative/commands/deep-link.md +586 -0
  1589. package/Dev/i18n/pt/ReactNative/commands/generate-screen.md +416 -0
  1590. package/Dev/i18n/pt/ReactNative/commands/native-module.md +139 -0
  1591. package/Dev/i18n/pt/ReactNative/commands/store-prepare.md +239 -0
  1592. package/Dev/i18n/pt/ReactNative/rules/00-project-context.md.template +425 -0
  1593. package/Dev/i18n/pt/ReactNative/rules/02-architecture.md +200 -0
  1594. package/Dev/i18n/pt/ReactNative/rules/03-coding-standards.md +1230 -0
  1595. package/Dev/i18n/pt/ReactNative/rules/06-tooling.md +281 -0
  1596. package/Dev/i18n/pt/ReactNative/rules/07-testing-reactnative.md +386 -0
  1597. package/Dev/i18n/pt/ReactNative/rules/08-quality-tools.md +122 -0
  1598. package/Dev/i18n/pt/ReactNative/rules/11-security-reactnative.md +719 -0
  1599. package/Dev/i18n/pt/ReactNative/rules/12-performance.md +727 -0
  1600. package/Dev/i18n/pt/ReactNative/rules/13-state-management.md +566 -0
  1601. package/Dev/i18n/pt/ReactNative/rules/14-navigation.md +601 -0
  1602. package/Dev/i18n/pt/ReactNative/skills/architecture/REFERENCE.md +200 -0
  1603. package/Dev/i18n/pt/ReactNative/skills/architecture/SKILL.md +10 -0
  1604. package/Dev/i18n/pt/ReactNative/skills/coding-standards/REFERENCE.md +1230 -0
  1605. package/Dev/i18n/pt/ReactNative/skills/coding-standards/SKILL.md +10 -0
  1606. package/Dev/i18n/pt/ReactNative/skills/navigation/REFERENCE.md +601 -0
  1607. package/Dev/i18n/pt/ReactNative/skills/navigation/SKILL.md +10 -0
  1608. package/Dev/i18n/pt/ReactNative/skills/performance/REFERENCE.md +727 -0
  1609. package/Dev/i18n/pt/ReactNative/skills/performance/SKILL.md +10 -0
  1610. package/Dev/i18n/pt/ReactNative/skills/quality-tools/REFERENCE.md +122 -0
  1611. package/Dev/i18n/pt/ReactNative/skills/quality-tools/SKILL.md +10 -0
  1612. package/Dev/i18n/pt/ReactNative/skills/security-reactnative/REFERENCE.md +719 -0
  1613. package/Dev/i18n/pt/ReactNative/skills/security-reactnative/SKILL.md +10 -0
  1614. package/Dev/i18n/pt/ReactNative/skills/state-management/REFERENCE.md +566 -0
  1615. package/Dev/i18n/pt/ReactNative/skills/state-management/SKILL.md +10 -0
  1616. package/Dev/i18n/pt/ReactNative/skills/testing-reactnative/REFERENCE.md +386 -0
  1617. package/Dev/i18n/pt/ReactNative/skills/testing-reactnative/SKILL.md +10 -0
  1618. package/Dev/i18n/pt/ReactNative/skills/tooling/REFERENCE.md +281 -0
  1619. package/Dev/i18n/pt/ReactNative/skills/tooling/SKILL.md +10 -0
  1620. package/Dev/i18n/pt/ReactNative/templates/component.md +170 -0
  1621. package/Dev/i18n/pt/ReactNative/templates/hook.md +204 -0
  1622. package/Dev/i18n/pt/ReactNative/templates/screen.md +159 -0
  1623. package/Dev/i18n/pt/ReactNative/templates/test-component.md +225 -0
  1624. package/Dev/i18n/pt/Symfony/CLAUDE.md.template +238 -0
  1625. package/Dev/i18n/pt/Symfony/adr/README.md +230 -0
  1626. package/Dev/i18n/pt/Symfony/adr/template.md +237 -0
  1627. package/Dev/i18n/pt/Symfony/agents/symfony-reviewer.md +406 -0
  1628. package/Dev/i18n/pt/Symfony/checklists/README.md +429 -0
  1629. package/Dev/i18n/pt/Symfony/checklists/new-feature.md +765 -0
  1630. package/Dev/i18n/pt/Symfony/checklists/pre-commit.md +527 -0
  1631. package/Dev/i18n/pt/Symfony/checklists/refactoring.md +975 -0
  1632. package/Dev/i18n/pt/Symfony/checklists/security-rgpd.md +920 -0
  1633. package/Dev/i18n/pt/Symfony/commands/api-endpoint.md +476 -0
  1634. package/Dev/i18n/pt/Symfony/commands/check-architecture.md +237 -0
  1635. package/Dev/i18n/pt/Symfony/commands/check-code-quality.md +327 -0
  1636. package/Dev/i18n/pt/Symfony/commands/check-compliance.md +177 -0
  1637. package/Dev/i18n/pt/Symfony/commands/check-security.md +582 -0
  1638. package/Dev/i18n/pt/Symfony/commands/check-testing.md +445 -0
  1639. package/Dev/i18n/pt/Symfony/commands/generate-command.md +350 -0
  1640. package/Dev/i18n/pt/Symfony/commands/generate-crud.md +440 -0
  1641. package/Dev/i18n/pt/Symfony/commands/migration-plan.md +347 -0
  1642. package/Dev/i18n/pt/Symfony/commands/optimize-doctrine.md +327 -0
  1643. package/Dev/i18n/pt/Symfony/examples/aggregate-examples.md +1128 -0
  1644. package/Dev/i18n/pt/Symfony/examples/clean-architecture-structure.md +645 -0
  1645. package/Dev/i18n/pt/Symfony/examples/domain-event-examples.md +1091 -0
  1646. package/Dev/i18n/pt/Symfony/examples/value-object-examples.md +1129 -0
  1647. package/Dev/i18n/pt/Symfony/rules/00-project-context.md.template +118 -0
  1648. package/Dev/i18n/pt/Symfony/rules/02-architecture-clean-ddd.md +979 -0
  1649. package/Dev/i18n/pt/Symfony/rules/03-coding-standards.md +402 -0
  1650. package/Dev/i18n/pt/Symfony/rules/06-docker-hadolint.md +767 -0
  1651. package/Dev/i18n/pt/Symfony/rules/07-testing-symfony.md +1121 -0
  1652. package/Dev/i18n/pt/Symfony/rules/08-quality-tools.md +982 -0
  1653. package/Dev/i18n/pt/Symfony/rules/11-security-symfony.md +1055 -0
  1654. package/Dev/i18n/pt/Symfony/rules/12-performance.md +888 -0
  1655. package/Dev/i18n/pt/Symfony/rules/13-ddd-patterns.md +1220 -0
  1656. package/Dev/i18n/pt/Symfony/rules/14-multitenant.md +432 -0
  1657. package/Dev/i18n/pt/Symfony/rules/15-doctrine-extensions.md +927 -0
  1658. package/Dev/i18n/pt/Symfony/rules/16-i18n.md +185 -0
  1659. package/Dev/i18n/pt/Symfony/rules/17-async.md +190 -0
  1660. package/Dev/i18n/pt/Symfony/rules/18-value-objects.md +536 -0
  1661. package/Dev/i18n/pt/Symfony/rules/19-aggregates.md +115 -0
  1662. package/Dev/i18n/pt/Symfony/rules/20-domain-events.md +129 -0
  1663. package/Dev/i18n/pt/Symfony/rules/21-cqrs.md +426 -0
  1664. package/Dev/i18n/pt/Symfony/skills/aggregates/REFERENCE.md +115 -0
  1665. package/Dev/i18n/pt/Symfony/skills/aggregates/SKILL.md +10 -0
  1666. package/Dev/i18n/pt/Symfony/skills/architecture-clean-ddd/REFERENCE.md +979 -0
  1667. package/Dev/i18n/pt/Symfony/skills/architecture-clean-ddd/SKILL.md +10 -0
  1668. package/Dev/i18n/pt/Symfony/skills/async/REFERENCE.md +190 -0
  1669. package/Dev/i18n/pt/Symfony/skills/async/SKILL.md +10 -0
  1670. package/Dev/i18n/pt/Symfony/skills/coding-standards/REFERENCE.md +402 -0
  1671. package/Dev/i18n/pt/Symfony/skills/coding-standards/SKILL.md +10 -0
  1672. package/Dev/i18n/pt/Symfony/skills/cqrs/REFERENCE.md +426 -0
  1673. package/Dev/i18n/pt/Symfony/skills/cqrs/SKILL.md +10 -0
  1674. package/Dev/i18n/pt/Symfony/skills/ddd-patterns/REFERENCE.md +1220 -0
  1675. package/Dev/i18n/pt/Symfony/skills/ddd-patterns/SKILL.md +10 -0
  1676. package/Dev/i18n/pt/Symfony/skills/docker-hadolint/REFERENCE.md +767 -0
  1677. package/Dev/i18n/pt/Symfony/skills/docker-hadolint/SKILL.md +10 -0
  1678. package/Dev/i18n/pt/Symfony/skills/doctrine-extensions/REFERENCE.md +927 -0
  1679. package/Dev/i18n/pt/Symfony/skills/doctrine-extensions/SKILL.md +10 -0
  1680. package/Dev/i18n/pt/Symfony/skills/domain-events/REFERENCE.md +129 -0
  1681. package/Dev/i18n/pt/Symfony/skills/domain-events/SKILL.md +10 -0
  1682. package/Dev/i18n/pt/Symfony/skills/i18n/REFERENCE.md +185 -0
  1683. package/Dev/i18n/pt/Symfony/skills/i18n/SKILL.md +10 -0
  1684. package/Dev/i18n/pt/Symfony/skills/multitenant/REFERENCE.md +432 -0
  1685. package/Dev/i18n/pt/Symfony/skills/multitenant/SKILL.md +10 -0
  1686. package/Dev/i18n/pt/Symfony/skills/performance/REFERENCE.md +888 -0
  1687. package/Dev/i18n/pt/Symfony/skills/performance/SKILL.md +10 -0
  1688. package/Dev/i18n/pt/Symfony/skills/quality-tools/REFERENCE.md +982 -0
  1689. package/Dev/i18n/pt/Symfony/skills/quality-tools/SKILL.md +10 -0
  1690. package/Dev/i18n/pt/Symfony/skills/security-symfony/REFERENCE.md +1055 -0
  1691. package/Dev/i18n/pt/Symfony/skills/security-symfony/SKILL.md +10 -0
  1692. package/Dev/i18n/pt/Symfony/skills/testing-symfony/REFERENCE.md +1121 -0
  1693. package/Dev/i18n/pt/Symfony/skills/testing-symfony/SKILL.md +10 -0
  1694. package/Dev/i18n/pt/Symfony/skills/value-objects/REFERENCE.md +536 -0
  1695. package/Dev/i18n/pt/Symfony/skills/value-objects/SKILL.md +10 -0
  1696. package/Dev/i18n/pt/Symfony/templates/README.md +279 -0
  1697. package/Dev/i18n/pt/Symfony/templates/aggregate-examples.md +1128 -0
  1698. package/Dev/i18n/pt/Symfony/templates/aggregate-root.md +860 -0
  1699. package/Dev/i18n/pt/Symfony/templates/analysis.md +323 -0
  1700. package/Dev/i18n/pt/Symfony/templates/clean-architecture-structure.md +645 -0
  1701. package/Dev/i18n/pt/Symfony/templates/domain-event-examples.md +1091 -0
  1702. package/Dev/i18n/pt/Symfony/templates/domain-event.md +681 -0
  1703. package/Dev/i18n/pt/Symfony/templates/service.md +527 -0
  1704. package/Dev/i18n/pt/Symfony/templates/template.md +237 -0
  1705. package/Dev/i18n/pt/Symfony/templates/test-behat.md +674 -0
  1706. package/Dev/i18n/pt/Symfony/templates/test-integration.md +698 -0
  1707. package/Dev/i18n/pt/Symfony/templates/test-unit.md +735 -0
  1708. package/Dev/i18n/pt/Symfony/templates/value-object-examples.md +1129 -0
  1709. package/Dev/i18n/pt/Symfony/templates/value-object.md +534 -0
  1710. package/Dev/scripts/check-config.sh +678 -0
  1711. package/Dev/scripts/install-common-rules.sh +712 -0
  1712. package/Dev/scripts/install-flutter-rules.sh +523 -0
  1713. package/Dev/scripts/install-from-config.sh +699 -0
  1714. package/Dev/scripts/install-python-rules.sh +522 -0
  1715. package/Dev/scripts/install-react-rules.sh +522 -0
  1716. package/Dev/scripts/install-reactnative-rules.sh +526 -0
  1717. package/Dev/scripts/install-symfony-rules.sh +921 -0
  1718. package/Dev/scripts/lib/install-common.sh +504 -0
  1719. package/Dev/scripts/migrate-project.sh +441 -0
  1720. package/Infra/i18n/de/Docker/agents/docker-architect.md +315 -0
  1721. package/Infra/i18n/de/Docker/agents/docker-cicd.md +302 -0
  1722. package/Infra/i18n/de/Docker/agents/docker-compose.md +269 -0
  1723. package/Infra/i18n/de/Docker/agents/docker-debug.md +255 -0
  1724. package/Infra/i18n/de/Docker/agents/docker-dockerfile.md +79 -0
  1725. package/Infra/i18n/de/Docker/commands/docker-architecture.md +436 -0
  1726. package/Infra/i18n/de/Docker/commands/docker-cicd-pipeline.md +337 -0
  1727. package/Infra/i18n/de/Docker/commands/docker-compose-setup.md +255 -0
  1728. package/Infra/i18n/de/Docker/commands/docker-debug.md +227 -0
  1729. package/Infra/i18n/en/Docker/agents/docker-architect.md +315 -0
  1730. package/Infra/i18n/en/Docker/agents/docker-cicd.md +302 -0
  1731. package/Infra/i18n/en/Docker/agents/docker-compose.md +269 -0
  1732. package/Infra/i18n/en/Docker/agents/docker-debug.md +255 -0
  1733. package/Infra/i18n/en/Docker/agents/docker-dockerfile.md +195 -0
  1734. package/Infra/i18n/en/Docker/commands/docker-architecture.md +436 -0
  1735. package/Infra/i18n/en/Docker/commands/docker-cicd-pipeline.md +337 -0
  1736. package/Infra/i18n/en/Docker/commands/docker-compose-setup.md +255 -0
  1737. package/Infra/i18n/en/Docker/commands/docker-debug.md +227 -0
  1738. package/Infra/i18n/es/Docker/agents/docker-architect.md +315 -0
  1739. package/Infra/i18n/es/Docker/agents/docker-cicd.md +302 -0
  1740. package/Infra/i18n/es/Docker/agents/docker-compose.md +269 -0
  1741. package/Infra/i18n/es/Docker/agents/docker-debug.md +255 -0
  1742. package/Infra/i18n/es/Docker/agents/docker-dockerfile.md +79 -0
  1743. package/Infra/i18n/es/Docker/commands/docker-architecture.md +436 -0
  1744. package/Infra/i18n/es/Docker/commands/docker-cicd-pipeline.md +337 -0
  1745. package/Infra/i18n/es/Docker/commands/docker-compose-setup.md +255 -0
  1746. package/Infra/i18n/es/Docker/commands/docker-debug.md +227 -0
  1747. package/Infra/i18n/fr/Docker/agents/docker-architect.md +314 -0
  1748. package/Infra/i18n/fr/Docker/agents/docker-cicd.md +304 -0
  1749. package/Infra/i18n/fr/Docker/agents/docker-compose.md +269 -0
  1750. package/Infra/i18n/fr/Docker/agents/docker-debug.md +255 -0
  1751. package/Infra/i18n/fr/Docker/agents/docker-dockerfile.md +195 -0
  1752. package/Infra/i18n/fr/Docker/commands/docker-architecture.md +436 -0
  1753. package/Infra/i18n/fr/Docker/commands/docker-cicd-pipeline.md +340 -0
  1754. package/Infra/i18n/fr/Docker/commands/docker-compose-setup.md +255 -0
  1755. package/Infra/i18n/fr/Docker/commands/docker-debug.md +227 -0
  1756. package/Infra/i18n/pt/Docker/agents/docker-architect.md +315 -0
  1757. package/Infra/i18n/pt/Docker/agents/docker-cicd.md +302 -0
  1758. package/Infra/i18n/pt/Docker/agents/docker-compose.md +269 -0
  1759. package/Infra/i18n/pt/Docker/agents/docker-debug.md +255 -0
  1760. package/Infra/i18n/pt/Docker/agents/docker-dockerfile.md +79 -0
  1761. package/Infra/i18n/pt/Docker/commands/docker-architecture.md +436 -0
  1762. package/Infra/i18n/pt/Docker/commands/docker-cicd-pipeline.md +337 -0
  1763. package/Infra/i18n/pt/Docker/commands/docker-compose-setup.md +255 -0
  1764. package/Infra/i18n/pt/Docker/commands/docker-debug.md +227 -0
  1765. package/Infra/install-infra-rules.sh +425 -0
  1766. package/LICENSE +21 -0
  1767. package/Project/i18n/de/agents/product-owner.md +219 -0
  1768. package/Project/i18n/de/agents/tech-lead.md +294 -0
  1769. package/Project/i18n/de/commands/add-epic.md +88 -0
  1770. package/Project/i18n/de/commands/add-story.md +112 -0
  1771. package/Project/i18n/de/commands/add-task.md +127 -0
  1772. package/Project/i18n/de/commands/board.md +134 -0
  1773. package/Project/i18n/de/commands/decompose-tasks.md +600 -0
  1774. package/Project/i18n/de/commands/generate-backlog.md +378 -0
  1775. package/Project/i18n/de/commands/generate-prd.md +210 -0
  1776. package/Project/i18n/de/commands/generate-tech-spec.md +285 -0
  1777. package/Project/i18n/de/commands/list-epics.md +95 -0
  1778. package/Project/i18n/de/commands/list-stories.md +120 -0
  1779. package/Project/i18n/de/commands/list-tasks.md +132 -0
  1780. package/Project/i18n/de/commands/move-story.md +183 -0
  1781. package/Project/i18n/de/commands/move-task.md +204 -0
  1782. package/Project/i18n/de/commands/sprint-dev.md +194 -0
  1783. package/Project/i18n/de/commands/sprint-status.md +158 -0
  1784. package/Project/i18n/de/commands/update-epic.md +101 -0
  1785. package/Project/i18n/de/commands/update-story.md +146 -0
  1786. package/Project/i18n/de/commands/validate-backlog.md +330 -0
  1787. package/Project/i18n/de/templates/board.md +52 -0
  1788. package/Project/i18n/de/templates/epic.md +39 -0
  1789. package/Project/i18n/de/templates/index.md +74 -0
  1790. package/Project/i18n/de/templates/prd.md +256 -0
  1791. package/Project/i18n/de/templates/task.md +46 -0
  1792. package/Project/i18n/de/templates/tech-spec.md +519 -0
  1793. package/Project/i18n/de/templates/user-story.md +57 -0
  1794. package/Project/i18n/en/agents/product-owner.md +219 -0
  1795. package/Project/i18n/en/agents/tech-lead.md +294 -0
  1796. package/Project/i18n/en/commands/add-epic.md +88 -0
  1797. package/Project/i18n/en/commands/add-story.md +112 -0
  1798. package/Project/i18n/en/commands/add-task.md +127 -0
  1799. package/Project/i18n/en/commands/board.md +134 -0
  1800. package/Project/i18n/en/commands/decompose-tasks.md +600 -0
  1801. package/Project/i18n/en/commands/generate-backlog.md +378 -0
  1802. package/Project/i18n/en/commands/generate-prd.md +210 -0
  1803. package/Project/i18n/en/commands/generate-tech-spec.md +285 -0
  1804. package/Project/i18n/en/commands/list-epics.md +95 -0
  1805. package/Project/i18n/en/commands/list-stories.md +120 -0
  1806. package/Project/i18n/en/commands/list-tasks.md +132 -0
  1807. package/Project/i18n/en/commands/move-story.md +183 -0
  1808. package/Project/i18n/en/commands/move-task.md +204 -0
  1809. package/Project/i18n/en/commands/sprint-dev.md +445 -0
  1810. package/Project/i18n/en/commands/sprint-status.md +157 -0
  1811. package/Project/i18n/en/commands/update-epic.md +101 -0
  1812. package/Project/i18n/en/commands/update-story.md +146 -0
  1813. package/Project/i18n/en/commands/validate-backlog.md +330 -0
  1814. package/Project/i18n/en/templates/board.md +52 -0
  1815. package/Project/i18n/en/templates/epic.md +39 -0
  1816. package/Project/i18n/en/templates/index.md +74 -0
  1817. package/Project/i18n/en/templates/prd.md +256 -0
  1818. package/Project/i18n/en/templates/task.md +46 -0
  1819. package/Project/i18n/en/templates/tech-spec.md +519 -0
  1820. package/Project/i18n/en/templates/user-story.md +57 -0
  1821. package/Project/i18n/es/agents/product-owner.md +219 -0
  1822. package/Project/i18n/es/agents/tech-lead.md +294 -0
  1823. package/Project/i18n/es/commands/add-epic.md +88 -0
  1824. package/Project/i18n/es/commands/add-story.md +112 -0
  1825. package/Project/i18n/es/commands/add-task.md +127 -0
  1826. package/Project/i18n/es/commands/board.md +134 -0
  1827. package/Project/i18n/es/commands/decompose-tasks.md +600 -0
  1828. package/Project/i18n/es/commands/generate-backlog.md +378 -0
  1829. package/Project/i18n/es/commands/generate-prd.md +210 -0
  1830. package/Project/i18n/es/commands/generate-tech-spec.md +285 -0
  1831. package/Project/i18n/es/commands/list-epics.md +95 -0
  1832. package/Project/i18n/es/commands/list-stories.md +120 -0
  1833. package/Project/i18n/es/commands/list-tasks.md +132 -0
  1834. package/Project/i18n/es/commands/move-story.md +183 -0
  1835. package/Project/i18n/es/commands/move-task.md +204 -0
  1836. package/Project/i18n/es/commands/sprint-dev.md +194 -0
  1837. package/Project/i18n/es/commands/sprint-status.md +157 -0
  1838. package/Project/i18n/es/commands/update-epic.md +101 -0
  1839. package/Project/i18n/es/commands/update-story.md +146 -0
  1840. package/Project/i18n/es/commands/validate-backlog.md +330 -0
  1841. package/Project/i18n/es/templates/board.md +52 -0
  1842. package/Project/i18n/es/templates/epic.md +39 -0
  1843. package/Project/i18n/es/templates/index.md +74 -0
  1844. package/Project/i18n/es/templates/prd.md +256 -0
  1845. package/Project/i18n/es/templates/task.md +46 -0
  1846. package/Project/i18n/es/templates/tech-spec.md +519 -0
  1847. package/Project/i18n/es/templates/user-story.md +57 -0
  1848. package/Project/i18n/fr/agents/product-owner.md +219 -0
  1849. package/Project/i18n/fr/agents/tech-lead.md +294 -0
  1850. package/Project/i18n/fr/commands/add-epic.md +88 -0
  1851. package/Project/i18n/fr/commands/add-story.md +112 -0
  1852. package/Project/i18n/fr/commands/add-task.md +127 -0
  1853. package/Project/i18n/fr/commands/board.md +134 -0
  1854. package/Project/i18n/fr/commands/decompose-tasks.md +600 -0
  1855. package/Project/i18n/fr/commands/generate-backlog.md +378 -0
  1856. package/Project/i18n/fr/commands/generate-prd.md +210 -0
  1857. package/Project/i18n/fr/commands/generate-tech-spec.md +285 -0
  1858. package/Project/i18n/fr/commands/list-epics.md +95 -0
  1859. package/Project/i18n/fr/commands/list-stories.md +120 -0
  1860. package/Project/i18n/fr/commands/list-tasks.md +132 -0
  1861. package/Project/i18n/fr/commands/move-story.md +183 -0
  1862. package/Project/i18n/fr/commands/move-task.md +204 -0
  1863. package/Project/i18n/fr/commands/sprint-dev.md +445 -0
  1864. package/Project/i18n/fr/commands/sprint-status.md +157 -0
  1865. package/Project/i18n/fr/commands/update-epic.md +101 -0
  1866. package/Project/i18n/fr/commands/update-story.md +146 -0
  1867. package/Project/i18n/fr/commands/validate-backlog.md +330 -0
  1868. package/Project/i18n/fr/templates/board.md +52 -0
  1869. package/Project/i18n/fr/templates/epic.md +39 -0
  1870. package/Project/i18n/fr/templates/index.md +74 -0
  1871. package/Project/i18n/fr/templates/prd.md +256 -0
  1872. package/Project/i18n/fr/templates/task.md +46 -0
  1873. package/Project/i18n/fr/templates/tech-spec.md +519 -0
  1874. package/Project/i18n/fr/templates/user-story.md +57 -0
  1875. package/Project/i18n/pt/agents/product-owner.md +219 -0
  1876. package/Project/i18n/pt/agents/tech-lead.md +294 -0
  1877. package/Project/i18n/pt/commands/add-epic.md +88 -0
  1878. package/Project/i18n/pt/commands/add-story.md +112 -0
  1879. package/Project/i18n/pt/commands/add-task.md +127 -0
  1880. package/Project/i18n/pt/commands/board.md +134 -0
  1881. package/Project/i18n/pt/commands/decompose-tasks.md +600 -0
  1882. package/Project/i18n/pt/commands/generate-backlog.md +378 -0
  1883. package/Project/i18n/pt/commands/generate-prd.md +210 -0
  1884. package/Project/i18n/pt/commands/generate-tech-spec.md +285 -0
  1885. package/Project/i18n/pt/commands/list-epics.md +95 -0
  1886. package/Project/i18n/pt/commands/list-stories.md +120 -0
  1887. package/Project/i18n/pt/commands/list-tasks.md +132 -0
  1888. package/Project/i18n/pt/commands/move-story.md +183 -0
  1889. package/Project/i18n/pt/commands/move-task.md +204 -0
  1890. package/Project/i18n/pt/commands/sprint-dev.md +194 -0
  1891. package/Project/i18n/pt/commands/sprint-status.md +157 -0
  1892. package/Project/i18n/pt/commands/update-epic.md +101 -0
  1893. package/Project/i18n/pt/commands/update-story.md +146 -0
  1894. package/Project/i18n/pt/commands/validate-backlog.md +329 -0
  1895. package/Project/i18n/pt/templates/board.md +52 -0
  1896. package/Project/i18n/pt/templates/epic.md +39 -0
  1897. package/Project/i18n/pt/templates/index.md +74 -0
  1898. package/Project/i18n/pt/templates/prd.md +256 -0
  1899. package/Project/i18n/pt/templates/task.md +46 -0
  1900. package/Project/i18n/pt/templates/tech-spec.md +519 -0
  1901. package/Project/i18n/pt/templates/user-story.md +57 -0
  1902. package/Project/install-project-commands.sh +454 -0
  1903. package/README.md +415 -0
  1904. package/Tools/MultiAccount/README.md +130 -0
  1905. package/Tools/MultiAccount/claude-accounts.sh +760 -0
  1906. package/Tools/PluginExport/README.md +111 -0
  1907. package/Tools/PluginExport/export-plugin.sh +294 -0
  1908. package/Tools/ProjectConfig/README.md +151 -0
  1909. package/Tools/ProjectConfig/claude-projects.sh +714 -0
  1910. package/Tools/StatusLine/README.md +160 -0
  1911. package/Tools/StatusLine/settings.json +6 -0
  1912. package/Tools/StatusLine/statusline.conf.example +75 -0
  1913. package/Tools/StatusLine/statusline.sh +351 -0
  1914. package/Tools/i18n/accounts/de.sh +149 -0
  1915. package/Tools/i18n/accounts/en.sh +149 -0
  1916. package/Tools/i18n/accounts/es.sh +149 -0
  1917. package/Tools/i18n/accounts/fr.sh +149 -0
  1918. package/Tools/i18n/accounts/pt.sh +149 -0
  1919. package/Tools/i18n/projects/de.sh +132 -0
  1920. package/Tools/i18n/projects/en.sh +132 -0
  1921. package/Tools/i18n/projects/es.sh +132 -0
  1922. package/Tools/i18n/projects/fr.sh +132 -0
  1923. package/Tools/i18n/projects/pt.sh +132 -0
  1924. package/cli/flattener.js +487 -0
  1925. package/cli/index.js +527 -0
  1926. package/package.json +50 -0
@@ -0,0 +1,1763 @@
1
+ # Architecture Flutter - Clean Architecture & Best Practices
2
+
3
+ ## Principe fondamental
4
+
5
+ L'architecture Flutter doit suivre les principes de **Clean Architecture** popularisés par Robert C. Martin (Uncle Bob), adaptés au contexte Flutter/Dart.
6
+
7
+ **Objectifs** :
8
+ - Séparation des responsabilités (Separation of Concerns)
9
+ - Testabilité maximale
10
+ - Indépendance des frameworks
11
+ - Indépendance de l'UI
12
+ - Indépendance de la base de données
13
+ - Maintenabilité et évolutivité
14
+
15
+ ---
16
+
17
+ ## Vue d'ensemble : Clean Architecture
18
+
19
+ ### Les 3 couches principales
20
+
21
+ ```
22
+ ┌─────────────────────────────────────────────────────────┐
23
+ │ PRESENTATION │
24
+ │ (UI, State Management, Navigation) │
25
+ │ │
26
+ │ - Pages (Screens) │
27
+ │ - Widgets │
28
+ │ - BLoC / Riverpod / Provider │
29
+ │ - View Models │
30
+ │ │
31
+ │ Dépend de : DOMAIN │
32
+ └─────────────────────────────────────────────────────────┘
33
+
34
+ ┌─────────────────────────────────────────────────────────┐
35
+ │ DOMAIN │
36
+ │ (Business Logic, Entities, Use Cases) │
37
+ │ │
38
+ │ - Entities (modèles métier purs) │
39
+ │ - Use Cases (logique métier) │
40
+ │ - Repository Interfaces │
41
+ │ │
42
+ │ Ne dépend de RIEN (couche la plus pure) │
43
+ └─────────────────────────────────────────────────────────┘
44
+
45
+ ┌─────────────────────────────────────────────────────────┐
46
+ │ DATA │
47
+ │ (Data Sources, Repositories, Models) │
48
+ │ │
49
+ │ - Models (sérialization) │
50
+ │ - Data Sources (Remote, Local) │
51
+ │ - Repository Implementations │
52
+ │ │
53
+ │ Dépend de : DOMAIN (implémente interfaces) │
54
+ └─────────────────────────────────────────────────────────┘
55
+ ```
56
+
57
+ ### Règle de dépendance
58
+
59
+ **CRUCIAL** : Les dépendances doivent toujours pointer vers l'intérieur.
60
+
61
+ ```
62
+ PRESENTATION → DOMAIN ← DATA
63
+ ↓ ↑
64
+ Dépend de Dépend de
65
+ ```
66
+
67
+ ---
68
+
69
+ ## Structure de dossiers complète
70
+
71
+ ### Organisation recommandée
72
+
73
+ ```
74
+ lib/
75
+ ├── core/ # Fonctionnalités partagées
76
+ │ ├── constants/ # Constantes globales
77
+ │ │ ├── api_constants.dart
78
+ │ │ ├── app_constants.dart
79
+ │ │ └── storage_constants.dart
80
+ │ │
81
+ │ ├── errors/ # Gestion des erreurs
82
+ │ │ ├── exceptions.dart
83
+ │ │ └── failures.dart
84
+ │ │
85
+ │ ├── extensions/ # Extensions Dart
86
+ │ │ ├── build_context_extension.dart
87
+ │ │ ├── date_time_extension.dart
88
+ │ │ └── string_extension.dart
89
+ │ │
90
+ │ ├── network/ # Configuration réseau
91
+ │ │ ├── api_client.dart
92
+ │ │ ├── network_info.dart
93
+ │ │ └── interceptors/
94
+ │ │ ├── auth_interceptor.dart
95
+ │ │ └── logging_interceptor.dart
96
+ │ │
97
+ │ ├── theme/ # Thème de l'app
98
+ │ │ ├── app_theme.dart
99
+ │ │ ├── colors.dart
100
+ │ │ ├── text_styles.dart
101
+ │ │ └── dimensions.dart
102
+ │ │
103
+ │ ├── utils/ # Utilitaires
104
+ │ │ ├── validators.dart
105
+ │ │ ├── formatters.dart
106
+ │ │ └── helpers.dart
107
+ │ │
108
+ │ └── widgets/ # Widgets réutilisables
109
+ │ ├── app_button.dart
110
+ │ ├── app_text_field.dart
111
+ │ ├── loading_indicator.dart
112
+ │ └── error_widget.dart
113
+
114
+ ├── features/ # Features métier
115
+ │ │
116
+ │ ├── authentication/ # Feature : Authentification
117
+ │ │ ├── data/
118
+ │ │ │ ├── datasources/
119
+ │ │ │ │ ├── auth_local_datasource.dart
120
+ │ │ │ │ └── auth_remote_datasource.dart
121
+ │ │ │ ├── models/
122
+ │ │ │ │ ├── login_request_model.dart
123
+ │ │ │ │ ├── login_response_model.dart
124
+ │ │ │ │ └── user_model.dart
125
+ │ │ │ └── repositories/
126
+ │ │ │ └── auth_repository_impl.dart
127
+ │ │ │
128
+ │ │ ├── domain/
129
+ │ │ │ ├── entities/
130
+ │ │ │ │ └── user.dart
131
+ │ │ │ ├── repositories/
132
+ │ │ │ │ └── auth_repository.dart
133
+ │ │ │ └── usecases/
134
+ │ │ │ ├── login.dart
135
+ │ │ │ ├── logout.dart
136
+ │ │ │ ├── register.dart
137
+ │ │ │ └── get_current_user.dart
138
+ │ │ │
139
+ │ │ └── presentation/
140
+ │ │ ├── bloc/
141
+ │ │ │ ├── auth_bloc.dart
142
+ │ │ │ ├── auth_event.dart
143
+ │ │ │ └── auth_state.dart
144
+ │ │ ├── pages/
145
+ │ │ │ ├── login_page.dart
146
+ │ │ │ └── register_page.dart
147
+ │ │ └── widgets/
148
+ │ │ ├── login_form.dart
149
+ │ │ └── social_login_buttons.dart
150
+ │ │
151
+ │ ├── products/ # Feature : Produits
152
+ │ │ ├── data/
153
+ │ │ │ ├── datasources/
154
+ │ │ │ │ ├── product_local_datasource.dart
155
+ │ │ │ │ └── product_remote_datasource.dart
156
+ │ │ │ ├── models/
157
+ │ │ │ │ └── product_model.dart
158
+ │ │ │ └── repositories/
159
+ │ │ │ └── product_repository_impl.dart
160
+ │ │ │
161
+ │ │ ├── domain/
162
+ │ │ │ ├── entities/
163
+ │ │ │ │ └── product.dart
164
+ │ │ │ ├── repositories/
165
+ │ │ │ │ └── product_repository.dart
166
+ │ │ │ └── usecases/
167
+ │ │ │ ├── get_products.dart
168
+ │ │ │ ├── get_product_detail.dart
169
+ │ │ │ └── search_products.dart
170
+ │ │ │
171
+ │ │ └── presentation/
172
+ │ │ ├── bloc/
173
+ │ │ │ ├── product_list/
174
+ │ │ │ │ ├── product_list_bloc.dart
175
+ │ │ │ │ ├── product_list_event.dart
176
+ │ │ │ │ └── product_list_state.dart
177
+ │ │ │ └── product_detail/
178
+ │ │ │ ├── product_detail_bloc.dart
179
+ │ │ │ ├── product_detail_event.dart
180
+ │ │ │ └── product_detail_state.dart
181
+ │ │ ├── pages/
182
+ │ │ │ ├── product_list_page.dart
183
+ │ │ │ └── product_detail_page.dart
184
+ │ │ └── widgets/
185
+ │ │ ├── product_card.dart
186
+ │ │ ├── product_grid.dart
187
+ │ │ └── product_search_bar.dart
188
+ │ │
189
+ │ └── [other_features]/ # Autres features...
190
+
191
+ ├── config/ # Configuration
192
+ │ ├── routes/
193
+ │ │ ├── app_router.dart
194
+ │ │ └── route_names.dart
195
+ │ └── env/
196
+ │ ├── env.dart
197
+ │ └── env_config.dart
198
+
199
+ ├── dependency_injection.dart # Configuration DI (get_it/injectable)
200
+ └── main.dart # Point d'entrée
201
+ ```
202
+
203
+ ---
204
+
205
+ ## Couche DOMAIN : Le Coeur Métier
206
+
207
+ ### 1. Entities (Entités)
208
+
209
+ **Rôle** : Objets métier purs, sans logique de persistance ou présentation.
210
+
211
+ **Caractéristiques** :
212
+ - Immuables (préférer `@immutable` ou `@freezed`)
213
+ - Pas de dépendances externes
214
+ - Pas d'annotations JSON
215
+ - Équivalence basée sur le contenu (utiliser `Equatable`)
216
+
217
+ ```dart
218
+ // lib/features/products/domain/entities/product.dart
219
+
220
+ import 'package:equatable/equatable.dart';
221
+
222
+ /// Représente un produit dans le domaine métier.
223
+ ///
224
+ /// Cette classe est une entité pure sans dépendances externes.
225
+ class Product extends Equatable {
226
+ /// Identifiant unique du produit
227
+ final String id;
228
+
229
+ /// Nom du produit
230
+ final String name;
231
+
232
+ /// Description détaillée
233
+ final String description;
234
+
235
+ /// Prix en centimes (évite problèmes float)
236
+ final int priceInCents;
237
+
238
+ /// URL de l'image principale
239
+ final String imageUrl;
240
+
241
+ /// Catégorie du produit
242
+ final String category;
243
+
244
+ /// Stock disponible
245
+ final int stock;
246
+
247
+ /// Date de création
248
+ final DateTime createdAt;
249
+
250
+ const Product({
251
+ required this.id,
252
+ required this.name,
253
+ required this.description,
254
+ required this.priceInCents,
255
+ required this.imageUrl,
256
+ required this.category,
257
+ required this.stock,
258
+ required this.createdAt,
259
+ });
260
+
261
+ /// Retourne le prix formaté en euros
262
+ String get formattedPrice {
263
+ final euros = priceInCents / 100;
264
+ return '${euros.toStringAsFixed(2)} €';
265
+ }
266
+
267
+ /// Indique si le produit est en stock
268
+ bool get isInStock => stock > 0;
269
+
270
+ /// Indique si le stock est faible (< 10)
271
+ bool get isLowStock => stock > 0 && stock < 10;
272
+
273
+ @override
274
+ List<Object?> get props => [
275
+ id,
276
+ name,
277
+ description,
278
+ priceInCents,
279
+ imageUrl,
280
+ category,
281
+ stock,
282
+ createdAt,
283
+ ];
284
+ }
285
+ ```
286
+
287
+ **Alternative avec Freezed** (recommandé pour moins de boilerplate) :
288
+
289
+ ```dart
290
+ // lib/features/products/domain/entities/product.dart
291
+
292
+ import 'package:freezed_annotation/freezed_annotation.dart';
293
+
294
+ part 'product.freezed.dart';
295
+
296
+ @freezed
297
+ class Product with _$Product {
298
+ const Product._(); // Private constructor pour méthodes custom
299
+
300
+ const factory Product({
301
+ required String id,
302
+ required String name,
303
+ required String description,
304
+ required int priceInCents,
305
+ required String imageUrl,
306
+ required String category,
307
+ required int stock,
308
+ required DateTime createdAt,
309
+ }) = _Product;
310
+
311
+ // Getters custom
312
+ String get formattedPrice {
313
+ final euros = priceInCents / 100;
314
+ return '${euros.toStringAsFixed(2)} €';
315
+ }
316
+
317
+ bool get isInStock => stock > 0;
318
+ bool get isLowStock => stock > 0 && stock < 10;
319
+ }
320
+ ```
321
+
322
+ ### 2. Repository Interfaces
323
+
324
+ **Rôle** : Contrats définissant comment accéder aux données, sans implémentation.
325
+
326
+ **Caractéristiques** :
327
+ - Abstract class ou interface pure
328
+ - Retourner `Either<Failure, Success>` (avec dartz) ou `Result<T>`
329
+ - Async avec `Future`
330
+ - Nommage : `[Entity]Repository`
331
+
332
+ ```dart
333
+ // lib/features/products/domain/repositories/product_repository.dart
334
+
335
+ import 'package:dartz/dartz.dart';
336
+ import '../../../../core/errors/failures.dart';
337
+ import '../entities/product.dart';
338
+
339
+ /// Interface pour accéder aux données produits.
340
+ ///
341
+ /// Cette interface définit le contrat que doit respecter toute
342
+ /// implémentation concrète du repository produit.
343
+ abstract class ProductRepository {
344
+ /// Récupère la liste de tous les produits.
345
+ ///
346
+ /// Retourne [Right<List<Product>>] en cas de succès,
347
+ /// ou [Left<Failure>] en cas d'erreur.
348
+ Future<Either<Failure, List<Product>>> getProducts({
349
+ int page = 1,
350
+ int limit = 20,
351
+ });
352
+
353
+ /// Récupère un produit par son ID.
354
+ ///
355
+ /// Retourne [Right<Product>] si le produit existe,
356
+ /// ou [Left<Failure>] si non trouvé ou erreur.
357
+ Future<Either<Failure, Product>> getProductById(String id);
358
+
359
+ /// Recherche des produits par nom ou description.
360
+ ///
361
+ /// [query] : Terme de recherche
362
+ /// [category] : Filtre optionnel par catégorie
363
+ Future<Either<Failure, List<Product>>> searchProducts({
364
+ required String query,
365
+ String? category,
366
+ });
367
+
368
+ /// Récupère les produits d'une catégorie spécifique.
369
+ Future<Either<Failure, List<Product>>> getProductsByCategory(
370
+ String category, {
371
+ int page = 1,
372
+ int limit = 20,
373
+ });
374
+ }
375
+ ```
376
+
377
+ **Alternative avec Result<T>** (sans dartz) :
378
+
379
+ ```dart
380
+ // lib/core/utils/result.dart
381
+ @freezed
382
+ class Result<T> with _$Result<T> {
383
+ const factory Result.success(T data) = Success<T>;
384
+ const factory Result.failure(String error) = Failure<T>;
385
+ }
386
+
387
+ // Usage dans repository
388
+ abstract class ProductRepository {
389
+ Future<Result<List<Product>>> getProducts({
390
+ int page = 1,
391
+ int limit = 20,
392
+ });
393
+
394
+ Future<Result<Product>> getProductById(String id);
395
+ }
396
+ ```
397
+
398
+ ### 3. Use Cases (Cas d'utilisation)
399
+
400
+ **Rôle** : Encapsuler la logique métier pour une action spécifique.
401
+
402
+ **Principe** : Un Use Case = Une action métier
403
+
404
+ **Caractéristiques** :
405
+ - Une seule méthode publique : `call()`
406
+ - Prend le repository en injection de dépendance
407
+ - Contient validations et règles métier
408
+ - Nommage : Verbe à l'infinitif (GetProducts, CreateOrder, etc.)
409
+
410
+ ```dart
411
+ // lib/features/products/domain/usecases/get_products.dart
412
+
413
+ import 'package:dartz/dartz.dart';
414
+ import '../../../../core/errors/failures.dart';
415
+ import '../entities/product.dart';
416
+ import '../repositories/product_repository.dart';
417
+
418
+ /// Récupère la liste paginée des produits.
419
+ ///
420
+ /// Ce use case gère la logique métier pour récupérer les produits,
421
+ /// incluant la validation des paramètres.
422
+ class GetProducts {
423
+ final ProductRepository repository;
424
+
425
+ GetProducts(this.repository);
426
+
427
+ /// Exécute le use case.
428
+ ///
429
+ /// [page] : Numéro de page (commence à 1)
430
+ /// [limit] : Nombre d'éléments par page (max 100)
431
+ ///
432
+ /// Retourne [Right<List<Product>>] en cas de succès,
433
+ /// ou [Left<Failure>] en cas d'erreur.
434
+ Future<Either<Failure, List<Product>>> call({
435
+ int page = 1,
436
+ int limit = 20,
437
+ }) async {
438
+ // Validation des paramètres métier
439
+ if (page < 1) {
440
+ return const Left(ValidationFailure('Page must be >= 1'));
441
+ }
442
+
443
+ if (limit < 1 || limit > 100) {
444
+ return const Left(ValidationFailure('Limit must be between 1 and 100'));
445
+ }
446
+
447
+ // Délégation au repository
448
+ return await repository.getProducts(page: page, limit: limit);
449
+ }
450
+ }
451
+ ```
452
+
453
+ **Use Case avec paramètres complexes** :
454
+
455
+ ```dart
456
+ // lib/features/products/domain/usecases/search_products.dart
457
+
458
+ import 'package:dartz/dartz.dart';
459
+ import 'package:equatable/equatable.dart';
460
+ import '../../../../core/errors/failures.dart';
461
+ import '../entities/product.dart';
462
+ import '../repositories/product_repository.dart';
463
+
464
+ /// Paramètres pour la recherche de produits.
465
+ class SearchProductsParams extends Equatable {
466
+ final String query;
467
+ final String? category;
468
+ final int? minPrice;
469
+ final int? maxPrice;
470
+ final bool inStockOnly;
471
+
472
+ const SearchProductsParams({
473
+ required this.query,
474
+ this.category,
475
+ this.minPrice,
476
+ this.maxPrice,
477
+ this.inStockOnly = false,
478
+ });
479
+
480
+ @override
481
+ List<Object?> get props => [query, category, minPrice, maxPrice, inStockOnly];
482
+ }
483
+
484
+ /// Recherche des produits selon divers critères.
485
+ class SearchProducts {
486
+ final ProductRepository repository;
487
+
488
+ SearchProducts(this.repository);
489
+
490
+ Future<Either<Failure, List<Product>>> call(
491
+ SearchProductsParams params,
492
+ ) async {
493
+ // Validation
494
+ if (params.query.trim().isEmpty) {
495
+ return const Left(ValidationFailure('Query cannot be empty'));
496
+ }
497
+
498
+ if (params.query.length < 2) {
499
+ return const Left(ValidationFailure('Query must be at least 2 characters'));
500
+ }
501
+
502
+ if (params.minPrice != null && params.maxPrice != null) {
503
+ if (params.minPrice! > params.maxPrice!) {
504
+ return const Left(
505
+ ValidationFailure('Min price cannot be greater than max price'),
506
+ );
507
+ }
508
+ }
509
+
510
+ // Récupération des produits
511
+ final result = await repository.searchProducts(
512
+ query: params.query,
513
+ category: params.category,
514
+ );
515
+
516
+ // Post-traitement (filtrage côté client si nécessaire)
517
+ return result.fold(
518
+ (failure) => Left(failure),
519
+ (products) {
520
+ var filtered = products;
521
+
522
+ // Filtre par prix
523
+ if (params.minPrice != null) {
524
+ filtered = filtered
525
+ .where((p) => p.priceInCents >= params.minPrice!)
526
+ .toList();
527
+ }
528
+
529
+ if (params.maxPrice != null) {
530
+ filtered = filtered
531
+ .where((p) => p.priceInCents <= params.maxPrice!)
532
+ .toList();
533
+ }
534
+
535
+ // Filtre stock
536
+ if (params.inStockOnly) {
537
+ filtered = filtered.where((p) => p.isInStock).toList();
538
+ }
539
+
540
+ return Right(filtered);
541
+ },
542
+ );
543
+ }
544
+ }
545
+ ```
546
+
547
+ ---
548
+
549
+ ## Couche DATA : Accès aux Données
550
+
551
+ ### 1. Models (DTOs - Data Transfer Objects)
552
+
553
+ **Rôle** : Représentation des données pour sérialization/désérialisation.
554
+
555
+ **Caractéristiques** :
556
+ - Annotations JSON
557
+ - Méthodes `fromJson` / `toJson`
558
+ - Conversion vers/depuis Entity
559
+ - Peut contenir logique de mapping
560
+
561
+ ```dart
562
+ // lib/features/products/data/models/product_model.dart
563
+
564
+ import 'package:freezed_annotation/freezed_annotation.dart';
565
+ import '../../domain/entities/product.dart';
566
+
567
+ part 'product_model.freezed.dart';
568
+ part 'product_model.g.dart';
569
+
570
+ /// Modèle de données pour Product avec sérialization JSON.
571
+ @freezed
572
+ class ProductModel with _$ProductModel {
573
+ const ProductModel._();
574
+
575
+ const factory ProductModel({
576
+ required String id,
577
+ required String name,
578
+ required String description,
579
+ @JsonKey(name: 'price_cents') required int priceInCents,
580
+ @JsonKey(name: 'image_url') required String imageUrl,
581
+ required String category,
582
+ required int stock,
583
+ @JsonKey(name: 'created_at') required DateTime createdAt,
584
+ }) = _ProductModel;
585
+
586
+ /// Désérialisation depuis JSON
587
+ factory ProductModel.fromJson(Map<String, dynamic> json) =>
588
+ _$ProductModelFromJson(json);
589
+
590
+ /// Conversion vers l'entité domain
591
+ Product toEntity() {
592
+ return Product(
593
+ id: id,
594
+ name: name,
595
+ description: description,
596
+ priceInCents: priceInCents,
597
+ imageUrl: imageUrl,
598
+ category: category,
599
+ stock: stock,
600
+ createdAt: createdAt,
601
+ );
602
+ }
603
+
604
+ /// Création depuis l'entité domain
605
+ factory ProductModel.fromEntity(Product product) {
606
+ return ProductModel(
607
+ id: product.id,
608
+ name: product.name,
609
+ description: product.description,
610
+ priceInCents: product.priceInCents,
611
+ imageUrl: product.imageUrl,
612
+ category: product.category,
613
+ stock: product.stock,
614
+ createdAt: product.createdAt,
615
+ );
616
+ }
617
+ }
618
+ ```
619
+
620
+ **Gestion des valeurs nullables de l'API** :
621
+
622
+ ```dart
623
+ // Cas où l'API peut renvoyer null
624
+ @freezed
625
+ class ProductModel with _$ProductModel {
626
+ const ProductModel._();
627
+
628
+ const factory ProductModel({
629
+ required String id,
630
+ required String name,
631
+ String? description, // Nullable dans API
632
+ @JsonKey(name: 'price_cents') required int priceInCents,
633
+ @JsonKey(name: 'image_url') String? imageUrl, // Nullable dans API
634
+ required String category,
635
+ @Default(0) int stock, // Valeur par défaut
636
+ @JsonKey(name: 'created_at') required DateTime createdAt,
637
+ }) = _ProductModel;
638
+
639
+ factory ProductModel.fromJson(Map<String, dynamic> json) =>
640
+ _$ProductModelFromJson(json);
641
+
642
+ Product toEntity() {
643
+ return Product(
644
+ id: id,
645
+ name: name,
646
+ description: description ?? '', // Valeur par défaut pour entity
647
+ priceInCents: priceInCents,
648
+ imageUrl: imageUrl ?? 'assets/images/placeholder.png',
649
+ category: category,
650
+ stock: stock,
651
+ createdAt: createdAt,
652
+ );
653
+ }
654
+ }
655
+ ```
656
+
657
+ ### 2. Data Sources
658
+
659
+ **Rôle** : Accès direct aux sources de données (API, BDD locale, cache).
660
+
661
+ **Types** :
662
+ - `RemoteDataSource` : API REST, GraphQL, etc.
663
+ - `LocalDataSource` : SQLite, Hive, SharedPreferences, etc.
664
+
665
+ #### Remote Data Source (API)
666
+
667
+ ```dart
668
+ // lib/features/products/data/datasources/product_remote_datasource.dart
669
+
670
+ import 'package:dio/dio.dart';
671
+ import 'package:retrofit/retrofit.dart';
672
+ import '../models/product_model.dart';
673
+
674
+ part 'product_remote_datasource.g.dart';
675
+
676
+ /// Source de données distante pour les produits (API).
677
+ @RestApi()
678
+ abstract class ProductRemoteDataSource {
679
+ factory ProductRemoteDataSource(Dio dio, {String baseUrl}) =
680
+ _ProductRemoteDataSource;
681
+
682
+ /// Récupère la liste paginée des produits
683
+ @GET('/products')
684
+ Future<List<ProductModel>> getProducts({
685
+ @Query('page') int page = 1,
686
+ @Query('limit') int limit = 20,
687
+ });
688
+
689
+ /// Récupère un produit par ID
690
+ @GET('/products/{id}')
691
+ Future<ProductModel> getProductById(@Path('id') String id);
692
+
693
+ /// Recherche de produits
694
+ @GET('/products/search')
695
+ Future<List<ProductModel>> searchProducts({
696
+ @Query('q') required String query,
697
+ @Query('category') String? category,
698
+ });
699
+
700
+ /// Récupère produits par catégorie
701
+ @GET('/products/category/{category}')
702
+ Future<List<ProductModel>> getProductsByCategory(
703
+ @Path('category') String category, {
704
+ @Query('page') int page = 1,
705
+ @Query('limit') int limit = 20,
706
+ });
707
+ }
708
+ ```
709
+
710
+ **Alternative sans Retrofit (Dio pur)** :
711
+
712
+ ```dart
713
+ // lib/features/products/data/datasources/product_remote_datasource.dart
714
+
715
+ import 'package:dio/dio.dart';
716
+ import '../../../../core/errors/exceptions.dart';
717
+ import '../models/product_model.dart';
718
+
719
+ /// Interface pour la source de données distante
720
+ abstract class ProductRemoteDataSource {
721
+ Future<List<ProductModel>> getProducts({int page = 1, int limit = 20});
722
+ Future<ProductModel> getProductById(String id);
723
+ Future<List<ProductModel>> searchProducts({
724
+ required String query,
725
+ String? category,
726
+ });
727
+ }
728
+
729
+ /// Implémentation avec Dio
730
+ class ProductRemoteDataSourceImpl implements ProductRemoteDataSource {
731
+ final Dio dio;
732
+
733
+ ProductRemoteDataSourceImpl({required this.dio});
734
+
735
+ @override
736
+ Future<List<ProductModel>> getProducts({
737
+ int page = 1,
738
+ int limit = 20,
739
+ }) async {
740
+ try {
741
+ final response = await dio.get(
742
+ '/products',
743
+ queryParameters: {'page': page, 'limit': limit},
744
+ );
745
+
746
+ if (response.statusCode == 200) {
747
+ final List<dynamic> data = response.data['data'] ?? response.data;
748
+ return data.map((json) => ProductModel.fromJson(json)).toList();
749
+ } else {
750
+ throw ServerException('Failed to load products');
751
+ }
752
+ } on DioException catch (e) {
753
+ throw ServerException(_handleDioError(e));
754
+ } catch (e) {
755
+ throw ServerException('Unexpected error: $e');
756
+ }
757
+ }
758
+
759
+ @override
760
+ Future<ProductModel> getProductById(String id) async {
761
+ try {
762
+ final response = await dio.get('/products/$id');
763
+
764
+ if (response.statusCode == 200) {
765
+ return ProductModel.fromJson(response.data);
766
+ } else {
767
+ throw ServerException('Product not found');
768
+ }
769
+ } on DioException catch (e) {
770
+ throw ServerException(_handleDioError(e));
771
+ }
772
+ }
773
+
774
+ @override
775
+ Future<List<ProductModel>> searchProducts({
776
+ required String query,
777
+ String? category,
778
+ }) async {
779
+ try {
780
+ final response = await dio.get(
781
+ '/products/search',
782
+ queryParameters: {
783
+ 'q': query,
784
+ if (category != null) 'category': category,
785
+ },
786
+ );
787
+
788
+ if (response.statusCode == 200) {
789
+ final List<dynamic> data = response.data['data'] ?? response.data;
790
+ return data.map((json) => ProductModel.fromJson(json)).toList();
791
+ } else {
792
+ throw ServerException('Search failed');
793
+ }
794
+ } on DioException catch (e) {
795
+ throw ServerException(_handleDioError(e));
796
+ }
797
+ }
798
+
799
+ String _handleDioError(DioException e) {
800
+ switch (e.type) {
801
+ case DioExceptionType.connectionTimeout:
802
+ case DioExceptionType.sendTimeout:
803
+ case DioExceptionType.receiveTimeout:
804
+ return 'Connection timeout';
805
+ case DioExceptionType.badResponse:
806
+ return 'Server error: ${e.response?.statusCode}';
807
+ case DioExceptionType.cancel:
808
+ return 'Request cancelled';
809
+ default:
810
+ return 'Network error';
811
+ }
812
+ }
813
+ }
814
+ ```
815
+
816
+ #### Local Data Source (Cache)
817
+
818
+ ```dart
819
+ // lib/features/products/data/datasources/product_local_datasource.dart
820
+
821
+ import 'package:hive/hive.dart';
822
+ import '../../../../core/errors/exceptions.dart';
823
+ import '../models/product_model.dart';
824
+
825
+ /// Interface pour la source de données locale
826
+ abstract class ProductLocalDataSource {
827
+ Future<List<ProductModel>> getCachedProducts();
828
+ Future<void> cacheProducts(List<ProductModel> products);
829
+ Future<ProductModel> getCachedProduct(String id);
830
+ Future<void> cacheProduct(ProductModel product);
831
+ Future<void> clearCache();
832
+ }
833
+
834
+ /// Implémentation avec Hive
835
+ class ProductLocalDataSourceImpl implements ProductLocalDataSource {
836
+ final Box<ProductModel> productBox;
837
+
838
+ ProductLocalDataSourceImpl({required this.productBox});
839
+
840
+ @override
841
+ Future<List<ProductModel>> getCachedProducts() async {
842
+ try {
843
+ return productBox.values.toList();
844
+ } catch (e) {
845
+ throw CacheException('Failed to get cached products: $e');
846
+ }
847
+ }
848
+
849
+ @override
850
+ Future<void> cacheProducts(List<ProductModel> products) async {
851
+ try {
852
+ // Clear et re-cache
853
+ await productBox.clear();
854
+
855
+ final Map<String, ProductModel> productMap = {
856
+ for (var product in products) product.id: product
857
+ };
858
+
859
+ await productBox.putAll(productMap);
860
+ } catch (e) {
861
+ throw CacheException('Failed to cache products: $e');
862
+ }
863
+ }
864
+
865
+ @override
866
+ Future<ProductModel> getCachedProduct(String id) async {
867
+ try {
868
+ final product = productBox.get(id);
869
+
870
+ if (product == null) {
871
+ throw CacheException('Product not found in cache');
872
+ }
873
+
874
+ return product;
875
+ } catch (e) {
876
+ throw CacheException('Failed to get cached product: $e');
877
+ }
878
+ }
879
+
880
+ @override
881
+ Future<void> cacheProduct(ProductModel product) async {
882
+ try {
883
+ await productBox.put(product.id, product);
884
+ } catch (e) {
885
+ throw CacheException('Failed to cache product: $e');
886
+ }
887
+ }
888
+
889
+ @override
890
+ Future<void> clearCache() async {
891
+ try {
892
+ await productBox.clear();
893
+ } catch (e) {
894
+ throw CacheException('Failed to clear cache: $e');
895
+ }
896
+ }
897
+ }
898
+ ```
899
+
900
+ ### 3. Repository Implementation
901
+
902
+ **Rôle** : Orchestrer les data sources et implémenter l'interface du domain.
903
+
904
+ **Responsabilités** :
905
+ - Choisir entre remote/local selon contexte
906
+ - Gérer le cache
907
+ - Mapper les exceptions en Failures
908
+ - Convertir Models en Entities
909
+
910
+ ```dart
911
+ // lib/features/products/data/repositories/product_repository_impl.dart
912
+
913
+ import 'package:dartz/dartz.dart';
914
+ import '../../../../core/errors/exceptions.dart';
915
+ import '../../../../core/errors/failures.dart';
916
+ import '../../../../core/network/network_info.dart';
917
+ import '../../domain/entities/product.dart';
918
+ import '../../domain/repositories/product_repository.dart';
919
+ import '../datasources/product_local_datasource.dart';
920
+ import '../datasources/product_remote_datasource.dart';
921
+
922
+ /// Implémentation du repository produit.
923
+ ///
924
+ /// Orchestre les sources de données remote et local,
925
+ /// gère le cache et les stratégies offline-first.
926
+ class ProductRepositoryImpl implements ProductRepository {
927
+ final ProductRemoteDataSource remoteDataSource;
928
+ final ProductLocalDataSource localDataSource;
929
+ final NetworkInfo networkInfo;
930
+
931
+ ProductRepositoryImpl({
932
+ required this.remoteDataSource,
933
+ required this.localDataSource,
934
+ required this.networkInfo,
935
+ });
936
+
937
+ @override
938
+ Future<Either<Failure, List<Product>>> getProducts({
939
+ int page = 1,
940
+ int limit = 20,
941
+ }) async {
942
+ if (await networkInfo.isConnected) {
943
+ // Online : récupérer depuis API et cacher
944
+ try {
945
+ final remoteProducts = await remoteDataSource.getProducts(
946
+ page: page,
947
+ limit: limit,
948
+ );
949
+
950
+ // Cache seulement la première page
951
+ if (page == 1) {
952
+ await localDataSource.cacheProducts(remoteProducts);
953
+ }
954
+
955
+ // Convertir models en entities
956
+ final products = remoteProducts.map((model) => model.toEntity()).toList();
957
+
958
+ return Right(products);
959
+ } on ServerException catch (e) {
960
+ return Left(ServerFailure(e.message));
961
+ } catch (e) {
962
+ return Left(ServerFailure('Unexpected error: $e'));
963
+ }
964
+ } else {
965
+ // Offline : récupérer depuis cache
966
+ try {
967
+ final cachedProducts = await localDataSource.getCachedProducts();
968
+
969
+ if (cachedProducts.isEmpty) {
970
+ return const Left(
971
+ CacheFailure('No cached data available offline'),
972
+ );
973
+ }
974
+
975
+ final products = cachedProducts.map((model) => model.toEntity()).toList();
976
+
977
+ return Right(products);
978
+ } on CacheException catch (e) {
979
+ return Left(CacheFailure(e.message));
980
+ }
981
+ }
982
+ }
983
+
984
+ @override
985
+ Future<Either<Failure, Product>> getProductById(String id) async {
986
+ if (await networkInfo.isConnected) {
987
+ try {
988
+ final remoteProduct = await remoteDataSource.getProductById(id);
989
+
990
+ // Cacher le produit
991
+ await localDataSource.cacheProduct(remoteProduct);
992
+
993
+ return Right(remoteProduct.toEntity());
994
+ } on ServerException catch (e) {
995
+ return Left(ServerFailure(e.message));
996
+ }
997
+ } else {
998
+ try {
999
+ final cachedProduct = await localDataSource.getCachedProduct(id);
1000
+ return Right(cachedProduct.toEntity());
1001
+ } on CacheException catch (e) {
1002
+ return Left(CacheFailure(e.message));
1003
+ }
1004
+ }
1005
+ }
1006
+
1007
+ @override
1008
+ Future<Either<Failure, List<Product>>> searchProducts({
1009
+ required String query,
1010
+ String? category,
1011
+ }) async {
1012
+ // Recherche nécessite connexion
1013
+ if (!await networkInfo.isConnected) {
1014
+ return const Left(NetworkFailure('No internet connection'));
1015
+ }
1016
+
1017
+ try {
1018
+ final results = await remoteDataSource.searchProducts(
1019
+ query: query,
1020
+ category: category,
1021
+ );
1022
+
1023
+ final products = results.map((model) => model.toEntity()).toList();
1024
+
1025
+ return Right(products);
1026
+ } on ServerException catch (e) {
1027
+ return Left(ServerFailure(e.message));
1028
+ }
1029
+ }
1030
+
1031
+ @override
1032
+ Future<Either<Failure, List<Product>>> getProductsByCategory(
1033
+ String category, {
1034
+ int page = 1,
1035
+ int limit = 20,
1036
+ }) async {
1037
+ if (await networkInfo.isConnected) {
1038
+ try {
1039
+ final remoteProducts = await remoteDataSource.getProductsByCategory(
1040
+ category,
1041
+ page: page,
1042
+ limit: limit,
1043
+ );
1044
+
1045
+ final products = remoteProducts.map((model) => model.toEntity()).toList();
1046
+
1047
+ return Right(products);
1048
+ } on ServerException catch (e) {
1049
+ return Left(ServerFailure(e.message));
1050
+ }
1051
+ } else {
1052
+ // Fallback : filtrer cache local
1053
+ try {
1054
+ final cachedProducts = await localDataSource.getCachedProducts();
1055
+
1056
+ final filteredProducts = cachedProducts
1057
+ .where((p) => p.category == category)
1058
+ .map((model) => model.toEntity())
1059
+ .toList();
1060
+
1061
+ return Right(filteredProducts);
1062
+ } on CacheException catch (e) {
1063
+ return Left(CacheFailure(e.message));
1064
+ }
1065
+ }
1066
+ }
1067
+ }
1068
+ ```
1069
+
1070
+ ---
1071
+
1072
+ ## Couche PRESENTATION : Interface Utilisateur
1073
+
1074
+ ### 1. State Management avec BLoC
1075
+
1076
+ **Pattern BLoC (Business Logic Component)** :
1077
+ - Séparer logique métier de l'UI
1078
+ - Events → BLoC → States
1079
+ - Testable facilement
1080
+
1081
+ #### Events
1082
+
1083
+ ```dart
1084
+ // lib/features/products/presentation/bloc/product_list/product_list_event.dart
1085
+
1086
+ import 'package:equatable/equatable.dart';
1087
+
1088
+ abstract class ProductListEvent extends Equatable {
1089
+ const ProductListEvent();
1090
+
1091
+ @override
1092
+ List<Object?> get props => [];
1093
+ }
1094
+
1095
+ /// Demande de chargement des produits
1096
+ class LoadProducts extends ProductListEvent {
1097
+ final int page;
1098
+
1099
+ const LoadProducts({this.page = 1});
1100
+
1101
+ @override
1102
+ List<Object?> get props => [page];
1103
+ }
1104
+
1105
+ /// Demande de rafraîchissement (pull-to-refresh)
1106
+ class RefreshProducts extends ProductListEvent {
1107
+ const RefreshProducts();
1108
+ }
1109
+
1110
+ /// Chargement de la page suivante (pagination)
1111
+ class LoadMoreProducts extends ProductListEvent {
1112
+ const LoadMoreProducts();
1113
+ }
1114
+
1115
+ /// Filtrage par catégorie
1116
+ class FilterByCategory extends ProductListEvent {
1117
+ final String category;
1118
+
1119
+ const FilterByCategory(this.category);
1120
+
1121
+ @override
1122
+ List<Object?> get props => [category];
1123
+ }
1124
+
1125
+ /// Recherche de produits
1126
+ class SearchProducts extends ProductListEvent {
1127
+ final String query;
1128
+
1129
+ const SearchProducts(this.query);
1130
+
1131
+ @override
1132
+ List<Object?> get props => [query];
1133
+ }
1134
+ ```
1135
+
1136
+ #### States
1137
+
1138
+ ```dart
1139
+ // lib/features/products/presentation/bloc/product_list/product_list_state.dart
1140
+
1141
+ import 'package:equatable/equatable.dart';
1142
+ import '../../../domain/entities/product.dart';
1143
+
1144
+ abstract class ProductListState extends Equatable {
1145
+ const ProductListState();
1146
+
1147
+ @override
1148
+ List<Object?> get props => [];
1149
+ }
1150
+
1151
+ /// État initial
1152
+ class ProductListInitial extends ProductListState {}
1153
+
1154
+ /// Chargement en cours
1155
+ class ProductListLoading extends ProductListState {}
1156
+
1157
+ /// Produits chargés avec succès
1158
+ class ProductListLoaded extends ProductListState {
1159
+ final List<Product> products;
1160
+ final int currentPage;
1161
+ final bool hasReachedMax;
1162
+
1163
+ const ProductListLoaded({
1164
+ required this.products,
1165
+ this.currentPage = 1,
1166
+ this.hasReachedMax = false,
1167
+ });
1168
+
1169
+ @override
1170
+ List<Object?> get props => [products, currentPage, hasReachedMax];
1171
+
1172
+ /// CopyWith pour modifications
1173
+ ProductListLoaded copyWith({
1174
+ List<Product>? products,
1175
+ int? currentPage,
1176
+ bool? hasReachedMax,
1177
+ }) {
1178
+ return ProductListLoaded(
1179
+ products: products ?? this.products,
1180
+ currentPage: currentPage ?? this.currentPage,
1181
+ hasReachedMax: hasReachedMax ?? this.hasReachedMax,
1182
+ );
1183
+ }
1184
+ }
1185
+
1186
+ /// Chargement de plus de produits (pagination)
1187
+ class ProductListLoadingMore extends ProductListState {
1188
+ final List<Product> currentProducts;
1189
+
1190
+ const ProductListLoadingMore(this.currentProducts);
1191
+
1192
+ @override
1193
+ List<Object?> get props => [currentProducts];
1194
+ }
1195
+
1196
+ /// Erreur lors du chargement
1197
+ class ProductListError extends ProductListState {
1198
+ final String message;
1199
+
1200
+ const ProductListError(this.message);
1201
+
1202
+ @override
1203
+ List<Object?> get props => [message];
1204
+ }
1205
+ ```
1206
+
1207
+ #### BLoC
1208
+
1209
+ ```dart
1210
+ // lib/features/products/presentation/bloc/product_list/product_list_bloc.dart
1211
+
1212
+ import 'package:flutter_bloc/flutter_bloc.dart';
1213
+ import '../../../domain/usecases/get_products.dart';
1214
+ import '../../../domain/usecases/search_products.dart';
1215
+ import 'product_list_event.dart';
1216
+ import 'product_list_state.dart';
1217
+
1218
+ class ProductListBloc extends Bloc<ProductListEvent, ProductListState> {
1219
+ final GetProducts getProducts;
1220
+ final SearchProducts searchProductsUseCase;
1221
+
1222
+ ProductListBloc({
1223
+ required this.getProducts,
1224
+ required this.searchProductsUseCase,
1225
+ }) : super(ProductListInitial()) {
1226
+ on<LoadProducts>(_onLoadProducts);
1227
+ on<RefreshProducts>(_onRefreshProducts);
1228
+ on<LoadMoreProducts>(_onLoadMoreProducts);
1229
+ on<SearchProducts>(_onSearchProducts);
1230
+ }
1231
+
1232
+ Future<void> _onLoadProducts(
1233
+ LoadProducts event,
1234
+ Emitter<ProductListState> emit,
1235
+ ) async {
1236
+ emit(ProductListLoading());
1237
+
1238
+ final result = await getProducts(page: event.page, limit: 20);
1239
+
1240
+ result.fold(
1241
+ (failure) => emit(ProductListError(failure.message)),
1242
+ (products) => emit(ProductListLoaded(
1243
+ products: products,
1244
+ currentPage: event.page,
1245
+ hasReachedMax: products.length < 20,
1246
+ )),
1247
+ );
1248
+ }
1249
+
1250
+ Future<void> _onRefreshProducts(
1251
+ RefreshProducts event,
1252
+ Emitter<ProductListState> emit,
1253
+ ) async {
1254
+ // Recharger la première page
1255
+ final result = await getProducts(page: 1, limit: 20);
1256
+
1257
+ result.fold(
1258
+ (failure) => emit(ProductListError(failure.message)),
1259
+ (products) => emit(ProductListLoaded(
1260
+ products: products,
1261
+ currentPage: 1,
1262
+ hasReachedMax: products.length < 20,
1263
+ )),
1264
+ );
1265
+ }
1266
+
1267
+ Future<void> _onLoadMoreProducts(
1268
+ LoadMoreProducts event,
1269
+ Emitter<ProductListState> emit,
1270
+ ) async {
1271
+ final currentState = state;
1272
+
1273
+ if (currentState is ProductListLoaded && !currentState.hasReachedMax) {
1274
+ // Indiquer qu'on charge plus
1275
+ emit(ProductListLoadingMore(currentState.products));
1276
+
1277
+ final nextPage = currentState.currentPage + 1;
1278
+ final result = await getProducts(page: nextPage, limit: 20);
1279
+
1280
+ result.fold(
1281
+ (failure) => emit(ProductListError(failure.message)),
1282
+ (newProducts) {
1283
+ // Fusionner avec produits existants
1284
+ final allProducts = List.of(currentState.products)
1285
+ ..addAll(newProducts);
1286
+
1287
+ emit(ProductListLoaded(
1288
+ products: allProducts,
1289
+ currentPage: nextPage,
1290
+ hasReachedMax: newProducts.length < 20,
1291
+ ));
1292
+ },
1293
+ );
1294
+ }
1295
+ }
1296
+
1297
+ Future<void> _onSearchProducts(
1298
+ SearchProducts event,
1299
+ Emitter<ProductListState> emit,
1300
+ ) async {
1301
+ emit(ProductListLoading());
1302
+
1303
+ final result = await searchProductsUseCase(
1304
+ SearchProductsParams(query: event.query),
1305
+ );
1306
+
1307
+ result.fold(
1308
+ (failure) => emit(ProductListError(failure.message)),
1309
+ (products) => emit(ProductListLoaded(
1310
+ products: products,
1311
+ currentPage: 1,
1312
+ hasReachedMax: true, // Pas de pagination pour recherche
1313
+ )),
1314
+ );
1315
+ }
1316
+ }
1317
+ ```
1318
+
1319
+ ### 2. Pages (Screens)
1320
+
1321
+ ```dart
1322
+ // lib/features/products/presentation/pages/product_list_page.dart
1323
+
1324
+ import 'package:flutter/material.dart';
1325
+ import 'package:flutter_bloc/flutter_bloc.dart';
1326
+ import '../../../../dependency_injection.dart';
1327
+ import '../bloc/product_list/product_list_bloc.dart';
1328
+ import '../bloc/product_list/product_list_event.dart';
1329
+ import '../bloc/product_list/product_list_state.dart';
1330
+ import '../widgets/product_grid.dart';
1331
+ import '../widgets/product_search_bar.dart';
1332
+
1333
+ class ProductListPage extends StatelessWidget {
1334
+ const ProductListPage({super.key});
1335
+
1336
+ @override
1337
+ Widget build(BuildContext context) {
1338
+ return BlocProvider(
1339
+ // Créer le BLoC via DI
1340
+ create: (_) => getIt<ProductListBloc>()..add(const LoadProducts()),
1341
+ child: const ProductListView(),
1342
+ );
1343
+ }
1344
+ }
1345
+
1346
+ class ProductListView extends StatefulWidget {
1347
+ const ProductListView({super.key});
1348
+
1349
+ @override
1350
+ State<ProductListView> createState() => _ProductListViewState();
1351
+ }
1352
+
1353
+ class _ProductListViewState extends State<ProductListView> {
1354
+ final ScrollController _scrollController = ScrollController();
1355
+
1356
+ @override
1357
+ void initState() {
1358
+ super.initState();
1359
+ _scrollController.addListener(_onScroll);
1360
+ }
1361
+
1362
+ @override
1363
+ void dispose() {
1364
+ _scrollController.dispose();
1365
+ super.dispose();
1366
+ }
1367
+
1368
+ void _onScroll() {
1369
+ if (_isBottom) {
1370
+ context.read<ProductListBloc>().add(const LoadMoreProducts());
1371
+ }
1372
+ }
1373
+
1374
+ bool get _isBottom {
1375
+ if (!_scrollController.hasClients) return false;
1376
+ final maxScroll = _scrollController.position.maxScrollExtent;
1377
+ final currentScroll = _scrollController.offset;
1378
+ return currentScroll >= (maxScroll * 0.9);
1379
+ }
1380
+
1381
+ @override
1382
+ Widget build(BuildContext context) {
1383
+ return Scaffold(
1384
+ appBar: AppBar(
1385
+ title: const Text('Products'),
1386
+ bottom: PreferredSize(
1387
+ preferredSize: const Size.fromHeight(60),
1388
+ child: ProductSearchBar(
1389
+ onSearch: (query) {
1390
+ context.read<ProductListBloc>().add(SearchProducts(query));
1391
+ },
1392
+ ),
1393
+ ),
1394
+ ),
1395
+ body: BlocBuilder<ProductListBloc, ProductListState>(
1396
+ builder: (context, state) {
1397
+ if (state is ProductListLoading) {
1398
+ return const Center(child: CircularProgressIndicator());
1399
+ }
1400
+
1401
+ if (state is ProductListError) {
1402
+ return Center(
1403
+ child: Column(
1404
+ mainAxisAlignment: MainAxisAlignment.center,
1405
+ children: [
1406
+ const Icon(Icons.error_outline, size: 64, color: Colors.red),
1407
+ const SizedBox(height: 16),
1408
+ Text(state.message),
1409
+ const SizedBox(height: 16),
1410
+ ElevatedButton(
1411
+ onPressed: () {
1412
+ context.read<ProductListBloc>().add(const LoadProducts());
1413
+ },
1414
+ child: const Text('Retry'),
1415
+ ),
1416
+ ],
1417
+ ),
1418
+ );
1419
+ }
1420
+
1421
+ if (state is ProductListLoaded || state is ProductListLoadingMore) {
1422
+ final products = state is ProductListLoaded
1423
+ ? state.products
1424
+ : (state as ProductListLoadingMore).currentProducts;
1425
+
1426
+ return RefreshIndicator(
1427
+ onRefresh: () async {
1428
+ context.read<ProductListBloc>().add(const RefreshProducts());
1429
+ // Attendre la fin du refresh
1430
+ await context
1431
+ .read<ProductListBloc>()
1432
+ .stream
1433
+ .firstWhere((s) => s is! ProductListLoading);
1434
+ },
1435
+ child: Column(
1436
+ children: [
1437
+ Expanded(
1438
+ child: ProductGrid(
1439
+ products: products,
1440
+ scrollController: _scrollController,
1441
+ ),
1442
+ ),
1443
+ if (state is ProductListLoadingMore)
1444
+ const Padding(
1445
+ padding: EdgeInsets.all(8.0),
1446
+ child: CircularProgressIndicator(),
1447
+ ),
1448
+ ],
1449
+ ),
1450
+ );
1451
+ }
1452
+
1453
+ return const Center(child: Text('No products'));
1454
+ },
1455
+ ),
1456
+ );
1457
+ }
1458
+ }
1459
+ ```
1460
+
1461
+ ### 3. Widgets réutilisables
1462
+
1463
+ ```dart
1464
+ // lib/features/products/presentation/widgets/product_card.dart
1465
+
1466
+ import 'package:flutter/material.dart';
1467
+ import 'package:cached_network_image/cached_network_image.dart';
1468
+ import '../../../domain/entities/product.dart';
1469
+
1470
+ class ProductCard extends StatelessWidget {
1471
+ const ProductCard({
1472
+ super.key,
1473
+ required this.product,
1474
+ this.onTap,
1475
+ });
1476
+
1477
+ final Product product;
1478
+ final VoidCallback? onTap;
1479
+
1480
+ @override
1481
+ Widget build(BuildContext context) {
1482
+ return Card(
1483
+ clipBehavior: Clip.antiAlias,
1484
+ child: InkWell(
1485
+ onTap: onTap,
1486
+ child: Column(
1487
+ crossAxisAlignment: CrossAxisAlignment.start,
1488
+ children: [
1489
+ // Image
1490
+ Expanded(
1491
+ child: Hero(
1492
+ tag: 'product-${product.id}',
1493
+ child: CachedNetworkImage(
1494
+ imageUrl: product.imageUrl,
1495
+ fit: BoxFit.cover,
1496
+ width: double.infinity,
1497
+ placeholder: (context, url) => const Center(
1498
+ child: CircularProgressIndicator(),
1499
+ ),
1500
+ errorWidget: (context, url, error) => const Icon(Icons.error),
1501
+ ),
1502
+ ),
1503
+ ),
1504
+
1505
+ // Info
1506
+ Padding(
1507
+ padding: const EdgeInsets.all(8.0),
1508
+ child: Column(
1509
+ crossAxisAlignment: CrossAxisAlignment.start,
1510
+ children: [
1511
+ Text(
1512
+ product.name,
1513
+ style: Theme.of(context).textTheme.titleMedium,
1514
+ maxLines: 2,
1515
+ overflow: TextOverflow.ellipsis,
1516
+ ),
1517
+ const SizedBox(height: 4),
1518
+ Text(
1519
+ product.formattedPrice,
1520
+ style: Theme.of(context).textTheme.titleLarge?.copyWith(
1521
+ color: Theme.of(context).colorScheme.primary,
1522
+ fontWeight: FontWeight.bold,
1523
+ ),
1524
+ ),
1525
+ if (product.isLowStock) ...[
1526
+ const SizedBox(height: 4),
1527
+ Container(
1528
+ padding: const EdgeInsets.symmetric(
1529
+ horizontal: 8,
1530
+ vertical: 4,
1531
+ ),
1532
+ decoration: BoxDecoration(
1533
+ color: Colors.orange.shade100,
1534
+ borderRadius: BorderRadius.circular(4),
1535
+ ),
1536
+ child: Text(
1537
+ 'Only ${product.stock} left',
1538
+ style: TextStyle(
1539
+ fontSize: 12,
1540
+ color: Colors.orange.shade900,
1541
+ ),
1542
+ ),
1543
+ ),
1544
+ ],
1545
+ if (!product.isInStock) ...[
1546
+ const SizedBox(height: 4),
1547
+ Container(
1548
+ padding: const EdgeInsets.symmetric(
1549
+ horizontal: 8,
1550
+ vertical: 4,
1551
+ ),
1552
+ decoration: BoxDecoration(
1553
+ color: Colors.red.shade100,
1554
+ borderRadius: BorderRadius.circular(4),
1555
+ ),
1556
+ child: Text(
1557
+ 'Out of stock',
1558
+ style: TextStyle(
1559
+ fontSize: 12,
1560
+ color: Colors.red.shade900,
1561
+ ),
1562
+ ),
1563
+ ),
1564
+ ],
1565
+ ],
1566
+ ),
1567
+ ),
1568
+ ],
1569
+ ),
1570
+ ),
1571
+ );
1572
+ }
1573
+ }
1574
+ ```
1575
+
1576
+ ---
1577
+
1578
+ ## Dependency Injection avec get_it
1579
+
1580
+ ```dart
1581
+ // lib/dependency_injection.dart
1582
+
1583
+ import 'package:dio/dio.dart';
1584
+ import 'package:get_it/get_it.dart';
1585
+ import 'package:hive/hive.dart';
1586
+ import 'package:internet_connection_checker/internet_connection_checker.dart';
1587
+
1588
+ import 'core/network/api_client.dart';
1589
+ import 'core/network/network_info.dart';
1590
+ import 'features/products/data/datasources/product_local_datasource.dart';
1591
+ import 'features/products/data/datasources/product_remote_datasource.dart';
1592
+ import 'features/products/data/models/product_model.dart';
1593
+ import 'features/products/data/repositories/product_repository_impl.dart';
1594
+ import 'features/products/domain/repositories/product_repository.dart';
1595
+ import 'features/products/domain/usecases/get_products.dart';
1596
+ import 'features/products/domain/usecases/search_products.dart';
1597
+ import 'features/products/presentation/bloc/product_list/product_list_bloc.dart';
1598
+
1599
+ final getIt = GetIt.instance;
1600
+
1601
+ /// Configure toutes les dépendances
1602
+ Future<void> configureDependencies() async {
1603
+ // ===== CORE =====
1604
+
1605
+ // Network
1606
+ getIt.registerLazySingleton<Dio>(() => createDio());
1607
+ getIt.registerLazySingleton<InternetConnectionChecker>(
1608
+ () => InternetConnectionChecker(),
1609
+ );
1610
+ getIt.registerLazySingleton<NetworkInfo>(
1611
+ () => NetworkInfoImpl(getIt()),
1612
+ );
1613
+
1614
+ // ===== PRODUCTS FEATURE =====
1615
+
1616
+ // Data Sources
1617
+ final productBox = await Hive.openBox<ProductModel>('products');
1618
+
1619
+ getIt.registerLazySingleton<ProductLocalDataSource>(
1620
+ () => ProductLocalDataSourceImpl(productBox: productBox),
1621
+ );
1622
+
1623
+ getIt.registerLazySingleton<ProductRemoteDataSource>(
1624
+ () => ProductRemoteDataSource(getIt<Dio>()),
1625
+ );
1626
+
1627
+ // Repository
1628
+ getIt.registerLazySingleton<ProductRepository>(
1629
+ () => ProductRepositoryImpl(
1630
+ remoteDataSource: getIt(),
1631
+ localDataSource: getIt(),
1632
+ networkInfo: getIt(),
1633
+ ),
1634
+ );
1635
+
1636
+ // Use Cases
1637
+ getIt.registerLazySingleton(() => GetProducts(getIt()));
1638
+ getIt.registerLazySingleton(() => SearchProducts(getIt()));
1639
+
1640
+ // BLoC
1641
+ getIt.registerFactory(
1642
+ () => ProductListBloc(
1643
+ getProducts: getIt(),
1644
+ searchProductsUseCase: getIt(),
1645
+ ),
1646
+ );
1647
+ }
1648
+
1649
+ Dio createDio() {
1650
+ final dio = Dio(
1651
+ BaseOptions(
1652
+ baseUrl: 'https://api.example.com/v1',
1653
+ connectTimeout: const Duration(seconds: 30),
1654
+ receiveTimeout: const Duration(seconds: 30),
1655
+ headers: {
1656
+ 'Content-Type': 'application/json',
1657
+ 'Accept': 'application/json',
1658
+ },
1659
+ ),
1660
+ );
1661
+
1662
+ // Interceptors
1663
+ dio.interceptors.add(LogInterceptor(
1664
+ requestBody: true,
1665
+ responseBody: true,
1666
+ ));
1667
+
1668
+ return dio;
1669
+ }
1670
+ ```
1671
+
1672
+ **Alternative avec injectable** (génération automatique) :
1673
+
1674
+ ```dart
1675
+ // pubspec.yaml
1676
+ dependencies:
1677
+ get_it: ^7.6.4
1678
+ injectable: ^2.3.2
1679
+
1680
+ dev_dependencies:
1681
+ injectable_generator: ^2.4.1
1682
+ build_runner: ^2.4.7
1683
+
1684
+ // lib/dependency_injection.dart
1685
+ import 'package:get_it/get_it.dart';
1686
+ import 'package:injectable/injectable.dart';
1687
+
1688
+ import 'dependency_injection.config.dart';
1689
+
1690
+ final getIt = GetIt.instance;
1691
+
1692
+ @InjectableInit()
1693
+ Future<void> configureDependencies() async => getIt.init();
1694
+
1695
+ // Dans vos classes :
1696
+ @lazySingleton
1697
+ class ProductRepositoryImpl implements ProductRepository {
1698
+ final ProductRemoteDataSource remoteDataSource;
1699
+ final ProductLocalDataSource localDataSource;
1700
+ final NetworkInfo networkInfo;
1701
+
1702
+ ProductRepositoryImpl({
1703
+ required this.remoteDataSource,
1704
+ required this.localDataSource,
1705
+ required this.networkInfo,
1706
+ });
1707
+
1708
+ // ... implementation
1709
+ }
1710
+ ```
1711
+
1712
+ ---
1713
+
1714
+ ## Récapitulatif des Responsabilités
1715
+
1716
+ ```
1717
+ ┌─────────────────────────────────────────────────────────┐
1718
+ │ PRESENTATION │
1719
+ ├─────────────────────────────────────────────────────────┤
1720
+ │ - Afficher l'UI │
1721
+ │ - Gérer les interactions utilisateur │
1722
+ │ - Dispatcher des events au BLoC │
1723
+ │ - Observer les states et rebuild l'UI │
1724
+ │ - Navigation │
1725
+ │ │
1726
+ │ NE DOIT PAS : │
1727
+ │ - Contenir de la logique métier │
1728
+ │ - Accéder directement aux data sources │
1729
+ │ - Faire des appels HTTP │
1730
+ └─────────────────────────────────────────────────────────┘
1731
+
1732
+ ┌─────────────────────────────────────────────────────────┐
1733
+ │ DOMAIN │
1734
+ ├─────────────────────────────────────────────────────────┤
1735
+ │ - Définir les entités métier │
1736
+ │ - Encapsuler la logique métier dans les use cases │
1737
+ │ - Définir les contrats (interfaces) │
1738
+ │ - Validations métier │
1739
+ │ │
1740
+ │ NE DOIT PAS : │
1741
+ │ - Dépendre de Flutter/Dart:ui │
1742
+ │ - Connaître l'implémentation des repositories │
1743
+ │ - Gérer la sérialization JSON │
1744
+ └─────────────────────────────────────────────────────────┘
1745
+
1746
+ ┌─────────────────────────────────────────────────────────┐
1747
+ │ DATA │
1748
+ ├─────────────────────────────────────────────────────────┤
1749
+ │ - Implémenter les repositories │
1750
+ │ - Gérer les sources de données (API, BDD, Cache) │
1751
+ │ - Mapper les données (JSON ↔ Models ↔ Entities) │
1752
+ │ - Gérer le cache et la synchronisation │
1753
+ │ - Transformer les exceptions en Failures │
1754
+ │ │
1755
+ │ NE DOIT PAS : │
1756
+ │ - Contenir de la logique métier │
1757
+ │ - Connaître la couche présentation │
1758
+ └─────────────────────────────────────────────────────────┘
1759
+ ```
1760
+
1761
+ ---
1762
+
1763
+ *Cette architecture assure une séparation claire des responsabilités, facilite les tests, et permet une évolution progressive du code.*