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.
- package/AGENTS.md +14 -115
- package/agents/AGENTS.md +11 -23
- package/agents/README.md +25 -129
- package/agents/engineering/data/eng.data-engineer.agent.md +11 -34
- package/agents/engineering/eng.agent.md +14 -24
- package/agents/engineering/eng.bug-hunter.md +7 -15
- package/agents/engineering/eng.dev-code-reviewer.md +1 -1
- package/agents/engineering/eng.frontend.agent.md +3 -7
- package/agents/engineering/eng.rpa.agent.md +2 -8
- package/agents/engineering/qa/eng.qa.quality-strategist.md +6 -11
- package/agents/engineering/qa/eng.qa.test-architect.md +8 -18
- package/agents/engineering/qa/eng.qa.test-planner.md +10 -14
- package/agents/engineering/qa/eng.qa.testing-engineer.md +91 -24
- package/agents/product/prod.discovery-interviewer.md +3 -3
- package/bin/README.md +142 -0
- package/bin/commands/docs-publish.js +105 -141
- package/bin/commands/docs-sync.js +66 -104
- package/bin/commands/info.js +7 -27
- package/bin/commands/init.js +23 -51
- package/bin/commands/install-rtk.js +9 -3
- package/bin/commands/list.js +5 -18
- package/bin/commands/map.js +20 -5
- package/bin/commands/qa-signoff.js +58 -55
- package/bin/commands/tokens.js +14 -17
- package/bin/commands/whoami.js +30 -26
- package/bin/jarvis.js +9 -163
- package/bin/lib/auth/session.js +20 -20
- package/bin/lib/cli/program.js +219 -0
- package/bin/lib/cli/shared-options.js +29 -0
- package/bin/lib/config/constants.js +59 -2
- package/bin/lib/config/ide-config.js +4 -8
- package/bin/lib/core/profile-filter.js +4 -1
- package/bin/lib/core/scanner.js +3 -29
- package/bin/lib/core/sync-engine.js +21 -14
- package/bin/lib/core/token-report.js +12 -2
- package/bin/lib/docs/fetch-file.js +39 -0
- package/bin/lib/docs/publish-file.js +194 -0
- package/bin/lib/docs/redis-cache.js +49 -0
- package/bin/lib/docs/validate-frontmatter.js +9 -39
- package/bin/lib/env-loader.js +11 -34
- package/bin/lib/flow-map/parse.js +11 -5
- package/bin/lib/flow-map/render.js +5 -2
- package/bin/lib/flow-map/tree.js +59 -10
- package/bin/lib/tasks/comment.js +40 -35
- package/bin/lib/utils/frontmatter.js +57 -0
- package/bin/lib/utils/git-parser.js +4 -6
- package/bin/lib/utils/npmrc-parser.js +6 -13
- package/bin/lib/utils/paths.js +2 -4
- package/bin/lib/utils/ui.js +3 -9
- package/bin/lib/vcs/api.js +25 -41
- package/bin/lib/vcs/create-issue.js +49 -33
- package/bin/lib/vcs/create-merge.js +47 -31
- package/bin/lib/vcs/fetch-raw.js +35 -23
- package/package.json +14 -5
- package/rules/engineering/eng-rules.md +1 -1
- package/rules/engineering/eng-security-rules.md +18 -16
- package/rules/engineering/eng.bump-rules.md +3 -2
- package/rules/engineering/eng.docs-scraping-rules.md +4 -4
- package/rules/engineering/eng.integrations-rules.md +3 -3
- package/rules/engineering/eng.skills-rules.md +1 -1
- package/rules/engineering/eng.specializations-rules.md +18 -4
- package/rules/engineering/frontend/eng.frontend-rules.md +1 -4
- package/rules/engineering/qa/eng.qa.cypress-standards-rules.md +1 -1
- package/rules/engineering/rpa/eng.rpa-rules.md +4 -9
- package/skills/AGENTS.md +52 -87
- package/skills/SKILLS-ROADMAP.md +47 -128
- package/skills/eng-ai/SKILL.md +270 -0
- package/skills/eng-ai/references/1-fundamentos-ml.md +24 -0
- package/skills/eng-ai/references/10-arquitetura-solucoes-ia.md +24 -0
- package/skills/eng-ai/references/11-governanca-ia.md +24 -0
- package/skills/eng-ai/references/12-seguranca-ia-responsavel.md +25 -0
- package/skills/eng-ai/references/2-matematica-estatistica.md +24 -0
- package/skills/eng-ai/references/3-dados-para-ia.md +24 -0
- package/skills/eng-ai/references/4-deep-learning-fundacionais.md +24 -0
- package/skills/eng-ai/references/5-llms-chatbots-agentes-rag.md +25 -0
- package/skills/eng-ai/references/6-avaliacao-experimentacao.md +24 -0
- package/skills/eng-ai/references/7-engenharia-sistemas-ia.md +24 -0
- package/skills/eng-ai/references/8-mlops-plataforma.md +24 -0
- package/skills/eng-ai/references/9-produto-ia.md +24 -0
- package/skills/eng-ai/references/especializacoes.md +17 -0
- package/skills/eng-automation/SKILL.md +290 -0
- package/skills/eng-automation/references/1-fundamentos-automacao.md +25 -0
- package/skills/eng-automation/references/10-ingestao-dados.md +25 -0
- package/skills/eng-automation/references/11-captcha-antibot.md +25 -0
- package/skills/eng-automation/references/12-limites-taxa-sessoes.md +25 -0
- package/skills/eng-automation/references/13-agendamento-orquestracao.md +24 -0
- package/skills/eng-automation/references/14-retentativa-erros.md +25 -0
- package/skills/eng-automation/references/15-autenticacao-credenciais.md +24 -0
- package/skills/eng-automation/references/16-observabilidade-confiabilidade.md +24 -0
- package/skills/eng-automation/references/2-aquisicao-dados.md +25 -0
- package/skills/eng-automation/references/3-automacao-navegador.md +24 -0
- package/skills/eng-automation/references/4-scraping-crawling.md +25 -0
- package/skills/eng-automation/references/5-apis-rest-graphql-soap.md +26 -0
- package/skills/eng-automation/references/6-webhooks-integracao.md +25 -0
- package/skills/eng-automation/references/7-rpa.md +25 -0
- package/skills/eng-automation/references/8-extracao-estruturada.md +25 -0
- package/skills/eng-automation/references/9-extracao-documentos.md +25 -0
- package/skills/eng-automation/references/especializacoes.md +18 -0
- package/skills/eng-backend-nestjs/SKILL.md +1 -1
- package/skills/eng-data/SKILL.md +271 -0
- package/skills/eng-data/references/1-fundamentos-dados.md +24 -0
- package/skills/eng-data/references/10-ciencia-dados.md +24 -0
- package/skills/eng-data/references/11-dataops-plataforma.md +24 -0
- package/skills/eng-data/references/12-seguranca-privacidade.md +24 -0
- package/skills/eng-data/references/2-modelagem-dados.md +24 -0
- package/skills/eng-data/references/3-bancos-dados.md +24 -0
- package/skills/eng-data/references/4-arquitetura-dados.md +24 -0
- package/skills/eng-data/references/5-pipelines-integracao.md +24 -0
- package/skills/eng-data/references/6-qualidade-dados.md +24 -0
- package/skills/eng-data/references/7-governanca-metadados.md +24 -0
- package/skills/eng-data/references/8-estatistica-analise.md +24 -0
- package/skills/eng-data/references/9-analytics-bi.md +24 -0
- package/skills/eng-data/references/especializacoes.md +20 -0
- package/skills/eng-frontend/SKILL.md +12 -5
- package/skills/eng-frontend/references/13-design-system.md +48 -0
- package/skills/eng-frontend/references/14-microfrontend.md +46 -0
- package/skills/eng-global-task-comment/SKILL.md +2 -2
- package/skills/eng-platform/SKILL.md +331 -0
- package/skills/eng-platform/references/1-fundamentos-sistemas.md +23 -0
- package/skills/eng-platform/references/10-resiliencia-arquitetura.md +24 -0
- package/skills/eng-platform/references/11-plataforma-devex.md +24 -0
- package/skills/eng-platform/references/12-finops-custos.md +24 -0
- package/skills/eng-platform/references/13-seguranca-fundamentos.md +26 -0
- package/skills/eng-platform/references/14-profiling-performance.md +23 -0
- package/skills/eng-platform/references/15-testes-carga-chaos.md +23 -0
- package/skills/eng-platform/references/16-cache-multicamada.md +22 -0
- package/skills/eng-platform/references/2-redes.md +23 -0
- package/skills/eng-platform/references/3-cloud.md +24 -0
- package/skills/eng-platform/references/4-iac-automacao.md +24 -0
- package/skills/eng-platform/references/5-containers-orquestracao.md +25 -0
- package/skills/eng-platform/references/6-cicd-entrega.md +24 -0
- package/skills/eng-platform/references/7-observabilidade.md +24 -0
- package/skills/eng-platform/references/8-confiabilidade-sre.md +24 -0
- package/skills/eng-platform/references/9-seguranca-infra.md +26 -0
- package/skills/eng-platform/references/especializacoes.md +34 -0
- package/skills/eng-qa/SKILL.md +283 -0
- package/skills/eng-qa/references/1-fundamentos-qualidade.md +25 -0
- package/skills/eng-qa/references/10-confiabilidade.md +25 -0
- package/skills/eng-qa/references/11-seguranca.md +24 -0
- package/skills/eng-qa/references/12-acessibilidade.md +24 -0
- package/skills/eng-qa/references/13-dados-testes.md +24 -0
- package/skills/eng-qa/references/14-gestao-testes-defeitos.md +25 -0
- package/skills/eng-qa/references/15-arquitetura-qa.md +25 -0
- package/skills/eng-qa/references/2-estrategia-planejamento.md +25 -0
- package/skills/eng-qa/references/3-design-testes.md +25 -0
- package/skills/eng-qa/references/4-manual-exploratorio.md +24 -0
- package/skills/eng-qa/references/5-automacao-testes.md +25 -0
- package/skills/eng-qa/references/6-api-integracao.md +25 -0
- package/skills/eng-qa/references/7-contrato.md +24 -0
- package/skills/eng-qa/references/8-interface-compat-mobile.md +24 -0
- package/skills/eng-qa/references/9-performance.md +24 -0
- package/skills/eng-qa/references/especializacoes.md +29 -0
- package/skills/eng-qa-planner/SKILL.md +264 -0
- package/skills/jarvis-context-detect/SKILL.md +1 -1
- package/skills/jarvis-context-detect/assets/context-profile-template.md +1 -1
- package/skills/jarvis-create-specialization/SKILL.md +8 -0
- package/skills/jarvis-docs-central/README.md +31 -28
- package/skills/jarvis-docs-central/SKILL.md +5 -5
- package/skills/jarvis-init/SKILL.md +8 -8
- package/skills/jarvis-init/assets/passo-adicionar-stacks.md +47 -18
- package/skills/jarvis-list-specializations/SKILL.md +30 -17
- package/skills/jarvis-report-issue/SKILL.md +1 -1
- package/taxonomy.md +4 -16
- package/templates/ENV-template.md +10 -2
- package/templates/engineering/qa/qa.sprint-plan-template.md +1 -1
- package/workflows/AGENTS.md +3 -1
- package/workflows/README.md +0 -10
- package/workflows/engineering/data/data.new-pipeline.md +6 -5
- package/workflows/engineering/eng.bug-audit.md +4 -14
- package/workflows/engineering/eng.debug.md +4 -20
- package/workflows/engineering/eng.pr.md +10 -28
- package/workflows/engineering/eng.pre-pr.md +11 -19
- package/workflows/engineering/eng.review.md +7 -13
- package/workflows/engineering/eng.rpa.robot.md +3 -9
- package/workflows/engineering/eng.start.md +16 -11
- package/workflows/engineering/eng.work.md +10 -18
- package/workflows/engineering/qa/eng.qa-sprint-planning.md +1 -1
- package/workflows/product/prod.spec.discovery.md +2 -2
- package/workflows/warm-up.md +35 -63
- package/agents/engineering/eng.cybersecurity.agent.md +0 -486
- package/agents/engineering/qa/eng.qa.cypress-specialist.md +0 -112
- package/bin/lib/docs/fetch-file.sh +0 -41
- package/bin/lib/docs/publish-file.sh +0 -284
- package/rules/engineering/qa/eng.qa.exploratory-session-rules.md +0 -137
- package/rules/engineering/qa/eng.qa.quality-gate-scoring-rules.md +0 -181
- package/rules/engineering/qa/eng.qa.tech-spec-validation-criteria-rules.md +0 -120
- package/skills/eng-ai-engineer/SKILL.md +0 -303
- package/skills/eng-data-bi/SKILL.md +0 -206
- package/skills/eng-data-debug/SKILL.md +0 -314
- package/skills/eng-data-engineer/SKILL.md +0 -266
- package/skills/eng-data-onboard/SKILL.md +0 -317
- package/skills/eng-data-orchestrator/SKILL.md +0 -433
- package/skills/eng-devops-performance-engineer/SKILL.md +0 -319
- package/skills/eng-frontend-design-system/SKILL.md +0 -155
- package/skills/eng-frontend-design-system/references/1-estrutura-pacote.md +0 -57
- package/skills/eng-frontend-design-system/references/2-tokens.md +0 -116
- package/skills/eng-frontend-design-system/references/3-componentes.md +0 -165
- package/skills/eng-frontend-design-system/references/4-storybook.md +0 -85
- package/skills/eng-frontend-design-system/references/5-auditoria-versionamento.md +0 -76
- package/skills/eng-frontend-microfrontend/SKILL.md +0 -164
- package/skills/eng-frontend-microfrontend/references/1-criando-remote.md +0 -109
- package/skills/eng-frontend-microfrontend/references/2-configurando-shell.md +0 -70
- package/skills/eng-frontend-microfrontend/references/3-contratos-interface.md +0 -73
- package/skills/eng-frontend-microfrontend/references/4-shared-dependencies.md +0 -48
- package/skills/eng-frontend-microfrontend/references/5-event-bus.md +0 -59
- package/skills/eng-frontend-microfrontend/references/6-monorepo-deploy.md +0 -77
- package/skills/eng-frontend-microfrontend/references/7-troubleshooting.md +0 -45
- package/skills/eng-global-browser-extension-builder/SKILL.md +0 -392
- package/skills/eng-global-jira-comment/SKILL.md +0 -27
- package/skills/eng-qa-a11y-audit/SKILL.md +0 -276
- package/skills/eng-qa-bug-report/SKILL.md +0 -877
- package/skills/eng-qa-bug-report/TASK_MANAGERS.md +0 -138
- package/skills/eng-qa-bug-report/references/1-integracao-task-managers.md +0 -148
- package/skills/eng-qa-bug-report/references/2-exemplos-de-uso.md +0 -46
- package/skills/eng-qa-bug-report/references/3-bug-to-test.md +0 -45
- package/skills/eng-qa-cypress-e2e/SKILL.md +0 -184
- package/skills/eng-qa-dev-guide/SKILL.md +0 -173
- package/skills/eng-qa-e2e/SKILL.md +0 -407
- package/skills/eng-qa-e2e-spec-writer/SKILL.md +0 -329
- package/skills/eng-qa-exploratory/SKILL.md +0 -196
- package/skills/eng-qa-gate/SKILL.md +0 -377
- package/skills/eng-qa-gate/assets/checklist-validacao.md +0 -291
- package/skills/eng-qa-graphql-contract/SKILL.md +0 -263
- package/skills/eng-qa-quality-report/SKILL.md +0 -419
- package/skills/eng-qa-test-plan/SKILL.md +0 -473
- package/skills/eng-qa-testsprite/SKILL.md +0 -332
- package/skills/eng-qa-testsprite/references/testsprite-mcp.md +0 -224
- package/skills/eng-qa-unit-test/SKILL.md +0 -478
- package/skills/eng-scraper/SKILL.md +0 -260
- package/skills/eng-scraper/references/1-puppeteer.md +0 -140
- package/skills/eng-scraper/references/2-playwright-cheerio-pdf.md +0 -82
- package/skills/eng-scraper/references/3-anti-bot.md +0 -94
- package/skills/eng-scraper/references/4-resiliencia-etl-monitoramento.md +0 -137
- package/skills/eng-scraper-robot-builder/SKILL.md +0 -377
- package/skills/eng-security-cybersecurity/SKILL.md +0 -250
- package/skills/eng-security-cybersecurity/references/1-owasp-top-10.md +0 -331
- package/skills/eng-security-cybersecurity/references/2-secrets-management.md +0 -31
- package/skills/eng-security-cybersecurity/references/3-input-validation.md +0 -43
- package/skills/eng-security-cybersecurity/references/4-compliance.md +0 -20
- package/skills/eng-security-patch/SKILL.md +0 -388
- package/skills/eng-security-threat-model/SKILL.md +0 -171
- package/skills/eng-security-triage/SKILL.md +0 -276
- package/templates/engineering/qa/eng.qa.quality-gate-examples-template.md +0 -311
- package/templates/engineering/qa/eng.qa.quality-gate-report-template.md +0 -249
- package/templates/engineering/qa/qa.cypress-test-template.md +0 -172
- package/templates/engineering/qa/qa.exploratory-session-template.md +0 -148
- package/templates/engineering/qa/qa.quality-report-template.md +0 -130
- package/workflows/engineering/eng.security-audit.md +0 -319
- package/workflows/engineering/eng.security-incident.md +0 -281
- package/workflows/engineering/eng.security-pipeline.md +0 -219
- package/workflows/engineering/eng.security-review.md +0 -241
- package/workflows/engineering/qa/eng.qa-dev-quality-guide.md +0 -57
- package/workflows/engineering/qa/eng.qa-e2e-test-generation.md +0 -57
- package/workflows/engineering/qa/eng.qa-exploratory-session.md +0 -68
- package/workflows/engineering/qa/eng.qa-quality-gate-validation.md +0 -209
- package/workflows/engineering/qa/eng.qa-quality-report.md +0 -85
- /package/skills/{eng-qa-test-plan → eng-qa-planner}/assets/test-coverage-template.md +0 -0
- /package/skills/{eng-qa-test-plan → eng-qa-planner}/assets/test-patterns.md +0 -0
- /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
|