jarvis-ai-framework 2.1.1 → 3.2.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 (266) hide show
  1. package/AGENTS.md +14 -115
  2. package/agents/AGENTS.md +11 -23
  3. package/agents/README.md +27 -129
  4. package/agents/engineering/data/eng.data-engineer.agent.md +11 -34
  5. package/agents/engineering/eng.advisor.agent.md +56 -0
  6. package/agents/engineering/eng.agent.md +14 -24
  7. package/agents/engineering/eng.bug-hunter.md +7 -15
  8. package/agents/engineering/eng.dev-code-reviewer.md +1 -1
  9. package/agents/engineering/eng.frontend.agent.md +3 -7
  10. package/agents/engineering/eng.rpa.agent.md +2 -8
  11. package/agents/engineering/qa/eng.qa.quality-strategist.md +6 -11
  12. package/agents/engineering/qa/eng.qa.test-architect.md +8 -18
  13. package/agents/engineering/qa/eng.qa.test-planner.md +10 -14
  14. package/agents/engineering/qa/eng.qa.testing-engineer.md +91 -24
  15. package/agents/product/prod.discovery-interviewer.md +3 -3
  16. package/bin/README.md +142 -0
  17. package/bin/commands/docs-publish.js +105 -141
  18. package/bin/commands/docs-sync.js +66 -104
  19. package/bin/commands/info.js +7 -27
  20. package/bin/commands/init.js +23 -51
  21. package/bin/commands/install-rtk.js +9 -3
  22. package/bin/commands/list.js +5 -18
  23. package/bin/commands/map.js +20 -5
  24. package/bin/commands/qa-signoff.js +58 -55
  25. package/bin/commands/tokens.js +14 -17
  26. package/bin/commands/whoami.js +30 -26
  27. package/bin/jarvis.js +9 -163
  28. package/bin/lib/auth/session.js +20 -20
  29. package/bin/lib/cli/program.js +219 -0
  30. package/bin/lib/cli/shared-options.js +29 -0
  31. package/bin/lib/config/constants.js +59 -2
  32. package/bin/lib/config/ide-config.js +4 -8
  33. package/bin/lib/core/profile-filter.js +4 -1
  34. package/bin/lib/core/scanner.js +3 -29
  35. package/bin/lib/core/sync-engine.js +21 -14
  36. package/bin/lib/core/token-report.js +12 -2
  37. package/bin/lib/docs/fetch-file.js +39 -0
  38. package/bin/lib/docs/publish-file.js +194 -0
  39. package/bin/lib/docs/redis-cache.js +49 -0
  40. package/bin/lib/docs/validate-frontmatter.js +9 -39
  41. package/bin/lib/env-loader.js +11 -34
  42. package/bin/lib/flow-map/parse.js +11 -5
  43. package/bin/lib/flow-map/render.js +5 -2
  44. package/bin/lib/flow-map/tree.js +59 -10
  45. package/bin/lib/tasks/comment.js +40 -35
  46. package/bin/lib/utils/frontmatter.js +57 -0
  47. package/bin/lib/utils/git-parser.js +4 -6
  48. package/bin/lib/utils/npmrc-parser.js +6 -13
  49. package/bin/lib/utils/paths.js +2 -4
  50. package/bin/lib/utils/ui.js +3 -9
  51. package/bin/lib/vcs/api.js +25 -41
  52. package/bin/lib/vcs/create-issue.js +49 -33
  53. package/bin/lib/vcs/create-merge.js +47 -31
  54. package/bin/lib/vcs/fetch-raw.js +35 -23
  55. package/package.json +14 -5
  56. package/rules/engineering/eng-rules.md +1 -1
  57. package/rules/engineering/eng-security-rules.md +18 -16
  58. package/rules/engineering/eng.bump-rules.md +3 -2
  59. package/rules/engineering/eng.docs-scraping-rules.md +4 -4
  60. package/rules/engineering/eng.integrations-rules.md +6 -4
  61. package/rules/engineering/eng.skills-rules.md +1 -1
  62. package/rules/engineering/eng.specializations-rules.md +18 -4
  63. package/rules/engineering/frontend/eng.frontend-rules.md +1 -4
  64. package/rules/engineering/qa/eng.qa.cypress-standards-rules.md +1 -1
  65. package/rules/engineering/rpa/eng.rpa-rules.md +4 -9
  66. package/rules-on-demand/engineering/eng.pre-pr-rules.md +1 -1
  67. package/rules-on-demand/engineering/eng.start-rules.md +2 -0
  68. package/skills/AGENTS.md +52 -87
  69. package/skills/SKILLS-ROADMAP.md +47 -128
  70. package/skills/eng-ai/SKILL.md +270 -0
  71. package/skills/eng-ai/references/1-fundamentos-ml.md +24 -0
  72. package/skills/eng-ai/references/10-arquitetura-solucoes-ia.md +24 -0
  73. package/skills/eng-ai/references/11-governanca-ia.md +24 -0
  74. package/skills/eng-ai/references/12-seguranca-ia-responsavel.md +25 -0
  75. package/skills/eng-ai/references/2-matematica-estatistica.md +24 -0
  76. package/skills/eng-ai/references/3-dados-para-ia.md +24 -0
  77. package/skills/eng-ai/references/4-deep-learning-fundacionais.md +24 -0
  78. package/skills/eng-ai/references/5-llms-chatbots-agentes-rag.md +25 -0
  79. package/skills/eng-ai/references/6-avaliacao-experimentacao.md +24 -0
  80. package/skills/eng-ai/references/7-engenharia-sistemas-ia.md +24 -0
  81. package/skills/eng-ai/references/8-mlops-plataforma.md +24 -0
  82. package/skills/eng-ai/references/9-produto-ia.md +24 -0
  83. package/skills/eng-ai/references/especializacoes.md +17 -0
  84. package/skills/eng-automation/SKILL.md +290 -0
  85. package/skills/eng-automation/references/1-fundamentos-automacao.md +25 -0
  86. package/skills/eng-automation/references/10-ingestao-dados.md +25 -0
  87. package/skills/eng-automation/references/11-captcha-antibot.md +25 -0
  88. package/skills/eng-automation/references/12-limites-taxa-sessoes.md +25 -0
  89. package/skills/eng-automation/references/13-agendamento-orquestracao.md +24 -0
  90. package/skills/eng-automation/references/14-retentativa-erros.md +25 -0
  91. package/skills/eng-automation/references/15-autenticacao-credenciais.md +24 -0
  92. package/skills/eng-automation/references/16-observabilidade-confiabilidade.md +24 -0
  93. package/skills/eng-automation/references/2-aquisicao-dados.md +25 -0
  94. package/skills/eng-automation/references/3-automacao-navegador.md +24 -0
  95. package/skills/eng-automation/references/4-scraping-crawling.md +25 -0
  96. package/skills/eng-automation/references/5-apis-rest-graphql-soap.md +26 -0
  97. package/skills/eng-automation/references/6-webhooks-integracao.md +25 -0
  98. package/skills/eng-automation/references/7-rpa.md +25 -0
  99. package/skills/eng-automation/references/8-extracao-estruturada.md +25 -0
  100. package/skills/eng-automation/references/9-extracao-documentos.md +25 -0
  101. package/skills/eng-automation/references/especializacoes.md +18 -0
  102. package/skills/eng-backend-nestjs/SKILL.md +1 -1
  103. package/skills/eng-data/SKILL.md +271 -0
  104. package/skills/eng-data/references/1-fundamentos-dados.md +24 -0
  105. package/skills/eng-data/references/10-ciencia-dados.md +24 -0
  106. package/skills/eng-data/references/11-dataops-plataforma.md +24 -0
  107. package/skills/eng-data/references/12-seguranca-privacidade.md +24 -0
  108. package/skills/eng-data/references/2-modelagem-dados.md +24 -0
  109. package/skills/eng-data/references/3-bancos-dados.md +24 -0
  110. package/skills/eng-data/references/4-arquitetura-dados.md +24 -0
  111. package/skills/eng-data/references/5-pipelines-integracao.md +24 -0
  112. package/skills/eng-data/references/6-qualidade-dados.md +24 -0
  113. package/skills/eng-data/references/7-governanca-metadados.md +24 -0
  114. package/skills/eng-data/references/8-estatistica-analise.md +24 -0
  115. package/skills/eng-data/references/9-analytics-bi.md +24 -0
  116. package/skills/eng-data/references/especializacoes.md +20 -0
  117. package/skills/eng-frontend/SKILL.md +12 -5
  118. package/skills/eng-frontend/references/13-design-system.md +48 -0
  119. package/skills/eng-frontend/references/14-microfrontend.md +46 -0
  120. package/skills/eng-global-task-comment/SKILL.md +3 -3
  121. package/skills/eng-platform/SKILL.md +331 -0
  122. package/skills/eng-platform/references/1-fundamentos-sistemas.md +23 -0
  123. package/skills/eng-platform/references/10-resiliencia-arquitetura.md +24 -0
  124. package/skills/eng-platform/references/11-plataforma-devex.md +24 -0
  125. package/skills/eng-platform/references/12-finops-custos.md +24 -0
  126. package/skills/eng-platform/references/13-seguranca-fundamentos.md +26 -0
  127. package/skills/eng-platform/references/14-profiling-performance.md +23 -0
  128. package/skills/eng-platform/references/15-testes-carga-chaos.md +23 -0
  129. package/skills/eng-platform/references/16-cache-multicamada.md +22 -0
  130. package/skills/eng-platform/references/2-redes.md +23 -0
  131. package/skills/eng-platform/references/3-cloud.md +24 -0
  132. package/skills/eng-platform/references/4-iac-automacao.md +24 -0
  133. package/skills/eng-platform/references/5-containers-orquestracao.md +25 -0
  134. package/skills/eng-platform/references/6-cicd-entrega.md +24 -0
  135. package/skills/eng-platform/references/7-observabilidade.md +24 -0
  136. package/skills/eng-platform/references/8-confiabilidade-sre.md +24 -0
  137. package/skills/eng-platform/references/9-seguranca-infra.md +26 -0
  138. package/skills/eng-platform/references/especializacoes.md +34 -0
  139. package/skills/eng-qa/SKILL.md +283 -0
  140. package/skills/eng-qa/references/1-fundamentos-qualidade.md +25 -0
  141. package/skills/eng-qa/references/10-confiabilidade.md +25 -0
  142. package/skills/eng-qa/references/11-seguranca.md +24 -0
  143. package/skills/eng-qa/references/12-acessibilidade.md +24 -0
  144. package/skills/eng-qa/references/13-dados-testes.md +24 -0
  145. package/skills/eng-qa/references/14-gestao-testes-defeitos.md +25 -0
  146. package/skills/eng-qa/references/15-arquitetura-qa.md +25 -0
  147. package/skills/eng-qa/references/2-estrategia-planejamento.md +25 -0
  148. package/skills/eng-qa/references/3-design-testes.md +25 -0
  149. package/skills/eng-qa/references/4-manual-exploratorio.md +24 -0
  150. package/skills/eng-qa/references/5-automacao-testes.md +25 -0
  151. package/skills/eng-qa/references/6-api-integracao.md +25 -0
  152. package/skills/eng-qa/references/7-contrato.md +24 -0
  153. package/skills/eng-qa/references/8-interface-compat-mobile.md +24 -0
  154. package/skills/eng-qa/references/9-performance.md +24 -0
  155. package/skills/eng-qa/references/especializacoes.md +29 -0
  156. package/skills/eng-qa-planner/SKILL.md +264 -0
  157. package/skills/jarvis-context-detect/SKILL.md +1 -1
  158. package/skills/jarvis-context-detect/assets/context-profile-template.md +1 -1
  159. package/skills/jarvis-create-specialization/SKILL.md +8 -0
  160. package/skills/jarvis-docs-central/README.md +31 -28
  161. package/skills/jarvis-docs-central/SKILL.md +5 -5
  162. package/skills/jarvis-init/SKILL.md +9 -8
  163. package/skills/jarvis-init/assets/passo-adicionar-stacks.md +47 -18
  164. package/skills/jarvis-list-specializations/SKILL.md +30 -17
  165. package/skills/jarvis-report-issue/SKILL.md +1 -1
  166. package/taxonomy.md +4 -16
  167. package/templates/AGENTS.md +2 -0
  168. package/templates/ENV-template.md +20 -2
  169. package/templates/engineering/advisor-template.md +65 -0
  170. package/templates/engineering/architecture-template.md +52 -4
  171. package/templates/engineering/qa/qa.sprint-plan-template.md +1 -1
  172. package/workflows/AGENTS.md +3 -1
  173. package/workflows/README.md +0 -10
  174. package/workflows/engineering/data/data.new-pipeline.md +6 -5
  175. package/workflows/engineering/eng.bug-audit.md +4 -14
  176. package/workflows/engineering/eng.debug.md +4 -20
  177. package/workflows/engineering/eng.plan.md +4 -26
  178. package/workflows/engineering/eng.pr.md +13 -63
  179. package/workflows/engineering/eng.pre-pr.md +14 -51
  180. package/workflows/engineering/eng.review.md +7 -13
  181. package/workflows/engineering/eng.rpa.robot.md +3 -9
  182. package/workflows/engineering/eng.start.md +37 -32
  183. package/workflows/engineering/eng.work.md +17 -40
  184. package/workflows/engineering/qa/eng.qa-sprint-planning.md +1 -1
  185. package/workflows/product/prod.spec.discovery.md +2 -2
  186. package/workflows/warm-up.md +35 -63
  187. package/agents/engineering/eng.cybersecurity.agent.md +0 -486
  188. package/agents/engineering/qa/eng.qa.cypress-specialist.md +0 -112
  189. package/bin/lib/docs/fetch-file.sh +0 -41
  190. package/bin/lib/docs/publish-file.sh +0 -284
  191. package/rules/engineering/qa/eng.qa.exploratory-session-rules.md +0 -137
  192. package/rules/engineering/qa/eng.qa.quality-gate-scoring-rules.md +0 -181
  193. package/rules/engineering/qa/eng.qa.tech-spec-validation-criteria-rules.md +0 -120
  194. package/skills/eng-ai-engineer/SKILL.md +0 -303
  195. package/skills/eng-data-bi/SKILL.md +0 -206
  196. package/skills/eng-data-debug/SKILL.md +0 -314
  197. package/skills/eng-data-engineer/SKILL.md +0 -266
  198. package/skills/eng-data-onboard/SKILL.md +0 -317
  199. package/skills/eng-data-orchestrator/SKILL.md +0 -433
  200. package/skills/eng-devops-performance-engineer/SKILL.md +0 -319
  201. package/skills/eng-frontend-design-system/SKILL.md +0 -155
  202. package/skills/eng-frontend-design-system/references/1-estrutura-pacote.md +0 -57
  203. package/skills/eng-frontend-design-system/references/2-tokens.md +0 -116
  204. package/skills/eng-frontend-design-system/references/3-componentes.md +0 -165
  205. package/skills/eng-frontend-design-system/references/4-storybook.md +0 -85
  206. package/skills/eng-frontend-design-system/references/5-auditoria-versionamento.md +0 -76
  207. package/skills/eng-frontend-microfrontend/SKILL.md +0 -164
  208. package/skills/eng-frontend-microfrontend/references/1-criando-remote.md +0 -109
  209. package/skills/eng-frontend-microfrontend/references/2-configurando-shell.md +0 -70
  210. package/skills/eng-frontend-microfrontend/references/3-contratos-interface.md +0 -73
  211. package/skills/eng-frontend-microfrontend/references/4-shared-dependencies.md +0 -48
  212. package/skills/eng-frontend-microfrontend/references/5-event-bus.md +0 -59
  213. package/skills/eng-frontend-microfrontend/references/6-monorepo-deploy.md +0 -77
  214. package/skills/eng-frontend-microfrontend/references/7-troubleshooting.md +0 -45
  215. package/skills/eng-global-browser-extension-builder/SKILL.md +0 -392
  216. package/skills/eng-global-jira-comment/SKILL.md +0 -27
  217. package/skills/eng-qa-a11y-audit/SKILL.md +0 -276
  218. package/skills/eng-qa-bug-report/SKILL.md +0 -877
  219. package/skills/eng-qa-bug-report/TASK_MANAGERS.md +0 -138
  220. package/skills/eng-qa-bug-report/references/1-integracao-task-managers.md +0 -148
  221. package/skills/eng-qa-bug-report/references/2-exemplos-de-uso.md +0 -46
  222. package/skills/eng-qa-bug-report/references/3-bug-to-test.md +0 -45
  223. package/skills/eng-qa-cypress-e2e/SKILL.md +0 -184
  224. package/skills/eng-qa-dev-guide/SKILL.md +0 -173
  225. package/skills/eng-qa-e2e/SKILL.md +0 -407
  226. package/skills/eng-qa-e2e-spec-writer/SKILL.md +0 -329
  227. package/skills/eng-qa-exploratory/SKILL.md +0 -196
  228. package/skills/eng-qa-gate/SKILL.md +0 -377
  229. package/skills/eng-qa-gate/assets/checklist-validacao.md +0 -291
  230. package/skills/eng-qa-graphql-contract/SKILL.md +0 -263
  231. package/skills/eng-qa-quality-report/SKILL.md +0 -419
  232. package/skills/eng-qa-test-plan/SKILL.md +0 -473
  233. package/skills/eng-qa-testsprite/SKILL.md +0 -332
  234. package/skills/eng-qa-testsprite/references/testsprite-mcp.md +0 -224
  235. package/skills/eng-qa-unit-test/SKILL.md +0 -478
  236. package/skills/eng-scraper/SKILL.md +0 -260
  237. package/skills/eng-scraper/references/1-puppeteer.md +0 -140
  238. package/skills/eng-scraper/references/2-playwright-cheerio-pdf.md +0 -82
  239. package/skills/eng-scraper/references/3-anti-bot.md +0 -94
  240. package/skills/eng-scraper/references/4-resiliencia-etl-monitoramento.md +0 -137
  241. package/skills/eng-scraper-robot-builder/SKILL.md +0 -377
  242. package/skills/eng-security-cybersecurity/SKILL.md +0 -250
  243. package/skills/eng-security-cybersecurity/references/1-owasp-top-10.md +0 -331
  244. package/skills/eng-security-cybersecurity/references/2-secrets-management.md +0 -31
  245. package/skills/eng-security-cybersecurity/references/3-input-validation.md +0 -43
  246. package/skills/eng-security-cybersecurity/references/4-compliance.md +0 -20
  247. package/skills/eng-security-patch/SKILL.md +0 -388
  248. package/skills/eng-security-threat-model/SKILL.md +0 -171
  249. package/skills/eng-security-triage/SKILL.md +0 -276
  250. package/templates/engineering/qa/eng.qa.quality-gate-examples-template.md +0 -311
  251. package/templates/engineering/qa/eng.qa.quality-gate-report-template.md +0 -249
  252. package/templates/engineering/qa/qa.cypress-test-template.md +0 -172
  253. package/templates/engineering/qa/qa.exploratory-session-template.md +0 -148
  254. package/templates/engineering/qa/qa.quality-report-template.md +0 -130
  255. package/workflows/engineering/eng.security-audit.md +0 -319
  256. package/workflows/engineering/eng.security-incident.md +0 -281
  257. package/workflows/engineering/eng.security-pipeline.md +0 -219
  258. package/workflows/engineering/eng.security-review.md +0 -241
  259. package/workflows/engineering/qa/eng.qa-dev-quality-guide.md +0 -57
  260. package/workflows/engineering/qa/eng.qa-e2e-test-generation.md +0 -57
  261. package/workflows/engineering/qa/eng.qa-exploratory-session.md +0 -68
  262. package/workflows/engineering/qa/eng.qa-quality-gate-validation.md +0 -209
  263. package/workflows/engineering/qa/eng.qa-quality-report.md +0 -85
  264. /package/skills/{eng-qa-test-plan → eng-qa-planner}/assets/test-coverage-template.md +0 -0
  265. /package/skills/{eng-qa-test-plan → eng-qa-planner}/assets/test-patterns.md +0 -0
  266. /package/templates/{CDD aplicado a Prompts.md → cdd-aplicado-a-prompts.md} +0 -0
