jarvis-ai-framework 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +416 -0
- package/LICENSE +21 -0
- package/README.md +190 -0
- package/agents/AGENTS.md +234 -0
- package/agents/README.md +309 -0
- package/agents/engineering/data/eng.data-engineer.agent.md +309 -0
- package/agents/engineering/eng.agent.md +303 -0
- package/agents/engineering/eng.bug-hunter.md +386 -0
- package/agents/engineering/eng.cybersecurity.agent.md +503 -0
- package/agents/engineering/eng.dev-code-reviewer.md +148 -0
- package/agents/engineering/eng.docs-writer.md +152 -0
- package/agents/engineering/eng.frontend.agent.md +117 -0
- package/agents/engineering/eng.rpa.agent.md +215 -0
- package/agents/engineering/eng.tech-analyst.agent.md +102 -0
- package/agents/engineering/eng.ux-designer.agent.md +193 -0
- package/agents/engineering/qa/eng.qa.cypress-specialist.md +109 -0
- package/agents/engineering/qa/eng.qa.quality-champion-task-agent.md +85 -0
- package/agents/engineering/qa/eng.qa.quality-strategist.md +111 -0
- package/agents/engineering/qa/eng.qa.test-architect.md +400 -0
- package/agents/engineering/qa/eng.qa.test-planner.md +477 -0
- package/agents/engineering/qa/eng.qa.testing-engineer.md +339 -0
- package/agents/product/prod.pm-checker.md +52 -0
- package/bin/commands/docs-publish.js +184 -0
- package/bin/commands/docs-sync.js +139 -0
- package/bin/commands/info.js +87 -0
- package/bin/commands/init.js +237 -0
- package/bin/commands/install-rtk.js +90 -0
- package/bin/commands/list.js +48 -0
- package/bin/commands/qa-signoff.js +112 -0
- package/bin/commands/whoami.js +43 -0
- package/bin/jarvis.js +159 -0
- package/bin/lib/auth/session.js +56 -0
- package/bin/lib/config/constants.js +123 -0
- package/bin/lib/config/ide-config.js +233 -0
- package/bin/lib/core/scanner.js +124 -0
- package/bin/lib/core/sync-engine.js +551 -0
- package/bin/lib/docs/fetch-file.sh +41 -0
- package/bin/lib/docs/publish-file.sh +284 -0
- package/bin/lib/docs/validate-frontmatter.js +157 -0
- package/bin/lib/env-loader.js +198 -0
- package/bin/lib/tasks/comment.js +131 -0
- package/bin/lib/utils/git-parser.js +145 -0
- package/bin/lib/utils/logger.js +104 -0
- package/bin/lib/utils/npmrc-parser.js +106 -0
- package/bin/lib/utils/paths.js +55 -0
- package/bin/lib/utils/ui.js +59 -0
- package/bin/lib/vcs/api.js +312 -0
- package/bin/lib/vcs/create-issue.js +43 -0
- package/bin/lib/vcs/create-merge.js +43 -0
- package/bin/lib/vcs/fetch-raw.js +30 -0
- package/bin/postinstall.js +41 -0
- package/members.md +25 -0
- package/package.json +55 -0
- package/rules/AGENTS.md +205 -0
- package/rules/engineering/data/data-rules.md +200 -0
- package/rules/engineering/eng-rules.md +243 -0
- package/rules/engineering/eng-security-rules.md +186 -0
- package/rules/engineering/eng.breakdown-subtasks-rules.md +585 -0
- package/rules/engineering/eng.bump-rules.md +27 -0
- package/rules/engineering/eng.docs-scraping-rules.md +64 -0
- package/rules/engineering/eng.downstream-flow-rules.md +297 -0
- package/rules/engineering/eng.integrations-rules.md +73 -0
- package/rules/engineering/eng.plan-rules.md +333 -0
- package/rules/engineering/eng.pr-rules.md +359 -0
- package/rules/engineering/eng.pre-pr-rules.md +103 -0
- package/rules/engineering/eng.start-rules.md +246 -0
- package/rules/engineering/eng.tech-spec-rules.md +968 -0
- package/rules/engineering/eng.work-rules.md +312 -0
- package/rules/engineering/frontend/eng.frontend-rules.md +147 -0
- package/rules/engineering/qa/eng.qa.cypress-standards-rules.md +259 -0
- package/rules/engineering/qa/eng.qa.exploratory-session-rules.md +137 -0
- package/rules/engineering/qa/eng.qa.quality-gate-scoring-rules.md +181 -0
- package/rules/engineering/qa/eng.qa.tech-spec-validation-criteria-rules.md +120 -0
- package/rules/engineering/rpa/eng.rpa-rules.md +230 -0
- package/rules/product/README.md +24 -0
- package/rules/product/prod-rules.md +151 -0
- package/rules/rtk-rules.md +68 -0
- package/skills/AGENTS.md +290 -0
- package/skills/SKILLS-ROADMAP.md +333 -0
- package/skills/churn-audit/SKILL.md +385 -0
- package/skills/context-detect/SKILL.md +399 -0
- package/skills/context-detect/assets/context-profile-template.md +127 -0
- package/skills/docs-central/README.md +310 -0
- package/skills/docs-central/SKILL.md +423 -0
- package/skills/docs-index/SKILL.md +377 -0
- package/skills/eng-ai-engineer/SKILL.md +296 -0
- package/skills/eng-arch-c4/SKILL.md +358 -0
- package/skills/eng-arch-c4/assets/example-code.md +189 -0
- package/skills/eng-arch-c4/assets/example-component.md +105 -0
- package/skills/eng-arch-c4/assets/example-container.md +104 -0
- package/skills/eng-arch-c4/assets/example-context.md +81 -0
- package/skills/eng-backend/SKILL.md +776 -0
- package/skills/eng-browser-extension-builder/SKILL.md +385 -0
- package/skills/eng-cybersecurity/SKILL.md +645 -0
- package/skills/eng-data-bi/SKILL.md +199 -0
- package/skills/eng-data-debug/SKILL.md +307 -0
- package/skills/eng-data-engineer/SKILL.md +256 -0
- package/skills/eng-data-onboard/SKILL.md +310 -0
- package/skills/eng-data-orchestrator/SKILL.md +426 -0
- package/skills/eng-design-system/SKILL.md +619 -0
- package/skills/eng-docs-write/SKILL.md +312 -0
- package/skills/eng-frontend/SKILL.md +913 -0
- package/skills/eng-jira-comment/SKILL.md +17 -0
- package/skills/eng-microfrontend/SKILL.md +602 -0
- package/skills/eng-ms-trace/SKILL.md +469 -0
- package/skills/eng-nestjs/SKILL.md +791 -0
- package/skills/eng-performance-engineer/SKILL.md +312 -0
- package/skills/eng-pr/SKILL.md +339 -0
- package/skills/eng-qa-a11y-audit/SKILL.md +269 -0
- package/skills/eng-qa-bug-report/SKILL.md +1088 -0
- package/skills/eng-qa-bug-report/TASK_MANAGERS.md +138 -0
- package/skills/eng-qa-cypress-e2e/SKILL.md +177 -0
- package/skills/eng-qa-dev-guide/SKILL.md +164 -0
- package/skills/eng-qa-e2e/SKILL.md +400 -0
- package/skills/eng-qa-e2e-spec-writer/SKILL.md +322 -0
- package/skills/eng-qa-exploratory/SKILL.md +188 -0
- package/skills/eng-qa-gate/SKILL.md +370 -0
- package/skills/eng-qa-gate/assets/checklist-validacao.md +291 -0
- package/skills/eng-qa-graphql-contract/SKILL.md +256 -0
- package/skills/eng-qa-quality-report/SKILL.md +412 -0
- package/skills/eng-qa-test-plan/SKILL.md +466 -0
- package/skills/eng-qa-test-plan/assets/test-coverage-template.md +92 -0
- package/skills/eng-qa-test-plan/assets/test-patterns.md +178 -0
- package/skills/eng-qa-testsprite/SKILL.md +325 -0
- package/skills/eng-qa-testsprite/references/testsprite-mcp.md +224 -0
- package/skills/eng-qa-unit-test/SKILL.md +471 -0
- package/skills/eng-rabbitmq/SKILL.md +661 -0
- package/skills/eng-scraper/SKILL.md +683 -0
- package/skills/eng-scraper-robot-builder/SKILL.md +370 -0
- package/skills/eng-security-patch/SKILL.md +378 -0
- package/skills/eng-security-triage/SKILL.md +266 -0
- package/skills/eng-task-comment/SKILL.md +60 -0
- package/skills/eng-tech-analyst/SKILL.md +529 -0
- package/skills/eng-threat-model/SKILL.md +161 -0
- package/skills/init-jarvis/SKILL.md +1304 -0
- package/skills/init-jarvis/assets/mcp-configs.md +389 -0
- package/skills/init-jarvis/assets/onboarding-checklist.md +104 -0
- package/skills/init-jarvis/assets/setup-guide.md +360 -0
- package/skills/lovable-prompt-generator/SKILL.md +304 -0
- package/skills/prod-roadmap-report/README.md +303 -0
- package/skills/prod-roadmap-report/SKILL.md +198 -0
- package/skills/prod-roadmap-report/commands/status.compiled.single.team.md +23 -0
- package/skills/prod-roadmap-report/commands/status.list.projects.md +17 -0
- package/skills/prod-roadmap-report/commands/status.memory.md +192 -0
- package/skills/prod-roadmap-report/commands/status.roadmap.preview.md +94 -0
- package/skills/prod-roadmap-report/references/detailed-guide.md +236 -0
- package/skills/prod-roadmap-report/rules/detailed-guide.md +237 -0
- package/skills/prod-roadmap-report/rules/status-report-rules.md +44 -0
- package/skills/prod-roadmap-report/templates/template-multiple-teams-compiled-status.md +53 -0
- package/skills/prod-roadmap-report/templates/template-projects-list.md +23 -0
- package/skills/prod-roadmap-report/templates/template-single-team-compiled-status.md +60 -0
- package/skills/prod-roadmap-report/templates/template-single-team-status.md +49 -0
- package/skills/prod-specs/SKILL.md +108 -0
- package/skills/prod-specs/references/prod.spec.clarify.md +176 -0
- package/skills/prod-specs/references/prod.spec.epic.md +107 -0
- package/skills/prod-specs/references/prod.spec.frd.md +135 -0
- package/skills/prod-specs/references/prod.spec.issue.md +145 -0
- package/skills/prod-specs/references/prod.spec.prd.md +118 -0
- package/skills/prod-specs/rules/prod-spec-rules.md +186 -0
- package/skills/prod-specs/templates/prod-breakdown-template.md +136 -0
- package/skills/prod-specs/templates/prod-epic-template.md +76 -0
- package/skills/prod-specs/templates/prod-frd-template.md +172 -0
- package/skills/prod-specs/templates/prod-issue-template.md +68 -0
- package/skills/prod-specs/templates/prod-prd-full-template.md +159 -0
- package/skills/prod-specs/templates/prod-prd-template.md +173 -0
- package/skills/prod-specs-update/SKILL.md +272 -0
- package/skills/report-issue/SKILL.md +156 -0
- package/taxonomy.md +270 -0
- package/templates/AGENTS.md +189 -0
- package/templates/CDD aplicado a Prompts.md +182 -0
- package/templates/ENV-template.md +187 -0
- package/templates/engineering/AGENTS-template.md +71 -0
- package/templates/engineering/ARD-template.md +193 -0
- package/templates/engineering/CONTACTS-template.md +135 -0
- package/templates/engineering/PR-template.md +40 -0
- package/templates/engineering/RFC-Playbook.md +325 -0
- package/templates/engineering/RFC-template.md +199 -0
- package/templates/engineering/architecture-template.md +277 -0
- package/templates/engineering/breakdown-subtasks-template.md +582 -0
- package/templates/engineering/c4-model-template.md +516 -0
- package/templates/engineering/data-contract-template.md +135 -0
- package/templates/engineering/data-pipeline-template.md +163 -0
- package/templates/engineering/plan-template.md +255 -0
- package/templates/engineering/qa/eng.qa.quality-gate-examples-template.md +311 -0
- package/templates/engineering/qa/eng.qa.quality-gate-report-template.md +249 -0
- package/templates/engineering/qa/qa.cypress-test-template.md +172 -0
- package/templates/engineering/qa/qa.exploratory-session-template.md +148 -0
- package/templates/engineering/qa/qa.quality-report-template.md +130 -0
- package/templates/engineering/qa/qa.release-signoff-template.md +54 -0
- package/templates/engineering/qa/qa.sprint-plan-template.md +49 -0
- package/templates/engineering/swagger-template.md +145 -0
- package/templates/engineering/tech-spec-template.md +497 -0
- package/templates/engineering/work-progress-template.md +155 -0
- package/workflows/AGENTS.md +240 -0
- package/workflows/README.md +160 -0
- package/workflows/all-tools.md +11 -0
- package/workflows/engineering/data/data.contract.md +202 -0
- package/workflows/engineering/data/data.new-pipeline.md +234 -0
- package/workflows/engineering/eng.breakdown-subtasks.md +420 -0
- package/workflows/engineering/eng.bug-audit.md +591 -0
- package/workflows/engineering/eng.build-tech-spec.md +1116 -0
- package/workflows/engineering/eng.create-ard-from-code.md +259 -0
- package/workflows/engineering/eng.create-ard.md +382 -0
- package/workflows/engineering/eng.create-rfc.md +245 -0
- package/workflows/engineering/eng.debug.md +479 -0
- package/workflows/engineering/eng.docs.md +40 -0
- package/workflows/engineering/eng.light-arch.md +84 -0
- package/workflows/engineering/eng.plan.md +213 -0
- package/workflows/engineering/eng.pr.md +466 -0
- package/workflows/engineering/eng.pre-pr.md +167 -0
- package/workflows/engineering/eng.review.md +185 -0
- package/workflows/engineering/eng.rpa.robot.md +342 -0
- package/workflows/engineering/eng.security-audit.md +312 -0
- package/workflows/engineering/eng.security-incident.md +275 -0
- package/workflows/engineering/eng.security-pipeline.md +210 -0
- package/workflows/engineering/eng.security-review.md +235 -0
- package/workflows/engineering/eng.start.md +494 -0
- package/workflows/engineering/eng.work.md +558 -0
- package/workflows/engineering/frontend/eng.frontend-component.md +190 -0
- package/workflows/engineering/frontend/eng.frontend-perf-audit.md +375 -0
- package/workflows/engineering/frontend/eng.frontend-review.md +185 -0
- package/workflows/engineering/qa/eng.qa-dev-quality-guide.md +51 -0
- package/workflows/engineering/qa/eng.qa-e2e-test-generation.md +51 -0
- package/workflows/engineering/qa/eng.qa-exploratory-session.md +60 -0
- package/workflows/engineering/qa/eng.qa-quality-gate-validation.md +202 -0
- package/workflows/engineering/qa/eng.qa-quality-report.md +83 -0
- package/workflows/engineering/qa/eng.qa-refinement-entry.md +83 -0
- package/workflows/engineering/qa/eng.qa-release-signoff.md +170 -0
- package/workflows/engineering/qa/eng.qa-sprint-planning.md +100 -0
- package/workflows/engineering/ta/eng.ta.atendimento.md +93 -0
- package/workflows/product/prod.roadmap.preview.md +110 -0
- package/workflows/product/prod.spec.breakdown.md +163 -0
- package/workflows/product/prod.spec.clarify.md +178 -0
- package/workflows/product/prod.spec.epic.md +154 -0
- package/workflows/product/prod.spec.frd.md +96 -0
- package/workflows/product/prod.spec.issue.md +145 -0
- package/workflows/product/prod.spec.md +60 -0
- package/workflows/product/prod.spec.prd.md +100 -0
- package/workflows/taxonomy.md +92 -0
- package/workflows/warm-up.md +574 -0
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
# Pipeline: {{NOME_DO_PIPELINE}}
|
|
2
|
+
|
|
3
|
+
> **Versão:** 1.0 | **Owner:** {{EMAIL_OWNER}} | **Criado em:** {{DATA}}
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Metadados
|
|
8
|
+
|
|
9
|
+
| Campo | Valor |
|
|
10
|
+
|-------|-------|
|
|
11
|
+
| **Nome** | {{NOME_DO_PIPELINE}} |
|
|
12
|
+
| **Domínio** | {{DOMINIO}} (ex: vendas, clientes, financeiro, operacional) |
|
|
13
|
+
| **Camada destino** | `bronze` / `silver` / `gold` |
|
|
14
|
+
| **Owner** | {{EMAIL_OWNER}} |
|
|
15
|
+
| **Squad requisitante** | {{SQUAD}} (se aplicável) |
|
|
16
|
+
| **Criado em** | {{DATA}} |
|
|
17
|
+
| **Última atualização** | {{DATA}} |
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Descrição
|
|
22
|
+
|
|
23
|
+
> O que esse pipeline faz em 2-3 frases. Qual problema ele resolve? Quem consome os dados?
|
|
24
|
+
|
|
25
|
+
{{DESCRICAO}}
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Fonte de Dados
|
|
30
|
+
|
|
31
|
+
| Campo | Valor |
|
|
32
|
+
|-------|-------|
|
|
33
|
+
| **Sistema de origem** | {{SISTEMA}} (ex: MySQL, API externa, S3 bronze) |
|
|
34
|
+
| **Tabela / endpoint** | {{TABELA_OU_ENDPOINT}} |
|
|
35
|
+
| **Tipo de extração** | Full load / Incremental por `{{CAMPO_INCREMENTAL}}` |
|
|
36
|
+
| **Volume estimado** | {{VOLUME}} (ex: ~50k rows/dia) |
|
|
37
|
+
| **Owner dos dados de origem** | {{SQUAD_OWNER_FONTE}} |
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Destino
|
|
42
|
+
|
|
43
|
+
| Campo | Valor |
|
|
44
|
+
|-------|-------|
|
|
45
|
+
| **Tabela destino** | `{{CAMADA}}.{{NOME_TABELA}}` |
|
|
46
|
+
| **Localização S3** | `s3://YOUR-DATA-LAKE/{{CAMADA}}/{{DOMINIO}}/{{NOME_TABELA}}/` |
|
|
47
|
+
| **Particionamento** | `data_referencia=YYYY-MM-DD` |
|
|
48
|
+
| **Formato** | Parquet / CSV / JSON |
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## Frequência e SLA
|
|
53
|
+
|
|
54
|
+
| Campo | Valor |
|
|
55
|
+
|-------|-------|
|
|
56
|
+
| **Frequência** | {{FREQUENCIA}} (ex: diário 06h, horário, sob demanda) |
|
|
57
|
+
| **SLA de entrega** | {{SLA}} (ex: dados disponíveis até 07h) |
|
|
58
|
+
| **Janela de reprocessamento** | {{JANELA}} (ex: últimos 7 dias) |
|
|
59
|
+
| **Orquestrador** | AWS Glue / Airflow DAG: `{{NOME_DAG}}` |
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## Diagrama de Fluxo
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
{{SISTEMA_ORIGEM}}
|
|
67
|
+
│
|
|
68
|
+
▼ (extração)
|
|
69
|
+
bronze.{{NOME_TABELA_BRONZE}}
|
|
70
|
+
│
|
|
71
|
+
▼ (limpeza / tipagem)
|
|
72
|
+
silver.{{NOME_TABELA_SILVER}}
|
|
73
|
+
│
|
|
74
|
+
▼ (modelagem / agregação)
|
|
75
|
+
gold.{{NOME_TABELA_GOLD}}
|
|
76
|
+
│
|
|
77
|
+
▼ (consumo)
|
|
78
|
+
Metabase / Squad {{SQUAD_REQUISITANTE}}
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Schema de Entrada
|
|
84
|
+
|
|
85
|
+
> Schema da fonte de dados conforme extraído.
|
|
86
|
+
|
|
87
|
+
| Campo | Tipo | Nulável | Descrição |
|
|
88
|
+
|-------|------|---------|-----------|
|
|
89
|
+
| `{{campo}}` | `{{tipo}}` | Sim/Não | {{descricao}} |
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Schema de Saída
|
|
94
|
+
|
|
95
|
+
> Schema da tabela destino após transformação.
|
|
96
|
+
|
|
97
|
+
| Campo | Tipo | Nulável | Descrição |
|
|
98
|
+
|-------|------|---------|-----------|
|
|
99
|
+
| `id_{{entidade}}` | `string` | Não | Chave primária |
|
|
100
|
+
| `data_referencia` | `date` | Não | Data de referência da partição |
|
|
101
|
+
| `ingested_at` | `timestamp` | Não | Timestamp de ingestão |
|
|
102
|
+
| `source_system` | `string` | Não | Sistema de origem |
|
|
103
|
+
| `{{campo}}` | `{{tipo}}` | Sim/Não | {{descricao}} |
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Regras de Qualidade (Great Expectations)
|
|
108
|
+
|
|
109
|
+
| Check | Tipo | Configuração |
|
|
110
|
+
|-------|------|-------------|
|
|
111
|
+
| Volume mínimo | `row_count >= 1` | Bloqueia promoção se falhar |
|
|
112
|
+
| Nulos em PK | `id_{{entidade}} NOT NULL` | Bloqueia promoção |
|
|
113
|
+
| Nulos em `data_referencia` | `data_referencia NOT NULL` | Bloqueia promoção |
|
|
114
|
+
| Unicidade de PK | `id_{{entidade}} UNIQUE` | Bloqueia promoção |
|
|
115
|
+
| {{check_adicional}} | {{tipo}} | {{acao}} |
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## Regras de Negócio
|
|
120
|
+
|
|
121
|
+
> Transformações e filtros aplicados além de limpeza/tipagem.
|
|
122
|
+
|
|
123
|
+
1. {{REGRA_1}}
|
|
124
|
+
2. {{REGRA_2}}
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## Campos Sensíveis
|
|
129
|
+
|
|
130
|
+
| Campo | Tipo de dado sensível | Tratamento |
|
|
131
|
+
|-------|----------------------|-----------|
|
|
132
|
+
| {{campo}} | CPF / dados pessoais / localização | Mascarado em silver/gold |
|
|
133
|
+
|
|
134
|
+
> Se não houver campos sensíveis: N/A
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## Dependências
|
|
139
|
+
|
|
140
|
+
| Dependência | Tipo | Observação |
|
|
141
|
+
|------------|------|-----------|
|
|
142
|
+
| `{{pipeline_upstream}}` | Pipeline upstream | Deve executar antes |
|
|
143
|
+
| `{{tabela_fonte}}` | Tabela de origem | Deve estar atualizada |
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## Scripts
|
|
148
|
+
|
|
149
|
+
| Arquivo | Descrição |
|
|
150
|
+
|---------|-----------|
|
|
151
|
+
| `jobs/bronze/{{nome}}.py` | Extração e ingestão em bronze |
|
|
152
|
+
| `jobs/silver/{{nome}}.py` | Limpeza e promoção para silver |
|
|
153
|
+
| `jobs/gold/{{nome}}.py` | Modelagem e promoção para gold |
|
|
154
|
+
| `dags/{{nome_dag}}.py` | DAG Airflow de orquestração |
|
|
155
|
+
| `expectations/{{nome}}_suite.json` | Suite Great Expectations |
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## Histórico de Mudanças
|
|
160
|
+
|
|
161
|
+
| Versão | Data | Autor | Descrição |
|
|
162
|
+
|--------|------|-------|-----------|
|
|
163
|
+
| 1.0 | {{DATA}} | {{AUTOR}} | Criação inicial |
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
# {NOME_DA_FEATURE}
|
|
2
|
+
|
|
3
|
+
> 📋 **Plano de Execução** | Jira: [{TASK_MANAGER_KEY}]({TASK_MANAGER_URL_BASE}/browse/{TASK_MANAGER_KEY})
|
|
4
|
+
>
|
|
5
|
+
> Se você está trabalhando nesta feature, **atualize este arquivo** conforme progride.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Resumo
|
|
10
|
+
|
|
11
|
+
{Breve descrição do objetivo da feature em 2-3 frases}
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Pré-requisitos
|
|
16
|
+
|
|
17
|
+
- [ ] `architecture.md` revisado
|
|
18
|
+
- [ ] Ambiente de desenvolvimento configurado
|
|
19
|
+
- [ ] Dependências instaladas
|
|
20
|
+
- [ ] Branch base atualizada
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## FASE 1: {Nome da Fase} [Não Iniciada ⏳]
|
|
25
|
+
|
|
26
|
+
> ⏱️ **Tempo estimado**: ~{X} minutos
|
|
27
|
+
>
|
|
28
|
+
> 📝 **Objetivo**: {Objetivo específico desta fase}
|
|
29
|
+
|
|
30
|
+
### 1.1 {Nome da Tarefa} [Não Iniciada ⏳]
|
|
31
|
+
|
|
32
|
+
**O que fazer:**
|
|
33
|
+
{Descrição clara da ação a ser realizada}
|
|
34
|
+
|
|
35
|
+
**Onde fazer:**
|
|
36
|
+
- `{caminho/do/arquivo.ts}`
|
|
37
|
+
|
|
38
|
+
**Como fazer:**
|
|
39
|
+
1. {Passo 1}
|
|
40
|
+
2. {Passo 2}
|
|
41
|
+
3. {Passo 3}
|
|
42
|
+
|
|
43
|
+
**Como verificar:**
|
|
44
|
+
- {Critério de conclusão / teste}
|
|
45
|
+
|
|
46
|
+
### 1.2 {Nome da Tarefa} [Não Iniciada ⏳]
|
|
47
|
+
|
|
48
|
+
**O que fazer:**
|
|
49
|
+
{Descrição clara da ação a ser realizada}
|
|
50
|
+
|
|
51
|
+
**Onde fazer:**
|
|
52
|
+
- `{caminho/do/arquivo.ts}`
|
|
53
|
+
|
|
54
|
+
**Como fazer:**
|
|
55
|
+
1. {Passo 1}
|
|
56
|
+
2. {Passo 2}
|
|
57
|
+
|
|
58
|
+
**Como verificar:**
|
|
59
|
+
- {Critério de conclusão / teste}
|
|
60
|
+
|
|
61
|
+
### 1.T Testes da Fase 1 [Não Iniciada ⏳]
|
|
62
|
+
|
|
63
|
+
> 🧪 **Obrigatório**: Toda fase deve incluir testes para o código implementado.
|
|
64
|
+
|
|
65
|
+
**O que testar:**
|
|
66
|
+
- {Funcionalidade implementada em 1.1}
|
|
67
|
+
- {Funcionalidade implementada em 1.2}
|
|
68
|
+
|
|
69
|
+
**Tipos de teste:**
|
|
70
|
+
- [ ] Unitário: {funções/métodos a testar}
|
|
71
|
+
- [ ] Integração: {endpoints/serviços a testar} (se aplicável)
|
|
72
|
+
- [ ] E2E: {fluxo a testar} (se aplicável)
|
|
73
|
+
|
|
74
|
+
**Onde criar:**
|
|
75
|
+
- `{caminho/dos/testes}`
|
|
76
|
+
|
|
77
|
+
**Cobertura mínima:** {%} (conforme `architecture.md` seção 6.5)
|
|
78
|
+
|
|
79
|
+
**Como verificar:**
|
|
80
|
+
- Executar `{comando de teste}` e verificar cobertura
|
|
81
|
+
- Todos os testes passando
|
|
82
|
+
|
|
83
|
+
### Comentários da Fase 1:
|
|
84
|
+
|
|
85
|
+
{Espaço para anotar mudanças, aprendizados e decisões durante a execução}
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## FASE 2: {Nome da Fase} [Não Iniciada ⏳]
|
|
90
|
+
|
|
91
|
+
> ⏱️ **Tempo estimado**: ~{X} minutos
|
|
92
|
+
>
|
|
93
|
+
> 📝 **Objetivo**: {Objetivo específico desta fase}
|
|
94
|
+
>
|
|
95
|
+
> ⚠️ **Dependência**: Requer FASE 1 completada
|
|
96
|
+
|
|
97
|
+
### 2.1 {Nome da Tarefa} [Não Iniciada ⏳]
|
|
98
|
+
|
|
99
|
+
**O que fazer:**
|
|
100
|
+
{Descrição clara da ação a ser realizada}
|
|
101
|
+
|
|
102
|
+
**Onde fazer:**
|
|
103
|
+
- `{caminho/do/arquivo.ts}`
|
|
104
|
+
|
|
105
|
+
**Como fazer:**
|
|
106
|
+
1. {Passo 1}
|
|
107
|
+
2. {Passo 2}
|
|
108
|
+
|
|
109
|
+
**Como verificar:**
|
|
110
|
+
- {Critério de conclusão / teste}
|
|
111
|
+
|
|
112
|
+
### 2.2 {Nome da Tarefa} [Não Iniciada ⏳]
|
|
113
|
+
|
|
114
|
+
**O que fazer:**
|
|
115
|
+
{Descrição clara da ação a ser realizada}
|
|
116
|
+
|
|
117
|
+
**Onde fazer:**
|
|
118
|
+
- `{caminho/do/arquivo.ts}`
|
|
119
|
+
|
|
120
|
+
**Como fazer:**
|
|
121
|
+
1. {Passo 1}
|
|
122
|
+
2. {Passo 2}
|
|
123
|
+
|
|
124
|
+
**Como verificar:**
|
|
125
|
+
- {Critério de conclusão / teste}
|
|
126
|
+
|
|
127
|
+
### 2.T Testes da Fase 2 [Não Iniciada ⏳]
|
|
128
|
+
|
|
129
|
+
> 🧪 **Obrigatório**: Toda fase deve incluir testes para o código implementado.
|
|
130
|
+
|
|
131
|
+
**O que testar:**
|
|
132
|
+
- {Funcionalidade implementada em 2.1}
|
|
133
|
+
- {Funcionalidade implementada em 2.2}
|
|
134
|
+
|
|
135
|
+
**Tipos de teste:**
|
|
136
|
+
- [ ] Unitário: {funções/métodos a testar}
|
|
137
|
+
- [ ] Integração: {endpoints/serviços a testar} (se aplicável)
|
|
138
|
+
- [ ] E2E: {fluxo a testar} (se aplicável)
|
|
139
|
+
|
|
140
|
+
**Onde criar:**
|
|
141
|
+
- `{caminho/dos/testes}`
|
|
142
|
+
|
|
143
|
+
**Cobertura mínima:** {%} (conforme `architecture.md` seção 6.5)
|
|
144
|
+
|
|
145
|
+
**Como verificar:**
|
|
146
|
+
- Executar `{comando de teste}` e verificar cobertura
|
|
147
|
+
- Todos os testes passando
|
|
148
|
+
|
|
149
|
+
### Comentários da Fase 2:
|
|
150
|
+
|
|
151
|
+
{Espaço para anotar mudanças, aprendizados e decisões durante a execução}
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## FASE 3: {Nome da Fase} [Não Iniciada ⏳]
|
|
156
|
+
|
|
157
|
+
> ⏱️ **Tempo estimado**: ~{X} minutos
|
|
158
|
+
>
|
|
159
|
+
> 📝 **Objetivo**: {Objetivo específico desta fase}
|
|
160
|
+
>
|
|
161
|
+
> ⚠️ **Dependência**: Requer FASE 2 completada
|
|
162
|
+
|
|
163
|
+
### 3.1 {Nome da Tarefa} [Não Iniciada ⏳]
|
|
164
|
+
|
|
165
|
+
**O que fazer:**
|
|
166
|
+
{Descrição clara da ação a ser realizada}
|
|
167
|
+
|
|
168
|
+
**Onde fazer:**
|
|
169
|
+
- `{caminho/do/arquivo.ts}`
|
|
170
|
+
|
|
171
|
+
**Como fazer:**
|
|
172
|
+
1. {Passo 1}
|
|
173
|
+
2. {Passo 2}
|
|
174
|
+
|
|
175
|
+
**Como verificar:**
|
|
176
|
+
- {Critério de conclusão / teste}
|
|
177
|
+
|
|
178
|
+
### 3.T Testes da Fase 3 [Não Iniciada ⏳]
|
|
179
|
+
|
|
180
|
+
> 🧪 **Obrigatório**: Toda fase deve incluir testes para o código implementado.
|
|
181
|
+
|
|
182
|
+
**O que testar:**
|
|
183
|
+
- {Funcionalidade implementada em 3.1}
|
|
184
|
+
|
|
185
|
+
**Tipos de teste:**
|
|
186
|
+
- [ ] Unitário: {funções/métodos a testar}
|
|
187
|
+
- [ ] Integração: {endpoints/serviços a testar} (se aplicável)
|
|
188
|
+
- [ ] E2E: {fluxo a testar} (se aplicável)
|
|
189
|
+
|
|
190
|
+
**Onde criar:**
|
|
191
|
+
- `{caminho/dos/testes}`
|
|
192
|
+
|
|
193
|
+
**Cobertura mínima:** {%} (conforme `architecture.md` seção 6.5)
|
|
194
|
+
|
|
195
|
+
**Como verificar:**
|
|
196
|
+
- Executar `{comando de teste}` e verificar cobertura
|
|
197
|
+
- Todos os testes passando
|
|
198
|
+
|
|
199
|
+
### Comentários da Fase 3:
|
|
200
|
+
|
|
201
|
+
{Espaço para anotar mudanças, aprendizados e decisões durante a execução}
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## Dependências entre Tarefas
|
|
206
|
+
|
|
207
|
+
```
|
|
208
|
+
FASE 1
|
|
209
|
+
├── 1.1 ──┐
|
|
210
|
+
└── 1.2 ──┴──→ FASE 2
|
|
211
|
+
├── 2.1 (sequencial) → 2.2
|
|
212
|
+
└──────────────────────→ FASE 3
|
|
213
|
+
└── 3.1
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
**Legenda:**
|
|
217
|
+
- `→` = Dependência sequencial (uma após a outra)
|
|
218
|
+
- Tarefas no mesmo nível podem ser paralelas
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
## Notas Importantes
|
|
223
|
+
|
|
224
|
+
### Riscos Identificados
|
|
225
|
+
|
|
226
|
+
| Risco | Probabilidade | Impacto | Mitigação |
|
|
227
|
+
|-------|---------------|---------|-----------|
|
|
228
|
+
| {Risco 1} | {Alta/Média/Baixa} | {Alto/Médio/Baixo} | {Ação preventiva} |
|
|
229
|
+
|
|
230
|
+
### Pontos de Atenção
|
|
231
|
+
|
|
232
|
+
- {Ponto 1}
|
|
233
|
+
- {Ponto 2}
|
|
234
|
+
|
|
235
|
+
### Decisões Pendentes
|
|
236
|
+
|
|
237
|
+
- [ ] {Decisão que precisa ser tomada}
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
## Histórico de Atualizações
|
|
242
|
+
|
|
243
|
+
| Data | Fase | Status | Observação |
|
|
244
|
+
|------|------|--------|------------|
|
|
245
|
+
| {DD/MM/AAAA} | - | Criado | Plano inicial criado |
|
|
246
|
+
|
|
247
|
+
---
|
|
248
|
+
|
|
249
|
+
## Checklist Final
|
|
250
|
+
|
|
251
|
+
- [ ] Todas as fases completadas ✅
|
|
252
|
+
- [ ] Todos os testes passando
|
|
253
|
+
- [ ] Código revisado
|
|
254
|
+
- [ ] Documentação atualizada
|
|
255
|
+
- [ ] Pronto para PR
|
|
@@ -0,0 +1,311 @@
|
|
|
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
|