jarvis-ai-framework 2.1.1 → 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 (259) hide show
  1. package/AGENTS.md +14 -115
  2. package/agents/AGENTS.md +11 -23
  3. package/agents/README.md +25 -129
  4. package/agents/engineering/data/eng.data-engineer.agent.md +11 -34
  5. package/agents/engineering/eng.agent.md +14 -24
  6. package/agents/engineering/eng.bug-hunter.md +7 -15
  7. package/agents/engineering/eng.dev-code-reviewer.md +1 -1
  8. package/agents/engineering/eng.frontend.agent.md +3 -7
  9. package/agents/engineering/eng.rpa.agent.md +2 -8
  10. package/agents/engineering/qa/eng.qa.quality-strategist.md +6 -11
  11. package/agents/engineering/qa/eng.qa.test-architect.md +8 -18
  12. package/agents/engineering/qa/eng.qa.test-planner.md +10 -14
  13. package/agents/engineering/qa/eng.qa.testing-engineer.md +91 -24
  14. package/agents/product/prod.discovery-interviewer.md +3 -3
  15. package/bin/README.md +142 -0
  16. package/bin/commands/docs-publish.js +105 -141
  17. package/bin/commands/docs-sync.js +66 -104
  18. package/bin/commands/info.js +7 -27
  19. package/bin/commands/init.js +23 -51
  20. package/bin/commands/install-rtk.js +9 -3
  21. package/bin/commands/list.js +5 -18
  22. package/bin/commands/map.js +20 -5
  23. package/bin/commands/qa-signoff.js +58 -55
  24. package/bin/commands/tokens.js +14 -17
  25. package/bin/commands/whoami.js +30 -26
  26. package/bin/jarvis.js +9 -163
  27. package/bin/lib/auth/session.js +20 -20
  28. package/bin/lib/cli/program.js +219 -0
  29. package/bin/lib/cli/shared-options.js +29 -0
  30. package/bin/lib/config/constants.js +59 -2
  31. package/bin/lib/config/ide-config.js +4 -8
  32. package/bin/lib/core/profile-filter.js +4 -1
  33. package/bin/lib/core/scanner.js +3 -29
  34. package/bin/lib/core/sync-engine.js +21 -14
  35. package/bin/lib/core/token-report.js +12 -2
  36. package/bin/lib/docs/fetch-file.js +39 -0
  37. package/bin/lib/docs/publish-file.js +194 -0
  38. package/bin/lib/docs/redis-cache.js +49 -0
  39. package/bin/lib/docs/validate-frontmatter.js +9 -39
  40. package/bin/lib/env-loader.js +11 -34
  41. package/bin/lib/flow-map/parse.js +11 -5
  42. package/bin/lib/flow-map/render.js +5 -2
  43. package/bin/lib/flow-map/tree.js +59 -10
  44. package/bin/lib/tasks/comment.js +40 -35
  45. package/bin/lib/utils/frontmatter.js +57 -0
  46. package/bin/lib/utils/git-parser.js +4 -6
  47. package/bin/lib/utils/npmrc-parser.js +6 -13
  48. package/bin/lib/utils/paths.js +2 -4
  49. package/bin/lib/utils/ui.js +3 -9
  50. package/bin/lib/vcs/api.js +25 -41
  51. package/bin/lib/vcs/create-issue.js +49 -33
  52. package/bin/lib/vcs/create-merge.js +47 -31
  53. package/bin/lib/vcs/fetch-raw.js +35 -23
  54. package/package.json +14 -5
  55. package/rules/engineering/eng-rules.md +1 -1
  56. package/rules/engineering/eng-security-rules.md +18 -16
  57. package/rules/engineering/eng.bump-rules.md +3 -2
  58. package/rules/engineering/eng.docs-scraping-rules.md +4 -4
  59. package/rules/engineering/eng.integrations-rules.md +3 -3
  60. package/rules/engineering/eng.skills-rules.md +1 -1
  61. package/rules/engineering/eng.specializations-rules.md +18 -4
  62. package/rules/engineering/frontend/eng.frontend-rules.md +1 -4
  63. package/rules/engineering/qa/eng.qa.cypress-standards-rules.md +1 -1
  64. package/rules/engineering/rpa/eng.rpa-rules.md +4 -9
  65. package/skills/AGENTS.md +52 -87
  66. package/skills/SKILLS-ROADMAP.md +47 -128
  67. package/skills/eng-ai/SKILL.md +270 -0
  68. package/skills/eng-ai/references/1-fundamentos-ml.md +24 -0
  69. package/skills/eng-ai/references/10-arquitetura-solucoes-ia.md +24 -0
  70. package/skills/eng-ai/references/11-governanca-ia.md +24 -0
  71. package/skills/eng-ai/references/12-seguranca-ia-responsavel.md +25 -0
  72. package/skills/eng-ai/references/2-matematica-estatistica.md +24 -0
  73. package/skills/eng-ai/references/3-dados-para-ia.md +24 -0
  74. package/skills/eng-ai/references/4-deep-learning-fundacionais.md +24 -0
  75. package/skills/eng-ai/references/5-llms-chatbots-agentes-rag.md +25 -0
  76. package/skills/eng-ai/references/6-avaliacao-experimentacao.md +24 -0
  77. package/skills/eng-ai/references/7-engenharia-sistemas-ia.md +24 -0
  78. package/skills/eng-ai/references/8-mlops-plataforma.md +24 -0
  79. package/skills/eng-ai/references/9-produto-ia.md +24 -0
  80. package/skills/eng-ai/references/especializacoes.md +17 -0
  81. package/skills/eng-automation/SKILL.md +290 -0
  82. package/skills/eng-automation/references/1-fundamentos-automacao.md +25 -0
  83. package/skills/eng-automation/references/10-ingestao-dados.md +25 -0
  84. package/skills/eng-automation/references/11-captcha-antibot.md +25 -0
  85. package/skills/eng-automation/references/12-limites-taxa-sessoes.md +25 -0
  86. package/skills/eng-automation/references/13-agendamento-orquestracao.md +24 -0
  87. package/skills/eng-automation/references/14-retentativa-erros.md +25 -0
  88. package/skills/eng-automation/references/15-autenticacao-credenciais.md +24 -0
  89. package/skills/eng-automation/references/16-observabilidade-confiabilidade.md +24 -0
  90. package/skills/eng-automation/references/2-aquisicao-dados.md +25 -0
  91. package/skills/eng-automation/references/3-automacao-navegador.md +24 -0
  92. package/skills/eng-automation/references/4-scraping-crawling.md +25 -0
  93. package/skills/eng-automation/references/5-apis-rest-graphql-soap.md +26 -0
  94. package/skills/eng-automation/references/6-webhooks-integracao.md +25 -0
  95. package/skills/eng-automation/references/7-rpa.md +25 -0
  96. package/skills/eng-automation/references/8-extracao-estruturada.md +25 -0
  97. package/skills/eng-automation/references/9-extracao-documentos.md +25 -0
  98. package/skills/eng-automation/references/especializacoes.md +18 -0
  99. package/skills/eng-backend-nestjs/SKILL.md +1 -1
  100. package/skills/eng-data/SKILL.md +271 -0
  101. package/skills/eng-data/references/1-fundamentos-dados.md +24 -0
  102. package/skills/eng-data/references/10-ciencia-dados.md +24 -0
  103. package/skills/eng-data/references/11-dataops-plataforma.md +24 -0
  104. package/skills/eng-data/references/12-seguranca-privacidade.md +24 -0
  105. package/skills/eng-data/references/2-modelagem-dados.md +24 -0
  106. package/skills/eng-data/references/3-bancos-dados.md +24 -0
  107. package/skills/eng-data/references/4-arquitetura-dados.md +24 -0
  108. package/skills/eng-data/references/5-pipelines-integracao.md +24 -0
  109. package/skills/eng-data/references/6-qualidade-dados.md +24 -0
  110. package/skills/eng-data/references/7-governanca-metadados.md +24 -0
  111. package/skills/eng-data/references/8-estatistica-analise.md +24 -0
  112. package/skills/eng-data/references/9-analytics-bi.md +24 -0
  113. package/skills/eng-data/references/especializacoes.md +20 -0
  114. package/skills/eng-frontend/SKILL.md +12 -5
  115. package/skills/eng-frontend/references/13-design-system.md +48 -0
  116. package/skills/eng-frontend/references/14-microfrontend.md +46 -0
  117. package/skills/eng-global-task-comment/SKILL.md +2 -2
  118. package/skills/eng-platform/SKILL.md +331 -0
  119. package/skills/eng-platform/references/1-fundamentos-sistemas.md +23 -0
  120. package/skills/eng-platform/references/10-resiliencia-arquitetura.md +24 -0
  121. package/skills/eng-platform/references/11-plataforma-devex.md +24 -0
  122. package/skills/eng-platform/references/12-finops-custos.md +24 -0
  123. package/skills/eng-platform/references/13-seguranca-fundamentos.md +26 -0
  124. package/skills/eng-platform/references/14-profiling-performance.md +23 -0
  125. package/skills/eng-platform/references/15-testes-carga-chaos.md +23 -0
  126. package/skills/eng-platform/references/16-cache-multicamada.md +22 -0
  127. package/skills/eng-platform/references/2-redes.md +23 -0
  128. package/skills/eng-platform/references/3-cloud.md +24 -0
  129. package/skills/eng-platform/references/4-iac-automacao.md +24 -0
  130. package/skills/eng-platform/references/5-containers-orquestracao.md +25 -0
  131. package/skills/eng-platform/references/6-cicd-entrega.md +24 -0
  132. package/skills/eng-platform/references/7-observabilidade.md +24 -0
  133. package/skills/eng-platform/references/8-confiabilidade-sre.md +24 -0
  134. package/skills/eng-platform/references/9-seguranca-infra.md +26 -0
  135. package/skills/eng-platform/references/especializacoes.md +34 -0
  136. package/skills/eng-qa/SKILL.md +283 -0
  137. package/skills/eng-qa/references/1-fundamentos-qualidade.md +25 -0
  138. package/skills/eng-qa/references/10-confiabilidade.md +25 -0
  139. package/skills/eng-qa/references/11-seguranca.md +24 -0
  140. package/skills/eng-qa/references/12-acessibilidade.md +24 -0
  141. package/skills/eng-qa/references/13-dados-testes.md +24 -0
  142. package/skills/eng-qa/references/14-gestao-testes-defeitos.md +25 -0
  143. package/skills/eng-qa/references/15-arquitetura-qa.md +25 -0
  144. package/skills/eng-qa/references/2-estrategia-planejamento.md +25 -0
  145. package/skills/eng-qa/references/3-design-testes.md +25 -0
  146. package/skills/eng-qa/references/4-manual-exploratorio.md +24 -0
  147. package/skills/eng-qa/references/5-automacao-testes.md +25 -0
  148. package/skills/eng-qa/references/6-api-integracao.md +25 -0
  149. package/skills/eng-qa/references/7-contrato.md +24 -0
  150. package/skills/eng-qa/references/8-interface-compat-mobile.md +24 -0
  151. package/skills/eng-qa/references/9-performance.md +24 -0
  152. package/skills/eng-qa/references/especializacoes.md +29 -0
  153. package/skills/eng-qa-planner/SKILL.md +264 -0
  154. package/skills/jarvis-context-detect/SKILL.md +1 -1
  155. package/skills/jarvis-context-detect/assets/context-profile-template.md +1 -1
  156. package/skills/jarvis-create-specialization/SKILL.md +8 -0
  157. package/skills/jarvis-docs-central/README.md +31 -28
  158. package/skills/jarvis-docs-central/SKILL.md +5 -5
  159. package/skills/jarvis-init/SKILL.md +8 -8
  160. package/skills/jarvis-init/assets/passo-adicionar-stacks.md +47 -18
  161. package/skills/jarvis-list-specializations/SKILL.md +30 -17
  162. package/skills/jarvis-report-issue/SKILL.md +1 -1
  163. package/taxonomy.md +4 -16
  164. package/templates/ENV-template.md +10 -2
  165. package/templates/engineering/qa/qa.sprint-plan-template.md +1 -1
  166. package/workflows/AGENTS.md +3 -1
  167. package/workflows/README.md +0 -10
  168. package/workflows/engineering/data/data.new-pipeline.md +6 -5
  169. package/workflows/engineering/eng.bug-audit.md +4 -14
  170. package/workflows/engineering/eng.debug.md +4 -20
  171. package/workflows/engineering/eng.pr.md +10 -28
  172. package/workflows/engineering/eng.pre-pr.md +11 -19
  173. package/workflows/engineering/eng.review.md +7 -13
  174. package/workflows/engineering/eng.rpa.robot.md +3 -9
  175. package/workflows/engineering/eng.start.md +16 -11
  176. package/workflows/engineering/eng.work.md +10 -18
  177. package/workflows/engineering/qa/eng.qa-sprint-planning.md +1 -1
  178. package/workflows/product/prod.spec.discovery.md +2 -2
  179. package/workflows/warm-up.md +35 -63
  180. package/agents/engineering/eng.cybersecurity.agent.md +0 -486
  181. package/agents/engineering/qa/eng.qa.cypress-specialist.md +0 -112
  182. package/bin/lib/docs/fetch-file.sh +0 -41
  183. package/bin/lib/docs/publish-file.sh +0 -284
  184. package/rules/engineering/qa/eng.qa.exploratory-session-rules.md +0 -137
  185. package/rules/engineering/qa/eng.qa.quality-gate-scoring-rules.md +0 -181
  186. package/rules/engineering/qa/eng.qa.tech-spec-validation-criteria-rules.md +0 -120
  187. package/skills/eng-ai-engineer/SKILL.md +0 -303
  188. package/skills/eng-data-bi/SKILL.md +0 -206
  189. package/skills/eng-data-debug/SKILL.md +0 -314
  190. package/skills/eng-data-engineer/SKILL.md +0 -266
  191. package/skills/eng-data-onboard/SKILL.md +0 -317
  192. package/skills/eng-data-orchestrator/SKILL.md +0 -433
  193. package/skills/eng-devops-performance-engineer/SKILL.md +0 -319
  194. package/skills/eng-frontend-design-system/SKILL.md +0 -155
  195. package/skills/eng-frontend-design-system/references/1-estrutura-pacote.md +0 -57
  196. package/skills/eng-frontend-design-system/references/2-tokens.md +0 -116
  197. package/skills/eng-frontend-design-system/references/3-componentes.md +0 -165
  198. package/skills/eng-frontend-design-system/references/4-storybook.md +0 -85
  199. package/skills/eng-frontend-design-system/references/5-auditoria-versionamento.md +0 -76
  200. package/skills/eng-frontend-microfrontend/SKILL.md +0 -164
  201. package/skills/eng-frontend-microfrontend/references/1-criando-remote.md +0 -109
  202. package/skills/eng-frontend-microfrontend/references/2-configurando-shell.md +0 -70
  203. package/skills/eng-frontend-microfrontend/references/3-contratos-interface.md +0 -73
  204. package/skills/eng-frontend-microfrontend/references/4-shared-dependencies.md +0 -48
  205. package/skills/eng-frontend-microfrontend/references/5-event-bus.md +0 -59
  206. package/skills/eng-frontend-microfrontend/references/6-monorepo-deploy.md +0 -77
  207. package/skills/eng-frontend-microfrontend/references/7-troubleshooting.md +0 -45
  208. package/skills/eng-global-browser-extension-builder/SKILL.md +0 -392
  209. package/skills/eng-global-jira-comment/SKILL.md +0 -27
  210. package/skills/eng-qa-a11y-audit/SKILL.md +0 -276
  211. package/skills/eng-qa-bug-report/SKILL.md +0 -877
  212. package/skills/eng-qa-bug-report/TASK_MANAGERS.md +0 -138
  213. package/skills/eng-qa-bug-report/references/1-integracao-task-managers.md +0 -148
  214. package/skills/eng-qa-bug-report/references/2-exemplos-de-uso.md +0 -46
  215. package/skills/eng-qa-bug-report/references/3-bug-to-test.md +0 -45
  216. package/skills/eng-qa-cypress-e2e/SKILL.md +0 -184
  217. package/skills/eng-qa-dev-guide/SKILL.md +0 -173
  218. package/skills/eng-qa-e2e/SKILL.md +0 -407
  219. package/skills/eng-qa-e2e-spec-writer/SKILL.md +0 -329
  220. package/skills/eng-qa-exploratory/SKILL.md +0 -196
  221. package/skills/eng-qa-gate/SKILL.md +0 -377
  222. package/skills/eng-qa-gate/assets/checklist-validacao.md +0 -291
  223. package/skills/eng-qa-graphql-contract/SKILL.md +0 -263
  224. package/skills/eng-qa-quality-report/SKILL.md +0 -419
  225. package/skills/eng-qa-test-plan/SKILL.md +0 -473
  226. package/skills/eng-qa-testsprite/SKILL.md +0 -332
  227. package/skills/eng-qa-testsprite/references/testsprite-mcp.md +0 -224
  228. package/skills/eng-qa-unit-test/SKILL.md +0 -478
  229. package/skills/eng-scraper/SKILL.md +0 -260
  230. package/skills/eng-scraper/references/1-puppeteer.md +0 -140
  231. package/skills/eng-scraper/references/2-playwright-cheerio-pdf.md +0 -82
  232. package/skills/eng-scraper/references/3-anti-bot.md +0 -94
  233. package/skills/eng-scraper/references/4-resiliencia-etl-monitoramento.md +0 -137
  234. package/skills/eng-scraper-robot-builder/SKILL.md +0 -377
  235. package/skills/eng-security-cybersecurity/SKILL.md +0 -250
  236. package/skills/eng-security-cybersecurity/references/1-owasp-top-10.md +0 -331
  237. package/skills/eng-security-cybersecurity/references/2-secrets-management.md +0 -31
  238. package/skills/eng-security-cybersecurity/references/3-input-validation.md +0 -43
  239. package/skills/eng-security-cybersecurity/references/4-compliance.md +0 -20
  240. package/skills/eng-security-patch/SKILL.md +0 -388
  241. package/skills/eng-security-threat-model/SKILL.md +0 -171
  242. package/skills/eng-security-triage/SKILL.md +0 -276
  243. package/templates/engineering/qa/eng.qa.quality-gate-examples-template.md +0 -311
  244. package/templates/engineering/qa/eng.qa.quality-gate-report-template.md +0 -249
  245. package/templates/engineering/qa/qa.cypress-test-template.md +0 -172
  246. package/templates/engineering/qa/qa.exploratory-session-template.md +0 -148
  247. package/templates/engineering/qa/qa.quality-report-template.md +0 -130
  248. package/workflows/engineering/eng.security-audit.md +0 -319
  249. package/workflows/engineering/eng.security-incident.md +0 -281
  250. package/workflows/engineering/eng.security-pipeline.md +0 -219
  251. package/workflows/engineering/eng.security-review.md +0 -241
  252. package/workflows/engineering/qa/eng.qa-dev-quality-guide.md +0 -57
  253. package/workflows/engineering/qa/eng.qa-e2e-test-generation.md +0 -57
  254. package/workflows/engineering/qa/eng.qa-exploratory-session.md +0 -68
  255. package/workflows/engineering/qa/eng.qa-quality-gate-validation.md +0 -209
  256. package/workflows/engineering/qa/eng.qa-quality-report.md +0 -85
  257. /package/skills/{eng-qa-test-plan → eng-qa-planner}/assets/test-coverage-template.md +0 -0
  258. /package/skills/{eng-qa-test-plan → eng-qa-planner}/assets/test-patterns.md +0 -0
  259. /package/templates/{CDD aplicado a Prompts.md → cdd-aplicado-a-prompts.md} +0 -0
