jarvis-ai-framework 1.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 (240) hide show
  1. package/AGENTS.md +416 -0
  2. package/LICENSE +21 -0
  3. package/README.md +190 -0
  4. package/agents/AGENTS.md +234 -0
  5. package/agents/README.md +309 -0
  6. package/agents/engineering/data/eng.data-engineer.agent.md +309 -0
  7. package/agents/engineering/eng.agent.md +303 -0
  8. package/agents/engineering/eng.bug-hunter.md +386 -0
  9. package/agents/engineering/eng.cybersecurity.agent.md +503 -0
  10. package/agents/engineering/eng.dev-code-reviewer.md +148 -0
  11. package/agents/engineering/eng.docs-writer.md +152 -0
  12. package/agents/engineering/eng.frontend.agent.md +117 -0
  13. package/agents/engineering/eng.rpa.agent.md +215 -0
  14. package/agents/engineering/eng.tech-analyst.agent.md +102 -0
  15. package/agents/engineering/eng.ux-designer.agent.md +193 -0
  16. package/agents/engineering/qa/eng.qa.cypress-specialist.md +109 -0
  17. package/agents/engineering/qa/eng.qa.quality-champion-task-agent.md +85 -0
  18. package/agents/engineering/qa/eng.qa.quality-strategist.md +111 -0
  19. package/agents/engineering/qa/eng.qa.test-architect.md +400 -0
  20. package/agents/engineering/qa/eng.qa.test-planner.md +477 -0
  21. package/agents/engineering/qa/eng.qa.testing-engineer.md +339 -0
  22. package/agents/product/prod.pm-checker.md +52 -0
  23. package/bin/commands/docs-publish.js +184 -0
  24. package/bin/commands/docs-sync.js +139 -0
  25. package/bin/commands/info.js +87 -0
  26. package/bin/commands/init.js +237 -0
  27. package/bin/commands/install-rtk.js +90 -0
  28. package/bin/commands/list.js +48 -0
  29. package/bin/commands/qa-signoff.js +112 -0
  30. package/bin/commands/whoami.js +43 -0
  31. package/bin/jarvis.js +159 -0
  32. package/bin/lib/auth/session.js +56 -0
  33. package/bin/lib/config/constants.js +123 -0
  34. package/bin/lib/config/ide-config.js +233 -0
  35. package/bin/lib/core/scanner.js +124 -0
  36. package/bin/lib/core/sync-engine.js +551 -0
  37. package/bin/lib/docs/fetch-file.sh +41 -0
  38. package/bin/lib/docs/publish-file.sh +284 -0
  39. package/bin/lib/docs/validate-frontmatter.js +157 -0
  40. package/bin/lib/env-loader.js +198 -0
  41. package/bin/lib/tasks/comment.js +131 -0
  42. package/bin/lib/utils/git-parser.js +145 -0
  43. package/bin/lib/utils/logger.js +104 -0
  44. package/bin/lib/utils/npmrc-parser.js +106 -0
  45. package/bin/lib/utils/paths.js +55 -0
  46. package/bin/lib/utils/ui.js +59 -0
  47. package/bin/lib/vcs/api.js +312 -0
  48. package/bin/lib/vcs/create-issue.js +43 -0
  49. package/bin/lib/vcs/create-merge.js +43 -0
  50. package/bin/lib/vcs/fetch-raw.js +30 -0
  51. package/bin/postinstall.js +41 -0
  52. package/members.md +25 -0
  53. package/package.json +55 -0
  54. package/rules/AGENTS.md +205 -0
  55. package/rules/engineering/data/data-rules.md +200 -0
  56. package/rules/engineering/eng-rules.md +243 -0
  57. package/rules/engineering/eng-security-rules.md +186 -0
  58. package/rules/engineering/eng.breakdown-subtasks-rules.md +585 -0
  59. package/rules/engineering/eng.bump-rules.md +27 -0
  60. package/rules/engineering/eng.docs-scraping-rules.md +64 -0
  61. package/rules/engineering/eng.downstream-flow-rules.md +297 -0
  62. package/rules/engineering/eng.integrations-rules.md +73 -0
  63. package/rules/engineering/eng.plan-rules.md +333 -0
  64. package/rules/engineering/eng.pr-rules.md +359 -0
  65. package/rules/engineering/eng.pre-pr-rules.md +103 -0
  66. package/rules/engineering/eng.start-rules.md +246 -0
  67. package/rules/engineering/eng.tech-spec-rules.md +968 -0
  68. package/rules/engineering/eng.work-rules.md +312 -0
  69. package/rules/engineering/frontend/eng.frontend-rules.md +147 -0
  70. package/rules/engineering/qa/eng.qa.cypress-standards-rules.md +259 -0
  71. package/rules/engineering/qa/eng.qa.exploratory-session-rules.md +137 -0
  72. package/rules/engineering/qa/eng.qa.quality-gate-scoring-rules.md +181 -0
  73. package/rules/engineering/qa/eng.qa.tech-spec-validation-criteria-rules.md +120 -0
  74. package/rules/engineering/rpa/eng.rpa-rules.md +230 -0
  75. package/rules/product/README.md +24 -0
  76. package/rules/product/prod-rules.md +151 -0
  77. package/rules/rtk-rules.md +68 -0
  78. package/skills/AGENTS.md +290 -0
  79. package/skills/SKILLS-ROADMAP.md +333 -0
  80. package/skills/churn-audit/SKILL.md +385 -0
  81. package/skills/context-detect/SKILL.md +399 -0
  82. package/skills/context-detect/assets/context-profile-template.md +127 -0
  83. package/skills/docs-central/README.md +310 -0
  84. package/skills/docs-central/SKILL.md +423 -0
  85. package/skills/docs-index/SKILL.md +377 -0
  86. package/skills/eng-ai-engineer/SKILL.md +296 -0
  87. package/skills/eng-arch-c4/SKILL.md +358 -0
  88. package/skills/eng-arch-c4/assets/example-code.md +189 -0
  89. package/skills/eng-arch-c4/assets/example-component.md +105 -0
  90. package/skills/eng-arch-c4/assets/example-container.md +104 -0
  91. package/skills/eng-arch-c4/assets/example-context.md +81 -0
  92. package/skills/eng-backend/SKILL.md +776 -0
  93. package/skills/eng-browser-extension-builder/SKILL.md +385 -0
  94. package/skills/eng-cybersecurity/SKILL.md +645 -0
  95. package/skills/eng-data-bi/SKILL.md +199 -0
  96. package/skills/eng-data-debug/SKILL.md +307 -0
  97. package/skills/eng-data-engineer/SKILL.md +256 -0
  98. package/skills/eng-data-onboard/SKILL.md +310 -0
  99. package/skills/eng-data-orchestrator/SKILL.md +426 -0
  100. package/skills/eng-design-system/SKILL.md +619 -0
  101. package/skills/eng-docs-write/SKILL.md +312 -0
  102. package/skills/eng-frontend/SKILL.md +913 -0
  103. package/skills/eng-jira-comment/SKILL.md +17 -0
  104. package/skills/eng-microfrontend/SKILL.md +602 -0
  105. package/skills/eng-ms-trace/SKILL.md +469 -0
  106. package/skills/eng-nestjs/SKILL.md +791 -0
  107. package/skills/eng-performance-engineer/SKILL.md +312 -0
  108. package/skills/eng-pr/SKILL.md +339 -0
  109. package/skills/eng-qa-a11y-audit/SKILL.md +269 -0
  110. package/skills/eng-qa-bug-report/SKILL.md +1088 -0
  111. package/skills/eng-qa-bug-report/TASK_MANAGERS.md +138 -0
  112. package/skills/eng-qa-cypress-e2e/SKILL.md +177 -0
  113. package/skills/eng-qa-dev-guide/SKILL.md +164 -0
  114. package/skills/eng-qa-e2e/SKILL.md +400 -0
  115. package/skills/eng-qa-e2e-spec-writer/SKILL.md +322 -0
  116. package/skills/eng-qa-exploratory/SKILL.md +188 -0
  117. package/skills/eng-qa-gate/SKILL.md +370 -0
  118. package/skills/eng-qa-gate/assets/checklist-validacao.md +291 -0
  119. package/skills/eng-qa-graphql-contract/SKILL.md +256 -0
  120. package/skills/eng-qa-quality-report/SKILL.md +412 -0
  121. package/skills/eng-qa-test-plan/SKILL.md +466 -0
  122. package/skills/eng-qa-test-plan/assets/test-coverage-template.md +92 -0
  123. package/skills/eng-qa-test-plan/assets/test-patterns.md +178 -0
  124. package/skills/eng-qa-testsprite/SKILL.md +325 -0
  125. package/skills/eng-qa-testsprite/references/testsprite-mcp.md +224 -0
  126. package/skills/eng-qa-unit-test/SKILL.md +471 -0
  127. package/skills/eng-rabbitmq/SKILL.md +661 -0
  128. package/skills/eng-scraper/SKILL.md +683 -0
  129. package/skills/eng-scraper-robot-builder/SKILL.md +370 -0
  130. package/skills/eng-security-patch/SKILL.md +378 -0
  131. package/skills/eng-security-triage/SKILL.md +266 -0
  132. package/skills/eng-task-comment/SKILL.md +60 -0
  133. package/skills/eng-tech-analyst/SKILL.md +529 -0
  134. package/skills/eng-threat-model/SKILL.md +161 -0
  135. package/skills/init-jarvis/SKILL.md +1304 -0
  136. package/skills/init-jarvis/assets/mcp-configs.md +389 -0
  137. package/skills/init-jarvis/assets/onboarding-checklist.md +104 -0
  138. package/skills/init-jarvis/assets/setup-guide.md +360 -0
  139. package/skills/lovable-prompt-generator/SKILL.md +304 -0
  140. package/skills/prod-roadmap-report/README.md +303 -0
  141. package/skills/prod-roadmap-report/SKILL.md +198 -0
  142. package/skills/prod-roadmap-report/commands/status.compiled.single.team.md +23 -0
  143. package/skills/prod-roadmap-report/commands/status.list.projects.md +17 -0
  144. package/skills/prod-roadmap-report/commands/status.memory.md +192 -0
  145. package/skills/prod-roadmap-report/commands/status.roadmap.preview.md +94 -0
  146. package/skills/prod-roadmap-report/references/detailed-guide.md +236 -0
  147. package/skills/prod-roadmap-report/rules/detailed-guide.md +237 -0
  148. package/skills/prod-roadmap-report/rules/status-report-rules.md +44 -0
  149. package/skills/prod-roadmap-report/templates/template-multiple-teams-compiled-status.md +53 -0
  150. package/skills/prod-roadmap-report/templates/template-projects-list.md +23 -0
  151. package/skills/prod-roadmap-report/templates/template-single-team-compiled-status.md +60 -0
  152. package/skills/prod-roadmap-report/templates/template-single-team-status.md +49 -0
  153. package/skills/prod-specs/SKILL.md +108 -0
  154. package/skills/prod-specs/references/prod.spec.clarify.md +176 -0
  155. package/skills/prod-specs/references/prod.spec.epic.md +107 -0
  156. package/skills/prod-specs/references/prod.spec.frd.md +135 -0
  157. package/skills/prod-specs/references/prod.spec.issue.md +145 -0
  158. package/skills/prod-specs/references/prod.spec.prd.md +118 -0
  159. package/skills/prod-specs/rules/prod-spec-rules.md +186 -0
  160. package/skills/prod-specs/templates/prod-breakdown-template.md +136 -0
  161. package/skills/prod-specs/templates/prod-epic-template.md +76 -0
  162. package/skills/prod-specs/templates/prod-frd-template.md +172 -0
  163. package/skills/prod-specs/templates/prod-issue-template.md +68 -0
  164. package/skills/prod-specs/templates/prod-prd-full-template.md +159 -0
  165. package/skills/prod-specs/templates/prod-prd-template.md +173 -0
  166. package/skills/prod-specs-update/SKILL.md +272 -0
  167. package/skills/report-issue/SKILL.md +156 -0
  168. package/taxonomy.md +270 -0
  169. package/templates/AGENTS.md +189 -0
  170. package/templates/CDD aplicado a Prompts.md +182 -0
  171. package/templates/ENV-template.md +187 -0
  172. package/templates/engineering/AGENTS-template.md +71 -0
  173. package/templates/engineering/ARD-template.md +193 -0
  174. package/templates/engineering/CONTACTS-template.md +135 -0
  175. package/templates/engineering/PR-template.md +40 -0
  176. package/templates/engineering/RFC-Playbook.md +325 -0
  177. package/templates/engineering/RFC-template.md +199 -0
  178. package/templates/engineering/architecture-template.md +277 -0
  179. package/templates/engineering/breakdown-subtasks-template.md +582 -0
  180. package/templates/engineering/c4-model-template.md +516 -0
  181. package/templates/engineering/data-contract-template.md +135 -0
  182. package/templates/engineering/data-pipeline-template.md +163 -0
  183. package/templates/engineering/plan-template.md +255 -0
  184. package/templates/engineering/qa/eng.qa.quality-gate-examples-template.md +311 -0
  185. package/templates/engineering/qa/eng.qa.quality-gate-report-template.md +249 -0
  186. package/templates/engineering/qa/qa.cypress-test-template.md +172 -0
  187. package/templates/engineering/qa/qa.exploratory-session-template.md +148 -0
  188. package/templates/engineering/qa/qa.quality-report-template.md +130 -0
  189. package/templates/engineering/qa/qa.release-signoff-template.md +54 -0
  190. package/templates/engineering/qa/qa.sprint-plan-template.md +49 -0
  191. package/templates/engineering/swagger-template.md +145 -0
  192. package/templates/engineering/tech-spec-template.md +497 -0
  193. package/templates/engineering/work-progress-template.md +155 -0
  194. package/workflows/AGENTS.md +240 -0
  195. package/workflows/README.md +160 -0
  196. package/workflows/all-tools.md +11 -0
  197. package/workflows/engineering/data/data.contract.md +202 -0
  198. package/workflows/engineering/data/data.new-pipeline.md +234 -0
  199. package/workflows/engineering/eng.breakdown-subtasks.md +420 -0
  200. package/workflows/engineering/eng.bug-audit.md +591 -0
  201. package/workflows/engineering/eng.build-tech-spec.md +1116 -0
  202. package/workflows/engineering/eng.create-ard-from-code.md +259 -0
  203. package/workflows/engineering/eng.create-ard.md +382 -0
  204. package/workflows/engineering/eng.create-rfc.md +245 -0
  205. package/workflows/engineering/eng.debug.md +479 -0
  206. package/workflows/engineering/eng.docs.md +40 -0
  207. package/workflows/engineering/eng.light-arch.md +84 -0
  208. package/workflows/engineering/eng.plan.md +213 -0
  209. package/workflows/engineering/eng.pr.md +466 -0
  210. package/workflows/engineering/eng.pre-pr.md +167 -0
  211. package/workflows/engineering/eng.review.md +185 -0
  212. package/workflows/engineering/eng.rpa.robot.md +342 -0
  213. package/workflows/engineering/eng.security-audit.md +312 -0
  214. package/workflows/engineering/eng.security-incident.md +275 -0
  215. package/workflows/engineering/eng.security-pipeline.md +210 -0
  216. package/workflows/engineering/eng.security-review.md +235 -0
  217. package/workflows/engineering/eng.start.md +494 -0
  218. package/workflows/engineering/eng.work.md +558 -0
  219. package/workflows/engineering/frontend/eng.frontend-component.md +190 -0
  220. package/workflows/engineering/frontend/eng.frontend-perf-audit.md +375 -0
  221. package/workflows/engineering/frontend/eng.frontend-review.md +185 -0
  222. package/workflows/engineering/qa/eng.qa-dev-quality-guide.md +51 -0
  223. package/workflows/engineering/qa/eng.qa-e2e-test-generation.md +51 -0
  224. package/workflows/engineering/qa/eng.qa-exploratory-session.md +60 -0
  225. package/workflows/engineering/qa/eng.qa-quality-gate-validation.md +202 -0
  226. package/workflows/engineering/qa/eng.qa-quality-report.md +83 -0
  227. package/workflows/engineering/qa/eng.qa-refinement-entry.md +83 -0
  228. package/workflows/engineering/qa/eng.qa-release-signoff.md +170 -0
  229. package/workflows/engineering/qa/eng.qa-sprint-planning.md +100 -0
  230. package/workflows/engineering/ta/eng.ta.atendimento.md +93 -0
  231. package/workflows/product/prod.roadmap.preview.md +110 -0
  232. package/workflows/product/prod.spec.breakdown.md +163 -0
  233. package/workflows/product/prod.spec.clarify.md +178 -0
  234. package/workflows/product/prod.spec.epic.md +154 -0
  235. package/workflows/product/prod.spec.frd.md +96 -0
  236. package/workflows/product/prod.spec.issue.md +145 -0
  237. package/workflows/product/prod.spec.md +60 -0
  238. package/workflows/product/prod.spec.prd.md +100 -0
  239. package/workflows/taxonomy.md +92 -0
  240. package/workflows/warm-up.md +574 -0
