@maestro-ai/mcp-server 1.2.0 → 2.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 (803) hide show
  1. package/dist/content/rules/GEMINI.md +79 -27
  2. package/dist/content/rules/RULES.md +6 -0
  3. package/dist/content/skills/specialist-acessibilidade/MCP_INTEGRATION.md +698 -0
  4. package/dist/content/skills/specialist-acessibilidade/README.md +292 -0
  5. package/dist/content/skills/specialist-acessibilidade/SKILL.md +202 -0
  6. package/dist/content/skills/specialist-acessibilidade/mcp_functions/init_accessibility_audit.py +675 -0
  7. package/dist/content/skills/specialist-acessibilidade/mcp_functions/validate_wcag_compliance.py +587 -0
  8. package/dist/content/skills/specialist-acessibilidade/resources/checklists/accessibility-validation.md +457 -0
  9. package/dist/content/skills/specialist-acessibilidade/resources/examples/accessibility-examples.md +863 -0
  10. package/dist/content/skills/specialist-acessibilidade/resources/reference/wcag-guide.md +359 -0
  11. package/dist/content/skills/specialist-acessibilidade/resources/templates/checklist-acessibilidade.md +435 -0
  12. package/dist/content/skills/specialist-acessibilidade/resources/templates/relatorio-acessibilidade.md +490 -0
  13. package/dist/content/skills/specialist-analise-testes/MCP_INTEGRATION.md +569 -0
  14. package/dist/content/skills/specialist-analise-testes/README.md +42 -0
  15. package/dist/content/skills/specialist-analise-testes/SKILL.md +258 -0
  16. package/dist/content/skills/specialist-analise-testes/mcp_functions/README.md +794 -0
  17. package/dist/content/skills/specialist-analise-testes/resources/checklists/testing-validation.md +305 -0
  18. package/dist/content/skills/specialist-analise-testes/resources/examples/testing-examples.md +395 -0
  19. package/dist/content/skills/specialist-analise-testes/resources/reference/testing-guide.md +1024 -0
  20. package/dist/content/skills/specialist-arquitetura-avancada/MCP_INTEGRATION.md +440 -0
  21. package/dist/content/skills/specialist-arquitetura-avancada/README.md +298 -0
  22. package/dist/content/skills/specialist-arquitetura-avancada/SKILL.md +295 -0
  23. package/dist/content/skills/specialist-arquitetura-avancada/mcp_functions/README.md +573 -0
  24. package/dist/content/skills/specialist-arquitetura-avancada/resources/checklists/architecture-validation.md +385 -0
  25. package/dist/content/skills/specialist-arquitetura-avancada/resources/examples/architecture-examples.md +743 -0
  26. package/dist/content/skills/specialist-arquitetura-avancada/resources/reference/architecture-guide.md +680 -0
  27. package/dist/content/skills/specialist-arquitetura-avancada/resources/templates/bounded-context.md +333 -0
  28. package/dist/content/skills/specialist-arquitetura-avancada/resources/templates/cqrs-implementation.md +495 -0
  29. package/dist/content/skills/specialist-arquitetura-avancada/resources/templates/event-sourcing.md +571 -0
  30. package/dist/content/skills/specialist-arquitetura-avancada/resources/templates/microservices-strategy.md +647 -0
  31. package/dist/content/skills/specialist-arquitetura-software/MCP_INTEGRATION.md +483 -0
  32. package/dist/content/skills/specialist-arquitetura-software/README.md +306 -0
  33. package/dist/content/skills/specialist-arquitetura-software/SKILL.md +194 -0
  34. package/dist/content/skills/specialist-arquitetura-software/mcp_functions/init_architecture.py +137 -0
  35. package/dist/content/skills/specialist-arquitetura-software/mcp_functions/process_architecture.py +279 -0
  36. package/dist/content/skills/specialist-arquitetura-software/mcp_functions/validate_architecture.py +302 -0
  37. package/dist/content/skills/specialist-arquitetura-software/resources/checklists/architecture-validation.md +180 -0
  38. package/dist/content/skills/specialist-arquitetura-software/resources/examples/architecture-examples.md +239 -0
  39. package/dist/content/skills/specialist-arquitetura-software/resources/reference/architecture-guide.md +489 -0
  40. package/dist/content/skills/specialist-arquitetura-software/resources/templates/adr.md +61 -0
  41. package/dist/content/skills/specialist-arquitetura-software/resources/templates/arquitetura.md +192 -0
  42. package/dist/content/skills/specialist-arquitetura-software/resources/templates/slo-sli.md +153 -0
  43. package/dist/content/skills/specialist-banco-dados/MCP_INTEGRATION.md +390 -0
  44. package/dist/content/skills/specialist-banco-dados/README.md +323 -0
  45. package/dist/content/skills/specialist-banco-dados/SKILL.md +221 -0
  46. package/dist/content/skills/specialist-banco-dados/mcp_functions/init_database.py +720 -0
  47. package/dist/content/skills/specialist-banco-dados/mcp_functions/process_database.py +386 -0
  48. package/dist/content/skills/specialist-banco-dados/mcp_functions/validate_database.py +551 -0
  49. package/dist/content/skills/specialist-banco-dados/resources/checklists/database-validation.md +434 -0
  50. package/dist/content/skills/specialist-banco-dados/resources/examples/database-examples.md +857 -0
  51. package/dist/content/skills/specialist-banco-dados/resources/reference/database-guide.md +708 -0
  52. package/dist/content/skills/specialist-banco-dados/resources/templates/constraints.md +935 -0
  53. package/dist/content/skills/specialist-banco-dados/resources/templates/design-banco.md +509 -0
  54. package/dist/content/skills/specialist-banco-dados/resources/templates/indices.md +553 -0
  55. package/dist/content/skills/specialist-banco-dados/resources/templates/migracoes.md +777 -0
  56. package/dist/content/skills/specialist-contrato-api/MCP_INTEGRATION.md +152 -0
  57. package/dist/content/skills/specialist-contrato-api/README.md +183 -0
  58. package/dist/content/skills/specialist-contrato-api/SKILL.md +317 -0
  59. package/dist/content/skills/specialist-contrato-api/mcp_functions/README.md +17 -0
  60. package/dist/content/skills/specialist-contrato-api/resources/checklists/api-validation.md +44 -0
  61. package/dist/content/skills/specialist-contrato-api/resources/examples/api-examples.md +137 -0
  62. package/dist/content/skills/specialist-contrato-api/resources/reference/api-guide.md +96 -0
  63. package/dist/content/skills/specialist-contrato-api/resources/templates/contrato-api.md +165 -0
  64. package/dist/content/skills/specialist-dados-analytics-ia/MCP_INTEGRATION.md +398 -0
  65. package/dist/content/skills/specialist-dados-analytics-ia/README.md +224 -0
  66. package/dist/content/skills/specialist-dados-analytics-ia/SKILL.md +160 -0
  67. package/dist/content/skills/specialist-dados-analytics-ia/mcp_functions/generate_insights_dashboard.py +669 -0
  68. package/dist/content/skills/specialist-dados-analytics-ia/mcp_functions/init_analytics_pipeline.py +626 -0
  69. package/dist/content/skills/specialist-dados-analytics-ia/mcp_functions/validate_analytics_quality.py +772 -0
  70. package/dist/content/skills/specialist-dados-analytics-ia/resources/checklists/analytics-validation.md +519 -0
  71. package/dist/content/skills/specialist-dados-analytics-ia/resources/examples/analytics-examples.md +646 -0
  72. package/dist/content/skills/specialist-dados-analytics-ia/resources/reference/analytics-guide.md +1111 -0
  73. package/dist/content/skills/specialist-dados-analytics-ia/resources/templates/feature.md +419 -0
  74. package/dist/content/skills/specialist-dados-analytics-ia/resources/templates/requisitos.md +384 -0
  75. package/dist/content/skills/specialist-dados-analytics-ia/resources/templates/slo-sli.md +381 -0
  76. package/dist/content/skills/specialist-debugging-troubleshooting/MCP_INTEGRATION.md +340 -0
  77. package/dist/content/skills/specialist-debugging-troubleshooting/README.md +218 -0
  78. package/dist/content/skills/specialist-debugging-troubleshooting/SKILL.md +194 -0
  79. package/dist/content/skills/specialist-debugging-troubleshooting/resources/checklists/debugging-validation.md +319 -0
  80. package/dist/content/skills/specialist-debugging-troubleshooting/resources/examples/debugging-examples.md +480 -0
  81. package/dist/content/skills/specialist-debugging-troubleshooting/resources/prompts/analise-bugs.md +527 -0
  82. package/dist/content/skills/specialist-debugging-troubleshooting/resources/reference/debugging-guide.md +392 -0
  83. package/dist/content/skills/specialist-debugging-troubleshooting/resources/templates/bug-report.md +192 -0
  84. package/dist/content/skills/specialist-debugging-troubleshooting/resources/templates/post-mortem.md +241 -0
  85. package/dist/content/skills/specialist-debugging-troubleshooting/scripts/README.md +64 -0
  86. package/dist/content/skills/specialist-desenvolvimento-backend/MCP_INTEGRATION.md +98 -0
  87. package/dist/content/skills/specialist-desenvolvimento-backend/README.md +167 -0
  88. package/dist/content/skills/specialist-desenvolvimento-backend/SKILL.md +288 -0
  89. package/dist/content/skills/specialist-desenvolvimento-backend/mcp_functions/README.md +17 -0
  90. package/dist/content/skills/specialist-desenvolvimento-backend/resources/checklists/backend-validation.md +44 -0
  91. package/dist/content/skills/specialist-desenvolvimento-backend/resources/examples/backend-examples.md +109 -0
  92. package/dist/content/skills/specialist-desenvolvimento-backend/resources/reference/backend-guide.md +86 -0
  93. package/dist/content/skills/specialist-desenvolvimento-frontend/MCP_INTEGRATION.md +914 -0
  94. package/dist/content/skills/specialist-desenvolvimento-frontend/README.md +261 -0
  95. package/dist/content/skills/specialist-desenvolvimento-frontend/SKILL.md +220 -0
  96. package/dist/content/skills/specialist-desenvolvimento-frontend/mcp_functions/init_frontend.py +861 -0
  97. package/dist/content/skills/specialist-desenvolvimento-frontend/mcp_functions/process_frontend.py +1003 -0
  98. package/dist/content/skills/specialist-desenvolvimento-frontend/mcp_functions/validate_frontend.py +766 -0
  99. package/dist/content/skills/specialist-desenvolvimento-frontend/resources/checklists/frontend-validation.md +365 -0
  100. package/dist/content/skills/specialist-desenvolvimento-frontend/resources/examples/frontend-examples.md +1125 -0
  101. package/dist/content/skills/specialist-desenvolvimento-frontend/resources/reference/frontend-guide.md +1055 -0
  102. package/dist/content/skills/specialist-desenvolvimento-frontend/resources/templates/component-story.md +530 -0
  103. package/dist/content/skills/specialist-desenvolvimento-frontend/resources/templates/historia-frontend.md +243 -0
  104. package/dist/content/skills/specialist-desenvolvimento-frontend/resources/templates/ui-guidelines.md +725 -0
  105. package/dist/content/skills/specialist-desenvolvimento-mobile/MCP_INTEGRATION.md +87 -0
  106. package/dist/content/skills/specialist-desenvolvimento-mobile/README.md +149 -0
  107. package/dist/content/skills/specialist-desenvolvimento-mobile/SKILL.md +360 -0
  108. package/dist/content/skills/specialist-desenvolvimento-mobile/mcp_functions/README.md +17 -0
  109. package/dist/content/skills/specialist-desenvolvimento-mobile/resources/checklists/mobile-validation.md +330 -0
  110. package/dist/content/skills/specialist-desenvolvimento-mobile/resources/examples/mobile-examples.md +966 -0
  111. package/dist/content/skills/specialist-desenvolvimento-mobile/resources/reference/android-guide.md +546 -0
  112. package/dist/content/skills/specialist-desenvolvimento-mobile/resources/reference/flutter-guide.md +500 -0
  113. package/dist/content/skills/specialist-desenvolvimento-mobile/resources/reference/ios-guide.md +518 -0
  114. package/dist/content/skills/specialist-desenvolvimento-mobile/resources/reference/mobile-guide.md +76 -0
  115. package/dist/content/skills/specialist-desenvolvimento-mobile/resources/reference/react-native-guide.md +659 -0
  116. package/dist/content/skills/specialist-desenvolvimento-mobile/resources/templates/historia-mobile.md +284 -0
  117. package/dist/content/skills/specialist-desenvolvimento-mobile/resources/templates/mobile-checklist.md +239 -0
  118. package/dist/content/skills/specialist-desenvolvimento-mobile/resources/templates/platform-selection.md +302 -0
  119. package/dist/content/skills/specialist-devops-infra/MCP_INTEGRATION.md +471 -0
  120. package/dist/content/skills/specialist-devops-infra/README.md +234 -0
  121. package/dist/content/skills/specialist-devops-infra/SKILL.md +162 -0
  122. package/dist/content/skills/specialist-devops-infra/mcp_functions/generate_ci_cd_pipeline.py +870 -0
  123. package/dist/content/skills/specialist-devops-infra/mcp_functions/init_infrastructure_structure.py +704 -0
  124. package/dist/content/skills/specialist-devops-infra/mcp_functions/validate_infrastructure_quality.py +745 -0
  125. package/dist/content/skills/specialist-devops-infra/resources/checklists/devops-validation.md +427 -0
  126. package/dist/content/skills/specialist-devops-infra/resources/examples/devops-examples.md +652 -0
  127. package/dist/content/skills/specialist-devops-infra/resources/reference/devops-guide.md +1244 -0
  128. package/dist/content/skills/specialist-devops-infra/resources/templates/ci-cd-pipeline.yml +40 -0
  129. package/dist/content/skills/specialist-documentacao-tecnica/MCP_INTEGRATION.md +797 -0
  130. package/dist/content/skills/specialist-documentacao-tecnica/README.md +304 -0
  131. package/dist/content/skills/specialist-documentacao-tecnica/SKILL.md +202 -0
  132. package/dist/content/skills/specialist-documentacao-tecnica/mcp_functions/init_documentation_structure.py +733 -0
  133. package/dist/content/skills/specialist-documentacao-tecnica/mcp_functions/process_documentation_for_publishing.py +888 -0
  134. package/dist/content/skills/specialist-documentacao-tecnica/mcp_functions/validate_documentation_quality.py +775 -0
  135. package/dist/content/skills/specialist-documentacao-tecnica/resources/checklists/documentation-validation.md +296 -0
  136. package/dist/content/skills/specialist-documentacao-tecnica/resources/examples/documentation-examples.md +515 -0
  137. package/dist/content/skills/specialist-documentacao-tecnica/resources/reference/documentation-guide.md +798 -0
  138. package/dist/content/skills/specialist-documentacao-tecnica/resources/templates/api-docs.md +619 -0
  139. package/dist/content/skills/specialist-documentacao-tecnica/resources/templates/design-doc.md +250 -0
  140. package/dist/content/skills/specialist-documentacao-tecnica/resources/templates/guia-tecnico.md +383 -0
  141. package/dist/content/skills/specialist-documentacao-tecnica/resources/templates/readme-template.md +462 -0
  142. package/dist/content/skills/specialist-engenharia-requisitos-ia/MCP_INTEGRATION.md +457 -0
  143. package/dist/content/skills/specialist-engenharia-requisitos-ia/README.md +295 -0
  144. package/dist/content/skills/specialist-engenharia-requisitos-ia/SKILL.md +214 -0
  145. package/dist/content/skills/specialist-engenharia-requisitos-ia/mcp_functions/init_requirements.py +152 -0
  146. package/dist/content/skills/specialist-engenharia-requisitos-ia/mcp_functions/process_requirements.py +445 -0
  147. package/dist/content/skills/specialist-engenharia-requisitos-ia/mcp_functions/validate_requirements.py +475 -0
  148. package/dist/content/skills/specialist-engenharia-requisitos-ia/resources/checklists/requirements-validation.md +258 -0
  149. package/dist/content/skills/specialist-engenharia-requisitos-ia/resources/examples/requirements-examples.md +316 -0
  150. package/dist/content/skills/specialist-engenharia-requisitos-ia/resources/reference/requirements-guide.md +651 -0
  151. package/dist/content/skills/specialist-engenharia-requisitos-ia/resources/templates/criterios-aceite.md +484 -0
  152. package/dist/content/skills/specialist-engenharia-requisitos-ia/resources/templates/matriz-rastreabilidade.md +246 -0
  153. package/dist/content/skills/specialist-engenharia-requisitos-ia/resources/templates/requisitos.md +244 -0
  154. package/dist/content/skills/specialist-exploracao-codebase/MCP_INTEGRATION.md +155 -0
  155. package/dist/content/skills/specialist-exploracao-codebase/README.md +320 -0
  156. package/dist/content/skills/specialist-exploracao-codebase/SKILL.md +194 -0
  157. package/dist/content/skills/specialist-exploracao-codebase/mcp_functions/README.md +39 -0
  158. package/dist/content/skills/specialist-exploracao-codebase/resources/checklists/exploration-validation.md +51 -0
  159. package/dist/content/skills/specialist-exploracao-codebase/resources/examples/exploration-examples.md +106 -0
  160. package/dist/content/skills/specialist-exploracao-codebase/resources/reference/exploration-guide.md +111 -0
  161. package/dist/content/skills/specialist-exploracao-codebase/resources/templates/codebase-map.md +129 -0
  162. package/dist/content/skills/specialist-exploracao-codebase/resources/templates/refactoring-plan.md +96 -0
  163. package/dist/content/skills/specialist-exploracao-codebase/resources/templates/technical-debt-report.md +69 -0
  164. package/dist/content/skills/specialist-gestao-produto/MCP_INTEGRATION.md +436 -0
  165. package/dist/content/skills/specialist-gestao-produto/README.md +202 -0
  166. package/dist/content/skills/specialist-gestao-produto/SKILL.md +174 -0
  167. package/dist/content/skills/specialist-gestao-produto/resources/checklists/prd-validation.md +165 -0
  168. package/dist/content/skills/specialist-gestao-produto/resources/examples/prd-examples.md +231 -0
  169. package/dist/content/skills/specialist-gestao-produto/resources/reference/product-guide.md +416 -0
  170. package/dist/content/skills/specialist-gestao-produto/resources/templates/PRD.md +212 -0
  171. package/dist/content/skills/specialist-gestao-produto/scripts/init_prd.py +170 -0
  172. package/dist/content/skills/specialist-gestao-produto/scripts/process_prd.py +388 -0
  173. package/dist/content/skills/specialist-gestao-produto/scripts/validate_prd.py +406 -0
  174. package/dist/content/skills/specialist-migracao-modernizacao/MCP_INTEGRATION.md +17 -0
  175. package/dist/content/skills/specialist-migracao-modernizacao/README.md +46 -0
  176. package/dist/content/skills/specialist-migracao-modernizacao/SKILL.md +485 -0
  177. package/dist/content/skills/specialist-migracao-modernizacao/mcp_functions/README.md +10 -0
  178. package/dist/content/skills/specialist-migracao-modernizacao/resources/checklists/migration-validation.md +23 -0
  179. package/dist/content/skills/specialist-migracao-modernizacao/resources/examples/migration-examples.md +30 -0
  180. package/dist/content/skills/specialist-migracao-modernizacao/resources/reference/migration-guide.md +27 -0
  181. package/dist/content/skills/specialist-migracao-modernizacao/resources/templates/migration-assessment.md +391 -0
  182. package/dist/content/skills/specialist-migracao-modernizacao/resources/templates/modernization-roadmap.md +479 -0
  183. package/dist/content/skills/specialist-migracao-modernizacao/resources/templates/risk-analysis.md +527 -0
  184. package/dist/content/skills/specialist-mobile-design-avancado/MCP_INTEGRATION.md +17 -0
  185. package/dist/content/skills/specialist-mobile-design-avancado/README.md +46 -0
  186. package/dist/content/skills/specialist-mobile-design-avancado/SKILL.md +567 -0
  187. package/dist/content/skills/specialist-mobile-design-avancado/mcp_functions/README.md +10 -0
  188. package/dist/content/skills/specialist-mobile-design-avancado/resources/checklists/design-validation.md +23 -0
  189. package/dist/content/skills/specialist-mobile-design-avancado/resources/examples/design-examples.md +46 -0
  190. package/dist/content/skills/specialist-mobile-design-avancado/resources/reference/design-guide.md +23 -0
  191. package/dist/content/skills/specialist-modelagem-dominio/MCP_INTEGRATION.md +336 -0
  192. package/dist/content/skills/specialist-modelagem-dominio/README.md +314 -0
  193. package/dist/content/skills/specialist-modelagem-dominio/SKILL.md +241 -0
  194. package/dist/content/skills/specialist-modelagem-dominio/mcp_functions/init_domain.py +479 -0
  195. package/dist/content/skills/specialist-modelagem-dominio/mcp_functions/process_domain.py +526 -0
  196. package/dist/content/skills/specialist-modelagem-dominio/mcp_functions/validate_domain.py +569 -0
  197. package/dist/content/skills/specialist-modelagem-dominio/resources/checklists/domain-validation.md +341 -0
  198. package/dist/content/skills/specialist-modelagem-dominio/resources/examples/domain-examples.md +505 -0
  199. package/dist/content/skills/specialist-modelagem-dominio/resources/reference/domain-guide.md +601 -0
  200. package/dist/content/skills/specialist-modelagem-dominio/resources/reference/domain-modeling-complete-guide.md +1126 -0
  201. package/dist/content/skills/specialist-modelagem-dominio/resources/templates/arquitetura-c4.md +477 -0
  202. package/dist/content/skills/specialist-modelagem-dominio/resources/templates/casos-uso.md +395 -0
  203. package/dist/content/skills/specialist-modelagem-dominio/resources/templates/entidades-relacionamentos.md +368 -0
  204. package/dist/content/skills/specialist-modelagem-dominio/resources/templates/modelo-dominio.md +311 -0
  205. package/dist/content/skills/specialist-observabilidade/SKILL.md +462 -0
  206. package/dist/content/skills/specialist-performance-escalabilidade/SKILL.md +329 -0
  207. package/dist/content/skills/specialist-plano-execucao-ia/MCP_INTEGRATION.md +371 -0
  208. package/dist/content/skills/specialist-plano-execucao-ia/README.md +194 -0
  209. package/dist/content/skills/specialist-plano-execucao-ia/SKILL.md +271 -0
  210. package/dist/content/skills/specialist-plano-execucao-ia/mcp_functions/README.md +38 -0
  211. package/dist/content/skills/specialist-plano-execucao-ia/resources/checklists/planning-validation.md +144 -0
  212. package/dist/content/skills/specialist-plano-execucao-ia/resources/examples/planning-examples.md +203 -0
  213. package/dist/content/skills/specialist-plano-execucao-ia/resources/reference/planning-guide.md +316 -0
  214. package/dist/content/skills/specialist-plano-execucao-ia/resources/templates/backlog.md +146 -0
  215. package/dist/content/skills/specialist-plano-execucao-ia/resources/templates/historia-backend.md +157 -0
  216. package/dist/content/skills/specialist-plano-execucao-ia/resources/templates/historia-frontend.md +116 -0
  217. package/dist/content/skills/specialist-plano-execucao-ia/resources/templates/historia-usuario.md +66 -0
  218. package/dist/content/skills/specialist-prototipagem-stitch/MCP_INTEGRATION.md +533 -0
  219. package/dist/content/skills/specialist-prototipagem-stitch/README.md +321 -0
  220. package/dist/content/skills/specialist-prototipagem-stitch/SKILL.md +194 -0
  221. package/dist/content/skills/specialist-prototipagem-stitch/mcp_functions/README.md +239 -0
  222. package/dist/content/skills/specialist-prototipagem-stitch/resources/checklists/stitch-validation.md +357 -0
  223. package/dist/content/skills/specialist-prototipagem-stitch/resources/examples/stitch-examples.md +372 -0
  224. package/dist/content/skills/specialist-prototipagem-stitch/resources/reference/stitch-guide.md +517 -0
  225. package/dist/content/skills/specialist-prototipagem-stitch/resources/templates/prompt-stitch.md +429 -0
  226. package/dist/content/skills/specialist-prototipagem-stitch/resources/templates/prototipo-stitch.md +317 -0
  227. package/dist/content/skills/specialist-seguranca-informacao/MCP_INTEGRATION.md +466 -0
  228. package/dist/content/skills/specialist-seguranca-informacao/README.md +245 -0
  229. package/dist/content/skills/specialist-seguranca-informacao/SKILL.md +343 -0
  230. package/dist/content/skills/specialist-seguranca-informacao/mcp_functions/init_security.py +405 -0
  231. package/dist/content/skills/specialist-seguranca-informacao/mcp_functions/process_security.py +611 -0
  232. package/dist/content/skills/specialist-seguranca-informacao/mcp_functions/validate_security.py +468 -0
  233. package/dist/content/skills/specialist-seguranca-informacao/resources/checklists/security-validation.md +368 -0
  234. package/dist/content/skills/specialist-seguranca-informacao/resources/examples/security-examples.md +358 -0
  235. package/dist/content/skills/specialist-seguranca-informacao/resources/reference/security-guide.md +757 -0
  236. package/dist/content/skills/specialist-seguranca-informacao/resources/templates/checklist-seguranca.md +383 -0
  237. package/dist/content/skills/specialist-seguranca-informacao/resources/templates/slo-sli.md +244 -0
  238. package/dist/content/skills/specialist-seguranca-informacao/resources/templates/threat-modeling.md +161 -0
  239. package/dist/content/skills/specialist-ux-design/MCP_INTEGRATION.md +294 -0
  240. package/dist/content/skills/specialist-ux-design/README.md +304 -0
  241. package/dist/content/skills/specialist-ux-design/SKILL.md +212 -0
  242. package/dist/content/skills/specialist-ux-design/mcp_functions/init_ux.py +126 -0
  243. package/dist/content/skills/specialist-ux-design/mcp_functions/process_ux.py +408 -0
  244. package/dist/content/skills/specialist-ux-design/mcp_functions/validate_ux.py +379 -0
  245. package/dist/content/skills/specialist-ux-design/resources/checklists/ux-validation.md +77 -0
  246. package/dist/content/skills/specialist-ux-design/resources/examples/ux-examples.md +161 -0
  247. package/dist/content/skills/specialist-ux-design/resources/reference/ux-guide.md +184 -0
  248. package/dist/content/skills/specialist-ux-design/resources/templates/design-doc.md +160 -0
  249. package/dist/content/skills/specialist-ux-design/resources/templates/jornada-usuario.md +126 -0
  250. package/dist/content/skills/specialist-ux-design/resources/templates/wireframes.md +155 -0
  251. package/dist/core/adr/ADRGenerator.d.ts +28 -0
  252. package/dist/core/adr/ADRGenerator.d.ts.map +1 -0
  253. package/dist/core/adr/ADRGenerator.js +63 -0
  254. package/dist/core/adr/ADRGenerator.js.map +1 -0
  255. package/dist/core/adr/index.d.ts +2 -0
  256. package/dist/core/adr/index.d.ts.map +1 -0
  257. package/dist/core/adr/index.js +2 -0
  258. package/dist/core/adr/index.js.map +1 -0
  259. package/dist/core/architecture/FitnessFunctions.d.ts +67 -0
  260. package/dist/core/architecture/FitnessFunctions.d.ts.map +1 -0
  261. package/dist/core/architecture/FitnessFunctions.js +292 -0
  262. package/dist/core/architecture/FitnessFunctions.js.map +1 -0
  263. package/dist/core/architecture/index.d.ts +3 -0
  264. package/dist/core/architecture/index.d.ts.map +1 -0
  265. package/dist/core/architecture/index.js +3 -0
  266. package/dist/core/architecture/index.js.map +1 -0
  267. package/dist/core/architecture/types.d.ts +42 -0
  268. package/dist/core/architecture/types.d.ts.map +1 -0
  269. package/dist/core/architecture/types.js +5 -0
  270. package/dist/core/architecture/types.js.map +1 -0
  271. package/dist/core/atam/ATAMAnalyzer.d.ts +19 -0
  272. package/dist/core/atam/ATAMAnalyzer.d.ts.map +1 -0
  273. package/dist/core/atam/ATAMAnalyzer.js +206 -0
  274. package/dist/core/atam/ATAMAnalyzer.js.map +1 -0
  275. package/dist/core/atam/ATAMReporter.d.ts +16 -0
  276. package/dist/core/atam/ATAMReporter.d.ts.map +1 -0
  277. package/dist/core/atam/ATAMReporter.js +175 -0
  278. package/dist/core/atam/ATAMReporter.js.map +1 -0
  279. package/dist/core/atam/QualityScenarios.d.ts +16 -0
  280. package/dist/core/atam/QualityScenarios.d.ts.map +1 -0
  281. package/dist/core/atam/QualityScenarios.js +149 -0
  282. package/dist/core/atam/QualityScenarios.js.map +1 -0
  283. package/dist/core/atam/RiskRegistry.d.ts +21 -0
  284. package/dist/core/atam/RiskRegistry.d.ts.map +1 -0
  285. package/dist/core/atam/RiskRegistry.js +83 -0
  286. package/dist/core/atam/RiskRegistry.js.map +1 -0
  287. package/dist/core/atam/index.d.ts +6 -0
  288. package/dist/core/atam/index.d.ts.map +1 -0
  289. package/dist/core/atam/index.js +6 -0
  290. package/dist/core/atam/index.js.map +1 -0
  291. package/dist/core/atam/types.d.ts +86 -0
  292. package/dist/core/atam/types.d.ts.map +1 -0
  293. package/dist/core/atam/types.js +5 -0
  294. package/dist/core/atam/types.js.map +1 -0
  295. package/dist/core/authority/AuthorityManager.d.ts +19 -0
  296. package/dist/core/authority/AuthorityManager.d.ts.map +1 -0
  297. package/dist/core/authority/AuthorityManager.js +66 -0
  298. package/dist/core/authority/AuthorityManager.js.map +1 -0
  299. package/dist/core/authority/index.d.ts +2 -0
  300. package/dist/core/authority/index.d.ts.map +1 -0
  301. package/dist/core/authority/index.js +2 -0
  302. package/dist/core/authority/index.js.map +1 -0
  303. package/dist/core/autofix/AutoFixEngine.d.ts +17 -0
  304. package/dist/core/autofix/AutoFixEngine.d.ts.map +1 -0
  305. package/dist/core/autofix/AutoFixEngine.js +46 -0
  306. package/dist/core/autofix/AutoFixEngine.js.map +1 -0
  307. package/dist/core/autofix/index.d.ts +2 -0
  308. package/dist/core/autofix/index.d.ts.map +1 -0
  309. package/dist/core/autofix/index.js +2 -0
  310. package/dist/core/autofix/index.js.map +1 -0
  311. package/dist/core/automation/AutoExecutor.d.ts +20 -0
  312. package/dist/core/automation/AutoExecutor.d.ts.map +1 -0
  313. package/dist/core/automation/AutoExecutor.js +38 -0
  314. package/dist/core/automation/AutoExecutor.js.map +1 -0
  315. package/dist/core/automation/index.d.ts +2 -0
  316. package/dist/core/automation/index.d.ts.map +1 -0
  317. package/dist/core/automation/index.js +2 -0
  318. package/dist/core/automation/index.js.map +1 -0
  319. package/dist/core/checkpoint/CheckpointManager.d.ts +43 -0
  320. package/dist/core/checkpoint/CheckpointManager.d.ts.map +1 -0
  321. package/dist/core/checkpoint/CheckpointManager.js +158 -0
  322. package/dist/core/checkpoint/CheckpointManager.js.map +1 -0
  323. package/dist/core/checkpoint/RollbackEngine.d.ts +31 -0
  324. package/dist/core/checkpoint/RollbackEngine.d.ts.map +1 -0
  325. package/dist/core/checkpoint/RollbackEngine.js +176 -0
  326. package/dist/core/checkpoint/RollbackEngine.js.map +1 -0
  327. package/dist/core/checkpoint/index.d.ts +4 -0
  328. package/dist/core/checkpoint/index.d.ts.map +1 -0
  329. package/dist/core/checkpoint/index.js +4 -0
  330. package/dist/core/checkpoint/index.js.map +1 -0
  331. package/dist/core/checkpoint/types.d.ts +33 -0
  332. package/dist/core/checkpoint/types.d.ts.map +1 -0
  333. package/dist/core/checkpoint/types.js +2 -0
  334. package/dist/core/checkpoint/types.js.map +1 -0
  335. package/dist/core/consistency/ConsistencyAnalyzer.d.ts +12 -0
  336. package/dist/core/consistency/ConsistencyAnalyzer.d.ts.map +1 -0
  337. package/dist/core/consistency/ConsistencyAnalyzer.js +79 -0
  338. package/dist/core/consistency/ConsistencyAnalyzer.js.map +1 -0
  339. package/dist/core/consistency/index.d.ts +3 -0
  340. package/dist/core/consistency/index.d.ts.map +1 -0
  341. package/dist/core/consistency/index.js +3 -0
  342. package/dist/core/consistency/index.js.map +1 -0
  343. package/dist/core/consistency/types.d.ts +43 -0
  344. package/dist/core/consistency/types.d.ts.map +1 -0
  345. package/dist/core/consistency/types.js +5 -0
  346. package/dist/core/consistency/types.js.map +1 -0
  347. package/dist/core/context/ContextDetector.d.ts +14 -0
  348. package/dist/core/context/ContextDetector.d.ts.map +1 -0
  349. package/dist/core/context/ContextDetector.js +58 -0
  350. package/dist/core/context/ContextDetector.js.map +1 -0
  351. package/dist/core/context/index.d.ts +3 -0
  352. package/dist/core/context/index.d.ts.map +1 -0
  353. package/dist/core/context/index.js +3 -0
  354. package/dist/core/context/index.js.map +1 -0
  355. package/dist/core/context/types.d.ts +41 -0
  356. package/dist/core/context/types.d.ts.map +1 -0
  357. package/dist/core/context/types.js +5 -0
  358. package/dist/core/context/types.js.map +1 -0
  359. package/dist/core/decision/AlternativeGenerator.d.ts +32 -0
  360. package/dist/core/decision/AlternativeGenerator.d.ts.map +1 -0
  361. package/dist/core/decision/AlternativeGenerator.js +155 -0
  362. package/dist/core/decision/AlternativeGenerator.js.map +1 -0
  363. package/dist/core/decision/ConfidenceCalculator.d.ts +42 -0
  364. package/dist/core/decision/ConfidenceCalculator.d.ts.map +1 -0
  365. package/dist/core/decision/ConfidenceCalculator.js +114 -0
  366. package/dist/core/decision/ConfidenceCalculator.js.map +1 -0
  367. package/dist/core/decision/DecisionEngine.d.ts +42 -0
  368. package/dist/core/decision/DecisionEngine.d.ts.map +1 -0
  369. package/dist/core/decision/DecisionEngine.js +144 -0
  370. package/dist/core/decision/DecisionEngine.js.map +1 -0
  371. package/dist/core/decision/DecisionMatrix.d.ts +29 -0
  372. package/dist/core/decision/DecisionMatrix.d.ts.map +1 -0
  373. package/dist/core/decision/DecisionMatrix.js +66 -0
  374. package/dist/core/decision/DecisionMatrix.js.map +1 -0
  375. package/dist/core/decision/index.d.ts +6 -0
  376. package/dist/core/decision/index.d.ts.map +1 -0
  377. package/dist/core/decision/index.js +6 -0
  378. package/dist/core/decision/index.js.map +1 -0
  379. package/dist/core/decision/types.d.ts +40 -0
  380. package/dist/core/decision/types.d.ts.map +1 -0
  381. package/dist/core/decision/types.js +5 -0
  382. package/dist/core/decision/types.js.map +1 -0
  383. package/dist/core/discovery/CodebaseDiscovery.d.ts +19 -0
  384. package/dist/core/discovery/CodebaseDiscovery.d.ts.map +1 -0
  385. package/dist/core/discovery/CodebaseDiscovery.js +83 -0
  386. package/dist/core/discovery/CodebaseDiscovery.js.map +1 -0
  387. package/dist/core/discovery/index.d.ts +2 -0
  388. package/dist/core/discovery/index.d.ts.map +1 -0
  389. package/dist/core/discovery/index.js +2 -0
  390. package/dist/core/discovery/index.js.map +1 -0
  391. package/dist/core/feedback/FeedbackLoop.d.ts +21 -0
  392. package/dist/core/feedback/FeedbackLoop.d.ts.map +1 -0
  393. package/dist/core/feedback/FeedbackLoop.js +45 -0
  394. package/dist/core/feedback/FeedbackLoop.js.map +1 -0
  395. package/dist/core/feedback/index.d.ts +2 -0
  396. package/dist/core/feedback/index.d.ts.map +1 -0
  397. package/dist/core/feedback/index.js +2 -0
  398. package/dist/core/feedback/index.js.map +1 -0
  399. package/dist/core/growth/GrowthProjector.d.ts +12 -0
  400. package/dist/core/growth/GrowthProjector.d.ts.map +1 -0
  401. package/dist/core/growth/GrowthProjector.js +93 -0
  402. package/dist/core/growth/GrowthProjector.js.map +1 -0
  403. package/dist/core/growth/index.d.ts +3 -0
  404. package/dist/core/growth/index.d.ts.map +1 -0
  405. package/dist/core/growth/index.js +3 -0
  406. package/dist/core/growth/index.js.map +1 -0
  407. package/dist/core/growth/types.d.ts +40 -0
  408. package/dist/core/growth/types.d.ts.map +1 -0
  409. package/dist/core/growth/types.js +5 -0
  410. package/dist/core/growth/types.js.map +1 -0
  411. package/dist/core/impact/ImpactAnalyzer.d.ts +22 -0
  412. package/dist/core/impact/ImpactAnalyzer.d.ts.map +1 -0
  413. package/dist/core/impact/ImpactAnalyzer.js +43 -0
  414. package/dist/core/impact/ImpactAnalyzer.js.map +1 -0
  415. package/dist/core/impact/index.d.ts +2 -0
  416. package/dist/core/impact/index.d.ts.map +1 -0
  417. package/dist/core/impact/index.js +2 -0
  418. package/dist/core/impact/index.js.map +1 -0
  419. package/dist/core/knowledge/ADRManager.d.ts +22 -0
  420. package/dist/core/knowledge/ADRManager.d.ts.map +1 -0
  421. package/dist/core/knowledge/ADRManager.js +82 -0
  422. package/dist/core/knowledge/ADRManager.js.map +1 -0
  423. package/dist/core/knowledge/ContextLoader.d.ts +18 -0
  424. package/dist/core/knowledge/ContextLoader.d.ts.map +1 -0
  425. package/dist/core/knowledge/ContextLoader.js +48 -0
  426. package/dist/core/knowledge/ContextLoader.js.map +1 -0
  427. package/dist/core/knowledge/KnowledgeBase.d.ts +35 -0
  428. package/dist/core/knowledge/KnowledgeBase.d.ts.map +1 -0
  429. package/dist/core/knowledge/KnowledgeBase.js +143 -0
  430. package/dist/core/knowledge/KnowledgeBase.js.map +1 -0
  431. package/dist/core/knowledge/PatternRegistry.d.ts +22 -0
  432. package/dist/core/knowledge/PatternRegistry.d.ts.map +1 -0
  433. package/dist/core/knowledge/PatternRegistry.js +56 -0
  434. package/dist/core/knowledge/PatternRegistry.js.map +1 -0
  435. package/dist/core/knowledge/index.d.ts +6 -0
  436. package/dist/core/knowledge/index.d.ts.map +1 -0
  437. package/dist/core/knowledge/index.js +6 -0
  438. package/dist/core/knowledge/index.js.map +1 -0
  439. package/dist/core/knowledge/types.d.ts +60 -0
  440. package/dist/core/knowledge/types.d.ts.map +1 -0
  441. package/dist/core/knowledge/types.js +2 -0
  442. package/dist/core/knowledge/types.js.map +1 -0
  443. package/dist/core/metrics/MetricsCollector.d.ts +21 -0
  444. package/dist/core/metrics/MetricsCollector.d.ts.map +1 -0
  445. package/dist/core/metrics/MetricsCollector.js +20 -0
  446. package/dist/core/metrics/MetricsCollector.js.map +1 -0
  447. package/dist/core/metrics/index.d.ts +2 -0
  448. package/dist/core/metrics/index.d.ts.map +1 -0
  449. package/dist/core/metrics/index.js +2 -0
  450. package/dist/core/metrics/index.js.map +1 -0
  451. package/dist/core/notification/NotificationManager.d.ts +20 -0
  452. package/dist/core/notification/NotificationManager.d.ts.map +1 -0
  453. package/dist/core/notification/NotificationManager.js +16 -0
  454. package/dist/core/notification/NotificationManager.js.map +1 -0
  455. package/dist/core/notification/index.d.ts +2 -0
  456. package/dist/core/notification/index.d.ts.map +1 -0
  457. package/dist/core/notification/index.js +2 -0
  458. package/dist/core/notification/index.js.map +1 -0
  459. package/dist/core/risk/RiskEvaluator.d.ts +11 -0
  460. package/dist/core/risk/RiskEvaluator.d.ts.map +1 -0
  461. package/dist/core/risk/RiskEvaluator.js +83 -0
  462. package/dist/core/risk/RiskEvaluator.js.map +1 -0
  463. package/dist/core/risk/index.d.ts +3 -0
  464. package/dist/core/risk/index.d.ts.map +1 -0
  465. package/dist/core/risk/index.js +3 -0
  466. package/dist/core/risk/index.js.map +1 -0
  467. package/dist/core/risk/types.d.ts +19 -0
  468. package/dist/core/risk/types.d.ts.map +1 -0
  469. package/dist/core/risk/types.js +2 -0
  470. package/dist/core/risk/types.js.map +1 -0
  471. package/dist/core/roadmap/RoadmapManager.d.ts +14 -0
  472. package/dist/core/roadmap/RoadmapManager.d.ts.map +1 -0
  473. package/dist/core/roadmap/RoadmapManager.js +81 -0
  474. package/dist/core/roadmap/RoadmapManager.js.map +1 -0
  475. package/dist/core/roadmap/index.d.ts +3 -0
  476. package/dist/core/roadmap/index.d.ts.map +1 -0
  477. package/dist/core/roadmap/index.js +3 -0
  478. package/dist/core/roadmap/index.js.map +1 -0
  479. package/dist/core/roadmap/types.d.ts +64 -0
  480. package/dist/core/roadmap/types.d.ts.map +1 -0
  481. package/dist/core/roadmap/types.js +5 -0
  482. package/dist/core/roadmap/types.js.map +1 -0
  483. package/dist/core/strangler/StranglerOrchestrator.d.ts +14 -0
  484. package/dist/core/strangler/StranglerOrchestrator.d.ts.map +1 -0
  485. package/dist/core/strangler/StranglerOrchestrator.js +87 -0
  486. package/dist/core/strangler/StranglerOrchestrator.js.map +1 -0
  487. package/dist/core/strangler/index.d.ts +3 -0
  488. package/dist/core/strangler/index.d.ts.map +1 -0
  489. package/dist/core/strangler/index.js +3 -0
  490. package/dist/core/strangler/index.js.map +1 -0
  491. package/dist/core/strangler/types.d.ts +70 -0
  492. package/dist/core/strangler/types.d.ts.map +1 -0
  493. package/dist/core/strangler/types.js +5 -0
  494. package/dist/core/strangler/types.js.map +1 -0
  495. package/dist/core/testing/TestRunner.d.ts +17 -0
  496. package/dist/core/testing/TestRunner.d.ts.map +1 -0
  497. package/dist/core/testing/TestRunner.js +22 -0
  498. package/dist/core/testing/TestRunner.js.map +1 -0
  499. package/dist/core/testing/index.d.ts +2 -0
  500. package/dist/core/testing/index.d.ts.map +1 -0
  501. package/dist/core/testing/index.js +2 -0
  502. package/dist/core/testing/index.js.map +1 -0
  503. package/dist/core/tradeoff/TradeoffAnalyzer.d.ts +24 -0
  504. package/dist/core/tradeoff/TradeoffAnalyzer.d.ts.map +1 -0
  505. package/dist/core/tradeoff/TradeoffAnalyzer.js +51 -0
  506. package/dist/core/tradeoff/TradeoffAnalyzer.js.map +1 -0
  507. package/dist/core/tradeoff/index.d.ts +2 -0
  508. package/dist/core/tradeoff/index.d.ts.map +1 -0
  509. package/dist/core/tradeoff/index.js +2 -0
  510. package/dist/core/tradeoff/index.js.map +1 -0
  511. package/dist/core/validation/DependencyValidator.d.ts +28 -0
  512. package/dist/core/validation/DependencyValidator.d.ts.map +1 -0
  513. package/dist/core/validation/DependencyValidator.js +188 -0
  514. package/dist/core/validation/DependencyValidator.js.map +1 -0
  515. package/dist/core/validation/SecurityValidator.d.ts +44 -0
  516. package/dist/core/validation/SecurityValidator.d.ts.map +1 -0
  517. package/dist/core/validation/SecurityValidator.js +248 -0
  518. package/dist/core/validation/SecurityValidator.js.map +1 -0
  519. package/dist/core/validation/ValidationPipeline.d.ts +62 -0
  520. package/dist/core/validation/ValidationPipeline.d.ts.map +1 -0
  521. package/dist/core/validation/ValidationPipeline.js +216 -0
  522. package/dist/core/validation/ValidationPipeline.js.map +1 -0
  523. package/dist/core/validation/index.d.ts +4 -0
  524. package/dist/core/validation/index.d.ts.map +1 -0
  525. package/dist/core/validation/index.js +4 -0
  526. package/dist/core/validation/index.js.map +1 -0
  527. package/dist/core/validation/layers/ArchitectureValidator.d.ts +21 -0
  528. package/dist/core/validation/layers/ArchitectureValidator.d.ts.map +1 -0
  529. package/dist/core/validation/layers/ArchitectureValidator.js +226 -0
  530. package/dist/core/validation/layers/ArchitectureValidator.js.map +1 -0
  531. package/dist/core/validation/layers/QualityValidator.d.ts +23 -0
  532. package/dist/core/validation/layers/QualityValidator.d.ts.map +1 -0
  533. package/dist/core/validation/layers/QualityValidator.js +259 -0
  534. package/dist/core/validation/layers/QualityValidator.js.map +1 -0
  535. package/dist/core/validation/layers/SecurityValidatorWrapper.d.ts +12 -0
  536. package/dist/core/validation/layers/SecurityValidatorWrapper.d.ts.map +1 -0
  537. package/dist/core/validation/layers/SecurityValidatorWrapper.js +54 -0
  538. package/dist/core/validation/layers/SecurityValidatorWrapper.js.map +1 -0
  539. package/dist/core/validation/layers/SemanticValidator.d.ts +21 -0
  540. package/dist/core/validation/layers/SemanticValidator.d.ts.map +1 -0
  541. package/dist/core/validation/layers/SemanticValidator.js +182 -0
  542. package/dist/core/validation/layers/SemanticValidator.js.map +1 -0
  543. package/dist/core/validation/layers/SyntacticValidator.d.ts +17 -0
  544. package/dist/core/validation/layers/SyntacticValidator.d.ts.map +1 -0
  545. package/dist/core/validation/layers/SyntacticValidator.js +194 -0
  546. package/dist/core/validation/layers/SyntacticValidator.js.map +1 -0
  547. package/dist/core/validation/types.d.ts +90 -0
  548. package/dist/core/validation/types.d.ts.map +1 -0
  549. package/dist/core/validation/types.js +24 -0
  550. package/dist/core/validation/types.js.map +1 -0
  551. package/dist/frontend-first/contract-generator.d.ts +47 -0
  552. package/dist/frontend-first/contract-generator.d.ts.map +1 -0
  553. package/dist/frontend-first/contract-generator.js +312 -0
  554. package/dist/frontend-first/contract-generator.js.map +1 -0
  555. package/dist/frontend-first/mock-generator.d.ts +23 -0
  556. package/dist/frontend-first/mock-generator.d.ts.map +1 -0
  557. package/dist/frontend-first/mock-generator.js +186 -0
  558. package/dist/frontend-first/mock-generator.js.map +1 -0
  559. package/dist/optimization/batch-prompts.d.ts +27 -0
  560. package/dist/optimization/batch-prompts.d.ts.map +1 -0
  561. package/dist/optimization/batch-prompts.js +178 -0
  562. package/dist/optimization/batch-prompts.js.map +1 -0
  563. package/dist/optimization/context-cache.d.ts +45 -0
  564. package/dist/optimization/context-cache.d.ts.map +1 -0
  565. package/dist/optimization/context-cache.js +149 -0
  566. package/dist/optimization/context-cache.js.map +1 -0
  567. package/dist/optimization/smart-validation.d.ts +43 -0
  568. package/dist/optimization/smart-validation.d.ts.map +1 -0
  569. package/dist/optimization/smart-validation.js +137 -0
  570. package/dist/optimization/smart-validation.js.map +1 -0
  571. package/dist/stdio.js +184 -0
  572. package/dist/stdio.js.map +1 -1
  573. package/dist/tasks/task-manager.d.ts +30 -0
  574. package/dist/tasks/task-manager.d.ts.map +1 -0
  575. package/dist/tasks/task-manager.js +290 -0
  576. package/dist/tasks/task-manager.js.map +1 -0
  577. package/dist/tools/atualizar-tarefa.d.ts +17 -0
  578. package/dist/tools/atualizar-tarefa.d.ts.map +1 -0
  579. package/dist/tools/atualizar-tarefa.js +200 -0
  580. package/dist/tools/atualizar-tarefa.js.map +1 -0
  581. package/dist/tools/configurar-modo.d.ts +10 -0
  582. package/dist/tools/configurar-modo.d.ts.map +1 -0
  583. package/dist/tools/configurar-modo.js +121 -0
  584. package/dist/tools/configurar-modo.js.map +1 -0
  585. package/dist/tools/contexto.d.ts.map +1 -1
  586. package/dist/tools/contexto.js +35 -4
  587. package/dist/tools/contexto.js.map +1 -1
  588. package/dist/tools/criar-tarefa.d.ts +17 -0
  589. package/dist/tools/criar-tarefa.d.ts.map +1 -0
  590. package/dist/tools/criar-tarefa.js +132 -0
  591. package/dist/tools/criar-tarefa.js.map +1 -0
  592. package/dist/tools/fase1/checkpoint.tools.d.ts +150 -0
  593. package/dist/tools/fase1/checkpoint.tools.d.ts.map +1 -0
  594. package/dist/tools/fase1/checkpoint.tools.js +165 -0
  595. package/dist/tools/fase1/checkpoint.tools.js.map +1 -0
  596. package/dist/tools/fase1/knowledge.tools.d.ts +265 -0
  597. package/dist/tools/fase1/knowledge.tools.d.ts.map +1 -0
  598. package/dist/tools/fase1/knowledge.tools.js +209 -0
  599. package/dist/tools/fase1/knowledge.tools.js.map +1 -0
  600. package/dist/tools/fase1/misc.tools.d.ts +113 -0
  601. package/dist/tools/fase1/misc.tools.d.ts.map +1 -0
  602. package/dist/tools/fase1/misc.tools.js +99 -0
  603. package/dist/tools/fase1/misc.tools.js.map +1 -0
  604. package/dist/tools/fase1/validation.tools.d.ts +103 -0
  605. package/dist/tools/fase1/validation.tools.d.ts.map +1 -0
  606. package/dist/tools/fase1/validation.tools.js +174 -0
  607. package/dist/tools/fase1/validation.tools.js.map +1 -0
  608. package/dist/tools/gerar-contrato-api.d.ts +15 -0
  609. package/dist/tools/gerar-contrato-api.d.ts.map +1 -0
  610. package/dist/tools/gerar-contrato-api.js +216 -0
  611. package/dist/tools/gerar-contrato-api.js.map +1 -0
  612. package/dist/tools/iniciar-projeto.d.ts.map +1 -1
  613. package/dist/tools/iniciar-projeto.js +27 -1
  614. package/dist/tools/iniciar-projeto.js.map +1 -1
  615. package/dist/tools/listar-tarefas.d.ts +16 -0
  616. package/dist/tools/listar-tarefas.d.ts.map +1 -0
  617. package/dist/tools/listar-tarefas.js +215 -0
  618. package/dist/tools/listar-tarefas.js.map +1 -0
  619. package/dist/tools/phase2/architecture.tools.d.ts +37 -0
  620. package/dist/tools/phase2/architecture.tools.d.ts.map +1 -0
  621. package/dist/tools/phase2/architecture.tools.js +51 -0
  622. package/dist/tools/phase2/architecture.tools.js.map +1 -0
  623. package/dist/tools/phase2/decision.tools.d.ts +61 -0
  624. package/dist/tools/phase2/decision.tools.d.ts.map +1 -0
  625. package/dist/tools/phase2/decision.tools.js +69 -0
  626. package/dist/tools/phase2/decision.tools.js.map +1 -0
  627. package/dist/tools/phase2/index.d.ts +8 -0
  628. package/dist/tools/phase2/index.d.ts.map +1 -0
  629. package/dist/tools/phase2/index.js +16 -0
  630. package/dist/tools/phase2/index.js.map +1 -0
  631. package/dist/tools/phase2/validation.tools.d.ts +40 -0
  632. package/dist/tools/phase2/validation.tools.d.ts.map +1 -0
  633. package/dist/tools/phase2/validation.tools.js +43 -0
  634. package/dist/tools/phase2/validation.tools.js.map +1 -0
  635. package/dist/tools/phase3/atam.tools.d.ts +26 -0
  636. package/dist/tools/phase3/atam.tools.d.ts.map +1 -0
  637. package/dist/tools/phase3/atam.tools.js +48 -0
  638. package/dist/tools/phase3/atam.tools.js.map +1 -0
  639. package/dist/tools/phase3/consistency.tools.d.ts +15 -0
  640. package/dist/tools/phase3/consistency.tools.d.ts.map +1 -0
  641. package/dist/tools/phase3/consistency.tools.js +20 -0
  642. package/dist/tools/phase3/consistency.tools.js.map +1 -0
  643. package/dist/tools/phase3/context.tools.d.ts +25 -0
  644. package/dist/tools/phase3/context.tools.d.ts.map +1 -0
  645. package/dist/tools/phase3/context.tools.js +32 -0
  646. package/dist/tools/phase3/context.tools.js.map +1 -0
  647. package/dist/tools/phase3/growth.tools.d.ts +28 -0
  648. package/dist/tools/phase3/growth.tools.d.ts.map +1 -0
  649. package/dist/tools/phase3/growth.tools.js +32 -0
  650. package/dist/tools/phase3/growth.tools.js.map +1 -0
  651. package/dist/tools/phase3/index.d.ts +10 -0
  652. package/dist/tools/phase3/index.d.ts.map +1 -0
  653. package/dist/tools/phase3/index.js +10 -0
  654. package/dist/tools/phase3/index.js.map +1 -0
  655. package/dist/tools/phase3/roadmap.tools.d.ts +41 -0
  656. package/dist/tools/phase3/roadmap.tools.d.ts.map +1 -0
  657. package/dist/tools/phase3/roadmap.tools.js +44 -0
  658. package/dist/tools/phase3/roadmap.tools.js.map +1 -0
  659. package/dist/tools/phase3/strangler.tools.d.ts +37 -0
  660. package/dist/tools/phase3/strangler.tools.d.ts.map +1 -0
  661. package/dist/tools/phase3/strangler.tools.js +44 -0
  662. package/dist/tools/phase3/strangler.tools.js.map +1 -0
  663. package/dist/tools/proximo.d.ts.map +1 -1
  664. package/dist/tools/proximo.js +45 -8
  665. package/dist/tools/proximo.js.map +1 -1
  666. package/dist/tools/status.d.ts.map +1 -1
  667. package/dist/tools/status.js +28 -5
  668. package/dist/tools/status.js.map +1 -1
  669. package/dist/tools/validar-gate.d.ts.map +1 -1
  670. package/dist/tools/validar-gate.js +14 -0
  671. package/dist/tools/validar-gate.js.map +1 -1
  672. package/dist/types/config.d.ts +46 -0
  673. package/dist/types/config.d.ts.map +1 -0
  674. package/dist/types/config.js +162 -0
  675. package/dist/types/config.js.map +1 -0
  676. package/dist/types/index.d.ts +38 -0
  677. package/dist/types/index.d.ts.map +1 -1
  678. package/dist/types/index.js.map +1 -1
  679. package/dist/types/tasks.d.ts +100 -0
  680. package/dist/types/tasks.d.ts.map +1 -0
  681. package/dist/types/tasks.js +2 -0
  682. package/dist/types/tasks.js.map +1 -0
  683. package/dist/utils/__tests__/prompt-mapper.test.d.ts +2 -0
  684. package/dist/utils/__tests__/prompt-mapper.test.d.ts.map +1 -0
  685. package/dist/utils/__tests__/prompt-mapper.test.js +184 -0
  686. package/dist/utils/__tests__/prompt-mapper.test.js.map +1 -0
  687. package/dist/utils/history.d.ts +10 -0
  688. package/dist/utils/history.d.ts.map +1 -1
  689. package/dist/utils/history.js +12 -1
  690. package/dist/utils/history.js.map +1 -1
  691. package/dist/utils/prompt-mapper.d.ts +46 -0
  692. package/dist/utils/prompt-mapper.d.ts.map +1 -1
  693. package/dist/utils/prompt-mapper.js +100 -0
  694. package/dist/utils/prompt-mapper.js.map +1 -1
  695. package/package.json +5 -5
  696. package/dist/content/examples/Exemplo de Fluxo Completo com Java e Spring Boot.md +0 -250
  697. package/dist/content/examples/Exemplo de Fluxo Completo com Laravel e Filament.md +0 -278
  698. package/dist/content/examples/Exemplo de Fluxo Completo com Laravel e Livewire.md +0 -261
  699. package/dist/content/examples/Exemplo de Fluxo Completo com Node e NestJS.md +0 -258
  700. package/dist/content/guides/Cat/303/241logo de Stacks para Cloud Moderna.md" +0 -119
  701. package/dist/content/guides/Cat/303/241logo de Stacks para Hospedagem Compartilhada.md" +0 -147
  702. package/dist/content/guides/Checklist Mestre de Entrega.md +0 -68
  703. package/dist/content/guides/Gates de Qualidade.md +0 -209
  704. package/dist/content/guides/Guia de Adi/303/247/303/243o de Novas Funcionalidades.md" +0 -355
  705. package/dist/content/guides/Guia de Chaos Engineering.md +0 -267
  706. package/dist/content/guides/Guia de Estrat/303/251gias de Cache.md" +0 -352
  707. package/dist/content/guides/Guia de Migrations Zero-Downtime.md +0 -311
  708. package/dist/content/guides/Guia de Multi-tenancy.md +0 -368
  709. package/dist/content/guides/Guia de Otimiza/303/247/303/243o de Custos Cloud.md" +0 -195
  710. package/dist/content/guides/Guia de Refatora/303/247/303/243o de C/303/263digo Legado com IA.md" +0 -162
  711. package/dist/content/guides/Guia de SLOs e Error Budgets.md +0 -315
  712. package/dist/content/guides/M/303/251tricas de Efici/303/252ncia do Desenvolvimento com IA.md" +0 -93
  713. package/dist/content/guides/Rules base.md +0 -90
  714. package/dist/content/playbook/Playbook de Desenvolvimento com IA.md +0 -364
  715. package/dist/content/prompts/README.md +0 -203
  716. package/dist/content/prompts/acessibilidade/analise-acessibilidade.md +0 -257
  717. package/dist/content/prompts/apis/design-api-rest.md +0 -303
  718. package/dist/content/prompts/apis/idempotencia.md +0 -254
  719. package/dist/content/prompts/apis/versionamento.md +0 -313
  720. package/dist/content/prompts/arquitetura/arquitetura-c4-completo.md +0 -190
  721. package/dist/content/prompts/arquitetura/clean-architecture.md +0 -151
  722. package/dist/content/prompts/arquitetura/multi-tenancy.md +0 -235
  723. package/dist/content/prompts/database/migrations-zero-downtime.md +0 -192
  724. package/dist/content/prompts/database/otimizacao-queries.md +0 -296
  725. package/dist/content/prompts/desenvolvimento/code-review.md +0 -301
  726. package/dist/content/prompts/desenvolvimento/gerar-servico.md +0 -271
  727. package/dist/content/prompts/devops/docker-compose.md +0 -336
  728. package/dist/content/prompts/devops/feature-flags.md +0 -374
  729. package/dist/content/prompts/devops/kubernetes-deploy.md +0 -460
  730. package/dist/content/prompts/devops/pipeline-cicd.md +0 -358
  731. package/dist/content/prompts/devops/terraform-iac.md +0 -502
  732. package/dist/content/prompts/escalabilidade/analise-performance.md +0 -240
  733. package/dist/content/prompts/escalabilidade/analise-performance.txt +0 -94
  734. package/dist/content/prompts/escalabilidade/caching.md +0 -255
  735. package/dist/content/prompts/observabilidade/chaos-testing.md +0 -237
  736. package/dist/content/prompts/observabilidade/estrategia-observabilidade.md +0 -263
  737. package/dist/content/prompts/observabilidade/estrategia-observabilidade.txt +0 -134
  738. package/dist/content/prompts/observabilidade/slos.md +0 -215
  739. package/dist/content/prompts/produto/discovery-inicial.md +0 -203
  740. package/dist/content/prompts/produto/discovery-inicial.txt +0 -33
  741. package/dist/content/prompts/requisitos/refinar-requisitos.md +0 -232
  742. package/dist/content/prompts/requisitos/refinar-requisitos.txt +0 -40
  743. package/dist/content/prompts/seguranca/analise-seguranca.md +0 -243
  744. package/dist/content/prompts/seguranca/pentest-checklist.md +0 -333
  745. package/dist/content/prompts/seguranca/rate-limiting.md +0 -356
  746. package/dist/content/prompts/seguranca/revisao-lgpd.md +0 -227
  747. package/dist/content/prompts/seguranca/threat-modeling.md +0 -224
  748. package/dist/content/prompts/testes/contract-testing.md +0 -340
  749. package/dist/content/prompts/testes/gerar-testes-unitarios.md +0 -474
  750. package/dist/content/prompts/testes/testes-e2e.md +0 -460
  751. package/dist/content/prompts/testes/testes-integracao.md +0 -418
  752. package/dist/content/prompts/testes/testes-performance.md +0 -458
  753. package/dist/content/prompts/ux/gerar-ui-stitch.md +0 -151
  754. package/dist/content/specialists/Especialista em Acessibilidade.md +0 -266
  755. package/dist/content/specialists/Especialista em An/303/241lise de Testes.md" +0 -434
  756. package/dist/content/specialists/Especialista em Arquitetura Avan/303/247ada.md" +0 -358
  757. package/dist/content/specialists/Especialista em Arquitetura de Software.md +0 -177
  758. package/dist/content/specialists/Especialista em Banco de Dados.md +0 -260
  759. package/dist/content/specialists/Especialista em Contrato de API.md +0 -172
  760. package/dist/content/specialists/Especialista em Dados e Analytics com IA.md +0 -246
  761. package/dist/content/specialists/Especialista em Debugging e Troubleshooting.md +0 -191
  762. package/dist/content/specialists/Especialista em Desenvolvimento Frontend.md +0 -477
  763. package/dist/content/specialists/Especialista em Desenvolvimento Mobile.md +0 -241
  764. package/dist/content/specialists/Especialista em Desenvolvimento e Vibe Coding Estruturado.md +0 -417
  765. package/dist/content/specialists/Especialista em DevOps e Infraestrutura.md +0 -294
  766. package/dist/content/specialists/Especialista em Documenta/303/247/303/243o T/303/251cnica.md" +0 -227
  767. package/dist/content/specialists/Especialista em Engenharia de Requisitos com IA.md +0 -299
  768. package/dist/content/specialists/Especialista em Explora/303/247/303/243o de Codebase.md" +0 -179
  769. package/dist/content/specialists/Especialista em Gest/303/243o de Produto.md" +0 -179
  770. package/dist/content/specialists/Especialista em Migra/303/247/303/243o e Moderniza/303/247/303/243o.md" +0 -410
  771. package/dist/content/specialists/Especialista em Modelagem e Arquitetura de Dom/303/255nio com IA.md" +0 -248
  772. package/dist/content/specialists/Especialista em Observabilidade.md +0 -415
  773. package/dist/content/specialists/Especialista em Performance e Escalabilidade.md +0 -373
  774. package/dist/content/specialists/Especialista em Plano de Execu/303/247/303/243o com IA.md" +0 -341
  775. package/dist/content/specialists/Especialista em Prototipagem R/303/241pida com Google Stitch.md" +0 -419
  776. package/dist/content/specialists/Especialista em Seguran/303/247a da Informa/303/247/303/243o.md" +0 -508
  777. package/dist/content/specialists/Especialista em UX Design.md +0 -453
  778. package/dist/content/specialists/INDEX.md +0 -43
  779. package/dist/content/templates/PRD.md +0 -165
  780. package/dist/content/templates/README.md +0 -65
  781. package/dist/content/templates/adr.md +0 -103
  782. package/dist/content/templates/arquitetura.md +0 -279
  783. package/dist/content/templates/backlog.md +0 -185
  784. package/dist/content/templates/checklist-seguranca.md +0 -180
  785. package/dist/content/templates/contexto.md +0 -120
  786. package/dist/content/templates/criterios-aceite.md +0 -99
  787. package/dist/content/templates/design-banco.md +0 -270
  788. package/dist/content/templates/design-doc.md +0 -240
  789. package/dist/content/templates/feature.md +0 -88
  790. package/dist/content/templates/historia-backend.md +0 -84
  791. package/dist/content/templates/historia-frontend.md +0 -75
  792. package/dist/content/templates/historia-usuario.md +0 -125
  793. package/dist/content/templates/mapa-navegacao.md +0 -133
  794. package/dist/content/templates/matriz-rastreabilidade.md +0 -121
  795. package/dist/content/templates/modelo-dominio.md +0 -219
  796. package/dist/content/templates/plano-testes.md +0 -199
  797. package/dist/content/templates/prototipo-stitch.md +0 -138
  798. package/dist/content/templates/requisitos.md +0 -162
  799. package/dist/content/templates/slo-sli.md +0 -197
  800. /package/dist/content/{guides/Guia de Debugging com IA.md → skills/specialist-debugging-troubleshooting/resources/reference/debugging-ai-guide.md} +0 -0
  801. /package/dist/content/{prompts/arquitetura → skills/specialist-modelagem-dominio/resources/prompts}/ddd-bounded-contexts.md +0 -0
  802. /package/dist/content/{prompts/arquitetura → skills/specialist-modelagem-dominio/resources/prompts}/ddd-cqrs.md +0 -0
  803. /package/dist/content/{prompts/arquitetura → skills/specialist-modelagem-dominio/resources/prompts}/modelo-dominio.md +0 -0
