jarvis-ai-framework 2.1.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (303) hide show
  1. package/AGENTS.md +22 -122
  2. package/agents/AGENTS.md +20 -24
  3. package/agents/README.md +25 -129
  4. package/agents/engineering/data/eng.data-engineer.agent.md +12 -35
  5. package/agents/engineering/eng.agent.md +18 -30
  6. package/agents/engineering/eng.bug-hunter.md +9 -12
  7. package/agents/engineering/eng.dev-code-reviewer.md +5 -1
  8. package/agents/engineering/eng.docs-writer.md +3 -3
  9. package/agents/engineering/eng.frontend.agent.md +13 -8
  10. package/agents/engineering/eng.rpa.agent.md +5 -13
  11. package/agents/engineering/eng.ux-designer.agent.md +4 -0
  12. package/agents/engineering/qa/eng.qa.quality-champion-task-agent.md +4 -0
  13. package/agents/engineering/qa/eng.qa.quality-strategist.md +13 -8
  14. package/agents/engineering/qa/eng.qa.test-architect.md +16 -15
  15. package/agents/engineering/qa/eng.qa.test-planner.md +22 -17
  16. package/agents/engineering/qa/eng.qa.testing-engineer.md +99 -15
  17. package/agents/product/prod.discovery-interviewer.md +22 -3
  18. package/agents/product/prod.pm-checker.md +4 -0
  19. package/bin/README.md +142 -0
  20. package/bin/commands/docs-publish.js +105 -141
  21. package/bin/commands/docs-sync.js +66 -104
  22. package/bin/commands/info.js +7 -27
  23. package/bin/commands/init.js +23 -51
  24. package/bin/commands/install-rtk.js +9 -3
  25. package/bin/commands/list.js +5 -18
  26. package/bin/commands/map.js +58 -0
  27. package/bin/commands/qa-signoff.js +58 -55
  28. package/bin/commands/tokens.js +90 -0
  29. package/bin/commands/whoami.js +30 -26
  30. package/bin/jarvis.js +9 -153
  31. package/bin/lib/auth/session.js +20 -20
  32. package/bin/lib/cli/program.js +219 -0
  33. package/bin/lib/cli/shared-options.js +29 -0
  34. package/bin/lib/config/constants.js +70 -2
  35. package/bin/lib/config/ide-config.js +4 -8
  36. package/bin/lib/core/profile-filter.js +116 -0
  37. package/bin/lib/core/scanner.js +5 -31
  38. package/bin/lib/core/sync-engine.js +21 -14
  39. package/bin/lib/core/token-report.js +100 -0
  40. package/bin/lib/docs/fetch-file.js +39 -0
  41. package/bin/lib/docs/publish-file.js +194 -0
  42. package/bin/lib/docs/redis-cache.js +49 -0
  43. package/bin/lib/docs/validate-frontmatter.js +9 -39
  44. package/bin/lib/env-loader.js +11 -34
  45. package/bin/lib/flow-map/index.js +65 -0
  46. package/bin/lib/flow-map/parse.js +223 -0
  47. package/bin/lib/flow-map/render.js +89 -0
  48. package/bin/lib/flow-map/tree.js +248 -0
  49. package/bin/lib/tasks/comment.js +40 -35
  50. package/bin/lib/utils/frontmatter.js +57 -0
  51. package/bin/lib/utils/git-parser.js +4 -6
  52. package/bin/lib/utils/npmrc-parser.js +6 -13
  53. package/bin/lib/utils/paths.js +2 -4
  54. package/bin/lib/utils/ui.js +3 -9
  55. package/bin/lib/vcs/api.js +25 -41
  56. package/bin/lib/vcs/create-issue.js +49 -33
  57. package/bin/lib/vcs/create-merge.js +47 -31
  58. package/bin/lib/vcs/fetch-raw.js +35 -23
  59. package/members.md +1 -1
  60. package/package.json +15 -4
  61. package/rules/AGENTS.md +18 -7
  62. package/rules/engineering/eng-rules.md +3 -13
  63. package/rules/engineering/eng-security-rules.md +19 -18
  64. package/rules/engineering/eng.bump-rules.md +3 -2
  65. package/rules/engineering/eng.docs-scraping-rules.md +4 -4
  66. package/rules/engineering/eng.integrations-rules.md +3 -7
  67. package/rules/engineering/eng.skills-rules.md +1 -5
  68. package/rules/engineering/eng.specializations-rules.md +18 -8
  69. package/rules/engineering/frontend/eng.frontend-rules.md +1 -4
  70. package/rules/engineering/qa/eng.qa.cypress-standards-rules.md +1 -1
  71. package/rules/engineering/rpa/eng.rpa-rules.md +4 -9
  72. package/rules/product/README.md +1 -0
  73. package/rules/product/prod-rules.md +1 -4
  74. package/rules/product/prod.spec-rules.md +0 -4
  75. package/rules/rtk-rules.md +0 -1
  76. package/{rules → rules-on-demand}/engineering/eng.breakdown-subtasks-rules.md +0 -4
  77. package/{rules → rules-on-demand}/engineering/eng.plan-rules.md +0 -4
  78. package/{rules → rules-on-demand}/engineering/eng.pr-rules.md +0 -4
  79. package/{rules → rules-on-demand}/engineering/eng.pre-pr-rules.md +0 -4
  80. package/{rules → rules-on-demand}/engineering/eng.start-rules.md +0 -4
  81. package/{rules → rules-on-demand}/engineering/eng.tech-spec-rules.md +1 -2
  82. package/{rules → rules-on-demand}/engineering/eng.work-rules.md +0 -4
  83. package/skills/AGENTS.md +69 -106
  84. package/skills/SKILLS-ROADMAP.md +47 -132
  85. package/skills/eng-ai/SKILL.md +270 -0
  86. package/skills/eng-ai/references/1-fundamentos-ml.md +24 -0
  87. package/skills/eng-ai/references/10-arquitetura-solucoes-ia.md +24 -0
  88. package/skills/eng-ai/references/11-governanca-ia.md +24 -0
  89. package/skills/eng-ai/references/12-seguranca-ia-responsavel.md +25 -0
  90. package/skills/eng-ai/references/2-matematica-estatistica.md +24 -0
  91. package/skills/eng-ai/references/3-dados-para-ia.md +24 -0
  92. package/skills/eng-ai/references/4-deep-learning-fundacionais.md +24 -0
  93. package/skills/eng-ai/references/5-llms-chatbots-agentes-rag.md +25 -0
  94. package/skills/eng-ai/references/6-avaliacao-experimentacao.md +24 -0
  95. package/skills/eng-ai/references/7-engenharia-sistemas-ia.md +24 -0
  96. package/skills/eng-ai/references/8-mlops-plataforma.md +24 -0
  97. package/skills/eng-ai/references/9-produto-ia.md +24 -0
  98. package/skills/eng-ai/references/especializacoes.md +17 -0
  99. package/skills/eng-automation/SKILL.md +290 -0
  100. package/skills/eng-automation/references/1-fundamentos-automacao.md +25 -0
  101. package/skills/eng-automation/references/10-ingestao-dados.md +25 -0
  102. package/skills/eng-automation/references/11-captcha-antibot.md +25 -0
  103. package/skills/eng-automation/references/12-limites-taxa-sessoes.md +25 -0
  104. package/skills/eng-automation/references/13-agendamento-orquestracao.md +24 -0
  105. package/skills/eng-automation/references/14-retentativa-erros.md +25 -0
  106. package/skills/eng-automation/references/15-autenticacao-credenciais.md +24 -0
  107. package/skills/eng-automation/references/16-observabilidade-confiabilidade.md +24 -0
  108. package/skills/eng-automation/references/2-aquisicao-dados.md +25 -0
  109. package/skills/eng-automation/references/3-automacao-navegador.md +24 -0
  110. package/skills/eng-automation/references/4-scraping-crawling.md +25 -0
  111. package/skills/eng-automation/references/5-apis-rest-graphql-soap.md +26 -0
  112. package/skills/eng-automation/references/6-webhooks-integracao.md +25 -0
  113. package/skills/eng-automation/references/7-rpa.md +25 -0
  114. package/skills/eng-automation/references/8-extracao-estruturada.md +25 -0
  115. package/skills/eng-automation/references/9-extracao-documentos.md +25 -0
  116. package/skills/eng-automation/references/especializacoes.md +18 -0
  117. package/skills/eng-backend/SKILL.md +6 -0
  118. package/skills/eng-backend-arch-c4/SKILL.md +10 -4
  119. package/skills/eng-backend-microservices-trace/SKILL.md +6 -0
  120. package/skills/eng-backend-nestjs/SKILL.md +17 -462
  121. package/skills/eng-backend-nestjs/references/1-arquitetura-modulos.md +54 -0
  122. package/skills/eng-backend-nestjs/references/2-guards-autenticacao.md +118 -0
  123. package/skills/eng-backend-nestjs/references/3-interceptors-pipes-filters.md +113 -0
  124. package/skills/eng-backend-nestjs/references/4-config-logging.md +61 -0
  125. package/skills/eng-backend-nestjs/references/5-testes.md +83 -0
  126. package/skills/eng-backend-nestjs/references/6-problemas-comuns.md +53 -0
  127. package/skills/eng-backend-rabbitmq/SKILL.md +15 -298
  128. package/skills/eng-backend-rabbitmq/references/1-referencia-endpoints.md +28 -0
  129. package/skills/eng-backend-rabbitmq/references/2-codigo-consumer-producer.md +90 -0
  130. package/skills/eng-backend-rabbitmq/references/3-arquiteturas-comuns.md +101 -0
  131. package/skills/eng-backend-rabbitmq/references/4-troubleshooting.md +93 -0
  132. package/skills/eng-data/SKILL.md +271 -0
  133. package/skills/eng-data/references/1-fundamentos-dados.md +24 -0
  134. package/skills/eng-data/references/10-ciencia-dados.md +24 -0
  135. package/skills/eng-data/references/11-dataops-plataforma.md +24 -0
  136. package/skills/eng-data/references/12-seguranca-privacidade.md +24 -0
  137. package/skills/eng-data/references/2-modelagem-dados.md +24 -0
  138. package/skills/eng-data/references/3-bancos-dados.md +24 -0
  139. package/skills/eng-data/references/4-arquitetura-dados.md +24 -0
  140. package/skills/eng-data/references/5-pipelines-integracao.md +24 -0
  141. package/skills/eng-data/references/6-qualidade-dados.md +24 -0
  142. package/skills/eng-data/references/7-governanca-metadados.md +24 -0
  143. package/skills/eng-data/references/8-estatistica-analise.md +24 -0
  144. package/skills/eng-data/references/9-analytics-bi.md +24 -0
  145. package/skills/eng-data/references/especializacoes.md +20 -0
  146. package/skills/eng-frontend/SKILL.md +18 -5
  147. package/skills/eng-frontend/references/13-design-system.md +48 -0
  148. package/skills/eng-frontend/references/14-microfrontend.md +46 -0
  149. package/skills/eng-global-docs-write/SKILL.md +10 -5
  150. package/skills/eng-global-pr/SKILL.md +7 -1
  151. package/skills/eng-global-task-comment/SKILL.md +8 -2
  152. package/skills/eng-platform/SKILL.md +331 -0
  153. package/skills/eng-platform/references/1-fundamentos-sistemas.md +23 -0
  154. package/skills/eng-platform/references/10-resiliencia-arquitetura.md +24 -0
  155. package/skills/eng-platform/references/11-plataforma-devex.md +24 -0
  156. package/skills/eng-platform/references/12-finops-custos.md +24 -0
  157. package/skills/eng-platform/references/13-seguranca-fundamentos.md +26 -0
  158. package/skills/eng-platform/references/14-profiling-performance.md +23 -0
  159. package/skills/eng-platform/references/15-testes-carga-chaos.md +23 -0
  160. package/skills/eng-platform/references/16-cache-multicamada.md +22 -0
  161. package/skills/eng-platform/references/2-redes.md +23 -0
  162. package/skills/eng-platform/references/3-cloud.md +24 -0
  163. package/skills/eng-platform/references/4-iac-automacao.md +24 -0
  164. package/skills/eng-platform/references/5-containers-orquestracao.md +25 -0
  165. package/skills/eng-platform/references/6-cicd-entrega.md +24 -0
  166. package/skills/eng-platform/references/7-observabilidade.md +24 -0
  167. package/skills/eng-platform/references/8-confiabilidade-sre.md +24 -0
  168. package/skills/eng-platform/references/9-seguranca-infra.md +26 -0
  169. package/skills/eng-platform/references/especializacoes.md +34 -0
  170. package/skills/eng-qa/SKILL.md +283 -0
  171. package/skills/eng-qa/references/1-fundamentos-qualidade.md +25 -0
  172. package/skills/eng-qa/references/10-confiabilidade.md +25 -0
  173. package/skills/eng-qa/references/11-seguranca.md +24 -0
  174. package/skills/eng-qa/references/12-acessibilidade.md +24 -0
  175. package/skills/eng-qa/references/13-dados-testes.md +24 -0
  176. package/skills/eng-qa/references/14-gestao-testes-defeitos.md +25 -0
  177. package/skills/eng-qa/references/15-arquitetura-qa.md +25 -0
  178. package/skills/eng-qa/references/2-estrategia-planejamento.md +25 -0
  179. package/skills/eng-qa/references/3-design-testes.md +25 -0
  180. package/skills/eng-qa/references/4-manual-exploratorio.md +24 -0
  181. package/skills/eng-qa/references/5-automacao-testes.md +25 -0
  182. package/skills/eng-qa/references/6-api-integracao.md +25 -0
  183. package/skills/eng-qa/references/7-contrato.md +24 -0
  184. package/skills/eng-qa/references/8-interface-compat-mobile.md +24 -0
  185. package/skills/eng-qa/references/9-performance.md +24 -0
  186. package/skills/eng-qa/references/especializacoes.md +29 -0
  187. package/skills/eng-qa-planner/SKILL.md +264 -0
  188. package/skills/jarvis-context-detect/SKILL.md +7 -1
  189. package/skills/jarvis-context-detect/assets/context-profile-template.md +1 -1
  190. package/skills/jarvis-create-specialization/SKILL.md +14 -0
  191. package/skills/jarvis-docs-central/README.md +31 -28
  192. package/skills/jarvis-docs-central/SKILL.md +11 -5
  193. package/skills/jarvis-docs-index/SKILL.md +10 -2
  194. package/skills/jarvis-evolution-architect/SKILL.md +6 -0
  195. package/skills/jarvis-init/SKILL.md +22 -15
  196. package/skills/jarvis-init/assets/passo-adicionar-stacks.md +47 -18
  197. package/skills/jarvis-list-specializations/SKILL.md +36 -17
  198. package/skills/jarvis-report-issue/SKILL.md +7 -1
  199. package/skills/product-roadmap-report/SKILL.md +8 -0
  200. package/skills/product-specs/SKILL.md +9 -0
  201. package/skills/product-specs-update/SKILL.md +6 -0
  202. package/taxonomy.md +16 -28
  203. package/templates/AGENTS.md +2 -0
  204. package/templates/ENV-template.md +10 -2
  205. package/templates/engineering/qa/qa.sprint-plan-template.md +1 -1
  206. package/templates/engineering/tech-spec-delivery-template.md +179 -0
  207. package/workflows/AGENTS.md +14 -2
  208. package/workflows/README.md +8 -16
  209. package/workflows/all-tools.md +7 -1
  210. package/workflows/engineering/data/data.contract.md +8 -0
  211. package/workflows/engineering/data/data.new-pipeline.md +15 -4
  212. package/workflows/engineering/eng.breakdown-subtasks.md +9 -0
  213. package/workflows/engineering/eng.bug-audit.md +10 -13
  214. package/workflows/engineering/eng.build-tech-spec.md +17 -146
  215. package/workflows/engineering/eng.create-ard-from-code.md +8 -0
  216. package/workflows/engineering/eng.create-ard.md +8 -0
  217. package/workflows/engineering/eng.create-rfc.md +7 -0
  218. package/workflows/engineering/eng.debug.md +5 -21
  219. package/workflows/engineering/eng.docs.md +9 -0
  220. package/workflows/engineering/eng.light-arch.md +7 -0
  221. package/workflows/engineering/eng.plan.md +15 -2
  222. package/workflows/engineering/eng.pr.md +24 -30
  223. package/workflows/engineering/eng.pre-pr.md +33 -15
  224. package/workflows/engineering/eng.review.md +18 -11
  225. package/workflows/engineering/eng.rpa.robot.md +17 -7
  226. package/workflows/engineering/eng.start.md +33 -12
  227. package/workflows/engineering/eng.work.md +25 -17
  228. package/workflows/engineering/frontend/eng.frontend-component.md +7 -0
  229. package/workflows/engineering/frontend/eng.frontend-perf-audit.md +8 -0
  230. package/workflows/engineering/frontend/eng.frontend-review.md +8 -0
  231. package/workflows/engineering/qa/eng.qa-refinement-entry.md +7 -0
  232. package/workflows/engineering/qa/eng.qa-release-signoff.md +6 -0
  233. package/workflows/engineering/qa/eng.qa-sprint-planning.md +7 -1
  234. package/workflows/product/prod.roadmap.preview.md +9 -0
  235. package/workflows/product/prod.spec.ard.md +97 -0
  236. package/workflows/product/prod.spec.breakdown.md +10 -0
  237. package/workflows/product/prod.spec.clarify.md +8 -2
  238. package/workflows/product/prod.spec.discovery.md +11 -1
  239. package/workflows/product/prod.spec.epic.md +8 -0
  240. package/workflows/product/prod.spec.frd.md +7 -0
  241. package/workflows/product/prod.spec.issue.md +6 -0
  242. package/workflows/product/prod.spec.md +15 -1
  243. package/workflows/product/prod.spec.prd.md +7 -0
  244. package/workflows/taxonomy.md +58 -6
  245. package/workflows/warm-up.md +47 -60
  246. package/agents/engineering/eng.cybersecurity.agent.md +0 -488
  247. package/agents/engineering/qa/eng.qa.cypress-specialist.md +0 -109
  248. package/bin/lib/docs/fetch-file.sh +0 -41
  249. package/bin/lib/docs/publish-file.sh +0 -284
  250. package/rules/engineering/eng.downstream-flow-rules.md +0 -297
  251. package/rules/engineering/qa/eng.qa.exploratory-session-rules.md +0 -137
  252. package/rules/engineering/qa/eng.qa.quality-gate-scoring-rules.md +0 -181
  253. package/rules/engineering/qa/eng.qa.tech-spec-validation-criteria-rules.md +0 -120
  254. package/skills/eng-ai-engineer/SKILL.md +0 -297
  255. package/skills/eng-data-bi/SKILL.md +0 -200
  256. package/skills/eng-data-debug/SKILL.md +0 -308
  257. package/skills/eng-data-engineer/SKILL.md +0 -257
  258. package/skills/eng-data-onboard/SKILL.md +0 -311
  259. package/skills/eng-data-orchestrator/SKILL.md +0 -427
  260. package/skills/eng-devops-performance-engineer/SKILL.md +0 -313
  261. package/skills/eng-frontend-design-system/SKILL.md +0 -621
  262. package/skills/eng-frontend-microfrontend/SKILL.md +0 -604
  263. package/skills/eng-global-browser-extension-builder/SKILL.md +0 -386
  264. package/skills/eng-global-jira-comment/SKILL.md +0 -21
  265. package/skills/eng-qa-a11y-audit/SKILL.md +0 -270
  266. package/skills/eng-qa-bug-report/SKILL.md +0 -1089
  267. package/skills/eng-qa-bug-report/TASK_MANAGERS.md +0 -138
  268. package/skills/eng-qa-cypress-e2e/SKILL.md +0 -178
  269. package/skills/eng-qa-dev-guide/SKILL.md +0 -165
  270. package/skills/eng-qa-e2e/SKILL.md +0 -401
  271. package/skills/eng-qa-e2e-spec-writer/SKILL.md +0 -323
  272. package/skills/eng-qa-exploratory/SKILL.md +0 -189
  273. package/skills/eng-qa-gate/SKILL.md +0 -371
  274. package/skills/eng-qa-gate/assets/checklist-validacao.md +0 -291
  275. package/skills/eng-qa-graphql-contract/SKILL.md +0 -257
  276. package/skills/eng-qa-quality-report/SKILL.md +0 -413
  277. package/skills/eng-qa-test-plan/SKILL.md +0 -467
  278. package/skills/eng-qa-testsprite/SKILL.md +0 -326
  279. package/skills/eng-qa-testsprite/references/testsprite-mcp.md +0 -224
  280. package/skills/eng-qa-unit-test/SKILL.md +0 -472
  281. package/skills/eng-scraper/SKILL.md +0 -684
  282. package/skills/eng-scraper-robot-builder/SKILL.md +0 -371
  283. package/skills/eng-security-cybersecurity/SKILL.md +0 -646
  284. package/skills/eng-security-patch/SKILL.md +0 -382
  285. package/skills/eng-security-threat-model/SKILL.md +0 -165
  286. package/skills/eng-security-triage/SKILL.md +0 -270
  287. package/templates/engineering/qa/eng.qa.quality-gate-examples-template.md +0 -311
  288. package/templates/engineering/qa/eng.qa.quality-gate-report-template.md +0 -249
  289. package/templates/engineering/qa/qa.cypress-test-template.md +0 -172
  290. package/templates/engineering/qa/qa.exploratory-session-template.md +0 -148
  291. package/templates/engineering/qa/qa.quality-report-template.md +0 -130
  292. package/workflows/engineering/eng.security-audit.md +0 -312
  293. package/workflows/engineering/eng.security-incident.md +0 -275
  294. package/workflows/engineering/eng.security-pipeline.md +0 -210
  295. package/workflows/engineering/eng.security-review.md +0 -235
  296. package/workflows/engineering/qa/eng.qa-dev-quality-guide.md +0 -51
  297. package/workflows/engineering/qa/eng.qa-e2e-test-generation.md +0 -51
  298. package/workflows/engineering/qa/eng.qa-exploratory-session.md +0 -60
  299. package/workflows/engineering/qa/eng.qa-quality-gate-validation.md +0 -202
  300. package/workflows/engineering/qa/eng.qa-quality-report.md +0 -78
  301. /package/skills/{eng-qa-test-plan → eng-qa-planner}/assets/test-coverage-template.md +0 -0
  302. /package/skills/{eng-qa-test-plan → eng-qa-planner}/assets/test-patterns.md +0 -0
  303. /package/templates/{CDD aplicado a Prompts.md → cdd-aplicado-a-prompts.md} +0 -0
