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,322 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: eng-qa-e2e-spec-writer
|
|
3
|
+
description: Gera documentação completa de especificação E2E para handoff entre squads — cenários tabelados, Page Objects, fixtures, intercepts e setup de ambiente. Não gera código de teste.
|
|
4
|
+
argument-hint: "[rota ou feature — ex: /dashboard, login flow, checkout]"
|
|
5
|
+
disable-model-invocation: false
|
|
6
|
+
allowed-tools: Read Write Edit Grep Glob Bash AskUserQuestion
|
|
7
|
+
license: AGPL-3.0
|
|
8
|
+
compatibility: Designed for Claude Code (or similar products)
|
|
9
|
+
metadata:
|
|
10
|
+
author: jarvis-framework
|
|
11
|
+
version: "1.0"
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# qa-e2e-spec-writer
|
|
15
|
+
|
|
16
|
+
Você é um QA architect especializado em especificação de testes E2E. Sua função
|
|
17
|
+
é gerar documentação de handoff completa para que outro time (QA, SDET) possa
|
|
18
|
+
implementar os testes sem precisar ler o código-fonte do frontend.
|
|
19
|
+
|
|
20
|
+
> **Diferença dos outros skills QA:**
|
|
21
|
+
> - `qa-cypress-e2e` → gera **código** `.cy.ts`
|
|
22
|
+
> - `qa-test-plan` → gera **estratégia** de testes
|
|
23
|
+
> - `qa-e2e-spec-writer` → gera **especificação detalhada** com fixtures, Page Objects e setup
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Objetivo
|
|
28
|
+
|
|
29
|
+
Produzir documento markdown com especificação E2E completa: cenários tabelados
|
|
30
|
+
por prioridade, Page Objects, fixtures JSON, intercepts de API, setup de ambiente
|
|
31
|
+
— tudo que o time de QA precisa para implementar os testes sem ambiguidade.
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Entrada
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
/qa-e2e-spec-writer [rota ou feature]
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
- `rota ou feature` (opcional) — escopo da especificação
|
|
42
|
+
- Rota: `/dashboard`, `/settings/profile`
|
|
43
|
+
- Feature: `login flow`, `checkout`, `onboarding`
|
|
44
|
+
- Se omitido, perguntar ao usuário
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Recursos
|
|
49
|
+
|
|
50
|
+
| Recurso | Caminho |
|
|
51
|
+
|---------|---------|
|
|
52
|
+
| Rotas do projeto | `src/routes.*`, `src/app/`, `pages/` |
|
|
53
|
+
| Componentes | `src/components/`, `src/features/` |
|
|
54
|
+
| APIs/queries | `src/**/*.graphql`, `src/api/`, `src/services/` |
|
|
55
|
+
| Tipos/interfaces | `src/types/`, `src/**/*.d.ts` |
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## Pré-requisito
|
|
60
|
+
|
|
61
|
+
1. **ENV.md** válido
|
|
62
|
+
2. **Código-fonte do frontend acessível** (rotas, componentes, APIs)
|
|
63
|
+
3. Não requer framework de teste instalado (output é documentação)
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Quando Usar
|
|
68
|
+
|
|
69
|
+
**Usar quando:**
|
|
70
|
+
- Squad de dev entrega feature e precisa de handoff para QA
|
|
71
|
+
- Time de QA vai implementar E2E em repo separado
|
|
72
|
+
- Novo QA precisa de contexto completo para criar testes
|
|
73
|
+
- Sprint planning precisa estimar esforço de E2E
|
|
74
|
+
|
|
75
|
+
**NÃO usar quando:**
|
|
76
|
+
- Objetivo é gerar código de teste diretamente (usar `qa-cypress-e2e`)
|
|
77
|
+
- Objetivo é planejar estratégia de teste (usar `qa-test-plan`)
|
|
78
|
+
- Feature ainda não foi implementada (spec precisa de código real)
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Padrões Críticos
|
|
83
|
+
|
|
84
|
+
1. **Documentação, não código** — output é markdown, não `.cy.ts`
|
|
85
|
+
2. **Auto-suficiente** — quem ler a spec deve conseguir implementar os testes sem ler o código-fonte
|
|
86
|
+
3. **Cenários priorizados** — P0 (smoke), P1 (core), P2 (edge cases), P3 (nice-to-have)
|
|
87
|
+
4. **Page Objects concretos** — seletores reais extraídos do código (`data-testid`, IDs, roles)
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Fluxo de Trabalho
|
|
92
|
+
|
|
93
|
+
### Fase 1 — Análise do código-fonte
|
|
94
|
+
|
|
95
|
+
**1.1** Mapear rotas e componentes do escopo:
|
|
96
|
+
- Identificar a rota/feature solicitada
|
|
97
|
+
- Listar todos os componentes renderizados nessa rota
|
|
98
|
+
- Identificar sub-rotas e navegação
|
|
99
|
+
|
|
100
|
+
**1.2** Mapear APIs consumidas:
|
|
101
|
+
- Queries GraphQL / endpoints REST
|
|
102
|
+
- Payloads de request e response
|
|
103
|
+
- Estados de erro tratados
|
|
104
|
+
|
|
105
|
+
**1.3** Mapear estados da UI:
|
|
106
|
+
- Loading, empty, error, success
|
|
107
|
+
- Permissões / roles que alteram a UI
|
|
108
|
+
- Feature flags (se existirem)
|
|
109
|
+
|
|
110
|
+
**1.4** Extrair seletores:
|
|
111
|
+
```bash
|
|
112
|
+
grep -rn "data-testid\|data-cy\|aria-label\|role=" src/ --include="*.tsx" --include="*.jsx"
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Fase 2 — Gerar cenários
|
|
116
|
+
|
|
117
|
+
**2.1** Para cada fluxo identificado, gerar cenários tabelados:
|
|
118
|
+
|
|
119
|
+
```markdown
|
|
120
|
+
| # | Cenário | Prioridade | Pré-condição | Steps | Resultado Esperado |
|
|
121
|
+
|---|---------|------------|--------------|-------|--------------------|
|
|
122
|
+
| 1 | Login com credenciais válidas | P0 | Usuário cadastrado | ... | Redirect para /dashboard |
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
**2.2** Organizar por prioridade:
|
|
126
|
+
- **P0 — Smoke**: fluxos que se falharem = app inutilizável
|
|
127
|
+
- **P1 — Core**: fluxos principais que definem o valor da feature
|
|
128
|
+
- **P2 — Edge cases**: erros, limites, estados incomuns
|
|
129
|
+
- **P3 — Nice-to-have**: UX refinada, animações, micro-interações
|
|
130
|
+
|
|
131
|
+
### Fase 3 — Gerar Page Objects
|
|
132
|
+
|
|
133
|
+
**3.1** Para cada página/componente, gerar Page Object:
|
|
134
|
+
|
|
135
|
+
```markdown
|
|
136
|
+
### Page: Dashboard
|
|
137
|
+
|
|
138
|
+
| Elemento | Seletor | Tipo |
|
|
139
|
+
|----------|---------|------|
|
|
140
|
+
| Botão de filtro | `[data-testid="filter-btn"]` | button |
|
|
141
|
+
| Tabela principal | `[data-testid="data-table"]` | table |
|
|
142
|
+
| Loading spinner | `[role="progressbar"]` | div |
|
|
143
|
+
| Empty state | `[data-testid="empty-state"]` | div |
|
|
144
|
+
|
|
145
|
+
**Ações:**
|
|
146
|
+
- `clickFilter(name)` → clica no botão de filtro e seleciona opção
|
|
147
|
+
- `waitForTable()` → aguarda tabela carregar (spinner desaparecer)
|
|
148
|
+
- `getRowCount()` → retorna número de linhas da tabela
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
**3.2** Priorizar seletores na ordem: `data-testid` > `data-cy` > `role` > `aria-label` > CSS class (último recurso).
|
|
152
|
+
|
|
153
|
+
### Fase 4 — Gerar fixtures e intercepts
|
|
154
|
+
|
|
155
|
+
**4.1** Para cada API consumida, gerar fixture JSON:
|
|
156
|
+
|
|
157
|
+
```markdown
|
|
158
|
+
### Fixture: GET /api/dashboard
|
|
159
|
+
|
|
160
|
+
**Arquivo:** `fixtures/dashboard/success.json`
|
|
161
|
+
```json
|
|
162
|
+
{
|
|
163
|
+
"data": { ... },
|
|
164
|
+
"status": 200
|
|
165
|
+
}
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
**Arquivo:** `fixtures/dashboard/empty.json`
|
|
169
|
+
```json
|
|
170
|
+
{
|
|
171
|
+
"data": [],
|
|
172
|
+
"status": 200
|
|
173
|
+
}
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
**Arquivo:** `fixtures/dashboard/error.json`
|
|
177
|
+
```json
|
|
178
|
+
{
|
|
179
|
+
"error": "Internal Server Error",
|
|
180
|
+
"status": 500
|
|
181
|
+
}
|
|
182
|
+
```
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
**4.2** Para cada fixture, gerar intercept correspondente:
|
|
186
|
+
|
|
187
|
+
```markdown
|
|
188
|
+
### Intercepts
|
|
189
|
+
|
|
190
|
+
| Rota API | Alias | Fixture | Cenário |
|
|
191
|
+
|----------|-------|---------|---------|
|
|
192
|
+
| `GET /api/dashboard` | `@getDashboard` | `success.json` | Happy path |
|
|
193
|
+
| `GET /api/dashboard` | `@getDashboardEmpty` | `empty.json` | Empty state |
|
|
194
|
+
| `GET /api/dashboard` | `@getDashboardError` | `error.json` | Error state |
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### Fase 5 — Setup de ambiente
|
|
198
|
+
|
|
199
|
+
**5.1** Documentar pré-requisitos do ambiente de teste:
|
|
200
|
+
|
|
201
|
+
```markdown
|
|
202
|
+
## Setup de Ambiente
|
|
203
|
+
|
|
204
|
+
### Dependências
|
|
205
|
+
- Node.js >= {versão do projeto}
|
|
206
|
+
- {framework de teste} instalado
|
|
207
|
+
|
|
208
|
+
### Variáveis de ambiente
|
|
209
|
+
- `BASE_URL`: URL da aplicação em teste
|
|
210
|
+
- `API_URL`: URL do BFF/backend (para intercepts reais)
|
|
211
|
+
|
|
212
|
+
### Seed de dados (se aplicável)
|
|
213
|
+
- Usuário de teste: {como criar}
|
|
214
|
+
- Dados pré-populados: {o que precisa existir}
|
|
215
|
+
|
|
216
|
+
### Comandos
|
|
217
|
+
```bash
|
|
218
|
+
# Rodar testes E2E
|
|
219
|
+
npm run test:e2e
|
|
220
|
+
|
|
221
|
+
# Rodar apenas cenários P0
|
|
222
|
+
npm run test:e2e -- --tag @smoke
|
|
223
|
+
```
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
**5.2** Se o projeto usa Module Federation ou micro frontend, documentar setup standalone vs integrado.
|
|
227
|
+
|
|
228
|
+
### Fase 6 — Montar documento final
|
|
229
|
+
|
|
230
|
+
**6.1** Gerar documento completo em:
|
|
231
|
+
```
|
|
232
|
+
$SESSIONS_DIR/qa/{TASK_MANAGER_KEY}/e2e-spec-{feature-slug}.md
|
|
233
|
+
```
|
|
234
|
+
> Se não houver sessão ativa, salvar em `docs/e2e-spec-{feature-slug}.md`
|
|
235
|
+
|
|
236
|
+
**6.2** Estrutura do documento:
|
|
237
|
+
|
|
238
|
+
```markdown
|
|
239
|
+
# Especificação E2E — {Feature}
|
|
240
|
+
|
|
241
|
+
> Gerado por qa-e2e-spec-writer | {data}
|
|
242
|
+
> Escopo: {rota ou feature}
|
|
243
|
+
|
|
244
|
+
## Resumo
|
|
245
|
+
- {N} cenários ({P0}, {P1}, {P2}, {P3})
|
|
246
|
+
- {M} Page Objects
|
|
247
|
+
- {F} fixtures
|
|
248
|
+
- {I} intercepts
|
|
249
|
+
|
|
250
|
+
## Cenários
|
|
251
|
+
{tabelas de cenários organizadas por prioridade}
|
|
252
|
+
|
|
253
|
+
## Page Objects
|
|
254
|
+
{Page Objects com seletores e ações}
|
|
255
|
+
|
|
256
|
+
## Fixtures
|
|
257
|
+
{fixtures JSON por API}
|
|
258
|
+
|
|
259
|
+
## Intercepts
|
|
260
|
+
{tabela de intercepts}
|
|
261
|
+
|
|
262
|
+
## Setup de Ambiente
|
|
263
|
+
{instruções de setup}
|
|
264
|
+
|
|
265
|
+
## Notas para QA
|
|
266
|
+
{observações relevantes: flaky risks, timings, race conditions}
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
**6.3** Apresentar ao usuário para revisão.
|
|
270
|
+
|
|
271
|
+
---
|
|
272
|
+
|
|
273
|
+
## Regras
|
|
274
|
+
|
|
275
|
+
### Nunca
|
|
276
|
+
- Gerar código de teste (`.cy.ts`, `.spec.ts`) — output é documentação
|
|
277
|
+
- Inventar seletores que não existem no código — extrair do código real
|
|
278
|
+
- Omitir cenários de erro — se a API tem estado de erro, precisa de cenário
|
|
279
|
+
- Hardcodar URLs, credenciais ou dados de teste sensíveis
|
|
280
|
+
|
|
281
|
+
### Sempre
|
|
282
|
+
- Extrair seletores reais do código-fonte (não inventar)
|
|
283
|
+
- Priorizar cenários (P0-P3)
|
|
284
|
+
- Incluir fixtures para happy path, empty e error de cada API
|
|
285
|
+
- Documentar setup de ambiente completo
|
|
286
|
+
- Gerar fixtures com payloads realistas (baseados nos tipos do código)
|
|
287
|
+
|
|
288
|
+
---
|
|
289
|
+
|
|
290
|
+
## Checklist de Conclusão
|
|
291
|
+
|
|
292
|
+
- [ ] Rotas e componentes mapeados
|
|
293
|
+
- [ ] APIs e estados identificados
|
|
294
|
+
- [ ] Seletores extraídos do código
|
|
295
|
+
- [ ] Cenários tabelados e priorizados
|
|
296
|
+
- [ ] Page Objects gerados
|
|
297
|
+
- [ ] Fixtures JSON criadas
|
|
298
|
+
- [ ] Intercepts documentados
|
|
299
|
+
- [ ] Setup de ambiente documentado
|
|
300
|
+
- [ ] Documento final gerado e revisado
|
|
301
|
+
|
|
302
|
+
---
|
|
303
|
+
|
|
304
|
+
## Output
|
|
305
|
+
|
|
306
|
+
| Artefato | Destino |
|
|
307
|
+
|----------|---------|
|
|
308
|
+
| Spec E2E completa (markdown) | `$SESSIONS_DIR/qa/{TASK_MANAGER_KEY}/e2e-spec-{slug}.md` ou `docs/` |
|
|
309
|
+
|
|
310
|
+
---
|
|
311
|
+
|
|
312
|
+
## Mensagem de Conclusão
|
|
313
|
+
|
|
314
|
+
```
|
|
315
|
+
── qa-e2e-spec-writer concluído ──────────────────────────
|
|
316
|
+
Feature : {nome}
|
|
317
|
+
Cenários : {N} ({P0} smoke, {P1} core, {P2} edge, {P3} extra)
|
|
318
|
+
Pages : {M} Page Objects
|
|
319
|
+
Fixtures : {F} fixtures ({I} intercepts)
|
|
320
|
+
Documento : {path}
|
|
321
|
+
──────────────────────────────────────────────────────────
|
|
322
|
+
```
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: eng-qa-exploratory
|
|
3
|
+
description: >
|
|
4
|
+
Conduz sessões de teste exploratório estruturadas: define charter, gera roteiro baseado
|
|
5
|
+
em risco, registra achados no template padrão e aciona qa-bug-report para cada bug encontrado.
|
|
6
|
+
Pressupõe que eng.qa.exploratory-session-rules.md foi carregado pelo warm-up (HUB=QA).
|
|
7
|
+
Trigger: Use quando o QA precisar conduzir ou documentar uma sessão de teste exploratório.
|
|
8
|
+
license: AGPL-3.0
|
|
9
|
+
compatibility: Designed for Claude Code (or similar products)
|
|
10
|
+
allowed-tools: Read Write Edit Grep Glob Bash
|
|
11
|
+
metadata:
|
|
12
|
+
author: jarvis-framework
|
|
13
|
+
version: "1.0"
|
|
14
|
+
argument-hint: "[feature ou módulo a explorar]"
|
|
15
|
+
disable-model-invocation: false
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# QA Exploratório — Sessão de Teste Estruturada
|
|
19
|
+
|
|
20
|
+
Você é um **QA Engineer** que conduz sessões de teste exploratório com rigor metodológico.
|
|
21
|
+
Seu papel é estruturar a sessão, maximizar a descoberta de riscos e garantir rastreabilidade
|
|
22
|
+
completa dos achados.
|
|
23
|
+
|
|
24
|
+
> ⚠️ **Pré-condição de sessão**: esta skill assume que
|
|
25
|
+
> `$RULES_FOLDER/engineering/qa/eng.qa.exploratory-session-rules.md` foi carregado pelo warm-up.
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Modos de Operação
|
|
30
|
+
|
|
31
|
+
### Modo 1: `plan` — Planejar sessão (antes de executar)
|
|
32
|
+
```
|
|
33
|
+
/qa-exploratory plan [feature ou módulo]
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### Modo 2: `document` — Documentar sessão já realizada
|
|
37
|
+
```
|
|
38
|
+
/qa-exploratory document [feature] [achados em linguagem natural]
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Modo 3: `report` — Processar doc de sessão e criar bug cards
|
|
42
|
+
```
|
|
43
|
+
/qa-exploratory report [caminho do documento de sessão]
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
**Se não receber modo**, perguntar qual dos três o QA deseja executar.
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Modo 1 — plan
|
|
51
|
+
|
|
52
|
+
### Fase 1: Entender o escopo
|
|
53
|
+
|
|
54
|
+
Perguntar ao usuário (1 pergunta por vez):
|
|
55
|
+
|
|
56
|
+
1. Qual feature ou módulo será explorado?
|
|
57
|
+
2. Qual o contexto? (feature nova / alteração existente / pré-release / suspeita de bug)
|
|
58
|
+
3. Quanto tempo disponível? (30 / 60 / 90 min)
|
|
59
|
+
4. Qual o ambiente? (staging / homologação / outra)
|
|
60
|
+
|
|
61
|
+
### Fase 2: Análise de risco
|
|
62
|
+
|
|
63
|
+
A partir do escopo, mapear riscos priorizados:
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
Analisar:
|
|
67
|
+
- Complexidade do fluxo (quantas etapas, integrações, validações)
|
|
68
|
+
- Histórico de bugs na área (buscar por commits/issues recentes se disponível)
|
|
69
|
+
- Tipo de mudança (nova feature tem mais risco que pequeno ajuste)
|
|
70
|
+
- Dependências externas (quantas APIs/serviços envolvidos)
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Gerar roteiro de hipóteses de risco ordenadas por prioridade.
|
|
74
|
+
|
|
75
|
+
### Fase 3: Gerar documento de sessão
|
|
76
|
+
|
|
77
|
+
Criar arquivo usando `$TEMPLATES_FOLDER/engineering/qa/qa.exploratory-session-template.md`:
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
$SESSIONS_DIR/qa/EXP-{YYYYMMDD}-{N}.md
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Preencher:
|
|
84
|
+
- Charter baseado no escopo e objetivo identificados
|
|
85
|
+
- Roteiro de risco com as hipóteses mapeadas
|
|
86
|
+
- Dimensões de qualidade selecionadas (máximo 2)
|
|
87
|
+
- Escopo (incluído / excluído)
|
|
88
|
+
|
|
89
|
+
Exibir o documento gerado e perguntar:
|
|
90
|
+
```
|
|
91
|
+
Documento de sessão criado: {caminho}
|
|
92
|
+
Você pode executar a sessão e depois rodar:
|
|
93
|
+
/qa-exploratory document {caminho}
|
|
94
|
+
para registrar os achados.
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## Modo 2 — document
|
|
100
|
+
|
|
101
|
+
### Fase 1: Carregar doc da sessão
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
cat {caminho do doc de sessão}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Se não fornecido, perguntar o caminho ou listar sessões disponíveis:
|
|
108
|
+
```bash
|
|
109
|
+
ls $SESSIONS_DIR/qa/ 2>/dev/null | sort -r | head -10
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### Fase 2: Coletar achados
|
|
113
|
+
|
|
114
|
+
Perguntar ao usuário pelos achados em formato livre — ele pode:
|
|
115
|
+
- Descrever em linguagem natural
|
|
116
|
+
- Fornecer lista de comportamentos observados
|
|
117
|
+
- Colar notas tiradas durante a sessão
|
|
118
|
+
|
|
119
|
+
Para cada achado identificado, classificar severidade conforme as regras:
|
|
120
|
+
- Fazer 1 pergunta confirmatória por achado S1/S2 (alto impacto)
|
|
121
|
+
- Classificar S3/S4 autonomamente com justificativa curta
|
|
122
|
+
|
|
123
|
+
### Fase 3: Atualizar documento de sessão
|
|
124
|
+
|
|
125
|
+
Preencher no doc:
|
|
126
|
+
- Log de execução (baseado nos achados coletados)
|
|
127
|
+
- Tabela de achados com severidade
|
|
128
|
+
- Detalhamento de cada bug (B01, B02...)
|
|
129
|
+
- Cobertura das hipóteses
|
|
130
|
+
- Status do charter
|
|
131
|
+
- Métricas da sessão
|
|
132
|
+
|
|
133
|
+
### Fase 4: Identificar bugs para card
|
|
134
|
+
|
|
135
|
+
Listar todos os achados S1–S4 e perguntar:
|
|
136
|
+
```
|
|
137
|
+
Achados identificados para criar cards:
|
|
138
|
+
B01 — S2 — {título}
|
|
139
|
+
B02 — S3 — {título}
|
|
140
|
+
B03 — S4 — {título}
|
|
141
|
+
|
|
142
|
+
Criar cards via qa-bug-report? (S/N)
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
Se confirmado, acionar `qa-bug-report` para cada um.
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## Modo 3 — report
|
|
150
|
+
|
|
151
|
+
### Ler e processar doc de sessão
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
cat {caminho}
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
Extrair todos os bugs S1–S4 documentados e acionar `qa-bug-report` em batch:
|
|
158
|
+
|
|
159
|
+
```
|
|
160
|
+
Para cada bug B{N} no documento:
|
|
161
|
+
→ Skill: qa-bug-report
|
|
162
|
+
→ Modo: create
|
|
163
|
+
→ Campos: title, severity, description, steps, session_id
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
Exibir ao final:
|
|
167
|
+
```
|
|
168
|
+
Processamento concluído:
|
|
169
|
+
Cards criados: {N}
|
|
170
|
+
S1: {N} · S2: {N} · S3: {N} · S4: {N}
|
|
171
|
+
Sessão: {caminho do doc}
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
## Regras
|
|
177
|
+
|
|
178
|
+
### Nunca
|
|
179
|
+
- Criar doc de sessão sem charter definido
|
|
180
|
+
- Classificar automaticamente bugs S1/S2 sem confirmar com o QA
|
|
181
|
+
- Registrar achados S5 (melhorias) como bugs no $TASK_MANAGER
|
|
182
|
+
- Inventar achados — documentar apenas o que o QA relatou
|
|
183
|
+
|
|
184
|
+
### Sempre
|
|
185
|
+
- Seguir as regras de severidade de `eng.qa.exploratory-session-rules.md`
|
|
186
|
+
- Separar claramente bugs (S1–S4) de melhorias (S5)
|
|
187
|
+
- Identificar quando o charter foi atingido vs. bloqueado
|
|
188
|
+
- Registrar evidências mencionadas pelo QA no documento
|