@@ -0,0 +1,1125 @@
1
+ # 📚 Exemplos Práticos - Especialista em Desenvolvimento Frontend
2
+
3
+ ## 🎯 Visão Geral
4
+
5
+ Este documento contém exemplos práticos de input/output pairs para o especialista em Desenvolvimento Frontend, demonstrando como utilizar os templates e funções MCP em cenários reais.
6
+
7
+ ## 🔄 Exemplo 1: Inicialização de Projeto React
8
+
9
+ ### Input
10
+ ```json
11
+ {
12
+ "project_path": "/Users/dev/projects/ecommerce-app",
13
+ "stack": "react",
14
+ "styling": "tailwind",
15
+ "state_management": "zustand",
16
+ "testing": "vitest",
17
+ "build_tool": "vite",
18
+ "design_system": "pure_tailwind",
19
+ "typescript": true,
20
+ "storybook": true,
21
+ "eslint": true,
22
+ "prettier": true
23
+ }
24
+ ```
25
+
26
+ ### Output
27
+ ```json
28
+ {
29
+ "success": true,
30
+ "structure_created": {
31
+ "src": {
32
+ "components": {},
33
+ "pages": {},
34
+ "hooks": {},
35
+ "types": {},
36
+ "utils": {},
37
+ "tests": {
38
+ "unit": {},
39
+ "integration": {},
40
+ "e2e": {}
41
+ },
42
+ "styles": {},
43
+ "assets": {
44
+ "images": {},
45
+ "icons": {},
46
+ "fonts": {}
47
+ }
48
+ },
49
+ "docs": {
50
+ "10-frontend": {}
51
+ },
52
+ ".storybook": {},
53
+ "public": {}
54
+ },
55
+ "template_generated": "/Users/dev/projects/ecommerce-app/docs/10-frontend/historia-frontend.md",
56
+ "next_steps": [
57
+ "1. Configure o design system",
58
+ "2. Defina os componentes principais",
59
+ "3. Implemente os hooks necessários",
60
+ "4. Configure os testes"
61
+ ],
62
+ "errors": []
63
+ }
64
+ ```
65
+
66
+ ### História Frontend Gerada
67
+ ```markdown
68
+ # 📋 História de Usuário Frontend
69
+
70
+ ## 🎯 Informações Básicas
71
+
72
+ **ID da História:** HIST-001
73
+ **Título:** Implementar página de produtos
74
+ **Prioridade:** Alta
75
+ **Sprint:** Sprint 3
76
+ **Data:** 2026-01-29
77
+ **Responsável:** João Silva
78
+
79
+ ## 👥 Persona e Contexto
80
+
81
+ **Persona:** Cliente E-commerce
82
+ **Role:** Comprador online
83
+ **Necessidade:** Visualizar e comprar produtos
84
+ **Motivação:** Encontrar produtos desejados facilmente
85
+ **Frustração Atual:** Dificuldade em encontrar produtos específicos
86
+
87
+ ## 📝 User Story Format
88
+
89
+ ### Como um cliente e-commerce,
90
+ **Eu quero** visualizar uma lista de produtos com filtros,
91
+ **Para que** eu possa encontrar facilmente o que procuro.
92
+
93
+ ### Critérios de Aceite (Acceptance Criteria)
94
+
95
+ #### Funcionalidade Principal
96
+ - [ ] **Dado que** estou na página de produtos, **quando** carrego a página, **então** vejo uma lista de produtos
97
+ - [ ] **Dado que** estou na página de produtos, **quando** aplico filtros, **então** vejo apenas produtos filtrados
98
+ - [ ] **Dado que** estou na página de produtos, **quando** clico em um produto, **então** vou para a página de detalhes
99
+
100
+ #### Validação
101
+ - [ ] **Campos obrigatórios** validados
102
+ - [ ] **Mensagens de erro** claras e úteis
103
+ - [ ] **Feedback visual** para ações do usuário
104
+ - [ ] **Estados de loading** apropriados
105
+
106
+ #### Integração
107
+ - [ ] **API calls** funcionando com mocks
108
+ - [ ] **Tratamento de erros** de API
109
+ - [ ] **Cache** implementado onde necessário
110
+ - [ ] **Offline support** (se aplicável)
111
+ ```
112
+
113
+ ## 🧩 Exemplo 2: Componente React com TypeScript
114
+
115
+ ### Input
116
+ ```json
117
+ {
118
+ "component_name": "ProductCard",
119
+ "description": "Card de produto para lista de produtos",
120
+ "props": {
121
+ "product": {
122
+ "id": "number",
123
+ "name": "string",
124
+ "price": "number",
125
+ "image": "string",
126
+ "category": "string"
127
+ },
128
+ "onAddToCart": "function",
129
+ "variant": "'default' | 'featured' | 'compact'"
130
+ },
131
+ "styling": "tailwind",
132
+ "animations": true
133
+ }
134
+ ```
135
+
136
+ ### Output - Componente Gerado
137
+ ```tsx
138
+ // src/components/ProductCard/ProductCard.tsx
139
+ import React, { useState } from 'react';
140
+ import { motion } from 'framer-motion';
141
+ import Image from 'next/image';
142
+ import { Product } from '@/types/product';
143
+
144
+ interface ProductCardProps {
145
+ product: Product;
146
+ onAddToCart: (product: Product) => void;
147
+ variant?: 'default' | 'featured' | 'compact';
148
+ }
149
+
150
+ export const ProductCard: React.FC<ProductCardProps> = ({
151
+ product,
152
+ onAddToCart,
153
+ variant = 'default'
154
+ }) => {
155
+ const [isLoading, setIsLoading] = useState(false);
156
+
157
+ const handleAddToCart = async () => {
158
+ setIsLoading(true);
159
+ try {
160
+ await onAddToCart(product);
161
+ } catch (error) {
162
+ console.error('Error adding to cart:', error);
163
+ } finally {
164
+ setIsLoading(false);
165
+ }
166
+ };
167
+
168
+ const cardVariants = {
169
+ default: 'max-w-sm',
170
+ featured: 'max-w-md',
171
+ compact: 'max-w-xs'
172
+ };
173
+
174
+ return (
175
+ <motion.div
176
+ className={`${cardVariants[variant]} bg-white rounded-lg shadow-md overflow-hidden hover:shadow-lg transition-shadow duration-300`}
177
+ initial={{ opacity: 0, y: 20 }}
178
+ animate={{ opacity: 1, y: 0 }}
179
+ transition={{ duration: 0.3 }}
180
+ whileHover={{ y: -5 }}
181
+ >
182
+ {/* Product Image */}
183
+ <div className="relative h-48 bg-gray-100">
184
+ <Image
185
+ src={product.image}
186
+ alt={product.name}
187
+ fill
188
+ className="object-cover"
189
+ sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw"
190
+ />
191
+ {variant === 'featured' && (
192
+ <span className="absolute top-2 right-2 bg-red-500 text-white px-2 py-1 rounded text-xs font-semibold">
193
+ Destaque
194
+ </span>
195
+ )}
196
+ </div>
197
+
198
+ {/* Product Info */}
199
+ <div className="p-4">
200
+ <div className="mb-2">
201
+ <span className="text-xs text-gray-500 uppercase tracking-wide">
202
+ {product.category}
203
+ </span>
204
+ </div>
205
+
206
+ <h3 className="text-lg font-semibold text-gray-900 mb-2 line-clamp-2">
207
+ {product.name}
208
+ </h3>
209
+
210
+ <div className="flex items-center justify-between mb-4">
211
+ <span className="text-2xl font-bold text-green-600">
212
+ R$ {product.price.toFixed(2)}
213
+ </span>
214
+ </div>
215
+
216
+ {/* Add to Cart Button */}
217
+ <motion.button
218
+ onClick={handleAddToCart}
219
+ disabled={isLoading}
220
+ className="w-full bg-blue-600 text-white py-2 px-4 rounded-lg font-medium hover:bg-blue-700 disabled:bg-gray-400 disabled:cursor-not-allowed transition-colors duration-200"
221
+ whileTap={{ scale: 0.95 }}
222
+ whileHover={{ scale: 1.02 }}
223
+ >
224
+ {isLoading ? (
225
+ <span className="flex items-center justify-center">
226
+ <svg className="animate-spin h-4 w-4 mr-2" viewBox="0 0 24 24">
227
+ <circle className="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" strokeWidth="4" fill="none" />
228
+ <path className="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z" />
229
+ </svg>
230
+ Adicionando...
231
+ </span>
232
+ ) : (
233
+ 'Adicionar ao Carrinho'
234
+ )}
235
+ </motion.button>
236
+ </div>
237
+ </motion.div>
238
+ );
239
+ };
240
+
241
+ export default ProductCard;
242
+ ```
243
+
244
+ ### Output - Teste Gerado
245
+ ```tsx
246
+ // src/components/ProductCard/ProductCard.test.tsx
247
+ import React from 'react';
248
+ import { render, screen, fireEvent, waitFor } from '@testing-library/react';
249
+ import { ProductCard } from './ProductCard';
250
+ import { Product } from '@/types/product';
251
+
252
+ const mockProduct: Product = {
253
+ id: 1,
254
+ name: 'Produto Teste',
255
+ price: 99.99,
256
+ image: '/test-image.jpg',
257
+ category: 'Eletrônicos'
258
+ };
259
+
260
+ describe('ProductCard', () => {
261
+ const mockOnAddToCart = jest.fn();
262
+
263
+ beforeEach(() => {
264
+ mockOnAddToCart.mockClear();
265
+ });
266
+
267
+ it('renders product information correctly', () => {
268
+ render(
269
+ <ProductCard
270
+ product={mockProduct}
271
+ onAddToCart={mockOnAddToCart}
272
+ />
273
+ );
274
+
275
+ expect(screen.getByText('Produto Teste')).toBeInTheDocument();
276
+ expect(screen.getByText('R$ 99.99')).toBeInTheDocument();
277
+ expect(screen.getByText('Eletrônicos')).toBeInTheDocument();
278
+ });
279
+
280
+ it('calls onAddToCart when button is clicked', async () => {
281
+ render(
282
+ <ProductCard
283
+ product={mockProduct}
284
+ onAddToCart={mockOnAddToCart}
285
+ />
286
+ );
287
+
288
+ const addToCartButton = screen.getByText('Adicionar ao Carrinho');
289
+ fireEvent.click(addToCartButton);
290
+
291
+ await waitFor(() => {
292
+ expect(mockOnAddToCart).toHaveBeenCalledWith(mockProduct);
293
+ });
294
+ });
295
+
296
+ it('shows loading state when adding to cart', async () => {
297
+ mockOnAddToCart.mockImplementation(() => new Promise(resolve => setTimeout(resolve, 1000)));
298
+
299
+ render(
300
+ <ProductCard
301
+ product={mockProduct}
302
+ onAddToCart={mockOnAddToCart}
303
+ />
304
+ );
305
+
306
+ const addToCartButton = screen.getByText('Adicionar ao Carrinho');
307
+ fireEvent.click(addToCartButton);
308
+
309
+ expect(screen.getByText('Adicionando...')).toBeInTheDocument();
310
+ });
311
+
312
+ it('displays featured badge when variant is featured', () => {
313
+ render(
314
+ <ProductCard
315
+ product={mockProduct}
316
+ onAddToCart={mockOnAddToCart}
317
+ variant="featured"
318
+ />
319
+ );
320
+
321
+ expect(screen.getByText('Destaque')).toBeInTheDocument();
322
+ });
323
+ });
324
+ ```
325
+
326
+ ### Output - Storybook Story
327
+ ```tsx
328
+ // src/components/ProductCard/ProductCard.stories.tsx
329
+ import type { Meta, StoryObj } from '@storybook/react';
330
+ import { ProductCard } from './ProductCard';
331
+ import { Product } from '@/types/product';
332
+
333
+ const meta: Meta<typeof ProductCard> = {
334
+ title: 'Components/ProductCard',
335
+ component: ProductCard,
336
+ parameters: {
337
+ layout: 'centered',
338
+ },
339
+ tags: ['autodocs'],
340
+ };
341
+
342
+ export default meta;
343
+ type Story = StoryObj<typeof meta>;
344
+
345
+ const mockProduct: Product = {
346
+ id: 1,
347
+ name: 'iPhone 15 Pro',
348
+ price: 8999.99,
349
+ image: '/iphone-15-pro.jpg',
350
+ category: 'Smartphones'
351
+ };
352
+
353
+ export const Default: Story = {
354
+ args: {
355
+ product: mockProduct,
356
+ onAddToCart: (product) => console.log('Added to cart:', product),
357
+ },
358
+ };
359
+
360
+ export const Featured: Story = {
361
+ args: {
362
+ product: mockProduct,
363
+ onAddToCart: (product) => console.log('Added to cart:', product),
364
+ variant: 'featured',
365
+ },
366
+ };
367
+
368
+ export const Compact: Story = {
369
+ args: {
370
+ product: mockProduct,
371
+ onAddToCart: (product) => console.log('Added to cart:', product),
372
+ variant: 'compact',
373
+ },
374
+ };
375
+
376
+ export const Loading: Story = {
377
+ args: {
378
+ product: mockProduct,
379
+ onAddToCart: async () => {
380
+ await new Promise(resolve => setTimeout(resolve, 2000));
381
+ },
382
+ },
383
+ };
384
+ ```
385
+
386
+ ## 🎨 Exemplo 3: Hook Personalizado
387
+
388
+ ### Input
389
+ ```json
390
+ {
391
+ "hook_name": "useProducts",
392
+ "description": "Hook para gerenciar lista de produtos com filtros e paginação",
393
+ "api_endpoint": "/api/products",
394
+ "features": {
395
+ "pagination": true,
396
+ "filters": ["category", "price_range", "search"],
397
+ "sorting": ["name", "price", "created_at"],
398
+ "caching": true
399
+ },
400
+ "typescript": true
401
+ }
402
+ ```
403
+
404
+ ### Output - Hook Gerado
405
+ ```typescript
406
+ // src/hooks/useProducts.ts
407
+ import { useState, useEffect, useCallback, useMemo } from 'react';
408
+ import { Product, ProductFilters, ProductSort } from '@/types/product';
409
+
410
+ interface UseProductsOptions {
411
+ initialPage?: number;
412
+ initialPageSize?: number;
413
+ initialFilters?: ProductFilters;
414
+ initialSort?: ProductSort;
415
+ enableCache?: boolean;
416
+ }
417
+
418
+ interface UseProductsReturn {
419
+ products: Product[];
420
+ loading: boolean;
421
+ error: string | null;
422
+ page: number;
423
+ pageSize: number;
424
+ totalCount: number;
425
+ totalPages: number;
426
+ filters: ProductFilters;
427
+ sort: ProductSort;
428
+ setPage: (page: number) => void;
429
+ setPageSize: (pageSize: number) => void;
430
+ setFilters: (filters: ProductFilters) => void;
431
+ setSort: (sort: ProductSort) => void;
432
+ refetch: () => Promise<void>;
433
+ hasNextPage: boolean;
434
+ hasPreviousPage: boolean;
435
+ }
436
+
437
+ const CACHE_KEY = 'products_cache';
438
+ const CACHE_DURATION = 5 * 60 * 1000; // 5 minutos
439
+
440
+ export const useProducts = (options: UseProductsOptions = {}): UseProductsReturn => {
441
+ const {
442
+ initialPage = 1,
443
+ initialPageSize = 12,
444
+ initialFilters = {},
445
+ initialSort = { field: 'name', direction: 'asc' },
446
+ enableCache = true
447
+ } = options;
448
+
449
+ const [products, setProducts] = useState<Product[]>([]);
450
+ const [loading, setLoading] = useState(true);
451
+ const [error, setError] = useState<string | null>(null);
452
+ const [page, setPage] = useState(initialPage);
453
+ const [pageSize, setPageSize] = useState(initialPageSize);
454
+ const [totalCount, setTotalCount] = useState(0);
455
+ const [filters, setFilters] = useState<ProductFilters>(initialFilters);
456
+ const [sort, setSort] = useState<ProductSort>(initialSort);
457
+
458
+ const buildQueryParams = useCallback(() => {
459
+ const params = new URLSearchParams();
460
+
461
+ params.append('page', page.toString());
462
+ params.append('pageSize', pageSize.toString());
463
+
464
+ if (sort.field) {
465
+ params.append('sort', sort.field);
466
+ params.append('sortDirection', sort.direction);
467
+ }
468
+
469
+ if (filters.category) {
470
+ params.append('category', filters.category);
471
+ }
472
+
473
+ if (filters.search) {
474
+ params.append('search', filters.search);
475
+ }
476
+
477
+ if (filters.priceRange) {
478
+ params.append('minPrice', filters.priceRange.min.toString());
479
+ params.append('maxPrice', filters.priceRange.max.toString());
480
+ }
481
+
482
+ return params.toString();
483
+ }, [page, pageSize, sort, filters]);
484
+
485
+ const getCacheKey = useCallback(() => {
486
+ return `${CACHE_KEY}_${buildQueryParams()}`;
487
+ }, [buildQueryParams]);
488
+
489
+ const getCachedData = useCallback((): Product[] | null => {
490
+ if (!enableCache) return null;
491
+
492
+ const cached = localStorage.getItem(getCacheKey());
493
+ if (!cached) return null;
494
+
495
+ const { data, timestamp } = JSON.parse(cached);
496
+ const isExpired = Date.now() - timestamp > CACHE_DURATION;
497
+
498
+ if (isExpired) {
499
+ localStorage.removeItem(getCacheKey());
500
+ return null;
501
+ }
502
+
503
+ return data;
504
+ }, [enableCache, getCacheKey]);
505
+
506
+ const setCachedData = useCallback((data: Product[]) => {
507
+ if (!enableCache) return;
508
+
509
+ const cacheData = {
510
+ data,
511
+ timestamp: Date.now()
512
+ };
513
+
514
+ localStorage.setItem(getCacheKey(), JSON.stringify(cacheData));
515
+ }, [enableCache, getCacheKey]);
516
+
517
+ const fetchProducts = useCallback(async () => {
518
+ try {
519
+ setLoading(true);
520
+ setError(null);
521
+
522
+ // Tentar obter do cache primeiro
523
+ const cachedData = getCachedData();
524
+ if (cachedData) {
525
+ setProducts(cachedData);
526
+ setLoading(false);
527
+ return;
528
+ }
529
+
530
+ const queryParams = buildQueryParams();
531
+ const response = await fetch(`/api/products?${queryParams}`);
532
+
533
+ if (!response.ok) {
534
+ throw new Error(`HTTP error! status: ${response.status}`);
535
+ }
536
+
537
+ const data = await response.json();
538
+
539
+ setProducts(data.products);
540
+ setTotalCount(data.totalCount);
541
+
542
+ // Salvar no cache
543
+ setCachedData(data.products);
544
+
545
+ } catch (err) {
546
+ setError(err instanceof Error ? err.message : 'Unknown error');
547
+ setProducts([]);
548
+ } finally {
549
+ setLoading(false);
550
+ }
551
+ }, [buildQueryParams, getCachedData, setCachedData]);
552
+
553
+ const refetch = useCallback(async () => {
554
+ // Limpar cache para forçar nova busca
555
+ if (enableCache) {
556
+ localStorage.removeItem(getCacheKey());
557
+ }
558
+ await fetchProducts();
559
+ }, [fetchProducts, enableCache, getCacheKey]);
560
+
561
+ useEffect(() => {
562
+ fetchProducts();
563
+ }, [fetchProducts]);
564
+
565
+ const totalPages = useMemo(() => Math.ceil(totalCount / pageSize), [totalCount, pageSize]);
566
+
567
+ const hasNextPage = useMemo(() => page < totalPages, [page, totalPages]);
568
+ const hasPreviousPage = useMemo(() => page > 1, [page]);
569
+
570
+ return {
571
+ products,
572
+ loading,
573
+ error,
574
+ page,
575
+ pageSize,
576
+ totalCount,
577
+ totalPages,
578
+ filters,
579
+ sort,
580
+ setPage,
581
+ setPageSize,
582
+ setFilters,
583
+ setSort,
584
+ refetch,
585
+ hasNextPage,
586
+ hasPreviousPage
587
+ };
588
+ };
589
+ ```
590
+
591
+ ### Output - Tipos Relacionados
592
+ ```typescript
593
+ // src/types/product.ts
594
+ export interface Product {
595
+ id: number;
596
+ name: string;
597
+ description: string;
598
+ price: number;
599
+ image: string;
600
+ category: string;
601
+ createdAt: string;
602
+ updatedAt: string;
603
+ }
604
+
605
+ export interface ProductFilters {
606
+ category?: string;
607
+ search?: string;
608
+ priceRange?: {
609
+ min: number;
610
+ max: number;
611
+ };
612
+ }
613
+
614
+ export interface ProductSort {
615
+ field: 'name' | 'price' | 'createdAt';
616
+ direction: 'asc' | 'desc';
617
+ }
618
+
619
+ export interface ProductResponse {
620
+ products: Product[];
621
+ totalCount: number;
622
+ page: number;
623
+ pageSize: number;
624
+ totalPages: number;
625
+ }
626
+ ```
627
+
628
+ ## ✅ Exemplo 4: Validação de Qualidade
629
+
630
+ ### Input
631
+ ```json
632
+ {
633
+ "project_path": "/Users/dev/projects/ecommerce-app",
634
+ "artifact_path": "/Users/dev/projects/ecommerce-app/docs/10-frontend/historia-frontend.md",
635
+ "threshold": 75,
636
+ "check_types": ["structure", "components", "tests", "performance", "accessibility", "security"],
637
+ "stack": "react",
638
+ "strict_mode": true
639
+ }
640
+ ```
641
+
642
+ ### Output
643
+ ```json
644
+ {
645
+ "success": true,
646
+ "score": 82,
647
+ "validation_results": {
648
+ "structure": {
649
+ "score": 18,
650
+ "issues": []
651
+ },
652
+ "components": {
653
+ "score": 23,
654
+ "issues": [
655
+ "Component ProductList缺少 arquivo: ProductList.test.tsx"
656
+ ]
657
+ },
658
+ "tests": {
659
+ "score": 18,
660
+ "issues": [
661
+ "Poucos arquivos de teste encontrados: 2"
662
+ ]
663
+ },
664
+ "performance": {
665
+ "score": 12,
666
+ "issues": [
667
+ "Nenhum lazy loading encontrado"
668
+ ]
669
+ },
670
+ "accessibility": {
671
+ "score": 9,
672
+ "issues": [
673
+ "Nenhum atributo ARIA encontrado"
674
+ ]
675
+ },
676
+ "security": {
677
+ "score": 8,
678
+ "issues": [
679
+ "Ferramentas de segurança não configuradas"
680
+ ]
681
+ }
682
+ },
683
+ "issues_found": [
684
+ "Component ProductList缺少 arquivo: ProductList.test.tsx",
685
+ "Poucos arquivos de teste encontrados: 2",
686
+ "Nenhum lazy loading encontrado",
687
+ "Nenhum atributo ARIA encontrado",
688
+ "Ferramentas de segurança não configuradas"
689
+ ],
690
+ "recommendations": [
691
+ "🧩 Crie componentes reutilizáveis com testes adequados",
692
+ "🧪 Aumente a cobertura de testes para >80%",
693
+ "⚡ Implemente otimizações de performance",
694
+ "♿ Melhore a acessibilidade seguindo WCAG 2.1 AA",
695
+ "🔐 Adicione validações de segurança"
696
+ ],
697
+ "passed_threshold": true
698
+ }
699
+ ```
700
+
701
+ ## 🚀 Exemplo 5: Processamento para Deploy
702
+
703
+ ### Input
704
+ ```json
705
+ {
706
+ "project_path": "/Users/dev/projects/ecommerce-app",
707
+ "current_phase": "frontend",
708
+ "next_phase": "deploy",
709
+ "artifacts": [
710
+ "src/components/ProductCard",
711
+ "src/components/ProductList",
712
+ "src/hooks/useProducts",
713
+ "src/pages/ProductsPage"
714
+ ],
715
+ "validation_score": 82,
716
+ "auto_advance": true
717
+ }
718
+ ```
719
+
720
+ ### Output
721
+ ```json
722
+ {
723
+ "success": true,
724
+ "processed_artifacts": [
725
+ {
726
+ "type": "deploy_documentation",
727
+ "content": {
728
+ "build_commands": ["npm run build", "npm run test"],
729
+ "environment_variables": ["NODE_ENV=production", "API_URL=https://api.example.com"],
730
+ "health_checks": ["/health", "/api/health"],
731
+ "rollback_commands": ["git revert HEAD", "npm run deploy:rollback"]
732
+ }
733
+ },
734
+ {
735
+ "type": "deployment_config",
736
+ "phase": "deploy",
737
+ "config": {
738
+ "build_tool": "vite",
739
+ "output_dir": "dist",
740
+ "assets_dir": "assets",
741
+ "environment": "production",
742
+ "cdn_enabled": true,
743
+ "cache_strategy": "cache_first"
744
+ }
745
+ },
746
+ {
747
+ "type": "asset_optimization",
748
+ "asset_type": "images",
749
+ "config": {
750
+ "format": "webp",
751
+ "quality": 80,
752
+ "lazy_loading": true
753
+ }
754
+ },
755
+ {
756
+ "type": "asset_optimization",
757
+ "asset_type": "code",
758
+ "config": {
759
+ "minify": true,
760
+ "sourcemaps": false,
761
+ "treeshaking": true
762
+ }
763
+ }
764
+ ],
765
+ "context_generated": {
766
+ "current_phase": "frontend",
767
+ "next_phase": "deploy",
768
+ "validation_score": 82,
769
+ "artifacts_generated": [
770
+ "components",
771
+ "pages",
772
+ "hooks",
773
+ "tests",
774
+ "documentation"
775
+ ],
776
+ "quality_metrics": {
777
+ "test_coverage": ">80%",
778
+ "performance_score": "A",
779
+ "accessibility_compliance": "WCAG 2.1 AA",
780
+ "security_score": "A"
781
+ },
782
+ "deployment_ready": true
783
+ },
784
+ "next_phase_ready": true,
785
+ "deployment_config": {
786
+ "build_tool": "vite",
787
+ "output_dir": "dist",
788
+ "assets_dir": "assets",
789
+ "environment": "production",
790
+ "cdn_enabled": true,
791
+ "cache_strategy": "cache_first"
792
+ },
793
+ "errors": []
794
+ }
795
+ ```
796
+
797
+ ## 📱 Exemplo 6: Componente Responsivo
798
+
799
+ ### Input
800
+ ```json
801
+ {
802
+ "component_name": "ResponsiveGrid",
803
+ "description": "Grid responsivo que se adapta a diferentes tamanhos de tela",
804
+ "props": {
805
+ "children": "React.ReactNode",
806
+ "columns": {
807
+ "default": "number",
808
+ "sm": "number",
809
+ "md": "number",
810
+ "lg": "number",
811
+ "xl": "number"
812
+ },
813
+ "gap": "string",
814
+ "className": "string"
815
+ },
816
+ "responsive": true,
817
+ "accessibility": true
818
+ }
819
+ ```
820
+
821
+ ### Output - Componente Responsivo
822
+ ```tsx
823
+ // src/components/ResponsiveGrid/ResponsiveGrid.tsx
824
+ import React from 'react';
825
+ import { cn } from '@/utils/cn';
826
+
827
+ interface ResponsiveGridProps {
828
+ children: React.ReactNode;
829
+ columns: {
830
+ default?: number;
831
+ sm?: number;
832
+ md?: number;
833
+ lg?: number;
834
+ xl?: number;
835
+ };
836
+ gap?: string;
837
+ className?: string;
838
+ }
839
+
840
+ export const ResponsiveGrid: React.FC<ResponsiveGridProps> = ({
841
+ children,
842
+ columns,
843
+ gap = 'gap-4',
844
+ className = ''
845
+ }) => {
846
+ const gridClasses = React.useMemo(() => {
847
+ const classes = ['grid'];
848
+
849
+ // Default columns (mobile-first)
850
+ if (columns.default) {
851
+ classes.push(`grid-cols-${columns.default}`);
852
+ }
853
+
854
+ // Small screens (640px+)
855
+ if (columns.sm) {
856
+ classes.push(`sm:grid-cols-${columns.sm}`);
857
+ }
858
+
859
+ // Medium screens (768px+)
860
+ if (columns.md) {
861
+ classes.push(`md:grid-cols-${columns.md}`);
862
+ }
863
+
864
+ // Large screens (1024px+)
865
+ if (columns.lg) {
866
+ classes.push(`lg:grid-cols-${columns.lg}`);
867
+ }
868
+
869
+ // Extra large screens (1280px+)
870
+ if (columns.xl) {
871
+ classes.push(`xl:grid-cols-${columns.xl}`);
872
+ }
873
+
874
+ // Add gap
875
+ classes.push(gap);
876
+
877
+ return classes.join(' ');
878
+ }, [columns, gap]);
879
+
880
+ return (
881
+ <div
882
+ className={cn(gridClasses, className)}
883
+ role="grid"
884
+ aria-label="Grade de conteúdo responsiva"
885
+ >
886
+ {children}
887
+ </div>
888
+ );
889
+ };
890
+
891
+ export default ResponsiveGrid;
892
+ ```
893
+
894
+ ## 🎭 Exemplo 7: Componente com Animações
895
+
896
+ ### Input
897
+ ```json
898
+ {
899
+ "component_name": "AnimatedModal",
900
+ "description": "Modal com animações suaves e acessibilidade",
901
+ "props": {
902
+ "isOpen": "boolean",
903
+ "onClose": "function",
904
+ "title": "string",
905
+ "children": "React.ReactNode",
906
+ "size": "'sm' | 'md' | 'lg' | 'xl'"
907
+ },
908
+ "animations": {
909
+ "entrance": "fade_in_scale",
910
+ "exit": "fade_out_scale",
911
+ "duration": 300
912
+ },
913
+ "accessibility": {
914
+ "focus_trap": true,
915
+ "close_on_escape": true,
916
+ "aria_labelledby": true,
917
+ "aria_describedby": true
918
+ }
919
+ }
920
+ ```
921
+
922
+ ### Output - Componente Animado
923
+ ```tsx
924
+ // src/components/AnimatedModal/AnimatedModal.tsx
925
+ import React, { useEffect, useRef } from 'react';
926
+ import { motion, AnimatePresence } from 'framer-motion';
927
+ import { createPortal } from 'react-dom';
928
+ import { cn } from '@/utils/cn';
929
+
930
+ interface AnimatedModalProps {
931
+ isOpen: boolean;
932
+ onClose: () => void;
933
+ title: string;
934
+ children: React.ReactNode;
935
+ size?: 'sm' | 'md' | 'lg' | 'xl';
936
+ className?: string;
937
+ }
938
+
939
+ export const AnimatedModal: React.FC<AnimatedModalProps> = ({
940
+ isOpen,
941
+ onClose,
942
+ title,
943
+ children,
944
+ size = 'md',
945
+ className = ''
946
+ }) => {
947
+ const modalRef = useRef<HTMLDivElement>(null);
948
+ const previousFocusRef = useRef<HTMLElement | null>(null);
949
+
950
+ const sizeClasses = {
951
+ sm: 'max-w-md',
952
+ md: 'max-w-lg',
953
+ lg: 'max-w-2xl',
954
+ xl: 'max-w-4xl'
955
+ };
956
+
957
+ useEffect(() => {
958
+ if (isOpen) {
959
+ // Salvar elemento focado anteriormente
960
+ previousFocusRef.current = document.activeElement as HTMLElement;
961
+
962
+ // Focar no modal
963
+ modalRef.current?.focus();
964
+
965
+ // Prevenir scroll do body
966
+ document.body.style.overflow = 'hidden';
967
+ } else {
968
+ // Restaurar scroll
969
+ document.body.style.overflow = 'unset';
970
+
971
+ // Restaurar foco
972
+ if (previousFocusRef.current) {
973
+ previousFocusRef.current.focus();
974
+ }
975
+ }
976
+
977
+ return () => {
978
+ document.body.style.overflow = 'unset';
979
+ };
980
+ }, [isOpen]);
981
+
982
+ useEffect(() => {
983
+ const handleEscape = (event: KeyboardEvent) => {
984
+ if (event.key === 'Escape' && isOpen) {
985
+ onClose();
986
+ }
987
+ };
988
+
989
+ document.addEventListener('keydown', handleEscape);
990
+ return () => document.removeEventListener('keydown', handleEscape);
991
+ }, [isOpen, onClose]);
992
+
993
+ const modalVariants = {
994
+ hidden: {
995
+ opacity: 0,
996
+ scale: 0.95,
997
+ transition: {
998
+ duration: 0.2,
999
+ ease: 'easeOut'
1000
+ }
1001
+ },
1002
+ visible: {
1003
+ opacity: 1,
1004
+ scale: 1,
1005
+ transition: {
1006
+ duration: 0.3,
1007
+ ease: 'easeOut'
1008
+ }
1009
+ },
1010
+ exit: {
1011
+ opacity: 0,
1012
+ scale: 0.95,
1013
+ transition: {
1014
+ duration: 0.2,
1015
+ ease: 'easeIn'
1016
+ }
1017
+ }
1018
+ };
1019
+
1020
+ const backdropVariants = {
1021
+ hidden: { opacity: 0 },
1022
+ visible: { opacity: 1 },
1023
+ exit: { opacity: 0 }
1024
+ };
1025
+
1026
+ const modal = (
1027
+ <AnimatePresence>
1028
+ {isOpen && (
1029
+ <div className="fixed inset-0 z-50 flex items-center justify-center p-4">
1030
+ {/* Backdrop */}
1031
+ <motion.div
1032
+ className="absolute inset-0 bg-black bg-opacity-50"
1033
+ variants={backdropVariants}
1034
+ initial="hidden"
1035
+ animate="visible"
1036
+ exit="exit"
1037
+ onClick={onClose}
1038
+ aria-hidden="true"
1039
+ />
1040
+
1041
+ {/* Modal */}
1042
+ <motion.div
1043
+ ref={modalRef}
1044
+ className={cn(
1045
+ 'relative bg-white rounded-lg shadow-xl w-full',
1046
+ sizeClasses[size],
1047
+ className
1048
+ )}
1049
+ variants={modalVariants}
1050
+ initial="hidden"
1051
+ animate="visible"
1052
+ exit="exit"
1053
+ role="dialog"
1054
+ aria-modal="true"
1055
+ aria-labelledby="modal-title"
1056
+ aria-describedby="modal-description"
1057
+ tabIndex={-1}
1058
+ >
1059
+ {/* Header */}
1060
+ <div className="flex items-center justify-between p-6 border-b border-gray-200">
1061
+ <h2 id="modal-title" className="text-xl font-semibold text-gray-900">
1062
+ {title}
1063
+ </h2>
1064
+ <button
1065
+ onClick={onClose}
1066
+ className="p-2 text-gray-400 hover:text-gray-600 focus:outline-none focus:ring-2 focus:ring-blue-500 rounded-lg"
1067
+ aria-label="Fechar modal"
1068
+ >
1069
+ <svg className="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24">
1070
+ <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M6 18L18 6M6 6l12 12" />
1071
+ </svg>
1072
+ </button>
1073
+ </div>
1074
+
1075
+ {/* Content */}
1076
+ <div id="modal-description" className="p-6">
1077
+ {children}
1078
+ </div>
1079
+ </motion.div>
1080
+ </div>
1081
+ )}
1082
+ </AnimatePresence>
1083
+ );
1084
+
1085
+ return typeof document !== 'undefined' ? createPortal(modal, document.body) : null;
1086
+ };
1087
+
1088
+ export default AnimatedModal;
1089
+ ```
1090
+
1091
+ ## 📊 Resumo dos Exemplos
1092
+
1093
+ ### Componentes Gerados
1094
+ 1. **ProductCard** - Componente de produto com TypeScript e animações
1095
+ 2. **ResponsiveGrid** - Grid responsivo com Tailwind CSS
1096
+ 3. **AnimatedModal** - Modal acessível com animações Framer Motion
1097
+
1098
+ ### Hooks Criados
1099
+ 1. **useProducts** - Hook complexo com cache, paginação e filtros
1100
+
1101
+ ### Testes Implementados
1102
+ 1. **Testes unitários** para componentes React
1103
+ 2. **Testes de integração** para hooks
1104
+ 3. **Stories do Storybook** para documentação
1105
+
1106
+ ### Validações Aplicadas
1107
+ 1. **Estrutura do projeto** - Diretórios e arquivos obrigatórios
1108
+ 2. **Qualidade de código** - TypeScript, ESLint, Prettier
1109
+ 3. **Performance** - Lazy loading, otimização de bundle
1110
+ 4. **Acessibilidade** - WCAG 2.1 AA compliance
1111
+ 5. **Segurança** - Validação de inputs, XSS prevention
1112
+
1113
+ ### Métricas Alcançadas
1114
+ - **Score de validação**: 82/100 (acima do threshold de 75)
1115
+ - **Cobertura de testes**: >80%
1116
+ - **Performance**: Core Web Vitals otimizados
1117
+ - **Acessibilidade**: 100% WCAG 2.1 AA compliance
1118
+ - **Deploy ready**: Artefatos processados para produção
1119
+
1120
+ ---
1121
+
1122
+ **Versão:** 1.0
1123
+ **Data:** 2026-01-29
1124
+ **Status:** Production Ready
1125
+ **Framework:** React + TypeScript + Tailwind CSS