@@ -1,386 +0,0 @@
1
- ---
2
- name: eng-global-browser-extension-builder
3
- description: >
4
- Especialista em criar extensões de navegador (Chrome, Firefox, cross-browser) que resolvem problemas reais.
5
- Cobre arquitetura de extensão, manifest v3, content scripts, popup UIs, monetização e publicação na Chrome Web Store.
6
- Trigger: Use quando precisar criar extensão de navegador, chrome extension, firefox addon, manifest v3.
7
- argument-hint: "[nome-da-extensao]"
8
- disable-model-invocation: false
9
- allowed-tools: Read Edit Write Glob Grep Bash WebFetch WebSearch Task
10
- license: AGPL-3.0
11
- metadata:
12
- author: jarvis-team
13
- version: "1.0"
14
- area: global
15
- ---
16
-
17
- # Browser Extension Builder - Construtor de Extensões de Navegador
18
-
19
- Você é um **Arquiteto de Extensões de Navegador**.
20
-
21
- Você expande as capacidades do navegador para dar superpoderes aos usuários. Entende as restrições únicas do desenvolvimento de extensões — permissões, segurança, políticas da loja. Constrói extensões que as pessoas instalam e de fato usam no dia a dia. Sabe a diferença entre um brinquedo e uma ferramenta.
22
-
23
- ## Objetivo
24
-
25
- Criar extensões de navegador modernas, seguras e publicáveis, seguindo as melhores práticas do Manifest V3, com suporte a Chrome, Firefox e múltiplos navegadores.
26
-
27
- ## Entrada
28
-
29
- - `$ARGUMENTS` - Nome ou descrição da extensão a ser criada
30
-
31
- ## Quando Usar
32
-
33
- Use este skill quando:
34
- - Precisar criar uma extensão para Chrome, Firefox ou outros navegadores
35
- - Quiser modificar ou interagir com o conteúdo de páginas web
36
- - Precisar de uma interface popup ou painel de opções
37
- - Quiser automatizar ações repetitivas no navegador
38
- - Precisar capturar, modificar ou injetar conteúdo em páginas
39
-
40
- **NÃO usar quando:**
41
- - A tarefa puder ser feita por um script de página simples
42
- - Não houver necessidade de integração com o navegador
43
- - O uso for único e não recorrente
44
-
45
- ---
46
-
47
- ## Padrões Críticos
48
-
49
- ### Padrão 1: Estrutura de Projeto
50
-
51
- Sempre usar esta estrutura base para extensões modernas:
52
-
53
- ```
54
- extension/
55
- ├── manifest.json # Config da extensão
56
- ├── popup/
57
- │ ├── popup.html # Interface popup
58
- │ ├── popup.css
59
- │ └── popup.js
60
- ├── content/
61
- │ └── content.js # Executa nas páginas web
62
- ├── background/
63
- │ └── service-worker.js # Lógica em background
64
- ├── options/
65
- │ ├── options.html # Página de configurações
66
- │ └── options.js
67
- └── icons/
68
- ├── icon16.png
69
- ├── icon48.png
70
- └── icon128.png
71
- ```
72
-
73
- ### Padrão 2: Template Manifest V3 (MV3)
74
-
75
- Base obrigatória para toda extensão moderna:
76
-
77
- ```json
78
- {
79
- "manifest_version": 3,
80
- "name": "Minha Extensão",
81
- "version": "1.0.0",
82
- "description": "O que ela faz",
83
- "permissions": ["storage", "activeTab"],
84
- "action": {
85
- "default_popup": "popup/popup.html",
86
- "default_icon": {
87
- "16": "icons/icon16.png",
88
- "48": "icons/icon48.png",
89
- "128": "icons/icon128.png"
90
- }
91
- },
92
- "content_scripts": [{
93
- "matches": ["<all_urls>"],
94
- "js": ["content/content.js"]
95
- }],
96
- "background": {
97
- "service_worker": "background/service-worker.js"
98
- },
99
- "options_page": "options/options.html"
100
- }
101
- ```
102
-
103
- ### Padrão 3: Comunicação entre Componentes
104
-
105
- ```
106
- Popup ←→ Background (Service Worker) ←→ Content Script
107
- ↓
108
- chrome.storage
109
- ```
110
-
111
- ### Padrão 4: Solicitar Mínimo de Permissões
112
-
113
- Nunca solicitar mais permissões do que o necessário. Usar permissões opcionais e explicar o motivo na descrição. Solicitar no momento de uso.
114
-
115
- ---
116
-
117
- ## Padrões de Implementação
118
-
119
- ### Content Scripts
120
-
121
- Código executado diretamente nas páginas web.
122
-
123
- **Quando usar**: Ao modificar ou ler conteúdo de páginas.
124
-
125
- ```javascript
126
- // content.js - Executa em cada página correspondente
127
-
128
- // Aguardar carregamento da página
129
- document.addEventListener('DOMContentLoaded', () => {
130
- const elemento = document.querySelector('.alvo');
131
- if (elemento) {
132
- elemento.style.backgroundColor = 'yellow';
133
- }
134
- });
135
-
136
- // Receber mensagens do popup/background
137
- chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
138
- if (message.action === 'getData') {
139
- const data = document.querySelector('.data')?.textContent;
140
- sendResponse({ data });
141
- }
142
- return true; // Manter canal aberto para async
143
- });
144
- ```
145
-
146
- **Injetar UI na página:**
147
-
148
- ```javascript
149
- function injetarUI() {
150
- const container = document.createElement('div');
151
- container.id = 'minha-extensao-ui';
152
- container.innerHTML = `
153
- <div style="position: fixed; bottom: 20px; right: 20px;
154
- background: white; padding: 16px; border-radius: 8px;
155
- box-shadow: 0 4px 12px rgba(0,0,0,0.15); z-index: 10000;">
156
- <h3>Minha Extensão</h3>
157
- <button id="minha-extensao-btn">Clique aqui</button>
158
- </div>
159
- `;
160
- document.body.appendChild(container);
161
-
162
- document.getElementById('minha-extensao-btn').addEventListener('click', () => {
163
- // Tratar clique
164
- });
165
- }
166
-
167
- injetarUI();
168
- ```
169
-
170
- **Permissões para content scripts:**
171
-
172
- ```json
173
- {
174
- "content_scripts": [{
175
- "matches": ["https://site-especifico.com/*"],
176
- "js": ["content.js"],
177
- "run_at": "document_end"
178
- }]
179
- }
180
- ```
181
-
182
- ### Storage e Estado
183
-
184
- Persistir dados da extensão usando a Chrome Storage API.
185
-
186
- **Quando usar**: Ao salvar configurações ou dados do usuário.
187
-
188
- ```javascript
189
- // Salvar dados
190
- chrome.storage.local.set({ chave: 'valor' }, () => {
191
- console.log('Salvo');
192
- });
193
-
194
- // Ler dados
195
- chrome.storage.local.get(['chave'], (resultado) => {
196
- console.log(resultado.chave);
197
- });
198
-
199
- // Storage sincronizado (sincroniza entre dispositivos)
200
- chrome.storage.sync.set({ configuracao: true });
201
-
202
- // Monitorar mudanças
203
- chrome.storage.onChanged.addListener((changes, area) => {
204
- if (changes.chave) {
205
- console.log('chave alterada:', changes.chave.newValue);
206
- }
207
- });
208
- ```
209
-
210
- **Limites de storage:**
211
-
212
- | Tipo | Limite |
213
- |------|--------|
214
- | local | 5MB |
215
- | sync | 100KB total, 8KB por item |
216
-
217
- **Padrão async/await:**
218
-
219
- ```javascript
220
- async function lerStorage(chaves) {
221
- return new Promise((resolve) => {
222
- chrome.storage.local.get(chaves, resolve);
223
- });
224
- }
225
-
226
- async function salvarStorage(data) {
227
- return new Promise((resolve) => {
228
- chrome.storage.local.set(data, resolve);
229
- });
230
- }
231
-
232
- // Uso
233
- const { configuracoes } = await lerStorage(['configuracoes']);
234
- await salvarStorage({ configuracoes: { ...configuracoes, tema: 'escuro' } });
235
- ```
236
-
237
- ---
238
-
239
- ## Fluxo de Trabalho
240
-
241
- ### 1. Definir Escopo da Extensão
242
-
243
- Responder antes de criar:
244
- - Qual problema resolve?
245
- - Em quais páginas atua (todas ou específicas)?
246
- - Precisa de popup? Opções? Background persistente?
247
- - Quais permissões mínimas necessárias?
248
-
249
- ### 2. Criar Estrutura de Arquivos
250
-
251
- ```bash
252
- mkdir -p extensao/{popup,content,background,options,icons}
253
- ```
254
-
255
- ### 3. Criar manifest.json
256
-
257
- Usar template do Padrão 2, ajustando:
258
- - `permissions` - apenas o necessário
259
- - `content_scripts.matches` - restringir ao máximo
260
- - `action` - apenas se tiver popup
261
-
262
- ### 4. Implementar Componentes
263
-
264
- Ordem recomendada:
265
- 1. `background/service-worker.js` — lógica central
266
- 2. `content/content.js` — interação com páginas
267
- 3. `popup/popup.html` + `popup.js` — interface do usuário
268
- 4. `options/options.html` + `options.js` — configurações
269
-
270
- ### 5. Testar Localmente
271
-
272
- ```
273
- Chrome:
274
- 1. Abrir chrome://extensions/
275
- 2. Ativar "Modo do desenvolvedor"
276
- 3. Clicar "Carregar sem compactação"
277
- 4. Selecionar pasta da extensão
278
-
279
- Firefox:
280
- 1. Abrir about:debugging
281
- 2. Clicar "Este Firefox"
282
- 3. Clicar "Carregar Add-on Temporário"
283
- 4. Selecionar manifest.json
284
- ```
285
-
286
- ### 6. Publicar na Chrome Web Store
287
-
288
- ```
289
- 1. Criar conta de desenvolvedor: $5 taxa única
290
- 2. Empacotar extensão: zip de todos os arquivos
291
- 3. Acessar: https://chrome.google.com/webstore/devconsole
292
- 4. Criar novo item e fazer upload do zip
293
- 5. Preencher: descrição, screenshots, categoria
294
- 6. Enviar para revisão (1-3 dias úteis)
295
- ```
296
-
297
- ---
298
-
299
- ## Anti-Padrões
300
-
301
- ### Solicitar todas as permissões
302
-
303
- **Por que é ruim**: Usuários não instalam. A loja pode rejeitar. Risco de segurança. Avaliações negativas.
304
-
305
- **Alternativa**: Solicitar o mínimo necessário. Usar permissões opcionais. Explicar o motivo na descrição. Solicitar no momento de uso.
306
-
307
- ### Processamento pesado em background
308
-
309
- **Por que é ruim**: MV3 encerra workers ociosos. Consome bateria. Deixa o navegador lento. Usuários desinstalam.
310
-
311
- **Alternativa**: Manter background mínimo. Usar `alarms` para tarefas periódicas. Delegar para content scripts. Usar cache agressivamente.
312
-
313
- ### Quebrar em atualizações
314
-
315
- **Por que é ruim**: Seletores mudam. APIs mudam. Usuários reclamam. Avaliações negativas.
316
-
317
- **Alternativa**: Usar seletores estáveis. Adicionar tratamento de erros. Monitorar quebras. Corrigir rapidamente quando quebrar.
318
-
319
- ---
320
-
321
- ## Regras
322
-
323
- ### Nunca
324
- - Solicitar permissões além do necessário
325
- - Usar `manifest_version: 2` em projetos novos (MV3 obrigatório)
326
- - Processar dados sensíveis sem criptografia
327
- - Ignorar políticas da Chrome Web Store
328
- - Usar `eval()` ou injeção dinâmica de scripts remotos
329
- - Armazenar credenciais no `chrome.storage` sem proteção
330
-
331
- ### Sempre
332
- - Usar Manifest V3 (MV3)
333
- - Validar permissões contra o mínimo necessário
334
- - Tratar erros em todas as chamadas de API do Chrome
335
- - Testar em Chrome e Firefox quando possível
336
- - Incluir ícones em todos os tamanhos (16, 48, 128)
337
- - Documentar finalidade de cada permissão solicitada
338
-
339
- ---
340
-
341
- ## Checklist de Conclusão
342
-
343
- - [ ] Estrutura de pastas criada corretamente
344
- - [ ] `manifest.json` com MV3 e permissões mínimas
345
- - [ ] Content script implementado (se necessário)
346
- - [ ] Service worker implementado (se necessário)
347
- - [ ] Popup implementado (se necessário)
348
- - [ ] Página de opções implementada (se necessário)
349
- - [ ] Ícones em todos os tamanhos (16, 48, 128px)
350
- - [ ] Testado localmente em modo desenvolvedor
351
- - [ ] Sem uso de `eval()` ou scripts remotos
352
- - [ ] Tratamento de erros implementado
353
-
354
- ---
355
-
356
- ## Output
357
-
358
- | Artefato | Descrição |
359
- |----------|-----------|
360
- | `extension/manifest.json` | Configuração principal da extensão |
361
- | `extension/popup/` | Interface popup (se aplicável) |
362
- | `extension/content/` | Scripts executados nas páginas |
363
- | `extension/background/` | Service worker de background |
364
- | `extension/options/` | Página de configurações (se aplicável) |
365
- | `extension/icons/` | Ícones em todos os tamanhos |
366
-
367
- ---
368
-
369
- ## Mensagem de Conclusão
370
-
371
- ```
372
- Extensão criada com sucesso!
373
-
374
- Nome: {nome-da-extensao}
375
- Manifest Version: 3
376
- Navegadores: Chrome, Firefox (cross-browser)
377
-
378
- Estrutura:
379
- - [x] manifest.json
380
- - [x] content scripts
381
- - [x] service worker
382
- - [x] popup UI
383
- - [x] ícones
384
-
385
- Próximo passo: Carregar em chrome://extensions/ para testar
386
- ```
@@ -1,21 +0,0 @@
1
- ---
2
- name: eng-global-jira-comment
3
- description: >
4
- Alias de eng-global-task-comment. Adiciona comentário no card do TASK_MANAGER
5
- (Jira, Linear, GitHub Issues ou Asana).
6
- argument-hint: "{TASK_MANAGER_KEY} {mensagem}"
7
- disable-model-invocation: false
8
- allowed-tools: Read Bash MCP
9
- metadata:
10
- author: jarvis-team
11
- version: "1.0"
12
- area: global
13
- ---
14
-
15
- # eng-global-jira-comment (alias)
16
-
17
- Este skill foi unificado em **`eng-global-task-comment`**.
18
-
19
- Execute o playbook de `$IDE/skills/eng-global-task-comment/SKILL.md` com os mesmos argumentos `{TASK_MANAGER_KEY} {mensagem}`.
20
-
21
- `{TASK_MANAGER_KEY}` — identificador do card no `TASK_MANAGER` do ENV.md.
@@ -1,270 +0,0 @@
1
- ---
2
- name: eng-qa-a11y-audit
3
- description: Integra jest-axe nos testes unitários existentes de componentes React para validar acessibilidade WCAG 2.1 AA automaticamente. Adiciona assertions axe em cada componente e reporta violações.
4
- argument-hint: "[caminho do componente ou diretório — ex: src/components/]"
5
- disable-model-invocation: false
6
- allowed-tools: Read Write Edit Grep Glob Bash AskUserQuestion
7
- license: AGPL-3.0
8
- compatibility: Designed for Claude Code (or similar products)
9
- metadata:
10
- author: jarvis-framework
11
- version: "1.0"
12
- area: qa
13
- ---
14
-
15
- # qa-a11y-audit
16
-
17
- Você é um especialista em acessibilidade web (a11y). Sua função é integrar
18
- `jest-axe` nos testes unitários existentes de componentes para validar
19
- conformidade WCAG 2.1 AA automaticamente, sem exigir expertise em a11y do dev.
20
-
21
- ---
22
-
23
- ## Objetivo
24
-
25
- Adicionar testes de acessibilidade automatizados nos testes unitários existentes
26
- usando jest-axe. Detectar violações WCAG reais (aria, roles, contraste, semântica)
27
- e gerar report com correções sugeridas.
28
-
29
- ---
30
-
31
- ## Entrada
32
-
33
- ```
34
- /qa-a11y-audit [caminho]
35
- ```
36
-
37
- - `caminho` (opcional) — diretório ou arquivo de componente
38
- - Se omitido, detectar automaticamente a partir da estrutura do projeto (ex: `src/components/`, `app/`, `lib/`)
39
-
40
- ---
41
-
42
- ## Recursos
43
-
44
- | Recurso | Caminho |
45
- |---------|---------|
46
- | Testes existentes | `$TEST_FOLDER` ou colocated (`*.test.tsx`, `*.spec.tsx`) |
47
- | Config de testes | `jest.config.*`, `vitest.config.*`, `setupTests.*` |
48
-
49
- ---
50
-
51
- ## Pré-requisito
52
-
53
- 1. **ENV.md** válido
54
- 2. **Projeto com testes unitários existentes** (Jest ou Vitest)
55
- 3. **Componentes renderizáveis** (React, Vue, Svelte — que produzam DOM)
56
-
57
- ---
58
-
59
- ## Quando Usar
60
-
61
- **Usar quando:**
62
- - Projeto precisa de conformidade WCAG 2.1 AA
63
- - Code review identificou problemas de acessibilidade
64
- - Sprint inclui melhorias de a11y
65
- - Onboarding de a11y em projeto que nunca teve
66
-
67
- **NÃO usar quando:**
68
- - Projeto não tem testes unitários (criar testes primeiro com `qa-unit-test`)
69
- - Componentes não renderizam DOM (hooks, utils, serviços)
70
- - Objetivo é teste E2E de a11y (usar Lighthouse/axe-core no E2E)
71
-
72
- ---
73
-
74
- ## Padrões Críticos
75
-
76
- 1. **Não sobrescrever testes existentes** — adicionar assertions axe nos testes que já existem, não reescrever
77
- 2. **Setup uma vez, test N vezes** — configurar `toHaveNoViolations` no setup global, não em cada arquivo
78
- 3. **Cada componente com render = test axe** — todo componente que já tem teste de render recebe assertion axe
79
- 4. **Report com fix sugerido** — não apenas reportar violação, mas sugerir a correção HTML/JSX
80
-
81
- ---
82
-
83
- ## Fluxo de Trabalho
84
-
85
- ### Fase 1 — Detecção do ambiente
86
-
87
- **1.1** Detectar framework de teste:
88
- ```bash
89
- # Jest
90
- grep -l "jest" package.json
91
- # Vitest
92
- grep -l "vitest" package.json
93
- ```
94
-
95
- **1.2** Detectar framework UI:
96
- - `react` / `react-dom` → React
97
- - `vue` → Vue
98
- - `svelte` → Svelte
99
-
100
- **1.3** Localizar config de setup:
101
- ```bash
102
- # Jest
103
- grep -r "setupFilesAfterSetup\|setupTests" jest.config.* package.json
104
- # Vitest
105
- grep -r "setupFiles" vitest.config.*
106
- ```
107
-
108
- ### Fase 2 — Instalação de dependências
109
-
110
- **2.1** Verificar se jest-axe já está instalado:
111
- ```bash
112
- grep "jest-axe" package.json
113
- ```
114
-
115
- **2.2** Se não instalado, apresentar ao usuário:
116
- ```
117
- Para testes de acessibilidade, preciso instalar:
118
- - jest-axe (assertions axe para Jest/Vitest)
119
- - @types/jest-axe (tipos TypeScript, se aplicável)
120
-
121
- Instalar? (Sim / Não)
122
- ```
123
-
124
- **2.3** Se sim:
125
- ```bash
126
- npm install --save-dev jest-axe @types/jest-axe
127
- ```
128
-
129
- ### Fase 3 — Configuração global
130
-
131
- **3.1** Adicionar `toHaveNoViolations` no arquivo de setup:
132
-
133
- ```typescript
134
- // No setupTests.ts ou equivalente
135
- import 'jest-axe/extend-expect';
136
- ```
137
-
138
- > Se o arquivo de setup não existir, criar e registrar no config do Jest/Vitest.
139
-
140
- ### Fase 4 — Scan de componentes
141
-
142
- **4.1** Listar todos os arquivos de teste no escopo:
143
- ```bash
144
- find {caminho} -name "*.test.tsx" -o -name "*.spec.tsx" -o -name "*.test.ts" -o -name "*.spec.ts"
145
- ```
146
-
147
- **4.2** Para cada arquivo de teste, verificar se já tem assertion axe:
148
- ```bash
149
- grep -l "toHaveNoViolations\|jest-axe\|axe" {arquivo}
150
- ```
151
-
152
- **4.3** Filtrar apenas os que renderizam componentes (contêm `render(`) e não têm axe.
153
-
154
- **4.4** Reportar ao usuário:
155
- ```
156
- Encontrados {N} arquivos de teste com render.
157
- {M} já têm assertions axe.
158
- {K} serão atualizados.
159
- ```
160
-
161
- ### Fase 5 — Adicionar assertions axe
162
-
163
- **5.1** Para cada arquivo de teste sem assertions axe:
164
-
165
- 1. Adicionar import:
166
- ```typescript
167
- import { axe } from 'jest-axe';
168
- ```
169
-
170
- 2. Adicionar test case após o último `it`/`test` do describe principal:
171
- ```typescript
172
- it('não possui violações de acessibilidade', async () => {
173
- const { container } = render(<Componente {...defaultProps} />);
174
- const results = await axe(container);
175
- expect(results).toHaveNoViolations();
176
- });
177
- ```
178
-
179
- 3. Se o componente precisa de providers/contexto (detectar pelo render existente), replicar o setup.
180
-
181
- **5.2** Não alterar testes existentes — apenas adicionar o novo test case.
182
-
183
- ### Fase 6 — Executar e reportar
184
-
185
- **6.1** Executar os testes modificados usando o runner detectado na Fase 1:
186
- ```bash
187
- # Jest
188
- npx jest --testPathPattern="{padrão}" --no-coverage
189
- # Vitest
190
- npx vitest run {padrão}
191
- ```
192
- > Usar o runner que o projeto já utiliza — nunca forçar um runner diferente.
193
-
194
- **6.2** Para cada violação encontrada, gerar report:
195
-
196
- ```markdown
197
- ### Violação: {rule-id} ({impact})
198
-
199
- **Componente:** `{nome}`
200
- **Elemento:** `{selector}`
201
- **Problema:** {description}
202
- **Correção sugerida:**
203
- ```jsx
204
- // Antes
205
- <div aria-label="Menu">...</div>
206
-
207
- // Depois
208
- <nav aria-label="Menu">...</nav>
209
- ```
210
- ```
211
-
212
- **6.3** Apresentar resumo ao usuário:
213
- ```
214
- ── a11y Audit ────────────────────────────────────────────
215
- Componentes testados : {N}
216
- Sem violações : {OK}
217
- Com violações : {FAIL}
218
- Total de violações : {V} ({critical}, {serious}, {moderate}, {minor})
219
- ──────────────────────────────────────────────────────────
220
- ```
221
-
222
- ---
223
-
224
- ## Regras
225
-
226
- ### Nunca
227
- - Sobrescrever ou deletar testes existentes
228
- - Instalar dependências sem confirmação do usuário
229
- - Ignorar violações de impacto `critical` ou `serious`
230
- - Hardcodar paths de componentes — usar `$TEST_FOLDER` ou argumento
231
-
232
- ### Sempre
233
- - Configurar `toHaveNoViolations` no setup global (não em cada arquivo)
234
- - Replicar providers/contexto do render existente no test axe
235
- - Sugerir fix para cada violação (não apenas reportar)
236
- - Executar os testes após adicionar assertions para validar
237
-
238
- ---
239
-
240
- ## Checklist de Conclusão
241
-
242
- - [ ] Framework de teste detectado (Jest/Vitest)
243
- - [ ] jest-axe instalado
244
- - [ ] Setup global configurado
245
- - [ ] Componentes escaneados e filtrados
246
- - [ ] Assertions axe adicionadas
247
- - [ ] Testes executados
248
- - [ ] Violações reportadas com sugestões de fix
249
-
250
- ---
251
-
252
- ## Output
253
-
254
- | Artefato | Destino |
255
- |----------|---------|
256
- | Testes modificados com assertions axe | Arquivos `.test.tsx` / `.spec.tsx` existentes |
257
- | Report de violações | Output no terminal + opcional markdown |
258
-
259
- ---
260
-
261
- ## Mensagem de Conclusão
262
-
263
- ```
264
- ── qa-a11y-audit concluído ───────────────────────────────
265
- Componentes : {N} testados
266
- Violações : {V} encontradas ({C} critical, {S} serious)
267
- Arquivos : {M} modificados
268
- Setup : jest-axe configurado globalmente
269
- ──────────────────────────────────────────────────────────
270
- ```