@@ -0,0 +1,224 @@
1
+ # TestSprite MCP — Referência (Resumo Operacional)
2
+
3
+ > Esta referência consolida, em formato local, as capacidades e o fluxo do **TestSprite MCP Server**.
4
+ >
5
+ > Fonte original: https://docs.testsprite.com/mcp/getting-started/introduction
6
+
7
+ ---
8
+
9
+ ## O que é
10
+
11
+ O **TestSprite MCP Server** é um MCP para IDE que funciona como um agente de testes automatizados. Ele:
12
+
13
+ - Lê PRD (quando fornecido)
14
+ - Analisa o codebase
15
+ - Gera um PRD normalizado (TestSprite PRD)
16
+ - Cria planos de teste
17
+ - Gera código de teste
18
+ - Executa testes
19
+ - Produz relatórios
20
+ - Suporta fluxo de correção com base nos resultados
21
+
22
+ A documentação descreve esse funcionamento como um fluxo em múltiplas etapas ("reads PRD" → "analyzes code" → "generates test PRD" → "creates test plans" → "generates test code" → "executes tests" → "provides results" → "enables fixes").
23
+
24
+ ---
25
+
26
+ ## Tipos de teste suportados
27
+
28
+ - **Frontend**: UI & Business-Flow (E2E / integração de fluxos)
29
+ - **Backend**: API & Integration
30
+
31
+ ## Quando usar cada tipo
32
+
33
+ ### Frontend (UI & Business-Flow)
34
+
35
+ Use quando o risco/valor está no comportamento percebido pelo usuário:
36
+
37
+ - Fluxos de navegação (multi-step), páginas e rotas
38
+ - Formulários, validações e mensagens de erro
39
+ - Componentes interativos e estados (loading/empty)
40
+ - Fluxos de autenticação/autorizações na UI (login/logout/rotas protegidas)
41
+
42
+ Evite escolher Frontend como única camada quando o objetivo é validar contrato/semântica de API (nesse caso, inclua Backend).
43
+
44
+ ### Backend (API & Integration)
45
+
46
+ Use quando o risco/valor está na API/serviço e suas integrações:
47
+
48
+ - Contratos de request/response, schemas e versionamento
49
+ - Regras de autorização/autenticação (RBAC/scopes, token validation)
50
+ - Resiliência e tratamento de erro (status codes, timeouts, retries/backoff)
51
+ - Edge cases e validações de payload/paginação
52
+ - Integridade/persistência de dados (idempotência/constraints)
53
+
54
+ ### Quando rodar os dois
55
+
56
+ Rode **Frontend + Backend** quando:
57
+
58
+ - O fluxo é ponta-a-ponta (UI chama API) e você quer diagnóstico mais rápido
59
+ - Existem regras de auth e modelos de dados compartilhados entre UI e API
60
+ - O problema pode estar em contrato, payloads ou status codes (camada API), mas se manifesta na UI
61
+
62
+ ---
63
+
64
+ ## Escopo de execução (Codebase vs Code Diff)
65
+
66
+ A documentação menciona dois modos de escopo:
67
+
68
+ - **Codebase**: varredura completa do projeto.
69
+ - Use quando:
70
+ - é a primeira execução do TestSprite no repo
71
+ - você quer um baseline amplo de qualidade
72
+ - houve mudanças grandes/estruturais e o risco é sistêmico
73
+
74
+ - **Code Diff**: executar focado nas mudanças recentes (a doc cita mudanças não commitadas/uncommitted).
75
+ - Use quando:
76
+ - você quer feedback rápido antes de abrir PR
77
+ - quer validar apenas o impacto do que acabou de alterar
78
+ - está iterando rapidamente e o full sweep seria caro/lento
79
+
80
+ Observação: se você precisar focar especificamente em staged vs uncommitted, valide com o usuário qual estado do Git deve ser considerado antes de executar.
81
+
82
+ ## Tipos de testes (detalhamento)
83
+
84
+ Esta lista é uma transcrição/normalização do que a documentação descreve como capacidades suportadas.
85
+
86
+ ### Frontend (UI & Business-Flow Integration)
87
+
88
+ - **User Journey Navigation**: fluxos multi-etapa, transições de página, deep linking, histórico do navegador e route guards.
89
+ - Exemplos de quando usar:
90
+ - Quando você alterou navegação/roteamento (ex.: novas rotas, guards, redirects pós-login).
91
+ - Quando implementou um fluxo multi-página (ex.: onboarding, checkout, wizard).
92
+ - Quando mudou deep links (ex.: abrir detalhes via URL) ou comportamento do back/forward.
93
+ - **Form Flows & Validation**: validação de input, mensagens de erro, dependências entre campos, submissão e persistência.
94
+ - Exemplos de quando usar:
95
+ - Quando criou/alterou regras de validação (ex.: email, senha, máscara, required).
96
+ - Quando mudou mensagens de erro, estados inválidos e validação em tempo real.
97
+ - Quando o submit depende de múltiplos campos/etapas (ex.: endereço + pagamento).
98
+ - **Visual States & Layouts**: renderização, responsividade, loading/empty states e compliance de acessibilidade.
99
+ - Exemplos de quando usar:
100
+ - Quando adicionou estados de carregamento/placeholder/skeleton.
101
+ - Quando alterou layout responsivo (breakpoints) ou grid.
102
+ - Quando implementou empty states (lista vazia, zero-state) e quer validar acessibilidade.
103
+ - **Interactive Components & Stateful UI**: dropdowns, modals, tabs, accordions, drag-and-drop, persistência de estado e updates em tempo real.
104
+ - Exemplos de quando usar:
105
+ - Quando adicionou/alterou modal, dropdown, tab ou accordion que controla estado.
106
+ - Quando implementou drag-and-drop (ordenar itens, kanban).
107
+ - Quando tem UI com updates em tempo real (polling/websocket) e precisa validar consistência visual.
108
+ - **Authorization & Auth Flows (UI)**: login/logout, rotas protegidas, visibilidade por papel, session management e token refresh.
109
+ - Exemplos de quando usar:
110
+ - Quando alterou fluxo de login/logout (ex.: SSO, MFA, step extra).
111
+ - Quando introduziu nova rota protegida ou mudança de RBAC na UI.
112
+ - Quando houve mudança em refresh/expiração de token (ex.: reauth silencioso).
113
+ - **Error Handling (UI)**: toasts, modals, inline errors, feedback de validação e graceful degradation.
114
+ - Exemplos de quando usar:
115
+ - Quando mudou o padrão de exibição de erros (toast vs inline vs modal).
116
+ - Quando adicionou tratamento para falhas de rede/timeout.
117
+ - Quando precisa validar que o usuário recebe feedback correto em cenários de erro.
118
+
119
+ ### Backend (API & Integration)
120
+
121
+ - **Functional API Workflows**: comportamento de endpoints, workflows multi-step, orquestração de serviços e padrões de integração.
122
+ - Exemplos de quando usar:
123
+ - Quando introduziu um fluxo que chama múltiplos endpoints (ex.: criar pedido → pagar → confirmar).
124
+ - Quando mudou orquestração/integração entre serviços (ex.: webhook + job async).
125
+ - Quando há dependência de estados/transições (ex.: status de pedido).
126
+ - **Contract & Schema Validation**: schemas request/response, data types, required fields, formatos de serialização e versionamento.
127
+ - Exemplos de quando usar:
128
+ - Quando adicionou/removeu campos no payload (request/response).
129
+ - Quando alterou tipos/formatos (ex.: date string → epoch) ou regras de required/optional.
130
+ - Quando mudou versionamento de API ou contratos entre serviços.
131
+ - **Error Handling & Resilience**: status codes, error bodies, retry/backoff, timeouts e graceful degradation.
132
+ - Exemplos de quando usar:
133
+ - Quando ajustou códigos de status (ex.: 400/404/409/422) e mensagens de erro.
134
+ - Quando adicionou timeouts, retries/backoff ou circuit breaker.
135
+ - Quando precisa validar comportamento em dependência instável (ex.: serviço terceiro).
136
+ - **Authorization & Authentication**: token validation, RBAC, permission scopes, session management e credential handling.
137
+ - Exemplos de quando usar:
138
+ - Quando alterou regras de permissão (RBAC/scopes) por endpoint.
139
+ - Quando mudou validação de token (claims, expiração, audience/issuer).
140
+ - Quando introduziu novo mecanismo de autenticação (ex.: API key, OAuth).
141
+ - **Boundary & Edge Cases**: limites de payload, paginação, valores null/empty, inputs malformados e constraint validation.
142
+ - Exemplos de quando usar:
143
+ - Quando adicionou paginação/filters/sorting e precisa validar limites.
144
+ - Quando o endpoint aceita payload grande ou novos formatos.
145
+ - Quando adicionou validações de input e quer cobrir casos inválidos.
146
+ - **Data Integrity & Persistence**: consistência de dados, transações, idempotência, state management e database constraints.
147
+ - Exemplos de quando usar:
148
+ - Quando introduziu escrita em banco (insert/update) com constraints novas.
149
+ - Quando implementou idempotência (ex.: POST com idempotency-key).
150
+ - Quando adicionou transações/sagas e quer validar consistência sob falha.
151
+ - **Security Testing**: vulnerabilidades comuns (injection, XSS, CSRF), auth bypass, authorization flaws, data exposure e security misconfigurations.
152
+ - Exemplos de quando usar:
153
+ - Quando expôs endpoint novo e quer validar que não há bypass de auth.
154
+ - Quando mexeu em sanitização/validação e quer detectar injection.
155
+ - Quando lida com dados sensíveis e quer checar exposição indevida.
156
+
157
+ ---
158
+
159
+ ## Lifecycle (modelo mental)
160
+
161
+ A documentação descreve um lifecycle conceitual:
162
+
163
+ - Discover & Understand
164
+ - Plan
165
+ - Generate
166
+ - Execute
167
+ - Analyze
168
+ - Heal & Maintain
169
+ - Report & Integrate
170
+
171
+ ---
172
+
173
+ ## Fluxo de "primeiro teste" (Getting Started)
174
+
175
+ A documentação sugere:
176
+
177
+ 1. Subir o projeto localmente (ex.: `npm run dev`, `node index.js`, etc.)
178
+ 2. Abrir um chat no IDE e pedir:
179
+
180
+ ```text
181
+ Can you test this project with TestSprite?
182
+ ```
183
+
184
+ 3. Fornecer configuração obrigatória (conforme solicitado pelo fluxo do MCP), incluindo:
185
+ - Tipo: Frontend ou Backend
186
+ - Scope: Codebase (varredura completa) ou Code Diff (mudanças recentes / uncommitted)
187
+ - Credenciais de conta de teste (se houver login)
188
+ - URLs locais (ex.: frontend `http://localhost:5173`, backend `http://localhost:4000`)
189
+ - PRD (quando aplicável)
190
+
191
+ ---
192
+
193
+ ## Artefatos gerados
194
+
195
+ A documentação mostra um output típico em `testsprite_tests/`, incluindo:
196
+
197
+ - `standard_prd.json` (PRD normalizado)
198
+ - `TestSprite_MCP_Test_Report.md` e `TestSprite_MCP_Test_Report.html`
199
+ - `tmp/` com dados auxiliares (ex.: `config.json`, `code_summary.json`, `test_results.json`)
200
+ - Arquivos de casos de teste (ex.: `TC001_...py`, `TC002_...py`, etc.)
201
+
202
+ ---
203
+
204
+ ## Pré-requisitos / instalação (pontos essenciais)
205
+
206
+ - Conta TestSprite e **API key**
207
+ - **Node.js >= 22** (para rodar o MCP via `npx`)
208
+ - Instalação do MCP depende do IDE, mas o comando base é:
209
+
210
+ ```text
211
+ npx @testsprite/testsprite-mcp@latest
212
+ ```
213
+
214
+ Em configurações de MCP, é comum usar `API_KEY` via variável de ambiente.
215
+
216
+ ---
217
+
218
+ ## Referências
219
+
220
+ - Introduction: https://docs.testsprite.com/mcp/getting-started/introduction
221
+ - Overview: https://docs.testsprite.com/mcp/getting-started/overview
222
+ - Installation: https://docs.testsprite.com/mcp/getting-started/installation
223
+ - First MCP Test: https://docs.testsprite.com/mcp/getting-started/first-test
224
+ - Test Types & Lifecycle: https://docs.testsprite.com/mcp/concepts/test-type-lifecycle
@@ -0,0 +1,471 @@
1
+ ---
2
+ name: eng-qa-unit-test
3
+ description: >
4
+ Gera testes unitários para código novo ou modificado seguindo as convenções do projeto.
5
+ Trigger: Use quando precisar criar testes unitários para funções, classes ou módulos.
6
+ argument-hint: "[caminho-do-arquivo]"
7
+ disable-model-invocation: false
8
+ allowed-tools: Read Write Edit Grep Glob Bash mcp__TestSprite__testsprite_bootstrap mcp__TestSprite__testsprite_generate_code_summary mcp__TestSprite__testsprite_generate_frontend_test_plan mcp__TestSprite__testsprite_generate_backend_test_plan mcp__TestSprite__testsprite_generate_code_and_execute mcp__TestSprite__testsprite_rerun_tests
9
+ license: AGPL-3.0
10
+ metadata:
11
+ author: jarvis-team
12
+ version: "1.0"
13
+ ---
14
+
15
+ # QA Unit Test - Gerador de Testes Unitários
16
+
17
+ Você é um **especialista em testes unitários** focado em criar testes de alta qualidade seguindo as convenções do projeto.
18
+
19
+ ## Objetivo
20
+
21
+ Gerar testes unitários completos para código novo ou modificado, garantindo cobertura adequada e seguindo padrões de teste do projeto.
22
+
23
+ ## Entrada
24
+
25
+ - `$ARGUMENTS` - Caminho do arquivo ou função para criar testes
26
+
27
+ ## Recursos
28
+
29
+ - **Saída**: Arquivo de teste no padrão do projeto (`.test.ts`, `.spec.ts`, `_test.py`, etc.)
30
+
31
+ ---
32
+
33
+ ## Pré-requisito
34
+
35
+ Verificar se o `ENV.md` existe e está completo antes de executar.
36
+
37
+ ---
38
+
39
+ ## Quando Usar
40
+
41
+ Use esta skill quando:
42
+ - Precisar criar testes unitários para novo código
43
+ - Quiser aumentar a cobertura de testes de código existente
44
+ - Necessitar de testes para funções ou classes específicas
45
+ - Estiver fazendo TDD e precisar de testes antes da implementação
46
+
47
+ **NÃO usar quando:**
48
+ - Precisar de testes de integração (use qa-integration-test)
49
+ - Precisar de testes e2e (use qa-e2e-test)
50
+ - O código já tiver cobertura adequada
51
+
52
+ ---
53
+
54
+ ## Validação de Entrada
55
+
56
+ ```
57
+ Se $ARGUMENTS está vazio:
58
+ → Exibir: "⚠️ Argumento obrigatório. Informe o caminho do arquivo."
59
+ → Exibir: "Uso: /qa-unit-test [caminho-do-arquivo]"
60
+ → Encerrar execução
61
+ ```
62
+
63
+ ---
64
+
65
+ ## Integração com TestSprite MCP
66
+
67
+ Esta skill prioriza o uso do TestSprite MCP para geração automática de testes quando disponível.
68
+
69
+ ### Verificação de Disponibilidade
70
+
71
+ Para verificar se o TestSprite está disponível:
72
+
73
+ 1. **Tente chamar** `testsprite_bootstrap` com parâmetros mínimos
74
+ 2. **Se a tool existir e responder**: Prossiga com o Fluxo A (MCP)
75
+ 3. **Se a tool não existir ou retornar erro**: Prossiga com o Fluxo B (Manual)
76
+
77
+ **Erros que indicam indisponibilidade:**
78
+ - `Tool not found`
79
+ - `MCP server not connected`
80
+ - `Connection refused`
81
+ - Timeout sem resposta
82
+
83
+ > **Importante**: Não tente reconectar ou instalar o MCP automaticamente. Se indisponível, siga direto para o Fluxo B.
84
+
85
+ ### Decisão de Fluxo
86
+
87
+ ```
88
+ ┌─────────────────────────────────────────────────────────────┐
89
+ │ │
90
+ │ VERIFICAR TESTSPRITE MCP │
91
+ │ │
92
+ │ ┌─────────────────────────┐ │
93
+ │ │ Tool testsprite_bootstrap│ │
94
+ │ │ disponível? │ │
95
+ │ └───────────┬─────────────┘ │
96
+ │ │ │
97
+ │ SIM │ NÃO │
98
+ │ ↓ │ ↓ │
99
+ │ FLUXO │ FLUXO │
100
+ │ MCP │ MANUAL │
101
+ │ (A) │ (B) │
102
+ │ │
103
+ └─────────────────────────────────────────────────────────────┘
104
+ ```
105
+
106
+ ---
107
+
108
+ ## FLUXO A: TestSprite MCP (Preferencial)
109
+
110
+ Se o TestSprite MCP estiver disponível, use as seguintes ferramentas para gerar testes automaticamente.
111
+
112
+ ### A.1. Detectar Tipo de Projeto
113
+
114
+ Identifique se o projeto é frontend ou backend:
115
+
116
+ ```bash
117
+ # Verificar indicadores de Frontend
118
+ grep -E "(react|vue|angular|next|nuxt|svelte|vite)" package.json 2>/dev/null
119
+
120
+ # Verificar indicadores de Backend
121
+ ls requirements.txt go.mod pom.xml Cargo.toml 2>/dev/null
122
+ grep -E "(express|fastify|nest|koa|hapi)" package.json 2>/dev/null
123
+ ```
124
+
125
+ | Indicador | Tipo |
126
+ |-----------|------|
127
+ | `react`, `vue`, `angular`, `next`, `svelte`, `vite` | Frontend |
128
+ | `express`, `fastify`, `nest`, `koa`, `hapi` | Backend |
129
+ | `requirements.txt`, `pytest` | Backend (Python) |
130
+ | `go.mod` | Backend (Go) |
131
+ | `pom.xml`, `build.gradle` | Backend (Java) |
132
+
133
+ ### A.2. Detectar Porta Local
134
+
135
+ ```bash
136
+ # Verificar porta em package.json ou .env
137
+ grep -E "PORT|port" package.json .env 2>/dev/null
138
+ ```
139
+
140
+ | Framework | Porta Padrão |
141
+ |-----------|-------------|
142
+ | Vite/React | 5173 |
143
+ | Next.js/CRA | 3000 |
144
+ | Express/Node | 3000 |
145
+ | Django/FastAPI | 8000 |
146
+
147
+ ### A.3. Bootstrap do TestSprite
148
+
149
+ ```javascript
150
+ testsprite_bootstrap({
151
+ localPort: 5173, // Ajustar conforme detectado
152
+ type: "frontend", // Ou "backend" conforme detectado
153
+ projectPath: "$PROJECT_ROOT",
154
+ testScope: "diff" // Foca no arquivo específico
155
+ })
156
+ ```
157
+
158
+ ### A.4. Gerar Sumário do Código
159
+
160
+ ```javascript
161
+ testsprite_generate_code_summary({
162
+ projectRootPath: "$PROJECT_ROOT"
163
+ })
164
+ ```
165
+
166
+ ### A.5. Gerar Plano de Testes
167
+
168
+ Para Frontend:
169
+ ```javascript
170
+ testsprite_generate_frontend_test_plan({
171
+ projectPath: "$PROJECT_ROOT",
172
+ needLogin: false // Ajustar se necessário
173
+ })
174
+ ```
175
+
176
+ Para Backend:
177
+ ```javascript
178
+ testsprite_generate_backend_test_plan({
179
+ projectPath: "$PROJECT_ROOT"
180
+ })
181
+ ```
182
+
183
+ ### A.6. Gerar e Executar Testes
184
+
185
+ ```javascript
186
+ testsprite_generate_code_and_execute({
187
+ projectName: "$WORKSPACE",
188
+ projectPath: "$PROJECT_ROOT",
189
+ testIds: [], // Vazio = todos, ou especificar IDs
190
+ additionalInstruction: "Foco em testes unitários para: $ARGUMENTS"
191
+ })
192
+ ```
193
+
194
+ ### A.7. Re-executar Testes (se necessário)
195
+
196
+ ```javascript
197
+ testsprite_rerun_tests({
198
+ projectPath: "$PROJECT_ROOT"
199
+ })
200
+ ```
201
+
202
+ ### A.8. Saída do TestSprite
203
+
204
+ O TestSprite gera automaticamente:
205
+ - `testsprite_tests/` - Pasta com todos os testes gerados
206
+ - `TestSprite_MCP_Test_Report.md` - Relatório em Markdown
207
+ - `TestSprite_MCP_Test_Report.html` - Relatório em HTML
208
+ - `testsprite_tests/tmp/test_results.json` - Resultados detalhados
209
+
210
+ ---
211
+
212
+ ## FLUXO B: Geração Manual (Fallback)
213
+
214
+ Se o TestSprite MCP NÃO estiver disponível, siga o fluxo manual abaixo.
215
+
216
+ ### Padrões Críticos (Fluxo Manual)
217
+
218
+ #### Padrão 1: Detectar Framework de Teste
219
+
220
+ ```bash
221
+ # JavaScript/TypeScript
222
+ grep -E "(jest|vitest|mocha|jasmine)" package.json
223
+
224
+ # Python
225
+ ls pytest.ini pyproject.toml setup.cfg 2>/dev/null | head -1
226
+
227
+ # Go - usa testing nativo
228
+ ```
229
+
230
+ | Framework | Padrão de Arquivo | Import |
231
+ |-----------|-------------------|--------|
232
+ | Jest | `*.test.ts`, `*.spec.ts` | `import { describe, it, expect } from '@jest/globals'` |
233
+ | Vitest | `*.test.ts`, `*.spec.ts` | `import { describe, it, expect } from 'vitest'` |
234
+ | Pytest | `test_*.py`, `*_test.py` | `import pytest` |
235
+ | Go | `*_test.go` | `import "testing"` |
236
+
237
+ #### Padrão 2: Estrutura AAA (Arrange-Act-Assert)
238
+
239
+ Todo teste deve seguir a estrutura AAA:
240
+
241
+ ```typescript
242
+ describe('NomeDaFuncao', () => {
243
+ it('should [comportamento esperado] when [condição]', () => {
244
+ // Arrange - Preparar dados de entrada
245
+ const input = { ... };
246
+
247
+ // Act - Executar a função
248
+ const result = funcao(input);
249
+
250
+ // Assert - Verificar resultado
251
+ expect(result).toBe(esperado);
252
+ });
253
+ });
254
+ ```
255
+
256
+ #### Padrão 3: Cobertura Mínima de Cenários
257
+
258
+ Todo teste deve cobrir:
259
+ - Caminho feliz (happy path)
260
+ - Casos de borda (edge cases)
261
+ - Tratamento de erros
262
+ - Valores nulos/undefined
263
+
264
+ ### Árvore de Decisão (Fluxo Manual)
265
+
266
+ ```
267
+ Arquivo TypeScript? → Jest ou Vitest (verificar package.json)
268
+ Arquivo Python? → Pytest
269
+ Arquivo Go? → testing nativo
270
+ Arquivo Java? → JUnit
271
+ Caso contrário → Perguntar ao usuário
272
+ ```
273
+
274
+ ### Fluxo de Trabalho (Manual)
275
+
276
+ #### B.1. Analisar Arquivo de Origem
277
+
278
+ ```bash
279
+ # Ler o arquivo para entender a estrutura
280
+ cat $ARGUMENTS
281
+ ```
282
+
283
+ Identificar:
284
+ - Funções/métodos exportados
285
+ - Dependências e imports
286
+ - Tipos de entrada e saída
287
+ - Possíveis cenários de teste
288
+
289
+ #### B.2. Verificar Testes Existentes
290
+
291
+ ```bash
292
+ # Verificar se já existe arquivo de teste
293
+ ls ${ARGUMENTS%.ts}.test.ts 2>/dev/null || \
294
+ ls ${ARGUMENTS%.ts}.spec.ts 2>/dev/null || \
295
+ echo "Nenhum teste encontrado"
296
+ ```
297
+
298
+ #### B.3. Criar Arquivo de Teste
299
+
300
+ Criar o arquivo de teste seguindo:
301
+ - Convenção de nomenclatura do projeto
302
+ - Imports necessários
303
+ - Mocks de dependências externas
304
+
305
+ #### B.4. Implementar Testes
306
+
307
+ Para cada função/método:
308
+ 1. Criar `describe` block
309
+ 2. Implementar casos de teste (happy path primeiro)
310
+ 3. Adicionar casos de borda
311
+ 4. Adicionar casos de erro
312
+
313
+ #### B.5. Executar e Validar
314
+
315
+ ```bash
316
+ # JavaScript/TypeScript
317
+ npm test -- --testPathPattern={arquivo}
318
+
319
+ # Python
320
+ pytest {arquivo} -v
321
+
322
+ # Go
323
+ go test -v -run {funcao}
324
+ ```
325
+
326
+ ---
327
+
328
+ ## Regras
329
+
330
+ ### Nunca
331
+ - Criar testes que dependem de estado externo
332
+ - Usar dados de produção em testes
333
+ - Ignorar casos de erro
334
+ - Criar testes sem assertions
335
+ - Usar `any` em mocks TypeScript
336
+ - Pular a verificação do TestSprite MCP
337
+
338
+ ### Sempre
339
+ - Verificar disponibilidade do TestSprite primeiro
340
+ - Seguir estrutura AAA (no fluxo manual)
341
+ - Nomear testes de forma descritiva
342
+ - Isolar testes (não dependem uns dos outros)
343
+ - Mockar dependências externas
344
+ - Cobrir happy path + edge cases + errors
345
+
346
+ ---
347
+
348
+ ## Tratamento de Erros
349
+
350
+ ### Arquivo não encontrado
351
+ - Exibir: "⚠️ Arquivo '{caminho}' não encontrado."
352
+ - Verificar se o caminho está correto
353
+ - Sugerir usar glob para encontrar arquivo
354
+
355
+ ### Framework não detectado
356
+ - Exibir: "⚠️ Framework de teste não detectado."
357
+ - Listar frameworks suportados
358
+ - Perguntar ao usuário qual usar
359
+
360
+ ### Testes já existem
361
+ - Exibir: "⚠️ Arquivo de teste já existe em '{caminho}'"
362
+ - Perguntar se deseja sobrescrever ou adicionar novos testes
363
+
364
+ ### TestSprite falhou
365
+ - Exibir: "⚠️ TestSprite retornou erro. Alternando para fluxo manual."
366
+ - Continuar com Fluxo B automaticamente
367
+
368
+ ---
369
+
370
+ ## Checklist de Conclusão
371
+
372
+ ### Fluxo A (TestSprite)
373
+ - [ ] TestSprite MCP verificado e disponível
374
+ - [ ] Tipo de projeto detectado (frontend/backend)
375
+ - [ ] Bootstrap executado com sucesso
376
+ - [ ] Plano de testes gerado
377
+ - [ ] Testes executados
378
+ - [ ] Relatório gerado
379
+
380
+ ### Fluxo B (Manual)
381
+ - [ ] Arquivo de origem analisado
382
+ - [ ] Framework de teste identificado
383
+ - [ ] Arquivo de teste criado no padrão correto
384
+ - [ ] Todos os exports públicos testados
385
+ - [ ] Happy path coberto
386
+ - [ ] Edge cases cobertos
387
+ - [ ] Casos de erro cobertos
388
+ - [ ] Testes executados com sucesso
389
+ - [ ] Sem warnings ou erros de tipo
390
+
391
+ ---
392
+
393
+ ## Output
394
+
395
+ ### Fluxo A (TestSprite MCP)
396
+
397
+ | Artefato | Descrição |
398
+ |----------|-----------|
399
+ | `testsprite_tests/` | Pasta com testes gerados automaticamente |
400
+ | `TestSprite_MCP_Test_Report.md` | Relatório em Markdown |
401
+ | `TestSprite_MCP_Test_Report.html` | Relatório visual em HTML |
402
+ | `testsprite_tests/tmp/test_results.json` | Resultados detalhados em JSON |
403
+
404
+ ### Fluxo B (Manual)
405
+
406
+ | Artefato | Descrição |
407
+ |----------|-----------|
408
+ | `{arquivo}.test.ts` | Arquivo de teste unitário (TypeScript/Jest) |
409
+ | `{arquivo}.spec.ts` | Arquivo de teste unitário (TypeScript/Vitest) |
410
+ | `test_{arquivo}.py` | Arquivo de teste unitário (Python/Pytest) |
411
+ | `{arquivo}_test.go` | Arquivo de teste unitário (Go) |
412
+
413
+ ---
414
+
415
+ ## Mensagem de Conclusão
416
+
417
+ ### Fluxo A (TestSprite)
418
+
419
+ ```
420
+ Testes unitários gerados com TestSprite!
421
+
422
+ Arquivo de origem: {caminho-origem}
423
+ Método: TestSprite MCP (automático)
424
+ Tipo: {frontend|backend}
425
+
426
+ Artefatos gerados:
427
+ - testsprite_tests/
428
+ - TestSprite_MCP_Test_Report.md
429
+ - TestSprite_MCP_Test_Report.html
430
+
431
+ Próximo passo: Revisar o relatório em TestSprite_MCP_Test_Report.md
432
+ ```
433
+
434
+ ### Fluxo B (Manual)
435
+
436
+ ```
437
+ Testes unitários criados manualmente!
438
+
439
+ Arquivo de origem: {caminho-origem}
440
+ Arquivo de teste: {caminho-teste}
441
+ Framework: {framework}
442
+
443
+ Cobertura:
444
+ - [x] Funções testadas: {n}
445
+ - [x] Casos de teste: {n}
446
+ - [x] Happy path: {n}
447
+ - [x] Edge cases: {n}
448
+ - [x] Error cases: {n}
449
+
450
+ Comando para executar:
451
+ {comando-de-execução}
452
+
453
+ Próximo passo: Executar os testes com o comando acima
454
+ ```
455
+
456
+ ---
457
+
458
+ ## Resumo dos Fluxos
459
+
460
+ | Aspecto | Fluxo A (TestSprite) | Fluxo B (Manual) |
461
+ |---------|---------------------|------------------|
462
+ | Quando usar | TestSprite MCP disponível | TestSprite não instalado |
463
+ | Automação | Total - gera e executa testes | Parcial - requer implementação |
464
+ | Saída | Testes + Relatório HTML/MD | Arquivo de teste |
465
+ | Esforço | Mínimo | Requer escrita manual |
466
+
467
+ ---
468
+
469
+ ## Recursos Adicionais
470
+
471
+ - **Referências**: Ver [references/](references/) para guias de teste do projeto