@maestro-ai/mcp-server 1.1.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 (821) hide show
  1. package/dist/adapters/skill-adapter.d.ts +57 -0
  2. package/dist/adapters/skill-adapter.d.ts.map +1 -0
  3. package/dist/adapters/skill-adapter.js +272 -0
  4. package/dist/adapters/skill-adapter.js.map +1 -0
  5. package/dist/content/rules/GEMINI.md +79 -27
  6. package/dist/content/rules/RULES.md +6 -0
  7. package/dist/content/skills/specialist-acessibilidade/MCP_INTEGRATION.md +698 -0
  8. package/dist/content/skills/specialist-acessibilidade/README.md +292 -0
  9. package/dist/content/skills/specialist-acessibilidade/SKILL.md +202 -0
  10. package/dist/content/skills/specialist-acessibilidade/mcp_functions/init_accessibility_audit.py +675 -0
  11. package/dist/content/skills/specialist-acessibilidade/mcp_functions/validate_wcag_compliance.py +587 -0
  12. package/dist/content/skills/specialist-acessibilidade/resources/checklists/accessibility-validation.md +457 -0
  13. package/dist/content/skills/specialist-acessibilidade/resources/examples/accessibility-examples.md +863 -0
  14. package/dist/content/skills/specialist-acessibilidade/resources/reference/wcag-guide.md +359 -0
  15. package/dist/content/skills/specialist-acessibilidade/resources/templates/checklist-acessibilidade.md +435 -0
  16. package/dist/content/skills/specialist-acessibilidade/resources/templates/relatorio-acessibilidade.md +490 -0
  17. package/dist/content/skills/specialist-analise-testes/MCP_INTEGRATION.md +569 -0
  18. package/dist/content/skills/specialist-analise-testes/README.md +42 -0
  19. package/dist/content/skills/specialist-analise-testes/SKILL.md +258 -0
  20. package/dist/content/skills/specialist-analise-testes/mcp_functions/README.md +794 -0
  21. package/dist/content/skills/specialist-analise-testes/resources/checklists/testing-validation.md +305 -0
  22. package/dist/content/skills/specialist-analise-testes/resources/examples/testing-examples.md +395 -0
  23. package/dist/content/skills/specialist-analise-testes/resources/reference/testing-guide.md +1024 -0
  24. package/dist/content/skills/specialist-arquitetura-avancada/MCP_INTEGRATION.md +440 -0
  25. package/dist/content/skills/specialist-arquitetura-avancada/README.md +298 -0
  26. package/dist/content/skills/specialist-arquitetura-avancada/SKILL.md +295 -0
  27. package/dist/content/skills/specialist-arquitetura-avancada/mcp_functions/README.md +573 -0
  28. package/dist/content/skills/specialist-arquitetura-avancada/resources/checklists/architecture-validation.md +385 -0
  29. package/dist/content/skills/specialist-arquitetura-avancada/resources/examples/architecture-examples.md +743 -0
  30. package/dist/content/skills/specialist-arquitetura-avancada/resources/reference/architecture-guide.md +680 -0
  31. package/dist/content/skills/specialist-arquitetura-avancada/resources/templates/bounded-context.md +333 -0
  32. package/dist/content/skills/specialist-arquitetura-avancada/resources/templates/cqrs-implementation.md +495 -0
  33. package/dist/content/skills/specialist-arquitetura-avancada/resources/templates/event-sourcing.md +571 -0
  34. package/dist/content/skills/specialist-arquitetura-avancada/resources/templates/microservices-strategy.md +647 -0
  35. package/dist/content/skills/specialist-arquitetura-software/MCP_INTEGRATION.md +483 -0
  36. package/dist/content/skills/specialist-arquitetura-software/README.md +306 -0
  37. package/dist/content/skills/specialist-arquitetura-software/SKILL.md +194 -0
  38. package/dist/content/skills/specialist-arquitetura-software/mcp_functions/init_architecture.py +137 -0
  39. package/dist/content/skills/specialist-arquitetura-software/mcp_functions/process_architecture.py +279 -0
  40. package/dist/content/skills/specialist-arquitetura-software/mcp_functions/validate_architecture.py +302 -0
  41. package/dist/content/skills/specialist-arquitetura-software/resources/checklists/architecture-validation.md +180 -0
  42. package/dist/content/skills/specialist-arquitetura-software/resources/examples/architecture-examples.md +239 -0
  43. package/dist/content/skills/specialist-arquitetura-software/resources/reference/architecture-guide.md +489 -0
  44. package/dist/content/skills/specialist-arquitetura-software/resources/templates/adr.md +61 -0
  45. package/dist/content/skills/specialist-arquitetura-software/resources/templates/arquitetura.md +192 -0
  46. package/dist/content/skills/specialist-arquitetura-software/resources/templates/slo-sli.md +153 -0
  47. package/dist/content/skills/specialist-banco-dados/MCP_INTEGRATION.md +390 -0
  48. package/dist/content/skills/specialist-banco-dados/README.md +323 -0
  49. package/dist/content/skills/specialist-banco-dados/SKILL.md +221 -0
  50. package/dist/content/skills/specialist-banco-dados/mcp_functions/init_database.py +720 -0
  51. package/dist/content/skills/specialist-banco-dados/mcp_functions/process_database.py +386 -0
  52. package/dist/content/skills/specialist-banco-dados/mcp_functions/validate_database.py +551 -0
  53. package/dist/content/skills/specialist-banco-dados/resources/checklists/database-validation.md +434 -0
  54. package/dist/content/skills/specialist-banco-dados/resources/examples/database-examples.md +857 -0
  55. package/dist/content/skills/specialist-banco-dados/resources/reference/database-guide.md +708 -0
  56. package/dist/content/skills/specialist-banco-dados/resources/templates/constraints.md +935 -0
  57. package/dist/content/skills/specialist-banco-dados/resources/templates/design-banco.md +509 -0
  58. package/dist/content/skills/specialist-banco-dados/resources/templates/indices.md +553 -0
  59. package/dist/content/skills/specialist-banco-dados/resources/templates/migracoes.md +777 -0
  60. package/dist/content/skills/specialist-contrato-api/MCP_INTEGRATION.md +152 -0
  61. package/dist/content/skills/specialist-contrato-api/README.md +183 -0
  62. package/dist/content/skills/specialist-contrato-api/SKILL.md +317 -0
  63. package/dist/content/skills/specialist-contrato-api/mcp_functions/README.md +17 -0
  64. package/dist/content/skills/specialist-contrato-api/resources/checklists/api-validation.md +44 -0
  65. package/dist/content/skills/specialist-contrato-api/resources/examples/api-examples.md +137 -0
  66. package/dist/content/skills/specialist-contrato-api/resources/reference/api-guide.md +96 -0
  67. package/dist/content/skills/specialist-contrato-api/resources/templates/contrato-api.md +165 -0
  68. package/dist/content/skills/specialist-dados-analytics-ia/MCP_INTEGRATION.md +398 -0
  69. package/dist/content/skills/specialist-dados-analytics-ia/README.md +224 -0
  70. package/dist/content/skills/specialist-dados-analytics-ia/SKILL.md +160 -0
  71. package/dist/content/skills/specialist-dados-analytics-ia/mcp_functions/generate_insights_dashboard.py +669 -0
  72. package/dist/content/skills/specialist-dados-analytics-ia/mcp_functions/init_analytics_pipeline.py +626 -0
  73. package/dist/content/skills/specialist-dados-analytics-ia/mcp_functions/validate_analytics_quality.py +772 -0
  74. package/dist/content/skills/specialist-dados-analytics-ia/resources/checklists/analytics-validation.md +519 -0
  75. package/dist/content/skills/specialist-dados-analytics-ia/resources/examples/analytics-examples.md +646 -0
  76. package/dist/content/skills/specialist-dados-analytics-ia/resources/reference/analytics-guide.md +1111 -0
  77. package/dist/content/skills/specialist-dados-analytics-ia/resources/templates/feature.md +419 -0
  78. package/dist/content/skills/specialist-dados-analytics-ia/resources/templates/requisitos.md +384 -0
  79. package/dist/content/skills/specialist-dados-analytics-ia/resources/templates/slo-sli.md +381 -0
  80. package/dist/content/skills/specialist-debugging-troubleshooting/MCP_INTEGRATION.md +340 -0
  81. package/dist/content/skills/specialist-debugging-troubleshooting/README.md +218 -0
  82. package/dist/content/skills/specialist-debugging-troubleshooting/SKILL.md +194 -0
  83. package/dist/content/skills/specialist-debugging-troubleshooting/resources/checklists/debugging-validation.md +319 -0
  84. package/dist/content/skills/specialist-debugging-troubleshooting/resources/examples/debugging-examples.md +480 -0
  85. package/dist/content/skills/specialist-debugging-troubleshooting/resources/prompts/analise-bugs.md +527 -0
  86. package/dist/content/skills/specialist-debugging-troubleshooting/resources/reference/debugging-guide.md +392 -0
  87. package/dist/content/skills/specialist-debugging-troubleshooting/resources/templates/bug-report.md +192 -0
  88. package/dist/content/skills/specialist-debugging-troubleshooting/resources/templates/post-mortem.md +241 -0
  89. package/dist/content/skills/specialist-debugging-troubleshooting/scripts/README.md +64 -0
  90. package/dist/content/skills/specialist-desenvolvimento-backend/MCP_INTEGRATION.md +98 -0
  91. package/dist/content/skills/specialist-desenvolvimento-backend/README.md +167 -0
  92. package/dist/content/skills/specialist-desenvolvimento-backend/SKILL.md +288 -0
  93. package/dist/content/skills/specialist-desenvolvimento-backend/mcp_functions/README.md +17 -0
  94. package/dist/content/skills/specialist-desenvolvimento-backend/resources/checklists/backend-validation.md +44 -0
  95. package/dist/content/skills/specialist-desenvolvimento-backend/resources/examples/backend-examples.md +109 -0
  96. package/dist/content/skills/specialist-desenvolvimento-backend/resources/reference/backend-guide.md +86 -0
  97. package/dist/content/skills/specialist-desenvolvimento-frontend/MCP_INTEGRATION.md +914 -0
  98. package/dist/content/skills/specialist-desenvolvimento-frontend/README.md +261 -0
  99. package/dist/content/skills/specialist-desenvolvimento-frontend/SKILL.md +220 -0
  100. package/dist/content/skills/specialist-desenvolvimento-frontend/mcp_functions/init_frontend.py +861 -0
  101. package/dist/content/skills/specialist-desenvolvimento-frontend/mcp_functions/process_frontend.py +1003 -0
  102. package/dist/content/skills/specialist-desenvolvimento-frontend/mcp_functions/validate_frontend.py +766 -0
  103. package/dist/content/skills/specialist-desenvolvimento-frontend/resources/checklists/frontend-validation.md +365 -0
  104. package/dist/content/skills/specialist-desenvolvimento-frontend/resources/examples/frontend-examples.md +1125 -0
  105. package/dist/content/skills/specialist-desenvolvimento-frontend/resources/reference/frontend-guide.md +1055 -0
  106. package/dist/content/skills/specialist-desenvolvimento-frontend/resources/templates/component-story.md +530 -0
  107. package/dist/content/skills/specialist-desenvolvimento-frontend/resources/templates/historia-frontend.md +243 -0
  108. package/dist/content/skills/specialist-desenvolvimento-frontend/resources/templates/ui-guidelines.md +725 -0
  109. package/dist/content/skills/specialist-desenvolvimento-mobile/MCP_INTEGRATION.md +87 -0
  110. package/dist/content/skills/specialist-desenvolvimento-mobile/README.md +149 -0
  111. package/dist/content/skills/specialist-desenvolvimento-mobile/SKILL.md +360 -0
  112. package/dist/content/skills/specialist-desenvolvimento-mobile/mcp_functions/README.md +17 -0
  113. package/dist/content/skills/specialist-desenvolvimento-mobile/resources/checklists/mobile-validation.md +330 -0
  114. package/dist/content/skills/specialist-desenvolvimento-mobile/resources/examples/mobile-examples.md +966 -0
  115. package/dist/content/skills/specialist-desenvolvimento-mobile/resources/reference/android-guide.md +546 -0
  116. package/dist/content/skills/specialist-desenvolvimento-mobile/resources/reference/flutter-guide.md +500 -0
  117. package/dist/content/skills/specialist-desenvolvimento-mobile/resources/reference/ios-guide.md +518 -0
  118. package/dist/content/skills/specialist-desenvolvimento-mobile/resources/reference/mobile-guide.md +76 -0
  119. package/dist/content/skills/specialist-desenvolvimento-mobile/resources/reference/react-native-guide.md +659 -0
  120. package/dist/content/skills/specialist-desenvolvimento-mobile/resources/templates/historia-mobile.md +284 -0
  121. package/dist/content/skills/specialist-desenvolvimento-mobile/resources/templates/mobile-checklist.md +239 -0
  122. package/dist/content/skills/specialist-desenvolvimento-mobile/resources/templates/platform-selection.md +302 -0
  123. package/dist/content/skills/specialist-devops-infra/MCP_INTEGRATION.md +471 -0
  124. package/dist/content/skills/specialist-devops-infra/README.md +234 -0
  125. package/dist/content/skills/specialist-devops-infra/SKILL.md +162 -0
  126. package/dist/content/skills/specialist-devops-infra/mcp_functions/generate_ci_cd_pipeline.py +870 -0
  127. package/dist/content/skills/specialist-devops-infra/mcp_functions/init_infrastructure_structure.py +704 -0
  128. package/dist/content/skills/specialist-devops-infra/mcp_functions/validate_infrastructure_quality.py +745 -0
  129. package/dist/content/skills/specialist-devops-infra/resources/checklists/devops-validation.md +427 -0
  130. package/dist/content/skills/specialist-devops-infra/resources/examples/devops-examples.md +652 -0
  131. package/dist/content/skills/specialist-devops-infra/resources/reference/devops-guide.md +1244 -0
  132. package/dist/content/skills/specialist-devops-infra/resources/templates/ci-cd-pipeline.yml +40 -0
  133. package/dist/content/skills/specialist-documentacao-tecnica/MCP_INTEGRATION.md +797 -0
  134. package/dist/content/skills/specialist-documentacao-tecnica/README.md +304 -0
  135. package/dist/content/skills/specialist-documentacao-tecnica/SKILL.md +202 -0
  136. package/dist/content/skills/specialist-documentacao-tecnica/mcp_functions/init_documentation_structure.py +733 -0
  137. package/dist/content/skills/specialist-documentacao-tecnica/mcp_functions/process_documentation_for_publishing.py +888 -0
  138. package/dist/content/skills/specialist-documentacao-tecnica/mcp_functions/validate_documentation_quality.py +775 -0
  139. package/dist/content/skills/specialist-documentacao-tecnica/resources/checklists/documentation-validation.md +296 -0
  140. package/dist/content/skills/specialist-documentacao-tecnica/resources/examples/documentation-examples.md +515 -0
  141. package/dist/content/skills/specialist-documentacao-tecnica/resources/reference/documentation-guide.md +798 -0
  142. package/dist/content/skills/specialist-documentacao-tecnica/resources/templates/api-docs.md +619 -0
  143. package/dist/content/skills/specialist-documentacao-tecnica/resources/templates/design-doc.md +250 -0
  144. package/dist/content/skills/specialist-documentacao-tecnica/resources/templates/guia-tecnico.md +383 -0
  145. package/dist/content/skills/specialist-documentacao-tecnica/resources/templates/readme-template.md +462 -0
  146. package/dist/content/skills/specialist-engenharia-requisitos-ia/MCP_INTEGRATION.md +457 -0
  147. package/dist/content/skills/specialist-engenharia-requisitos-ia/README.md +295 -0
  148. package/dist/content/skills/specialist-engenharia-requisitos-ia/SKILL.md +214 -0
  149. package/dist/content/skills/specialist-engenharia-requisitos-ia/mcp_functions/init_requirements.py +152 -0
  150. package/dist/content/skills/specialist-engenharia-requisitos-ia/mcp_functions/process_requirements.py +445 -0
  151. package/dist/content/skills/specialist-engenharia-requisitos-ia/mcp_functions/validate_requirements.py +475 -0
  152. package/dist/content/skills/specialist-engenharia-requisitos-ia/resources/checklists/requirements-validation.md +258 -0
  153. package/dist/content/skills/specialist-engenharia-requisitos-ia/resources/examples/requirements-examples.md +316 -0
  154. package/dist/content/skills/specialist-engenharia-requisitos-ia/resources/reference/requirements-guide.md +651 -0
  155. package/dist/content/skills/specialist-engenharia-requisitos-ia/resources/templates/criterios-aceite.md +484 -0
  156. package/dist/content/skills/specialist-engenharia-requisitos-ia/resources/templates/matriz-rastreabilidade.md +246 -0
  157. package/dist/content/skills/specialist-engenharia-requisitos-ia/resources/templates/requisitos.md +244 -0
  158. package/dist/content/skills/specialist-exploracao-codebase/MCP_INTEGRATION.md +155 -0
  159. package/dist/content/skills/specialist-exploracao-codebase/README.md +320 -0
  160. package/dist/content/skills/specialist-exploracao-codebase/SKILL.md +194 -0
  161. package/dist/content/skills/specialist-exploracao-codebase/mcp_functions/README.md +39 -0
  162. package/dist/content/skills/specialist-exploracao-codebase/resources/checklists/exploration-validation.md +51 -0
  163. package/dist/content/skills/specialist-exploracao-codebase/resources/examples/exploration-examples.md +106 -0
  164. package/dist/content/skills/specialist-exploracao-codebase/resources/reference/exploration-guide.md +111 -0
  165. package/dist/content/skills/specialist-exploracao-codebase/resources/templates/codebase-map.md +129 -0
  166. package/dist/content/skills/specialist-exploracao-codebase/resources/templates/refactoring-plan.md +96 -0
  167. package/dist/content/skills/specialist-exploracao-codebase/resources/templates/technical-debt-report.md +69 -0
  168. package/dist/content/skills/specialist-gestao-produto/MCP_INTEGRATION.md +436 -0
  169. package/dist/content/skills/specialist-gestao-produto/README.md +202 -0
  170. package/dist/content/skills/specialist-gestao-produto/SKILL.md +174 -0
  171. package/dist/content/skills/specialist-gestao-produto/resources/checklists/prd-validation.md +165 -0
  172. package/dist/content/skills/specialist-gestao-produto/resources/examples/prd-examples.md +231 -0
  173. package/dist/content/skills/specialist-gestao-produto/resources/reference/product-guide.md +416 -0
  174. package/dist/content/skills/specialist-gestao-produto/resources/templates/PRD.md +212 -0
  175. package/dist/content/skills/specialist-gestao-produto/scripts/init_prd.py +170 -0
  176. package/dist/content/skills/specialist-gestao-produto/scripts/process_prd.py +388 -0
  177. package/dist/content/skills/specialist-gestao-produto/scripts/validate_prd.py +406 -0
  178. package/dist/content/skills/specialist-migracao-modernizacao/MCP_INTEGRATION.md +17 -0
  179. package/dist/content/skills/specialist-migracao-modernizacao/README.md +46 -0
  180. package/dist/content/skills/specialist-migracao-modernizacao/SKILL.md +485 -0
  181. package/dist/content/skills/specialist-migracao-modernizacao/mcp_functions/README.md +10 -0
  182. package/dist/content/skills/specialist-migracao-modernizacao/resources/checklists/migration-validation.md +23 -0
  183. package/dist/content/skills/specialist-migracao-modernizacao/resources/examples/migration-examples.md +30 -0
  184. package/dist/content/skills/specialist-migracao-modernizacao/resources/reference/migration-guide.md +27 -0
  185. package/dist/content/skills/specialist-migracao-modernizacao/resources/templates/migration-assessment.md +391 -0
  186. package/dist/content/skills/specialist-migracao-modernizacao/resources/templates/modernization-roadmap.md +479 -0
  187. package/dist/content/skills/specialist-migracao-modernizacao/resources/templates/risk-analysis.md +527 -0
  188. package/dist/content/skills/specialist-mobile-design-avancado/MCP_INTEGRATION.md +17 -0
  189. package/dist/content/skills/specialist-mobile-design-avancado/README.md +46 -0
  190. package/dist/content/skills/specialist-mobile-design-avancado/SKILL.md +567 -0
  191. package/dist/content/skills/specialist-mobile-design-avancado/mcp_functions/README.md +10 -0
  192. package/dist/content/skills/specialist-mobile-design-avancado/resources/checklists/design-validation.md +23 -0
  193. package/dist/content/skills/specialist-mobile-design-avancado/resources/examples/design-examples.md +46 -0
  194. package/dist/content/skills/specialist-mobile-design-avancado/resources/reference/design-guide.md +23 -0
  195. package/dist/content/skills/specialist-modelagem-dominio/MCP_INTEGRATION.md +336 -0
  196. package/dist/content/skills/specialist-modelagem-dominio/README.md +314 -0
  197. package/dist/content/skills/specialist-modelagem-dominio/SKILL.md +241 -0
  198. package/dist/content/skills/specialist-modelagem-dominio/mcp_functions/init_domain.py +479 -0
  199. package/dist/content/skills/specialist-modelagem-dominio/mcp_functions/process_domain.py +526 -0
  200. package/dist/content/skills/specialist-modelagem-dominio/mcp_functions/validate_domain.py +569 -0
  201. package/dist/content/skills/specialist-modelagem-dominio/resources/checklists/domain-validation.md +341 -0
  202. package/dist/content/skills/specialist-modelagem-dominio/resources/examples/domain-examples.md +505 -0
  203. package/dist/content/skills/specialist-modelagem-dominio/resources/reference/domain-guide.md +601 -0
  204. package/dist/content/skills/specialist-modelagem-dominio/resources/reference/domain-modeling-complete-guide.md +1126 -0
  205. package/dist/content/skills/specialist-modelagem-dominio/resources/templates/arquitetura-c4.md +477 -0
  206. package/dist/content/skills/specialist-modelagem-dominio/resources/templates/casos-uso.md +395 -0
  207. package/dist/content/skills/specialist-modelagem-dominio/resources/templates/entidades-relacionamentos.md +368 -0
  208. package/dist/content/skills/specialist-modelagem-dominio/resources/templates/modelo-dominio.md +311 -0
  209. package/dist/content/skills/specialist-observabilidade/SKILL.md +462 -0
  210. package/dist/content/skills/specialist-performance-escalabilidade/SKILL.md +329 -0
  211. package/dist/content/skills/specialist-plano-execucao-ia/MCP_INTEGRATION.md +371 -0
  212. package/dist/content/skills/specialist-plano-execucao-ia/README.md +194 -0
  213. package/dist/content/skills/specialist-plano-execucao-ia/SKILL.md +271 -0
  214. package/dist/content/skills/specialist-plano-execucao-ia/mcp_functions/README.md +38 -0
  215. package/dist/content/skills/specialist-plano-execucao-ia/resources/checklists/planning-validation.md +144 -0
  216. package/dist/content/skills/specialist-plano-execucao-ia/resources/examples/planning-examples.md +203 -0
  217. package/dist/content/skills/specialist-plano-execucao-ia/resources/reference/planning-guide.md +316 -0
  218. package/dist/content/skills/specialist-plano-execucao-ia/resources/templates/backlog.md +146 -0
  219. package/dist/content/skills/specialist-plano-execucao-ia/resources/templates/historia-backend.md +157 -0
  220. package/dist/content/skills/specialist-plano-execucao-ia/resources/templates/historia-frontend.md +116 -0
  221. package/dist/content/skills/specialist-plano-execucao-ia/resources/templates/historia-usuario.md +66 -0
  222. package/dist/content/skills/specialist-prototipagem-stitch/MCP_INTEGRATION.md +533 -0
  223. package/dist/content/skills/specialist-prototipagem-stitch/README.md +321 -0
  224. package/dist/content/skills/specialist-prototipagem-stitch/SKILL.md +194 -0
  225. package/dist/content/skills/specialist-prototipagem-stitch/mcp_functions/README.md +239 -0
  226. package/dist/content/skills/specialist-prototipagem-stitch/resources/checklists/stitch-validation.md +357 -0
  227. package/dist/content/skills/specialist-prototipagem-stitch/resources/examples/stitch-examples.md +372 -0
  228. package/dist/content/skills/specialist-prototipagem-stitch/resources/reference/stitch-guide.md +517 -0
  229. package/dist/content/skills/specialist-prototipagem-stitch/resources/templates/prompt-stitch.md +429 -0
  230. package/dist/content/skills/specialist-prototipagem-stitch/resources/templates/prototipo-stitch.md +317 -0
  231. package/dist/content/skills/specialist-seguranca-informacao/MCP_INTEGRATION.md +466 -0
  232. package/dist/content/skills/specialist-seguranca-informacao/README.md +245 -0
  233. package/dist/content/skills/specialist-seguranca-informacao/SKILL.md +343 -0
  234. package/dist/content/skills/specialist-seguranca-informacao/mcp_functions/init_security.py +405 -0
  235. package/dist/content/skills/specialist-seguranca-informacao/mcp_functions/process_security.py +611 -0
  236. package/dist/content/skills/specialist-seguranca-informacao/mcp_functions/validate_security.py +468 -0
  237. package/dist/content/skills/specialist-seguranca-informacao/resources/checklists/security-validation.md +368 -0
  238. package/dist/content/skills/specialist-seguranca-informacao/resources/examples/security-examples.md +358 -0
  239. package/dist/content/skills/specialist-seguranca-informacao/resources/reference/security-guide.md +757 -0
  240. package/dist/content/skills/specialist-seguranca-informacao/resources/templates/checklist-seguranca.md +383 -0
  241. package/dist/content/skills/specialist-seguranca-informacao/resources/templates/slo-sli.md +244 -0
  242. package/dist/content/skills/specialist-seguranca-informacao/resources/templates/threat-modeling.md +161 -0
  243. package/dist/content/skills/specialist-ux-design/MCP_INTEGRATION.md +294 -0
  244. package/dist/content/skills/specialist-ux-design/README.md +304 -0
  245. package/dist/content/skills/specialist-ux-design/SKILL.md +212 -0
  246. package/dist/content/skills/specialist-ux-design/mcp_functions/init_ux.py +126 -0
  247. package/dist/content/skills/specialist-ux-design/mcp_functions/process_ux.py +408 -0
  248. package/dist/content/skills/specialist-ux-design/mcp_functions/validate_ux.py +379 -0
  249. package/dist/content/skills/specialist-ux-design/resources/checklists/ux-validation.md +77 -0
  250. package/dist/content/skills/specialist-ux-design/resources/examples/ux-examples.md +161 -0
  251. package/dist/content/skills/specialist-ux-design/resources/reference/ux-guide.md +184 -0
  252. package/dist/content/skills/specialist-ux-design/resources/templates/design-doc.md +160 -0
  253. package/dist/content/skills/specialist-ux-design/resources/templates/jornada-usuario.md +126 -0
  254. package/dist/content/skills/specialist-ux-design/resources/templates/wireframes.md +155 -0
  255. package/dist/core/adr/ADRGenerator.d.ts +28 -0
  256. package/dist/core/adr/ADRGenerator.d.ts.map +1 -0
  257. package/dist/core/adr/ADRGenerator.js +63 -0
  258. package/dist/core/adr/ADRGenerator.js.map +1 -0
  259. package/dist/core/adr/index.d.ts +2 -0
  260. package/dist/core/adr/index.d.ts.map +1 -0
  261. package/dist/core/adr/index.js +2 -0
  262. package/dist/core/adr/index.js.map +1 -0
  263. package/dist/core/architecture/FitnessFunctions.d.ts +67 -0
  264. package/dist/core/architecture/FitnessFunctions.d.ts.map +1 -0
  265. package/dist/core/architecture/FitnessFunctions.js +292 -0
  266. package/dist/core/architecture/FitnessFunctions.js.map +1 -0
  267. package/dist/core/architecture/index.d.ts +3 -0
  268. package/dist/core/architecture/index.d.ts.map +1 -0
  269. package/dist/core/architecture/index.js +3 -0
  270. package/dist/core/architecture/index.js.map +1 -0
  271. package/dist/core/architecture/types.d.ts +42 -0
  272. package/dist/core/architecture/types.d.ts.map +1 -0
  273. package/dist/core/architecture/types.js +5 -0
  274. package/dist/core/architecture/types.js.map +1 -0
  275. package/dist/core/atam/ATAMAnalyzer.d.ts +19 -0
  276. package/dist/core/atam/ATAMAnalyzer.d.ts.map +1 -0
  277. package/dist/core/atam/ATAMAnalyzer.js +206 -0
  278. package/dist/core/atam/ATAMAnalyzer.js.map +1 -0
  279. package/dist/core/atam/ATAMReporter.d.ts +16 -0
  280. package/dist/core/atam/ATAMReporter.d.ts.map +1 -0
  281. package/dist/core/atam/ATAMReporter.js +175 -0
  282. package/dist/core/atam/ATAMReporter.js.map +1 -0
  283. package/dist/core/atam/QualityScenarios.d.ts +16 -0
  284. package/dist/core/atam/QualityScenarios.d.ts.map +1 -0
  285. package/dist/core/atam/QualityScenarios.js +149 -0
  286. package/dist/core/atam/QualityScenarios.js.map +1 -0
  287. package/dist/core/atam/RiskRegistry.d.ts +21 -0
  288. package/dist/core/atam/RiskRegistry.d.ts.map +1 -0
  289. package/dist/core/atam/RiskRegistry.js +83 -0
  290. package/dist/core/atam/RiskRegistry.js.map +1 -0
  291. package/dist/core/atam/index.d.ts +6 -0
  292. package/dist/core/atam/index.d.ts.map +1 -0
  293. package/dist/core/atam/index.js +6 -0
  294. package/dist/core/atam/index.js.map +1 -0
  295. package/dist/core/atam/types.d.ts +86 -0
  296. package/dist/core/atam/types.d.ts.map +1 -0
  297. package/dist/core/atam/types.js +5 -0
  298. package/dist/core/atam/types.js.map +1 -0
  299. package/dist/core/authority/AuthorityManager.d.ts +19 -0
  300. package/dist/core/authority/AuthorityManager.d.ts.map +1 -0
  301. package/dist/core/authority/AuthorityManager.js +66 -0
  302. package/dist/core/authority/AuthorityManager.js.map +1 -0
  303. package/dist/core/authority/index.d.ts +2 -0
  304. package/dist/core/authority/index.d.ts.map +1 -0
  305. package/dist/core/authority/index.js +2 -0
  306. package/dist/core/authority/index.js.map +1 -0
  307. package/dist/core/autofix/AutoFixEngine.d.ts +17 -0
  308. package/dist/core/autofix/AutoFixEngine.d.ts.map +1 -0
  309. package/dist/core/autofix/AutoFixEngine.js +46 -0
  310. package/dist/core/autofix/AutoFixEngine.js.map +1 -0
  311. package/dist/core/autofix/index.d.ts +2 -0
  312. package/dist/core/autofix/index.d.ts.map +1 -0
  313. package/dist/core/autofix/index.js +2 -0
  314. package/dist/core/autofix/index.js.map +1 -0
  315. package/dist/core/automation/AutoExecutor.d.ts +20 -0
  316. package/dist/core/automation/AutoExecutor.d.ts.map +1 -0
  317. package/dist/core/automation/AutoExecutor.js +38 -0
  318. package/dist/core/automation/AutoExecutor.js.map +1 -0
  319. package/dist/core/automation/index.d.ts +2 -0
  320. package/dist/core/automation/index.d.ts.map +1 -0
  321. package/dist/core/automation/index.js +2 -0
  322. package/dist/core/automation/index.js.map +1 -0
  323. package/dist/core/checkpoint/CheckpointManager.d.ts +43 -0
  324. package/dist/core/checkpoint/CheckpointManager.d.ts.map +1 -0
  325. package/dist/core/checkpoint/CheckpointManager.js +158 -0
  326. package/dist/core/checkpoint/CheckpointManager.js.map +1 -0
  327. package/dist/core/checkpoint/RollbackEngine.d.ts +31 -0
  328. package/dist/core/checkpoint/RollbackEngine.d.ts.map +1 -0
  329. package/dist/core/checkpoint/RollbackEngine.js +176 -0
  330. package/dist/core/checkpoint/RollbackEngine.js.map +1 -0
  331. package/dist/core/checkpoint/index.d.ts +4 -0
  332. package/dist/core/checkpoint/index.d.ts.map +1 -0
  333. package/dist/core/checkpoint/index.js +4 -0
  334. package/dist/core/checkpoint/index.js.map +1 -0
  335. package/dist/core/checkpoint/types.d.ts +33 -0
  336. package/dist/core/checkpoint/types.d.ts.map +1 -0
  337. package/dist/core/checkpoint/types.js +2 -0
  338. package/dist/core/checkpoint/types.js.map +1 -0
  339. package/dist/core/consistency/ConsistencyAnalyzer.d.ts +12 -0
  340. package/dist/core/consistency/ConsistencyAnalyzer.d.ts.map +1 -0
  341. package/dist/core/consistency/ConsistencyAnalyzer.js +79 -0
  342. package/dist/core/consistency/ConsistencyAnalyzer.js.map +1 -0
  343. package/dist/core/consistency/index.d.ts +3 -0
  344. package/dist/core/consistency/index.d.ts.map +1 -0
  345. package/dist/core/consistency/index.js +3 -0
  346. package/dist/core/consistency/index.js.map +1 -0
  347. package/dist/core/consistency/types.d.ts +43 -0
  348. package/dist/core/consistency/types.d.ts.map +1 -0
  349. package/dist/core/consistency/types.js +5 -0
  350. package/dist/core/consistency/types.js.map +1 -0
  351. package/dist/core/context/ContextDetector.d.ts +14 -0
  352. package/dist/core/context/ContextDetector.d.ts.map +1 -0
  353. package/dist/core/context/ContextDetector.js +58 -0
  354. package/dist/core/context/ContextDetector.js.map +1 -0
  355. package/dist/core/context/index.d.ts +3 -0
  356. package/dist/core/context/index.d.ts.map +1 -0
  357. package/dist/core/context/index.js +3 -0
  358. package/dist/core/context/index.js.map +1 -0
  359. package/dist/core/context/types.d.ts +41 -0
  360. package/dist/core/context/types.d.ts.map +1 -0
  361. package/dist/core/context/types.js +5 -0
  362. package/dist/core/context/types.js.map +1 -0
  363. package/dist/core/decision/AlternativeGenerator.d.ts +32 -0
  364. package/dist/core/decision/AlternativeGenerator.d.ts.map +1 -0
  365. package/dist/core/decision/AlternativeGenerator.js +155 -0
  366. package/dist/core/decision/AlternativeGenerator.js.map +1 -0
  367. package/dist/core/decision/ConfidenceCalculator.d.ts +42 -0
  368. package/dist/core/decision/ConfidenceCalculator.d.ts.map +1 -0
  369. package/dist/core/decision/ConfidenceCalculator.js +114 -0
  370. package/dist/core/decision/ConfidenceCalculator.js.map +1 -0
  371. package/dist/core/decision/DecisionEngine.d.ts +42 -0
  372. package/dist/core/decision/DecisionEngine.d.ts.map +1 -0
  373. package/dist/core/decision/DecisionEngine.js +144 -0
  374. package/dist/core/decision/DecisionEngine.js.map +1 -0
  375. package/dist/core/decision/DecisionMatrix.d.ts +29 -0
  376. package/dist/core/decision/DecisionMatrix.d.ts.map +1 -0
  377. package/dist/core/decision/DecisionMatrix.js +66 -0
  378. package/dist/core/decision/DecisionMatrix.js.map +1 -0
  379. package/dist/core/decision/index.d.ts +6 -0
  380. package/dist/core/decision/index.d.ts.map +1 -0
  381. package/dist/core/decision/index.js +6 -0
  382. package/dist/core/decision/index.js.map +1 -0
  383. package/dist/core/decision/types.d.ts +40 -0
  384. package/dist/core/decision/types.d.ts.map +1 -0
  385. package/dist/core/decision/types.js +5 -0
  386. package/dist/core/decision/types.js.map +1 -0
  387. package/dist/core/discovery/CodebaseDiscovery.d.ts +19 -0
  388. package/dist/core/discovery/CodebaseDiscovery.d.ts.map +1 -0
  389. package/dist/core/discovery/CodebaseDiscovery.js +83 -0
  390. package/dist/core/discovery/CodebaseDiscovery.js.map +1 -0
  391. package/dist/core/discovery/index.d.ts +2 -0
  392. package/dist/core/discovery/index.d.ts.map +1 -0
  393. package/dist/core/discovery/index.js +2 -0
  394. package/dist/core/discovery/index.js.map +1 -0
  395. package/dist/core/feedback/FeedbackLoop.d.ts +21 -0
  396. package/dist/core/feedback/FeedbackLoop.d.ts.map +1 -0
  397. package/dist/core/feedback/FeedbackLoop.js +45 -0
  398. package/dist/core/feedback/FeedbackLoop.js.map +1 -0
  399. package/dist/core/feedback/index.d.ts +2 -0
  400. package/dist/core/feedback/index.d.ts.map +1 -0
  401. package/dist/core/feedback/index.js +2 -0
  402. package/dist/core/feedback/index.js.map +1 -0
  403. package/dist/core/growth/GrowthProjector.d.ts +12 -0
  404. package/dist/core/growth/GrowthProjector.d.ts.map +1 -0
  405. package/dist/core/growth/GrowthProjector.js +93 -0
  406. package/dist/core/growth/GrowthProjector.js.map +1 -0
  407. package/dist/core/growth/index.d.ts +3 -0
  408. package/dist/core/growth/index.d.ts.map +1 -0
  409. package/dist/core/growth/index.js +3 -0
  410. package/dist/core/growth/index.js.map +1 -0
  411. package/dist/core/growth/types.d.ts +40 -0
  412. package/dist/core/growth/types.d.ts.map +1 -0
  413. package/dist/core/growth/types.js +5 -0
  414. package/dist/core/growth/types.js.map +1 -0
  415. package/dist/core/impact/ImpactAnalyzer.d.ts +22 -0
  416. package/dist/core/impact/ImpactAnalyzer.d.ts.map +1 -0
  417. package/dist/core/impact/ImpactAnalyzer.js +43 -0
  418. package/dist/core/impact/ImpactAnalyzer.js.map +1 -0
  419. package/dist/core/impact/index.d.ts +2 -0
  420. package/dist/core/impact/index.d.ts.map +1 -0
  421. package/dist/core/impact/index.js +2 -0
  422. package/dist/core/impact/index.js.map +1 -0
  423. package/dist/core/knowledge/ADRManager.d.ts +22 -0
  424. package/dist/core/knowledge/ADRManager.d.ts.map +1 -0
  425. package/dist/core/knowledge/ADRManager.js +82 -0
  426. package/dist/core/knowledge/ADRManager.js.map +1 -0
  427. package/dist/core/knowledge/ContextLoader.d.ts +18 -0
  428. package/dist/core/knowledge/ContextLoader.d.ts.map +1 -0
  429. package/dist/core/knowledge/ContextLoader.js +48 -0
  430. package/dist/core/knowledge/ContextLoader.js.map +1 -0
  431. package/dist/core/knowledge/KnowledgeBase.d.ts +35 -0
  432. package/dist/core/knowledge/KnowledgeBase.d.ts.map +1 -0
  433. package/dist/core/knowledge/KnowledgeBase.js +143 -0
  434. package/dist/core/knowledge/KnowledgeBase.js.map +1 -0
  435. package/dist/core/knowledge/PatternRegistry.d.ts +22 -0
  436. package/dist/core/knowledge/PatternRegistry.d.ts.map +1 -0
  437. package/dist/core/knowledge/PatternRegistry.js +56 -0
  438. package/dist/core/knowledge/PatternRegistry.js.map +1 -0
  439. package/dist/core/knowledge/index.d.ts +6 -0
  440. package/dist/core/knowledge/index.d.ts.map +1 -0
  441. package/dist/core/knowledge/index.js +6 -0
  442. package/dist/core/knowledge/index.js.map +1 -0
  443. package/dist/core/knowledge/types.d.ts +60 -0
  444. package/dist/core/knowledge/types.d.ts.map +1 -0
  445. package/dist/core/knowledge/types.js +2 -0
  446. package/dist/core/knowledge/types.js.map +1 -0
  447. package/dist/core/metrics/MetricsCollector.d.ts +21 -0
  448. package/dist/core/metrics/MetricsCollector.d.ts.map +1 -0
  449. package/dist/core/metrics/MetricsCollector.js +20 -0
  450. package/dist/core/metrics/MetricsCollector.js.map +1 -0
  451. package/dist/core/metrics/index.d.ts +2 -0
  452. package/dist/core/metrics/index.d.ts.map +1 -0
  453. package/dist/core/metrics/index.js +2 -0
  454. package/dist/core/metrics/index.js.map +1 -0
  455. package/dist/core/notification/NotificationManager.d.ts +20 -0
  456. package/dist/core/notification/NotificationManager.d.ts.map +1 -0
  457. package/dist/core/notification/NotificationManager.js +16 -0
  458. package/dist/core/notification/NotificationManager.js.map +1 -0
  459. package/dist/core/notification/index.d.ts +2 -0
  460. package/dist/core/notification/index.d.ts.map +1 -0
  461. package/dist/core/notification/index.js +2 -0
  462. package/dist/core/notification/index.js.map +1 -0
  463. package/dist/core/risk/RiskEvaluator.d.ts +11 -0
  464. package/dist/core/risk/RiskEvaluator.d.ts.map +1 -0
  465. package/dist/core/risk/RiskEvaluator.js +83 -0
  466. package/dist/core/risk/RiskEvaluator.js.map +1 -0
  467. package/dist/core/risk/index.d.ts +3 -0
  468. package/dist/core/risk/index.d.ts.map +1 -0
  469. package/dist/core/risk/index.js +3 -0
  470. package/dist/core/risk/index.js.map +1 -0
  471. package/dist/core/risk/types.d.ts +19 -0
  472. package/dist/core/risk/types.d.ts.map +1 -0
  473. package/dist/core/risk/types.js +2 -0
  474. package/dist/core/risk/types.js.map +1 -0
  475. package/dist/core/roadmap/RoadmapManager.d.ts +14 -0
  476. package/dist/core/roadmap/RoadmapManager.d.ts.map +1 -0
  477. package/dist/core/roadmap/RoadmapManager.js +81 -0
  478. package/dist/core/roadmap/RoadmapManager.js.map +1 -0
  479. package/dist/core/roadmap/index.d.ts +3 -0
  480. package/dist/core/roadmap/index.d.ts.map +1 -0
  481. package/dist/core/roadmap/index.js +3 -0
  482. package/dist/core/roadmap/index.js.map +1 -0
  483. package/dist/core/roadmap/types.d.ts +64 -0
  484. package/dist/core/roadmap/types.d.ts.map +1 -0
  485. package/dist/core/roadmap/types.js +5 -0
  486. package/dist/core/roadmap/types.js.map +1 -0
  487. package/dist/core/strangler/StranglerOrchestrator.d.ts +14 -0
  488. package/dist/core/strangler/StranglerOrchestrator.d.ts.map +1 -0
  489. package/dist/core/strangler/StranglerOrchestrator.js +87 -0
  490. package/dist/core/strangler/StranglerOrchestrator.js.map +1 -0
  491. package/dist/core/strangler/index.d.ts +3 -0
  492. package/dist/core/strangler/index.d.ts.map +1 -0
  493. package/dist/core/strangler/index.js +3 -0
  494. package/dist/core/strangler/index.js.map +1 -0
  495. package/dist/core/strangler/types.d.ts +70 -0
  496. package/dist/core/strangler/types.d.ts.map +1 -0
  497. package/dist/core/strangler/types.js +5 -0
  498. package/dist/core/strangler/types.js.map +1 -0
  499. package/dist/core/testing/TestRunner.d.ts +17 -0
  500. package/dist/core/testing/TestRunner.d.ts.map +1 -0
  501. package/dist/core/testing/TestRunner.js +22 -0
  502. package/dist/core/testing/TestRunner.js.map +1 -0
  503. package/dist/core/testing/index.d.ts +2 -0
  504. package/dist/core/testing/index.d.ts.map +1 -0
  505. package/dist/core/testing/index.js +2 -0
  506. package/dist/core/testing/index.js.map +1 -0
  507. package/dist/core/tradeoff/TradeoffAnalyzer.d.ts +24 -0
  508. package/dist/core/tradeoff/TradeoffAnalyzer.d.ts.map +1 -0
  509. package/dist/core/tradeoff/TradeoffAnalyzer.js +51 -0
  510. package/dist/core/tradeoff/TradeoffAnalyzer.js.map +1 -0
  511. package/dist/core/tradeoff/index.d.ts +2 -0
  512. package/dist/core/tradeoff/index.d.ts.map +1 -0
  513. package/dist/core/tradeoff/index.js +2 -0
  514. package/dist/core/tradeoff/index.js.map +1 -0
  515. package/dist/core/validation/DependencyValidator.d.ts +28 -0
  516. package/dist/core/validation/DependencyValidator.d.ts.map +1 -0
  517. package/dist/core/validation/DependencyValidator.js +188 -0
  518. package/dist/core/validation/DependencyValidator.js.map +1 -0
  519. package/dist/core/validation/SecurityValidator.d.ts +44 -0
  520. package/dist/core/validation/SecurityValidator.d.ts.map +1 -0
  521. package/dist/core/validation/SecurityValidator.js +248 -0
  522. package/dist/core/validation/SecurityValidator.js.map +1 -0
  523. package/dist/core/validation/ValidationPipeline.d.ts +62 -0
  524. package/dist/core/validation/ValidationPipeline.d.ts.map +1 -0
  525. package/dist/core/validation/ValidationPipeline.js +216 -0
  526. package/dist/core/validation/ValidationPipeline.js.map +1 -0
  527. package/dist/core/validation/index.d.ts +4 -0
  528. package/dist/core/validation/index.d.ts.map +1 -0
  529. package/dist/core/validation/index.js +4 -0
  530. package/dist/core/validation/index.js.map +1 -0
  531. package/dist/core/validation/layers/ArchitectureValidator.d.ts +21 -0
  532. package/dist/core/validation/layers/ArchitectureValidator.d.ts.map +1 -0
  533. package/dist/core/validation/layers/ArchitectureValidator.js +226 -0
  534. package/dist/core/validation/layers/ArchitectureValidator.js.map +1 -0
  535. package/dist/core/validation/layers/QualityValidator.d.ts +23 -0
  536. package/dist/core/validation/layers/QualityValidator.d.ts.map +1 -0
  537. package/dist/core/validation/layers/QualityValidator.js +259 -0
  538. package/dist/core/validation/layers/QualityValidator.js.map +1 -0
  539. package/dist/core/validation/layers/SecurityValidatorWrapper.d.ts +12 -0
  540. package/dist/core/validation/layers/SecurityValidatorWrapper.d.ts.map +1 -0
  541. package/dist/core/validation/layers/SecurityValidatorWrapper.js +54 -0
  542. package/dist/core/validation/layers/SecurityValidatorWrapper.js.map +1 -0
  543. package/dist/core/validation/layers/SemanticValidator.d.ts +21 -0
  544. package/dist/core/validation/layers/SemanticValidator.d.ts.map +1 -0
  545. package/dist/core/validation/layers/SemanticValidator.js +182 -0
  546. package/dist/core/validation/layers/SemanticValidator.js.map +1 -0
  547. package/dist/core/validation/layers/SyntacticValidator.d.ts +17 -0
  548. package/dist/core/validation/layers/SyntacticValidator.d.ts.map +1 -0
  549. package/dist/core/validation/layers/SyntacticValidator.js +194 -0
  550. package/dist/core/validation/layers/SyntacticValidator.js.map +1 -0
  551. package/dist/core/validation/types.d.ts +90 -0
  552. package/dist/core/validation/types.d.ts.map +1 -0
  553. package/dist/core/validation/types.js +24 -0
  554. package/dist/core/validation/types.js.map +1 -0
  555. package/dist/frontend-first/contract-generator.d.ts +47 -0
  556. package/dist/frontend-first/contract-generator.d.ts.map +1 -0
  557. package/dist/frontend-first/contract-generator.js +312 -0
  558. package/dist/frontend-first/contract-generator.js.map +1 -0
  559. package/dist/frontend-first/mock-generator.d.ts +23 -0
  560. package/dist/frontend-first/mock-generator.d.ts.map +1 -0
  561. package/dist/frontend-first/mock-generator.js +186 -0
  562. package/dist/frontend-first/mock-generator.js.map +1 -0
  563. package/dist/index.js +4 -4
  564. package/dist/index.js.map +1 -1
  565. package/dist/optimization/batch-prompts.d.ts +27 -0
  566. package/dist/optimization/batch-prompts.d.ts.map +1 -0
  567. package/dist/optimization/batch-prompts.js +178 -0
  568. package/dist/optimization/batch-prompts.js.map +1 -0
  569. package/dist/optimization/context-cache.d.ts +45 -0
  570. package/dist/optimization/context-cache.d.ts.map +1 -0
  571. package/dist/optimization/context-cache.js +149 -0
  572. package/dist/optimization/context-cache.js.map +1 -0
  573. package/dist/optimization/smart-validation.d.ts +43 -0
  574. package/dist/optimization/smart-validation.d.ts.map +1 -0
  575. package/dist/optimization/smart-validation.js +137 -0
  576. package/dist/optimization/smart-validation.js.map +1 -0
  577. package/dist/resources/index.d.ts.map +1 -1
  578. package/dist/resources/index.js +9 -9
  579. package/dist/resources/index.js.map +1 -1
  580. package/dist/stdio.js +189 -1
  581. package/dist/stdio.js.map +1 -1
  582. package/dist/tasks/task-manager.d.ts +30 -0
  583. package/dist/tasks/task-manager.d.ts.map +1 -0
  584. package/dist/tasks/task-manager.js +290 -0
  585. package/dist/tasks/task-manager.js.map +1 -0
  586. package/dist/tools/atualizar-tarefa.d.ts +17 -0
  587. package/dist/tools/atualizar-tarefa.d.ts.map +1 -0
  588. package/dist/tools/atualizar-tarefa.js +200 -0
  589. package/dist/tools/atualizar-tarefa.js.map +1 -0
  590. package/dist/tools/configurar-modo.d.ts +10 -0
  591. package/dist/tools/configurar-modo.d.ts.map +1 -0
  592. package/dist/tools/configurar-modo.js +121 -0
  593. package/dist/tools/configurar-modo.js.map +1 -0
  594. package/dist/tools/contexto.d.ts.map +1 -1
  595. package/dist/tools/contexto.js +35 -4
  596. package/dist/tools/contexto.js.map +1 -1
  597. package/dist/tools/criar-tarefa.d.ts +17 -0
  598. package/dist/tools/criar-tarefa.d.ts.map +1 -0
  599. package/dist/tools/criar-tarefa.js +132 -0
  600. package/dist/tools/criar-tarefa.js.map +1 -0
  601. package/dist/tools/fase1/checkpoint.tools.d.ts +150 -0
  602. package/dist/tools/fase1/checkpoint.tools.d.ts.map +1 -0
  603. package/dist/tools/fase1/checkpoint.tools.js +165 -0
  604. package/dist/tools/fase1/checkpoint.tools.js.map +1 -0
  605. package/dist/tools/fase1/knowledge.tools.d.ts +265 -0
  606. package/dist/tools/fase1/knowledge.tools.d.ts.map +1 -0
  607. package/dist/tools/fase1/knowledge.tools.js +209 -0
  608. package/dist/tools/fase1/knowledge.tools.js.map +1 -0
  609. package/dist/tools/fase1/misc.tools.d.ts +113 -0
  610. package/dist/tools/fase1/misc.tools.d.ts.map +1 -0
  611. package/dist/tools/fase1/misc.tools.js +99 -0
  612. package/dist/tools/fase1/misc.tools.js.map +1 -0
  613. package/dist/tools/fase1/validation.tools.d.ts +103 -0
  614. package/dist/tools/fase1/validation.tools.d.ts.map +1 -0
  615. package/dist/tools/fase1/validation.tools.js +174 -0
  616. package/dist/tools/fase1/validation.tools.js.map +1 -0
  617. package/dist/tools/gerar-contrato-api.d.ts +15 -0
  618. package/dist/tools/gerar-contrato-api.d.ts.map +1 -0
  619. package/dist/tools/gerar-contrato-api.js +216 -0
  620. package/dist/tools/gerar-contrato-api.js.map +1 -0
  621. package/dist/tools/iniciar-projeto.d.ts +12 -0
  622. package/dist/tools/iniciar-projeto.d.ts.map +1 -1
  623. package/dist/tools/iniciar-projeto.js +51 -17
  624. package/dist/tools/iniciar-projeto.js.map +1 -1
  625. package/dist/tools/listar-tarefas.d.ts +16 -0
  626. package/dist/tools/listar-tarefas.d.ts.map +1 -0
  627. package/dist/tools/listar-tarefas.js +215 -0
  628. package/dist/tools/listar-tarefas.js.map +1 -0
  629. package/dist/tools/phase2/architecture.tools.d.ts +37 -0
  630. package/dist/tools/phase2/architecture.tools.d.ts.map +1 -0
  631. package/dist/tools/phase2/architecture.tools.js +51 -0
  632. package/dist/tools/phase2/architecture.tools.js.map +1 -0
  633. package/dist/tools/phase2/decision.tools.d.ts +61 -0
  634. package/dist/tools/phase2/decision.tools.d.ts.map +1 -0
  635. package/dist/tools/phase2/decision.tools.js +69 -0
  636. package/dist/tools/phase2/decision.tools.js.map +1 -0
  637. package/dist/tools/phase2/index.d.ts +8 -0
  638. package/dist/tools/phase2/index.d.ts.map +1 -0
  639. package/dist/tools/phase2/index.js +16 -0
  640. package/dist/tools/phase2/index.js.map +1 -0
  641. package/dist/tools/phase2/validation.tools.d.ts +40 -0
  642. package/dist/tools/phase2/validation.tools.d.ts.map +1 -0
  643. package/dist/tools/phase2/validation.tools.js +43 -0
  644. package/dist/tools/phase2/validation.tools.js.map +1 -0
  645. package/dist/tools/phase3/atam.tools.d.ts +26 -0
  646. package/dist/tools/phase3/atam.tools.d.ts.map +1 -0
  647. package/dist/tools/phase3/atam.tools.js +48 -0
  648. package/dist/tools/phase3/atam.tools.js.map +1 -0
  649. package/dist/tools/phase3/consistency.tools.d.ts +15 -0
  650. package/dist/tools/phase3/consistency.tools.d.ts.map +1 -0
  651. package/dist/tools/phase3/consistency.tools.js +20 -0
  652. package/dist/tools/phase3/consistency.tools.js.map +1 -0
  653. package/dist/tools/phase3/context.tools.d.ts +25 -0
  654. package/dist/tools/phase3/context.tools.d.ts.map +1 -0
  655. package/dist/tools/phase3/context.tools.js +32 -0
  656. package/dist/tools/phase3/context.tools.js.map +1 -0
  657. package/dist/tools/phase3/growth.tools.d.ts +28 -0
  658. package/dist/tools/phase3/growth.tools.d.ts.map +1 -0
  659. package/dist/tools/phase3/growth.tools.js +32 -0
  660. package/dist/tools/phase3/growth.tools.js.map +1 -0
  661. package/dist/tools/phase3/index.d.ts +10 -0
  662. package/dist/tools/phase3/index.d.ts.map +1 -0
  663. package/dist/tools/phase3/index.js +10 -0
  664. package/dist/tools/phase3/index.js.map +1 -0
  665. package/dist/tools/phase3/roadmap.tools.d.ts +41 -0
  666. package/dist/tools/phase3/roadmap.tools.d.ts.map +1 -0
  667. package/dist/tools/phase3/roadmap.tools.js +44 -0
  668. package/dist/tools/phase3/roadmap.tools.js.map +1 -0
  669. package/dist/tools/phase3/strangler.tools.d.ts +37 -0
  670. package/dist/tools/phase3/strangler.tools.d.ts.map +1 -0
  671. package/dist/tools/phase3/strangler.tools.js +44 -0
  672. package/dist/tools/phase3/strangler.tools.js.map +1 -0
  673. package/dist/tools/proximo.d.ts.map +1 -1
  674. package/dist/tools/proximo.js +45 -8
  675. package/dist/tools/proximo.js.map +1 -1
  676. package/dist/tools/status.d.ts.map +1 -1
  677. package/dist/tools/status.js +28 -5
  678. package/dist/tools/status.js.map +1 -1
  679. package/dist/tools/validar-gate.d.ts.map +1 -1
  680. package/dist/tools/validar-gate.js +14 -0
  681. package/dist/tools/validar-gate.js.map +1 -1
  682. package/dist/types/config.d.ts +46 -0
  683. package/dist/types/config.d.ts.map +1 -0
  684. package/dist/types/config.js +162 -0
  685. package/dist/types/config.js.map +1 -0
  686. package/dist/types/index.d.ts +38 -0
  687. package/dist/types/index.d.ts.map +1 -1
  688. package/dist/types/index.js.map +1 -1
  689. package/dist/types/tasks.d.ts +100 -0
  690. package/dist/types/tasks.d.ts.map +1 -0
  691. package/dist/types/tasks.js +2 -0
  692. package/dist/types/tasks.js.map +1 -0
  693. package/dist/utils/__tests__/prompt-mapper.test.d.ts +2 -0
  694. package/dist/utils/__tests__/prompt-mapper.test.d.ts.map +1 -0
  695. package/dist/utils/__tests__/prompt-mapper.test.js +184 -0
  696. package/dist/utils/__tests__/prompt-mapper.test.js.map +1 -0
  697. package/dist/utils/content-injector.d.ts +1 -0
  698. package/dist/utils/content-injector.d.ts.map +1 -1
  699. package/dist/utils/content-injector.js +122 -2
  700. package/dist/utils/content-injector.js.map +1 -1
  701. package/dist/utils/files.d.ts +16 -16
  702. package/dist/utils/files.d.ts.map +1 -1
  703. package/dist/utils/files.js +59 -115
  704. package/dist/utils/files.js.map +1 -1
  705. package/dist/utils/history.d.ts +10 -0
  706. package/dist/utils/history.d.ts.map +1 -1
  707. package/dist/utils/history.js +12 -1
  708. package/dist/utils/history.js.map +1 -1
  709. package/dist/utils/prompt-mapper.d.ts +46 -0
  710. package/dist/utils/prompt-mapper.d.ts.map +1 -1
  711. package/dist/utils/prompt-mapper.js +100 -0
  712. package/dist/utils/prompt-mapper.js.map +1 -1
  713. package/package.json +5 -5
  714. package/dist/content/examples/Exemplo de Fluxo Completo com Java e Spring Boot.md +0 -250
  715. package/dist/content/examples/Exemplo de Fluxo Completo com Laravel e Filament.md +0 -278
  716. package/dist/content/examples/Exemplo de Fluxo Completo com Laravel e Livewire.md +0 -261
  717. package/dist/content/examples/Exemplo de Fluxo Completo com Node e NestJS.md +0 -258
  718. package/dist/content/guides/Cat/303/241logo de Stacks para Cloud Moderna.md" +0 -119
  719. package/dist/content/guides/Cat/303/241logo de Stacks para Hospedagem Compartilhada.md" +0 -147
  720. package/dist/content/guides/Checklist Mestre de Entrega.md +0 -68
  721. package/dist/content/guides/Gates de Qualidade.md +0 -209
  722. package/dist/content/guides/Guia de Adi/303/247/303/243o de Novas Funcionalidades.md" +0 -355
  723. package/dist/content/guides/Guia de Chaos Engineering.md +0 -267
  724. package/dist/content/guides/Guia de Estrat/303/251gias de Cache.md" +0 -352
  725. package/dist/content/guides/Guia de Migrations Zero-Downtime.md +0 -311
  726. package/dist/content/guides/Guia de Multi-tenancy.md +0 -368
  727. package/dist/content/guides/Guia de Otimiza/303/247/303/243o de Custos Cloud.md" +0 -195
  728. package/dist/content/guides/Guia de Refatora/303/247/303/243o de C/303/263digo Legado com IA.md" +0 -162
  729. package/dist/content/guides/Guia de SLOs e Error Budgets.md +0 -315
  730. package/dist/content/guides/M/303/251tricas de Efici/303/252ncia do Desenvolvimento com IA.md" +0 -93
  731. package/dist/content/guides/Rules base.md +0 -90
  732. package/dist/content/playbook/Playbook de Desenvolvimento com IA.md +0 -364
  733. package/dist/content/prompts/README.md +0 -203
  734. package/dist/content/prompts/acessibilidade/analise-acessibilidade.md +0 -257
  735. package/dist/content/prompts/apis/design-api-rest.md +0 -303
  736. package/dist/content/prompts/apis/idempotencia.md +0 -254
  737. package/dist/content/prompts/apis/versionamento.md +0 -313
  738. package/dist/content/prompts/arquitetura/arquitetura-c4-completo.md +0 -190
  739. package/dist/content/prompts/arquitetura/clean-architecture.md +0 -151
  740. package/dist/content/prompts/arquitetura/multi-tenancy.md +0 -235
  741. package/dist/content/prompts/database/migrations-zero-downtime.md +0 -192
  742. package/dist/content/prompts/database/otimizacao-queries.md +0 -296
  743. package/dist/content/prompts/desenvolvimento/code-review.md +0 -301
  744. package/dist/content/prompts/desenvolvimento/gerar-servico.md +0 -271
  745. package/dist/content/prompts/devops/docker-compose.md +0 -336
  746. package/dist/content/prompts/devops/feature-flags.md +0 -374
  747. package/dist/content/prompts/devops/kubernetes-deploy.md +0 -460
  748. package/dist/content/prompts/devops/pipeline-cicd.md +0 -358
  749. package/dist/content/prompts/devops/terraform-iac.md +0 -502
  750. package/dist/content/prompts/escalabilidade/analise-performance.md +0 -240
  751. package/dist/content/prompts/escalabilidade/analise-performance.txt +0 -94
  752. package/dist/content/prompts/escalabilidade/caching.md +0 -255
  753. package/dist/content/prompts/observabilidade/chaos-testing.md +0 -237
  754. package/dist/content/prompts/observabilidade/estrategia-observabilidade.md +0 -263
  755. package/dist/content/prompts/observabilidade/estrategia-observabilidade.txt +0 -134
  756. package/dist/content/prompts/observabilidade/slos.md +0 -215
  757. package/dist/content/prompts/produto/discovery-inicial.md +0 -203
  758. package/dist/content/prompts/produto/discovery-inicial.txt +0 -33
  759. package/dist/content/prompts/requisitos/refinar-requisitos.md +0 -232
  760. package/dist/content/prompts/requisitos/refinar-requisitos.txt +0 -40
  761. package/dist/content/prompts/seguranca/analise-seguranca.md +0 -243
  762. package/dist/content/prompts/seguranca/pentest-checklist.md +0 -333
  763. package/dist/content/prompts/seguranca/rate-limiting.md +0 -356
  764. package/dist/content/prompts/seguranca/revisao-lgpd.md +0 -227
  765. package/dist/content/prompts/seguranca/threat-modeling.md +0 -224
  766. package/dist/content/prompts/testes/contract-testing.md +0 -340
  767. package/dist/content/prompts/testes/gerar-testes-unitarios.md +0 -474
  768. package/dist/content/prompts/testes/testes-e2e.md +0 -460
  769. package/dist/content/prompts/testes/testes-integracao.md +0 -418
  770. package/dist/content/prompts/testes/testes-performance.md +0 -458
  771. package/dist/content/prompts/ux/gerar-ui-stitch.md +0 -151
  772. package/dist/content/specialists/Especialista em Acessibilidade.md +0 -266
  773. package/dist/content/specialists/Especialista em An/303/241lise de Testes.md" +0 -434
  774. package/dist/content/specialists/Especialista em Arquitetura Avan/303/247ada.md" +0 -358
  775. package/dist/content/specialists/Especialista em Arquitetura de Software.md +0 -177
  776. package/dist/content/specialists/Especialista em Banco de Dados.md +0 -260
  777. package/dist/content/specialists/Especialista em Contrato de API.md +0 -172
  778. package/dist/content/specialists/Especialista em Dados e Analytics com IA.md +0 -246
  779. package/dist/content/specialists/Especialista em Debugging e Troubleshooting.md +0 -191
  780. package/dist/content/specialists/Especialista em Desenvolvimento Frontend.md +0 -477
  781. package/dist/content/specialists/Especialista em Desenvolvimento Mobile.md +0 -241
  782. package/dist/content/specialists/Especialista em Desenvolvimento e Vibe Coding Estruturado.md +0 -417
  783. package/dist/content/specialists/Especialista em DevOps e Infraestrutura.md +0 -294
  784. package/dist/content/specialists/Especialista em Documenta/303/247/303/243o T/303/251cnica.md" +0 -227
  785. package/dist/content/specialists/Especialista em Engenharia de Requisitos com IA.md +0 -299
  786. package/dist/content/specialists/Especialista em Explora/303/247/303/243o de Codebase.md" +0 -179
  787. package/dist/content/specialists/Especialista em Gest/303/243o de Produto.md" +0 -179
  788. package/dist/content/specialists/Especialista em Migra/303/247/303/243o e Moderniza/303/247/303/243o.md" +0 -410
  789. package/dist/content/specialists/Especialista em Modelagem e Arquitetura de Dom/303/255nio com IA.md" +0 -248
  790. package/dist/content/specialists/Especialista em Observabilidade.md +0 -415
  791. package/dist/content/specialists/Especialista em Performance e Escalabilidade.md +0 -373
  792. package/dist/content/specialists/Especialista em Plano de Execu/303/247/303/243o com IA.md" +0 -341
  793. package/dist/content/specialists/Especialista em Prototipagem R/303/241pida com Google Stitch.md" +0 -419
  794. package/dist/content/specialists/Especialista em Seguran/303/247a da Informa/303/247/303/243o.md" +0 -508
  795. package/dist/content/specialists/Especialista em UX Design.md +0 -453
  796. package/dist/content/specialists/INDEX.md +0 -43
  797. package/dist/content/templates/PRD.md +0 -165
  798. package/dist/content/templates/README.md +0 -65
  799. package/dist/content/templates/adr.md +0 -103
  800. package/dist/content/templates/arquitetura.md +0 -279
  801. package/dist/content/templates/backlog.md +0 -185
  802. package/dist/content/templates/checklist-seguranca.md +0 -180
  803. package/dist/content/templates/contexto.md +0 -120
  804. package/dist/content/templates/criterios-aceite.md +0 -99
  805. package/dist/content/templates/design-banco.md +0 -270
  806. package/dist/content/templates/design-doc.md +0 -240
  807. package/dist/content/templates/feature.md +0 -88
  808. package/dist/content/templates/historia-backend.md +0 -84
  809. package/dist/content/templates/historia-frontend.md +0 -75
  810. package/dist/content/templates/historia-usuario.md +0 -125
  811. package/dist/content/templates/mapa-navegacao.md +0 -133
  812. package/dist/content/templates/matriz-rastreabilidade.md +0 -121
  813. package/dist/content/templates/modelo-dominio.md +0 -219
  814. package/dist/content/templates/plano-testes.md +0 -199
  815. package/dist/content/templates/prototipo-stitch.md +0 -138
  816. package/dist/content/templates/requisitos.md +0 -162
  817. package/dist/content/templates/slo-sli.md +0 -197
  818. /package/dist/content/{guides/Guia de Debugging com IA.md → skills/specialist-debugging-troubleshooting/resources/reference/debugging-ai-guide.md} +0 -0
  819. /package/dist/content/{prompts/arquitetura → skills/specialist-modelagem-dominio/resources/prompts}/ddd-bounded-contexts.md +0 -0
  820. /package/dist/content/{prompts/arquitetura → skills/specialist-modelagem-dominio/resources/prompts}/ddd-cqrs.md +0 -0
  821. /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