@@ -1,276 +0,0 @@
1
- ---
2
- name: eng-security-triage
3
- description: >-
4
- Triage de achados de seguranca. Consome um ou mais security-findings.json (output de
5
- eng.security-audit ou eng.security-review), deduplica em 2 passadas (deterministica +
6
- semantica), verifica cada achado com N votos independentes, re-rankeia por exploitabilidade
7
- e escreve triage.json. Use apos eng.security-audit ou eng.security-review.
8
- argument-hint: "<findings-file> [<findings-file2> ...] [--auto] [--votes N]"
9
- allowed-tools:
10
- - Read
11
- - Glob
12
- - Grep
13
- - Write
14
- - AskUserQuestion
15
- - Task
16
- - Bash(git log:*)
17
- - Bash(find:*)
18
- metadata:
19
- author: jarvis-team
20
- version: "1.0"
21
- area: security
22
- ---
23
-
24
- # eng-security-triage
25
-
26
- Recebe o output bruto do scan (`security-findings.json`) e produz lista limpa, verificada e ranqueada (`triage.json`).
27
-
28
- **Problema que resolve:** scanners de seguranca tem alta taxa de falso-positivo (~45%) e achados duplicados entre focus areas. Triage resolve em 4 fases: normalizar → deduplicar → verificar com N votos → re-rankear por exploitabilidade.
29
-
30
- **Subagentes de verificacao rodam sem MCP** — apenas o texto do achado como contexto. Menos tool = veredicto mais deterministico, mais barato, sem distração por acesso ao codigo.
31
-
32
- ---
33
-
34
- ## Checkpointing
35
-
36
- Em lotes grandes (>20 achados × N votos), a triage pode esgotar contexto ou atingir rate limit mid-run.
37
- Estado persiste em `.security/state/` via Write tool — sem dependencia de Python.
38
-
39
- **Verificacao de resume (sempre antes do Step 0):**
40
-
41
- Verificar se `.security/state/triage-state.json` existe.
42
- - Nao existe ou `--fresh` em `$ARGUMENTS`: fresh start.
43
- - `status == "running"` com `phase_done == N`: ler `.security/state/triage-phase-N.json` e pular direto para Fase N+1.
44
- - `status == "complete"`: fresh start.
45
-
46
- **Ao final de cada fase N:** dois Writes:
47
- 1. `.security/state/triage-phase-N.json` — estado completo da fase (achados com campos preenchidos ate aqui).
48
- 2. `.security/state/triage-state.json` — `{"status": "running", "phase_done": N}`.
49
-
50
- **Ao escrever o `triage.json` final:**
51
- `.security/state/triage-state.json` → `{"status": "complete", "phase_done": 6}`.
52
-
53
- `.security/state/` e scratch — adicionar ao `.gitignore` do projeto.
54
-
55
- ---
56
-
57
- ## Step 0 — Entrevista (pular com `--auto`)
58
-
59
- Antes de processar, coletar contexto via `AskUserQuestion`:
60
-
61
- 1. **Fronteira de confianca:** "Qual a fronteira de confianca do sistema? (ex: usuarios autenticados podem fazer upload, mas nao modificar dados de outros)"
62
- 2. **Threat model:** "Existe `THREAT_MODEL.md`? Qual o path? (ou 'nao existe')"
63
- 3. **Tolerancia a ruido:** "Preferencia de precisao? `low` (menos falsos positivos) | `medium` (default) | `high` (manter tudo duvidoso para revisao humana)"
64
- 4. **Padrao de score:** "Usar CVSS (impacto x likelihood) ou `exploitability-first` (priorizar por facilidade de exploracao)?"
65
-
66
- `--auto`: pular entrevista — defaults: `noise_tolerance=medium`, `scoring=exploitability-first`, threat model = buscar `THREAT_MODEL.md` na raiz.
67
-
68
- Salvar respostas em `.security/state/triage-context.json` para sobreviver a compactacao.
69
-
70
- ---
71
-
72
- ## Fase 1 — Normalizar
73
-
74
- 1. Ler todos os `security-findings.json` passados como argumento.
75
- 2. Flatten em lista unica de achados.
76
- 3. Normalizar IDs para `F-001`, `F-002`, ... (ordenado por impact desc, likelihood desc, file, linha).
77
- 4. Registrar `input_files[]` e `total_input` para o `summary` final.
78
-
79
- Se um arquivo nao existir ou nao for JSON valido: reportar ao usuario e continuar com os restantes.
80
-
81
- ---
82
-
83
- ## Fase 2 — Deduplicar
84
-
85
- **Passada 1 — Deterministica:**
86
- Agrupar achados onde:
87
- - Mesmo `file`
88
- - Mesma `category`
89
- - `line` dentro de ±10 linhas entre si
90
-
91
- Para cada grupo: manter o achado com `description` mais longa (mais informativo). Registrar descartados com `dedup_group: <id do canonico>`.
92
-
93
- **Passada 2 — Semantica:**
94
- Para pares que sobreviveram a passada 1 com mesma `category` mas arquivos diferentes ou linha fora do range, spawnar 1 subagente de comparacao (sem MCP):
95
-
96
- ```
97
- Dois achados de seguranca. Corrigir um necessariamente corrige o outro?
98
-
99
- ACHADO A: {title_a} em {file_a}:{line_a}
100
- Descricao: {description_a}
101
-
102
- ACHADO B: {title_b} em {file_b}:{line_b}
103
- Descricao: {description_b}
104
-
105
- Responda exatamente:
106
- is_duplicate: true | false
107
- reasoning: <uma linha>
108
- ```
109
-
110
- Se `is_duplicate: true`: manter o de maior `confidence`, descartar o outro com `dedup_group`.
111
- Incrementar `duplicates_removed` no `summary`.
112
-
113
- ---
114
-
115
- ## Fase 3 — Verificacao Multi-Voto
116
-
117
- Para cada achado nao-descartado, spawnar **N subagentes de voto independentes** (default N=3; sobrescrever com `--votes N`).
118
-
119
- Cada subagente recebe apenas o texto do achado — **sem acesso ao codigo-fonte, sem MCP**:
120
-
121
- ```
122
- Voce e um revisor de seguranca independente. Avaliar este achado:
123
-
124
- ID: {id}
125
- TITULO: {title}
126
- CATEGORIA: {category} ({file}:{line})
127
- IMPACTO: {impact} | LIKELIHOOD: {likelihood}
128
-
129
- DESCRICAO:
130
- {description}
131
-
132
- EVIDENCIA:
133
- {evidence}
134
-
135
- FRONTEIRA DE CONFIANCA DO SISTEMA: {trust_boundary}
136
-
137
- Sua postura padrao: o scanner esta ERRADO. Re-derive a conclusao a partir da descricao e evidencia fornecidas.
138
-
139
- REGRAS DE EXCLUSAO — se o achado se encaixa em qualquer uma, e FALSO POSITIVO mesmo que tecnicamente preciso:
140
-
141
- 1. DoS volumetrico ou rate-limiting ausente (tratado na camada de infraestrutura). ReDoS, complexidade algoritmica e recursao ilimitada SAO findings validos.
142
- 2. Codigo de teste, codigo morto, codigo de exemplo/fixture ou crash sem impacto de seguranca.
143
- 3. Comportamento intencional do design (middleware de compressao, algoritmo fraco oferecido ao lado de um forte com opt-in).
144
- 4. Memory-safety em linguagens memory-safe fora de blocos unsafe/FFI.
145
- 5. SSRF onde o atacante controla apenas o path, nao o host ou protocolo.
146
- 6. Input de usuario fluindo para prompt de IA/LLM (prompt injection nao e vulnerabilidade de codigo no alvo).
147
- 7. Path traversal em object storage (S3/GCS) onde ../ nao escapa uma fronteira de confianca.
148
- 8. Inputs confiaveis usados como vetor (env vars, flags CLI definidos pelo operador), a menos que o sistema marque-os como nao-confiaveis.
149
- 9. Codigo client-side flagrado para classes de vulnerabilidade server-side.
150
- 10. Versoes desatualizadas de dependencias (gerenciado por processo separado; use npm audit para isso).
151
- 11. Randomness fraca usada para fins nao-seguranca (jitter, shuffling, fallbacks de dev).
152
- 12. Issues de baixo impacto: log spoofing, CSRF em logout, self-XSS, open redirect, tabnabbing, injecao de regex.
153
- 13. Gap de hardening sem caminho de exploit concreto: headers de seguranca ausentes, sem audit logging, config permissiva nao alcancada por input nao-confiavel.
154
- 14. XSS em framework com auto-escape padrao (React, Angular, Vue, Jinja2 autoescape=on) a menos que o sink seja escape hatch de HTML raw (dangerouslySetInnerHTML, v-html, |safe).
155
- 15. Identificadores construidos para serem inesgotaveis (UUIDv4, tokens de 128+ bits aleatorios) flagrados como "previsiveis" ou "precisam de validacao".
156
- 16. Race conditions ou TOCTOU apenas teoricos — sem janela realista ou sem mudanca de estado com relevancia de seguranca entre check e use.
157
-
158
- Este achado e real e exploravel dado a fronteira de confianca declarada? Avalie contra as regras acima e a evidencia fornecida.
159
-
160
- Responda exatamente:
161
- verdict: confirmed | rejected | inconclusive
162
- verify_verdict: exploitable | mitigated | needs_manual_test
163
- exploitable: caminho de ataque realista, sem mitigacao efetiva
164
- mitigated: achado real mas controle existente reduz o risco (nomear o controle no reasoning)
165
- needs_manual_test: conclusao depende de comportamento runtime — recomendar PoC humano
166
- (para verdict=rejected: sempre needs_manual_test)
167
- reasoning: <uma linha — citar regra de exclusao se aplicavel, ex: "Regra 1: DoS volumetrico">
168
- confidence: <0.0-1.0>
169
- ```
170
-
171
- **Consolidacao:**
172
-
173
- | Votos confirmed | Resultado | Status final |
174
- |---|---|---|
175
- | >= ceil(N/2) confirmed | Confirmado | `confirmed` |
176
- | >= ceil(N/2) rejected | Falso positivo | `rejected` |
177
- | Outro | Inconcluso | `inconclusive` |
178
-
179
- Registrar `vote_result{votes_total, votes_confirmed, verdict, reasoning}` em cada achado.
180
- `verify_verdict` do achado: valor modal entre os votos (se todos rejected: `needs_manual_test`).
181
- Incrementar `rejected_by_vote` no `summary`.
182
-
183
- ---
184
-
185
- ## Fase 4 — Re-rankear por Exploitabilidade
186
-
187
- Ordenar achados `confirmed` e `inconclusive` por exploitability score (1 subagente por achado, sem MCP):
188
-
189
- ```
190
- Dado este achado confirmado:
191
- {id} | {title} | {category}
192
- impact (scanner): {impact} | likelihood: {likelihood}
193
- trust_boundary: {trust_boundary}
194
- verify_verdict: {verify_verdict}
195
-
196
- PASSO 1: Listar TODAS as pre-condicoes para exploracao (estado de auth, configuracao especifica, posicao de rede, janela de race).
197
-
198
- PASSO 2: Identificar nivel de acesso minimo necessario:
199
- unauthenticated_remote | authenticated | local | physical
200
-
201
- PASSO 3: Derivar severidade — aplicar tabela e tomar o resultado MENOR:
202
- | Pre-condicoes | Acesso | Severidade |
203
- | 0 | unauthenticated_remote | HIGH |
204
- | 1-2 | authenticated | MEDIUM |
205
- | 3+ | local / sem demo path | LOW |
206
- Exemplo: 0 pre-condicoes mas so authenticated → MEDIUM, nao HIGH.
207
-
208
- PASSO 4: Comparar com impact declarado pelo scanner (severity_alignment -5..+5):
209
- +3..+5 justificado ou subestimado | 0..+2 adequado | -1..-3 inflado | -4..-5 muito inflado
210
-
211
- PASSO 5: Score de explorabilidade 1-10 para desempate no ranking:
212
- 10=trivial, tooling publico; 7-9=habilidade media; 4-6=conhecimento especializado; 1-3=acesso privilegiado
213
-
214
- Responda exatamente:
215
- preconditions: <lista separada por ponto e virgula>
216
- access_level: <unauthenticated_remote|authenticated|local|physical>
217
- severity_derived: <HIGH|MEDIUM|LOW>
218
- severity_alignment: <-5..+5>
219
- exploitability_score: <1-10>
220
- reasoning: <uma linha>
221
- ```
222
-
223
- Ordenar por `severity_derived` (HIGH > MEDIUM > LOW) → `exploitability_score` desc → `impact` desc → `likelihood` desc.
224
- Atribuir `exploitability_rank` (1 = mais critico).
225
-
226
- ---
227
-
228
- ## Fase 5 — Atribuicao de Owner
229
-
230
- Para cada achado `confirmed` ou `inconclusive`, identificar o dono mais especifico inferivel. Parar na primeira regra que produzir resultado:
231
-
232
- 1. **CODEOWNERS**: buscar `CODEOWNERS`, `.github/CODEOWNERS`, `docs/CODEOWNERS` no repo. Se encontrado, fazer match do `file` do achado contra os padroes (ultimo match vence). Registrar como `"CODEOWNERS: <padrao> → <owner(s)>"`.
233
-
234
- 2. **git log**: executar `git log --format='%an' -n 50 -- "{file}" | sort | uniq -c | sort -rn | head -3`. Registrar como `"top committer: <nome> (<n>/<total> commits recentes); sem entrada CODEOWNERS"`.
235
-
236
- 3. **Fallback de modulo**: registrar como `"componente: <diretorio-raiz do file>/; sem CODEOWNERS ou historico git"`.
237
-
238
- Salvar como `owner_hint` no achado. Para achados `rejected` ou `duplicate`: `owner_hint: null`.
239
-
240
- ### Skills invocados durante a execução do skill
241
-
242
- | Passo | Skill | Condição |
243
- |-------|-------|----------|
244
- | — | Nenhuma — skill autocontida | — |
245
-
246
- ---
247
-
248
- ## Step 2 — Escrever output
249
-
250
- Ler `docs/SECURITY-ARTIFACTS-SCHEMA.md` secao 3 antes de escrever.
251
-
252
- Escrever `.security/outputs/triage.json`. Criar `.security/outputs/` se não existir.
253
-
254
- Salvar `.security/state/triage-meta.json`:
255
-
256
- ```json
257
- {
258
- "triage_date": "<ISO-8601>",
259
- "input_files": ["<path>"],
260
- "total_input": 0,
261
- "confirmed": 0,
262
- "top_finding": "<F-001: titulo>"
263
- }
264
- ```
265
-
266
- ---
267
-
268
- ## Step 3 — Sumario ao usuario
269
-
270
- Apos escrever:
271
-
272
- 1. Path do `.security/outputs/triage.json`.
273
- 2. Tabela: top 5 por `exploitability_rank` (id, titulo, categoria, file:line, impact, rank, owner_hint).
274
- 3. Contadores: `{total_input} input → {duplicates_removed} dedup → {rejected_by_vote} rejeitados por voto → {confirmed} confirmados`.
275
- 4. Achados `inconclusive`: listar ids para revisao humana.
276
- 5. Proximo passo: *"Achados confirmados prontos para cards no $TASK_MANAGER."*
@@ -1,311 +0,0 @@
1
- # Exemplos de Análise - Quality Gate
2
-
3
- Exemplos práticos de validações de tech spec em diferentes cenários.
4
-
5
- ---
6
-
7
- ## Exemplo 1: Task Conforme (Score 100%)
8
-
9
- ### Contexto
10
- Task de implementação de nova funcionalidade com tech spec completa e bem documentada.
11
-
12
- ### Comentário Gerado
13
-
14
- ```markdown
15
- ## 🎯 Quality Gate - Tech Spec
16
-
17
- **Status**: ✅ Conforme
18
- **Score**: 100/100
19
- **Tipo de Card**: Task
20
-
21
- ### ✅ Pontos Positivos
22
- - Descrição clara com contexto do problema e objetivo bem definido
23
- - 5 critérios de aceitação específicos e mensuráveis
24
- - 4 cenários de teste identificados (2 de sucesso + 2 de erro)
25
- - Análise técnica detalhada com stack escolhida (React + TypeScript + Axios)
26
- - Dependências técnicas e de outros cards mapeadas
27
- - Estimativa de complexidade fornecida (M - Médio)
28
- - Riscos identificados e mitigações propostas
29
-
30
- ### 🔧 Recomendações
31
-
32
- Tech spec aprovada! Pode prosseguir para breakdown de subtarefas.
33
-
34
- **Próximos passos**:
35
- 1. Executar `breakdown_spec_tech` para quebrar em subtarefas
36
- 2. Revisar subtarefas geradas
37
- 3. Iniciar implementação
38
-
39
- ### 📚 Referência
40
- Validação baseada em: (processo de quality gate do projeto)
41
-
42
- ---
43
- *Análise realizada pelo Quality Champion*
44
- ```
45
-
46
- ---
47
-
48
- ## Exemplo 2: Spike Bloqueado (Score 30%)
49
-
50
- ### Contexto
51
- Spike de discovery com informações insuficientes - faltam referências críticas.
52
-
53
- ### Comentário Gerado
54
-
55
- ```markdown
56
- ## 🎯 Quality Gate - Tech Spec
57
-
58
- **Status**: 🚫 Não conforme
59
- **Score**: 30/100
60
- **Tipo de Card**: Spike
61
-
62
- ### 🚫 Problemas Identificados
63
-
64
- #### Bloqueantes (Obrigatório corrigir)
65
- - [ ] **Referência de Discovery**: AUSENTE - Não informado onde o discovery será realizado
66
- - **Impacto**: Time não sabe quais documentações/APIs consultar
67
- - **Como corrigir**: Adicione links para:
68
- - Documentação oficial da tecnologia/ferramenta
69
- - APIs ou SDKs a serem investigados
70
- - Exemplos: "Banco Rendimento - https://desenvolvedores.rendimento.com.br/api-portal/"
71
-
72
- - [ ] **Critérios de Conclusão**: Não definido o que caracteriza o spike como concluído
73
- - **Impacto**: Spike pode se estender indefinidamente
74
- - **Como corrigir**: Defina claramente:
75
- - Entregáveis esperados (POC, documento comparativo, análise técnica)
76
- - Perguntas que precisam ser respondidas
77
- - Tempo máximo estimado
78
-
79
- - [ ] **Objetivo**: Muito vago, não especifica as perguntas a serem respondidas
80
- - **Impacto**: Time não sabe o que precisa descobrir
81
- - **Como corrigir**: Liste perguntas específicas, exemplo:
82
- - "A biblioteca X suporta autenticação OAuth2?"
83
- - "Qual o custo de API calls para volume esperado?"
84
- - "É possível fazer cache de respostas?"
85
-
86
- ### 🔧 Recomendações
87
-
88
- **⚠️ Card BLOQUEADO para breakdown**
89
-
90
- Antes de prosseguir, é necessário:
91
-
92
- 1. **Adicionar Referências de Discovery**
93
- - Exemplo para API externa:
94
- ```
95
- ## Referências
96
- - Documentação: https://developer.example.com/docs
97
- - API Reference: https://api.example.com/v2/reference
98
- - SDK Node.js: https://github.com/example/node-sdk
99
- ```
100
-
101
- 2. **Definir Critérios de Conclusão**
102
- - Exemplo:
103
- ```
104
- ## Critérios de Conclusão
105
- - [ ] POC funcional demonstrando integração básica
106
- - [ ] Documento comparativo com alternativas (X vs Y vs Z)
107
- - [ ] Resposta para as 3 perguntas críticas listadas
108
- - **Deadline**: 2 dias úteis
109
- ```
110
-
111
- 3. **Especificar Objetivo**
112
- - Transforme "Investigar solução de pagamento" em:
113
- ```
114
- ## Perguntas a Responder
115
- 1. Qual gateway tem menor taxa de transação?
116
- 2. Qual suporta split de pagamento?
117
- 3. Qual tem melhor documentação e suporte?
118
- ```
119
-
120
- **Após correções**:
121
- - Solicite nova análise executando `quality_gate_tech_spec` novamente
122
- - O card será reavaliado com os novos critérios
123
-
124
- ### 📚 Referência
125
- Validação baseada em: (processo de quality gate do projeto)
126
-
127
- ---
128
- *Análise realizada pelo Quality Champion*
129
- ```
130
-
131
- ---
132
-
133
- ## Exemplo 3: Bug Parcial (Score 70%)
134
-
135
- ### Contexto
136
- Bug report com bom detalhamento mas faltando análise técnica completa.
137
-
138
- ### Comentário Gerado
139
-
140
- ```markdown
141
- ## 🎯 Quality Gate - Tech Spec
142
-
143
- **Status**: ⚠️ Parcialmente conforme
144
- **Score**: 70/100
145
- **Tipo de Card**: Bug
146
-
147
- ### ✅ Pontos Positivos
148
- - Descrição clara do comportamento esperado vs atual
149
- - Passos para reproduzir bem detalhados e numerados
150
- - Dados de teste fornecidos
151
- - Ambiente de ocorrência especificado
152
- - Severidade e prioridade justificadas
153
-
154
- ### 🚫 Problemas Identificados
155
-
156
- #### Melhorias Recomendadas
157
- - [ ] **Análise Técnica**: Causa raiz não identificada
158
- - **Como melhorar**: Adicione seção com:
159
- - Hipótese da causa raiz (mesmo que preliminar)
160
- - Arquivos/componentes possivelmente afetados
161
- - Sugestão de solução
162
- - **Exemplo**:
163
- ```
164
- ## Análise Técnica
165
- **Causa provável**: Race condition no useEffect do componente UserProfile
166
- **Arquivos afetados**: src/components/UserProfile.tsx (linha 45-52)
167
- **Solução proposta**: Adicionar cleanup function e verificar mounted state
168
- ```
169
-
170
- - [ ] **Screenshots/Logs**: Não há evidências visuais
171
- - **Como melhorar**: Anexe screenshots ou logs de console
172
- - Ajuda a confirmar o problema e facilita reprodução
173
-
174
- ### 🔧 Recomendações
175
-
176
- **Decisão**: Card pode prosseguir com ressalvas. Considere adicionar análise técnica para facilitar correção.
177
-
178
- 1. **Priorize análise técnica**: Mesmo que seja hipótese inicial
179
- - Ajuda quem for corrigir a ter um ponto de partida
180
- - Pode ser refinada durante implementação
181
-
182
- 2. **Adicione evidências**: Screenshots ou logs facilitam validação
183
- - Print do comportamento incorreto
184
- - Log de console com erros (se aplicável)
185
-
186
- ### 📚 Referência
187
- Validação baseada em: (processo de quality gate do projeto)
188
-
189
- ---
190
- *Análise realizada pelo Quality Champion*
191
- ```
192
-
193
- ---
194
-
195
- ## Exemplo 4: Task Parcial - Faltam Cenários de Teste (Score 80%)
196
-
197
- ### Contexto
198
- Task bem documentada mas com cobertura de testes incompleta.
199
-
200
- ### Comentário Gerado
201
-
202
- ```markdown
203
- ## 🎯 Quality Gate - Tech Spec
204
-
205
- **Status**: ⚠️ Parcialmente conforme
206
- **Score**: 80/100
207
- **Tipo de Card**: Task
208
-
209
- ### ✅ Pontos Positivos
210
- - Descrição excelente com contexto de negócio
211
- - 4 critérios de aceitação claros e mensuráveis
212
- - Análise técnica detalhada com diagramas
213
- - Dependências bem mapeadas
214
- - Estimativa de complexidade realista
215
-
216
- ### 🚫 Problemas Identificados
217
-
218
- #### Melhorias Recomendadas
219
- - [ ] **Cenários de Teste**: Apenas 1 cenário de sucesso identificado
220
- - **Como melhorar**: Adicione pelo menos mais 2 cenários:
221
- - 1 cenário de erro/exceção
222
- - 1 cenário de edge case
223
- - **Exemplos baseados nesta task**:
224
- ```
225
- ## Cenários de Teste
226
-
227
- ### Sucesso
228
- 1. ✅ Usuário cria conta com todos os dados válidos
229
-
230
- ### Erros e Exceções
231
- 2. Email já cadastrado → Deve exibir erro específico
232
- 3. CPF inválido → Deve validar antes de enviar
233
- 4. Senha fraca → Deve exigir senha forte
234
-
235
- ### Edge Cases
236
- 5. Usuário clica "Criar" múltiplas vezes → Deve prevenir duplicação
237
- 6. Internet cai durante criação → Deve haver retry ou mensagem clara
238
- ```
239
-
240
- ### 🔧 Recomendações
241
-
242
- **Decisão**: Card pode prosseguir, mas cenários de teste melhorariam qualidade.
243
-
244
- 1. **Adicione cenários de erro**: Pensando em:
245
- - Validações de campos
246
- - Erros de API
247
- - Problemas de conectividade
248
-
249
- 2. **Considere edge cases**: O que pode dar errado?
250
- - Múltiplos cliques
251
- - Timeouts
252
- - Dados inválidos ou maliciosos
253
-
254
- **Benefício**: Cenários bem definidos facilitam QA e reduzem bugs em produção.
255
-
256
- ### 📚 Referência
257
- Validação baseada em: (processo de quality gate do projeto)
258
-
259
- ---
260
- *Análise realizada pelo Quality Champion*
261
- ```
262
-
263
- ---
264
-
265
- ## Padrões Observados
266
-
267
- ### Cards Conformes (100%)
268
- - Documentação completa e objetiva
269
- - Todos os critérios obrigatórios atendidos
270
- - Exemplos concretos quando necessário
271
- - Critérios de aceitação mensuráveis
272
- - Cenários de teste abrangentes
273
-
274
- ### Cards Parciais (50-99%)
275
- - **Gaps comuns**:
276
- - Faltam 1-2 cenários de teste
277
- - Análise técnica superficial
278
- - Dependências não completamente mapeadas
279
- - **Sempre podem prosseguir**, mas com ressalvas
280
-
281
- ### Cards Bloqueados (< 50%)
282
- - **Gaps críticos**:
283
- - Spike sem referências de discovery
284
- - Task sem critérios de aceitação
285
- - Bug sem passos para reproduzir
286
- - Descrição vazia ou genérica
287
- - **Não podem prosseguir** até correção
288
-
289
- ---
290
-
291
- ## Dicas para Análise
292
-
293
- ### Como Identificar Bloqueantes
294
- 1. Leia critérios obrigatórios do tipo de card
295
- 2. Verifique presença de cada critério
296
- 3. Se faltam 3+ critérios → Bloqueante automático
297
- 4. Se presente mas vago/incompleto → Avaliar gravidade
298
-
299
- ### Como Calcular Score
300
- 1. Liste todos os critérios obrigatórios (geralmente 4-5)
301
- 2. Marque quais estão atendidos
302
- 3. Calcule: (Atendidos / Total) × 100
303
- 4. Ajuste se houver critério crítico não atendido
304
-
305
- ### Como Escrever Recomendações
306
- - ✅ Seja específico: "Adicione 2 cenários de erro"
307
- - ❌ Evite genérico: "Melhore os testes"
308
- - ✅ Forneça exemplo concreto
309
- - ❌ Evite apenas apontar problema
310
- - ✅ Explique o benefício da correção
311
- - ❌ Evite tom negativo ou desmotivador