@@ -1,138 +0,0 @@
1
- # Task Managers - Guia de Configuração
2
-
3
- Configuração dos vendors alinhados ao `templates/ENV-template.md` para o skill `eng-qa-bug-report`.
4
-
5
- Valores de `TASK_MANAGER` são **minúsculos**: `jira` | `linear` | `github` | `asana` | *(vazio = freelance/local)*.
6
-
7
- ---
8
-
9
- ## Arquitetura
10
-
11
- ```
12
- ┌─────────────────────────────────────┐
13
- │ eng-qa-bug-report │
14
- │ (lógica agnóstica do board) │
15
- └──────────────┬──────────────────────┘
16
- │
17
- [Adapter Layer]
18
- │
19
- ┌──────────────┴───────────────────────┐
20
- │ jira │ linear │ github │ asana │ local │
21
- └──────────────────────────────────────┘
22
- ```
23
-
24
- - Trocar board = só mudar `TASK_MANAGER` no ENV.md
25
- - Vazio / local → cards em `$SESSIONS_DIR/qa/bug-reports/`
26
- - Não documentar ClickUp/Trello/Notion aqui — fora do ENV-template
27
-
28
- ---
29
-
30
- ## Vendors suportados
31
-
32
- | `TASK_MANAGER` | Método | Requer |
33
- |----------------|--------|--------|
34
- | `jira` | MCP Atlassian e/ou token | MCP ou `TOKEN_TASK_MANAGER` + `PROJECT_KEY` |
35
- | `linear` | CLI / API | `linear` CLI ou `TOKEN_TASK_MANAGER` + `LINEAR_TEAM_ID` |
36
- | `github` | `gh` CLI | `gh auth` / `GITHUB_TOKEN` |
37
- | `asana` | API | `TOKEN_TASK_MANAGER` (+ workspace/project conforme API) |
38
- | *(vazio)* / `local` | Arquivo markdown | Nenhum |
39
-
40
- Opcional: `TASK_MANAGER_URL_BASE` para links nos relatórios.
41
-
42
- ---
43
-
44
- ## Configuração por vendor
45
-
46
- ### 1. Jira — `TASK_MANAGER=jira`
47
-
48
- **MCP (preferido):**
49
- ```bash
50
- TASK_MANAGER=jira
51
- PROJECT_KEY=PROJ
52
- TASK_MANAGER_URL_BASE=https://sua-org.atlassian.net
53
- ```
54
-
55
- **Token:**
56
- ```bash
57
- TASK_MANAGER=jira
58
- TOKEN_TASK_MANAGER=seu_api_token
59
- TASK_MANAGER_URL_BASE=https://sua-org.atlassian.net
60
- PROJECT_KEY=PROJ
61
- ```
62
-
63
- Token: https://id.atlassian.com/manage-profile/security/api-tokens
64
-
65
- ---
66
-
67
- ### 2. Linear — `TASK_MANAGER=linear`
68
-
69
- ```bash
70
- TASK_MANAGER=linear
71
- TOKEN_TASK_MANAGER=lin_api_... # ou auth via `linear` CLI
72
- LINEAR_TEAM_ID=team-id
73
- TASK_MANAGER_URL_BASE=https://linear.app/sua-org
74
- ```
75
-
76
- ---
77
-
78
- ### 3. GitHub Issues — `TASK_MANAGER=github`
79
-
80
- ```bash
81
- TASK_MANAGER=github
82
- TASK_MANAGER_URL_BASE=https://github.com/org/repo
83
- # Token: gh auth login ou GITHUB_TOKEN
84
- ```
85
-
86
- ```bash
87
- gh auth status
88
- gh issue create --title "teste" --body "ok"
89
- ```
90
-
91
- ---
92
-
93
- ### 4. Asana — `TASK_MANAGER=asana`
94
-
95
- ```bash
96
- TASK_MANAGER=asana
97
- TOKEN_TASK_MANAGER=seu_pat
98
- TASK_MANAGER_URL_BASE=https://app.asana.com/...
99
- ```
100
-
101
- Se o adapter de criação automática não estiver completo, salve localmente e registre o GID como `TASK_MANAGER_KEY`.
102
-
103
- ---
104
-
105
- ### 5. Freelance / local — `TASK_MANAGER=` (vazio)
106
-
107
- ```bash
108
- TASK_MANAGER=
109
- # Cards em:
110
- # $SESSIONS_DIR/qa/bug-reports/bug-{timestamp}.md
111
- ```
112
-
113
- Workflows pedem `TASK_MANAGER_KEY` como controle próprio (número/slug).
114
-
115
- ---
116
-
117
- ## Detecção no skill
118
-
119
- O skill normaliza para minúsculas. Se vazio ou placeholder `[jira, linear, github, asana]` → modo `local`.
120
-
121
- ---
122
-
123
- ## Troubleshooting
124
-
125
- | Sintoma | Ação |
126
- |---------|------|
127
- | Cards só locais | Confira `TASK_MANAGER=` minúsculo e token/MCP |
128
- | `jira` não cria | MCP Atlassian ou `TOKEN_TASK_MANAGER` + `PROJECT_KEY` |
129
- | `github` falha | `gh auth status` |
130
- | Freelance | Deixe `TASK_MANAGER=` vazio — esperado |
131
-
132
- ---
133
-
134
- ## Ver também
135
-
136
- - `templates/ENV-template.md` — fonte de verdade das chaves
137
- - `skills/eng-global-task-comment/SKILL.md` — comentar no card
138
- - `bin/lib/tasks/comment.js` — adapter CLI
@@ -1,148 +0,0 @@
1
- # Integração com Task Managers (Adapter Pattern)
2
-
3
- > Parte do skill `eng-qa-bug-report`. Leia este arquivo quando a tarefa configurar ou implementar o adapter de um task manager (Jira, Linear, GitHub, Asana), mapear prioridades, usar o fallback local ou adicionar um task manager novo.
4
-
5
- ## Integração com Task Managers (Adapter Pattern)
6
-
7
- ### Arquitetura de Adapters
8
-
9
- O skill usa **Adapter Pattern** para suportar múltiplos task managers de forma desacoplada.
10
-
11
- ```
12
- bug-report skill
13
- ↓
14
- [Adapter Layer]
15
- ↓
16
- ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐
17
- │ JIRA │ ClickUp │ Linear │ Trello │ GitHub │ GitLab │
18
- └─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘
19
- ```
20
-
21
- ### Task Managers alinhados ao ENV-template
22
-
23
- | Task Manager | Método | Requer |
24
- |--------------|--------|--------|
25
- | **jira** | MCP Atlassian | MCP ou `TOKEN_TASK_MANAGER` + `PROJECT_KEY` |
26
- | **linear** | CLI | `linear` CLI + `LINEAR_TEAM_ID` |
27
- | **github** | gh CLI | `gh` autenticado |
28
- | **asana** | token | `TOKEN_TASK_MANAGER` (criação manual se adapter incompleto) |
29
- | **(vazio) / local** | Arquivo local | Freelance — `$SESSIONS_DIR/qa/bug-reports/` |
30
-
31
- Valores no ENV.md são **minúsculos** (`jira`, não `JIRA`).
32
-
33
- ### Configuração no ENV.md
34
-
35
- #### Jira
36
- ```bash
37
- TASK_MANAGER=jira
38
- TOKEN_TASK_MANAGER=your_jira_token # Opcional se usar MCP
39
- PROJECT_KEY=PROJ
40
- ```
41
-
42
- #### Linear
43
- ```bash
44
- TASK_MANAGER=linear
45
- TOKEN_TASK_MANAGER=lin_api_your_token
46
- LINEAR_TEAM_ID=team-id
47
- ```
48
-
49
- #### GitHub
50
- ```bash
51
- TASK_MANAGER=github
52
- # Token via gh auth / GITHUB_TOKEN
53
- ```
54
-
55
- #### Freelance / local
56
- ```bash
57
- TASK_MANAGER=
58
- # Cards em $SESSIONS_DIR/qa/bug-reports/
59
- ```
60
-
61
- #### GitLab
62
- ```bash
63
- TASK_MANAGER=GITLAB
64
- GITLAB_REPO=group/project
65
- # Token via glab CLI (glab auth login)
66
- ```
67
-
68
- ### Implementação de Adapter
69
-
70
- Cada adapter implementa a interface:
71
-
72
- ```bash
73
- create_task_card() {
74
- # Input:
75
- # $1 - title (string)
76
- # $2 - description (markdown/text)
77
- # $3 - priority (P0/P1/P2/P3)
78
- # $4 - category (string)
79
- # $5 - labels (comma-separated)
80
-
81
- # Output:
82
- # Card ID/Key (string) ou caminho do arquivo local
83
-
84
- # Return:
85
- # 0 - Sucesso
86
- # 1 - Falha
87
- }
88
- ```
89
-
90
- ### Mapeamento de Prioridades
91
-
92
- Diferentes task managers usam sistemas de prioridade diferentes:
93
-
94
- | Framework | P0 | P1 | P2 | P3 |
95
- |-----------|----|----|----|----|
96
- | **Jira** | Highest | High | Medium | Low |
97
- | **ClickUp** | 1 | 2 | 3 | 4 |
98
- | **Linear** | 1 | 2 | 3 | 4 |
99
- | **Trello** | Label:P0 | Label:P1 | Label:P2 | Label:P3 |
100
- | **GitHub** | Label:priority-critical | Label:priority-high | Label:priority-medium | Label:priority-low |
101
- | **GitLab** | Label:priority::1 | Label:priority::2 | Label:priority::3 | Label:priority::4 |
102
-
103
- ### Fallback Local
104
-
105
- Se task manager indisponível ou não configurado:
106
- 1. Card salvo em `$SESSIONS_DIR/qa/bug-reports/bug-{timestamp}.md`
107
- 2. Arquivo contém todas as informações necessárias
108
- 3. Usuário pode criar card manualmente ou configurar integração
109
-
110
- ### Como Adicionar Novo Task Manager
111
-
112
- Para adicionar suporte a um novo task manager:
113
-
114
- 1. **Adicionar detecção** na seção de pré-requisitos:
115
- ```bash
116
- NOTION)
117
- if [ -n "$TOKEN_TASK_MANAGER" ]; then
118
- TASK_MANAGER_ENABLED=true
119
- echo "✅ Integração Notion disponível"
120
- fi
121
- ;;
122
- ```
123
-
124
- 2. **Implementar adapter** na função `create_task_card()`:
125
- ```bash
126
- NOTION)
127
- CARD_ID=$(curl -s -X POST "https://api.notion.com/v1/pages" \
128
- -H "Authorization: Bearer $TOKEN_TASK_MANAGER" \
129
- -H "Content-Type: application/json" \
130
- -d '{
131
- "parent": {"database_id": "'$(grep '^NOTION_DATABASE_ID=' "$IDE/ENV.md" | cut -d= -f2)'"},
132
- "properties": {
133
- "Name": {"title": [{"text": {"content": "'"$title"'"}}]},
134
- "Priority": {"select": {"name": "'"$priority"'"}},
135
- "Category": {"select": {"name": "'"$category"'"}}
136
- }
137
- }' | jq -r '.id')
138
-
139
- echo "✅ Card criado no Notion: $CARD_ID"
140
- echo "$CARD_ID"
141
- ;;
142
- ```
143
-
144
- 3. **Documentar configuração** na seção acima
145
-
146
- 4. **Adicionar teste** para validar funcionamento
147
-
148
- ---
@@ -1,46 +0,0 @@
1
- # Exemplos de Uso
2
-
3
- > Parte do skill `eng-qa-bug-report`. Leia este arquivo quando precisar de um exemplo completo dos modos create, batch ou generate-report.
4
-
5
- ## Exemplos de Uso
6
-
7
- ### Exemplo 1: Criar card único (BUG-ALTO — todos os campos P1 obrigatórios)
8
-
9
- ```bash
10
- /eng-qa-bug-report create \
11
- --title="[auth] Token expirado retorna 500 ao invés de 401" \
12
- --category="BUG-ALTO" \
13
- --severity="P1" \
14
- --environment="prod" \
15
- --location="src/auth/token-validator.ts:67" \
16
- --description="Quando o token JWT expira durante uma requisição autenticada, o serviço retorna HTTP 500 ao invés de 401. Ocorre de forma recorrente em produção para todos os usuários com sessão ativa há mais de 24h." \
17
- --behavior-actual="POST /auth/validate retorna 500 Internal Server Error quando token está expirado" \
18
- --behavior-expected="POST /auth/validate retorna 401 Unauthorized com body {error: 'token_expired'}" \
19
- --reproduction="Pré-condição: usuário com token expirado (criado há >24h). Passos: 1. Fazer qualquer requisição autenticada. 2. Observar resposta. Resultado atual: HTTP 500." \
20
- --impact="Todos os usuários com sessão ativa há mais de 24h — estimativa de 30% da base ativa. App client não consegue tratar 500 como sessão expirada, causando loop de erro sem logout automático." \
21
- --entry-endpoint="POST /auth/validate" \
22
- --affected-services="account,auth" \
23
- --correlation-id="req-a1b2c3d4" \
24
- --frequency="recorrente" \
25
- --linked-to="PROJ-999" \
26
- --suggestion="Adicionar catch específico para TokenExpiredError antes do handler genérico de erros"
27
- ```
28
-
29
- ### Exemplo 2: Criar cards em batch
30
-
31
- ```bash
32
- /eng-qa-bug-report batch \
33
- --from-audit="./sessions/bug-audit-20260208/bug-audit-report.md" \
34
- --priority-filter="P0,P1"
35
- ```
36
-
37
- ### Exemplo 3: Gerar relatório
38
-
39
- ```bash
40
- /eng-qa-bug-report generate-report \
41
- --bugs="./sessions/bugs-found.json" \
42
- --output="./sessions/consolidated-bug-report.md" \
43
- --format="markdown"
44
- ```
45
-
46
- ---
@@ -1,45 +0,0 @@
1
- # Bug-to-Test (pós-criação)
2
-
3
- > Parte do skill `eng-qa-bug-report`. Leia este arquivo quando depois de criar o card, a pessoa quiser gerar o teste que reproduz o bug.
4
-
5
- ## Bug-to-Test (pós-criação)
6
-
7
- Após criar o card no $TASK_MANAGER, sempre perguntar:
8
-
9
- ```
10
- Bug registrado: {TASK-ID} — {título}
11
-
12
- Deseja gerar um teste de regressão Cypress para este bug?
13
- Recomendado: previne que o bug retorne após o fix.
14
-
15
- [S] Gerar agora
16
- [N] Registrar no backlog de cobertura
17
- [P] Pular
18
- ```
19
-
20
- ### Se "Gerar agora"
21
-
22
- Invocar Skill tool: `eng-qa-cypress-e2e` passando como entrada:
23
- - Título do bug como nome do fluxo
24
- - Passos de reprodução como sequência de ações
25
- - Comportamento esperado vs. atual como asserções
26
-
27
- Nomear o spec: `{dominio}/{TASK-ID}-regression.cy.ts`
28
-
29
- Após gerar o teste, adicionar comentário no card do bug com o caminho do arquivo criado.
30
-
31
- ### Se "Registrar no backlog"
32
-
33
- Append em `$DOCS_FOLDER/engineering/qa/test-backlog.md` (criar se não existir):
34
-
35
- ```markdown
36
- | {TASK-ID} | {título} | {domínio} | {dominio}/{TASK-ID}-regression.cy.ts |
37
- ```
38
-
39
- Cabeçalho da tabela (inserir apenas se o arquivo for novo):
40
- ```markdown
41
- # Test Backlog — Testes de Regressão Pendentes
42
-
43
- | Bug ID | Título | Domínio | Spec sugerida |
44
- |--------|--------|---------|---------------|
45
- ```
@@ -1,184 +0,0 @@
1
- ---
2
- name: eng-qa-cypress-e2e
3
- description: >
4
- Gera testes E2E em Cypress + TypeScript a partir de uma spec, task ou descrição de fluxo.
5
- Segue os padrões do projeto (Page Objects, data-testid, cy.intercept, fixtures tipadas).
6
- Pressupõe que o warm-up (HUB=QA) já carregou as cypress-standards-rules e contexto Cypress via context7.
7
- Trigger: Use quando o QA precisar gerar ou revisar testes E2E Cypress para uma feature específica.
8
- license: AGPL-3.0
9
- compatibility: Designed for Claude Code (or similar products)
10
- allowed-tools: Read Write Edit Grep Glob Bash
11
- metadata:
12
- author: jarvis-framework
13
- version: "1.0"
14
- area: qa
15
- argument-hint: "[caminho da spec / ID da task / descrição do fluxo]"
16
- disable-model-invocation: false
17
- ---
18
-
19
- # QA Cypress E2E — Geração de Testes
20
-
21
- Você é um **QA Engineer especialista em Cypress + TypeScript**, responsável por gerar testes
22
- E2E de alta qualidade que seguem os padrões do projeto.
23
-
24
- > ⚠️ **Pré-condição de sessão**: esta skill assume que o warm-up (HUB=QA) já executou e:
25
- > - `$RULES_FOLDER/engineering/qa/eng.qa.cypress-standards-rules.md` está carregado
26
- > - Documentação Cypress foi carregada via context7
27
- > Se não foi feito, orientar o usuário a executar `/warm-up` antes de continuar.
28
-
29
- ---
30
-
31
- ## Entrada
32
-
33
- Aceita qualquer um dos seguintes:
34
- - Caminho para arquivo de spec/task (`.md`, `.txt`, `.yaml`)
35
- - ID de task no $TASK_MANAGER (ex: `TASK-123`)
36
- - Descrição do fluxo em linguagem natural
37
-
38
- ---
39
-
40
- ## Fase 0 — Reconhecimento do Projeto
41
-
42
- Antes de gerar qualquer código, mapear o projeto de testes:
43
-
44
- ```bash
45
- # 1. Localizar configuração Cypress
46
- cat cypress.config.ts 2>/dev/null || cat cypress.config.js 2>/dev/null
47
-
48
- # 2. Localizar TEST_FOLDER do ENV.md
49
- grep "^TEST_FOLDER=" $IDE/ENV.md 2>/dev/null
50
-
51
- # 3. Mapear estrutura existente
52
- ls {TEST_FOLDER}/e2e/ 2>/dev/null
53
- ls {TEST_FOLDER}/support/pages/ 2>/dev/null
54
- ls {TEST_FOLDER}/support/commands/ 2>/dev/null
55
- ls {TEST_FOLDER}/fixtures/ 2>/dev/null
56
- ```
57
-
58
- **Invariante**: nunca inventar estrutura — trabalhar com o que existe.
59
- Se `TEST_FOLDER` não estiver definido, perguntar antes de prosseguir.
60
-
61
- ---
62
-
63
- ## Fase 1 — Análise do Fluxo
64
-
65
- A partir da entrada fornecida:
66
-
67
- 1. **Identificar o fluxo de usuário principal** — sequência de ações do happy path
68
- 2. **Identificar edge cases relevantes** — dados limite, campos opcionais, paginação
69
- 3. **Identificar negative tests necessários** — validações de formulário, erros de API, permissões
70
- 4. **Mapear endpoints de API envolvidos** — para definir quais intercepts serão necessários
71
- 5. **Identificar perfil(s) de usuário** — quais perfis participam do fluxo?
72
-
73
- Apresentar o mapeamento ao usuário antes de gerar código:
74
-
75
- ```
76
- Fluxo mapeado: {nome do fluxo}
77
- Cenários a cobrir:
78
- ✅ Happy Path: {descrição}
79
- ✅ Edge Case: {descrição}
80
- ✅ Negative: {descrição}
81
- Endpoints: {lista de APIs envolvidas}
82
- Perfil: {perfil de usuário}
83
-
84
- Posso prosseguir com a geração?
85
- ```
86
-
87
- ---
88
-
89
- ## Fase 2 — Verificação de Page Objects Existentes
90
-
91
- ```bash
92
- # Verificar se já existe Page Object para o domínio
93
- ls {TEST_FOLDER}/support/pages/ | grep -i {dominio}
94
-
95
- # Ler Page Object existente se houver
96
- cat {TEST_FOLDER}/support/pages/{Dominio}Page.ts 2>/dev/null
97
- ```
98
-
99
- - Se Page Object existe: **reutilizar e estender** — nunca criar duplicata
100
- - Se não existe: **criar novo** seguindo o template em `$TEMPLATES_FOLDER/engineering/qa/qa.cypress-test-template.md`
101
-
102
- ---
103
-
104
- ## Fase 3 — Geração
105
-
106
- ### 3.1 — Page Object (criar ou estender)
107
-
108
- Seguir rigorosamente:
109
- - Métodos de ação retornam `this` (fluent)
110
- - Seletores exclusivamente via `data-testid`
111
- - Métodos de asserção prefixados com `should`
112
- - Sem lógica de negócio — apenas interação com UI
113
-
114
- ### 3.2 — Fixtures
115
-
116
- Para cada endpoint interceptado, criar fixture em `fixtures/{dominio}/{recurso}-{metodo}.json`:
117
- - Dados realistas mas sem informação sensível
118
- - Estrutura compatível com o contrato real da API (verificar se há type/interface no projeto)
119
- - Casos de erro inline no teste (não em fixture separada)
120
-
121
- ### 3.3 — Spec `.cy.ts`
122
-
123
- Estrutura obrigatória:
124
- ```typescript
125
- describe('{Domínio} — {Feature}', () => {
126
- // beforeEach com auth + navegação
127
- // context/it por cenário
128
- // cy.intercept em cada context que depende de API
129
- // cy.wait antes de asserções
130
- })
131
- ```
132
-
133
- ### 3.4 — Custom Commands (se necessário)
134
-
135
- Se um padrão de ação se repete em mais de um test file ou é complexo:
136
- - Criar em `support/commands/{dominio}.commands.ts`
137
- - Registrar em `support/commands.ts`
138
- - Tipar em `support/index.d.ts`
139
-
140
- ### Skills invocados durante a execução do skill
141
-
142
- | Passo | Skill | Condição |
143
- |-------|-------|----------|
144
- | — | Nenhuma — skill autocontida | — |
145
-
146
- ---
147
-
148
- ## Fase 4 — Output
149
-
150
- Entregar os arquivos em ordem:
151
-
152
- 1. **Page Object** — `support/pages/{Dominio}Page.ts` (novo ou diff se existente)
153
- 2. **Fixtures** — `fixtures/{dominio}/*.json`
154
- 3. **Custom Commands** — `support/commands/{dominio}.commands.ts` (se novos)
155
- 4. **Spec** — `e2e/{dominio}/{feature}.cy.ts`
156
-
157
- Ao final, exibir checklist de validação:
158
-
159
- ```
160
- Checklist gerado:
161
- ✅ Seletores: apenas data-testid
162
- ✅ API: todos os endpoints interceptados
163
- ✅ Cenários: happy path + {N} edge cases + {N} negative tests
164
- ✅ Page Object: {novo criado / existente estendido}
165
- ⚠️ data-testid ausentes no código: {lista de elementos que precisam do atributo adicionado}
166
- ```
167
-
168
- ---
169
-
170
- ## Regras
171
-
172
- ### Nunca
173
- - Gerar código sem mapear a estrutura existente do projeto primeiro
174
- - Usar seletores por classe CSS ou id HTML em specs novas
175
- - Criar `cy.wait({número})` hardcoded — sempre usar alias de intercept
176
- - Duplicar Page Objects existentes
177
- - Inventar estrutura de resposta de API — verificar types ou fixtures existentes
178
-
179
- ### Sempre
180
- - Verificar `TEST_FOLDER` no ENV.md antes de qualquer operação de arquivo
181
- - Reutilizar custom commands existentes (`ls support/commands/` antes de criar novos)
182
- - Sinalizar ao QA quais `data-testid` precisam ser adicionados ao código da aplicação
183
- - Cada `it` testa exatamente um comportamento
184
- - `beforeEach` garante estado limpo e independente entre testes