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,178 @@
|
|
|
1
|
+
# Padrões de Teste por Linguagem/Framework
|
|
2
|
+
|
|
3
|
+
Este documento serve como referência para identificar arquivos de teste e padrões de nomenclatura em diferentes stacks.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Convenções de Nomenclatura
|
|
8
|
+
|
|
9
|
+
### Por Linguagem
|
|
10
|
+
|
|
11
|
+
| Linguagem | Padrão de Arquivo | Exemplo |
|
|
12
|
+
|-----------|-------------------|---------|
|
|
13
|
+
| TypeScript/JavaScript | `[filename].test.ts` | `user.test.ts` |
|
|
14
|
+
| TypeScript/JavaScript | `[filename].spec.ts` | `user.spec.ts` |
|
|
15
|
+
| Python | `test_[filename].py` | `test_user.py` |
|
|
16
|
+
| Python | `[filename]_test.py` | `user_test.py` |
|
|
17
|
+
| Go | `[filename]_test.go` | `user_test.go` |
|
|
18
|
+
| Java | `[Filename]Test.java` | `UserTest.java` |
|
|
19
|
+
| Rust | `[filename]_test.rs` | `user_test.rs` |
|
|
20
|
+
| C# | `[Filename]Tests.cs` | `UserTests.cs` |
|
|
21
|
+
|
|
22
|
+
### Por Framework
|
|
23
|
+
|
|
24
|
+
| Framework | Estrutura de Pastas | Padrão |
|
|
25
|
+
|-----------|---------------------|--------|
|
|
26
|
+
| Jest | `__tests__/` ou junto ao código | `*.test.ts`, `*.spec.ts` |
|
|
27
|
+
| Vitest | `__tests__/` ou junto ao código | `*.test.ts`, `*.spec.ts` |
|
|
28
|
+
| Pytest | `tests/` | `test_*.py` |
|
|
29
|
+
| Go testing | Junto ao código | `*_test.go` |
|
|
30
|
+
| JUnit | `src/test/java/` | `*Test.java` |
|
|
31
|
+
| NUnit | `*.Tests/` | `*Tests.cs` |
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Estrutura de Diretórios Comum
|
|
36
|
+
|
|
37
|
+
### JavaScript/TypeScript
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
src/
|
|
41
|
+
├── components/
|
|
42
|
+
│ ├── Button.tsx
|
|
43
|
+
│ └── Button.test.tsx # Teste junto ao componente
|
|
44
|
+
├── services/
|
|
45
|
+
│ ├── auth.service.ts
|
|
46
|
+
│ └── auth.service.spec.ts
|
|
47
|
+
└── __tests__/ # Pasta dedicada (alternativa)
|
|
48
|
+
└── integration/
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Python
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
project/
|
|
55
|
+
├── src/
|
|
56
|
+
│ └── user/
|
|
57
|
+
│ └── service.py
|
|
58
|
+
└── tests/
|
|
59
|
+
├── unit/
|
|
60
|
+
│ └── test_service.py
|
|
61
|
+
└── integration/
|
|
62
|
+
└── test_api.py
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Go
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
project/
|
|
69
|
+
├── user/
|
|
70
|
+
│ ├── service.go
|
|
71
|
+
│ └── service_test.go # Sempre junto ao código
|
|
72
|
+
└── integration/
|
|
73
|
+
└── api_test.go
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## Tipos de Teste
|
|
79
|
+
|
|
80
|
+
### Unitário
|
|
81
|
+
|
|
82
|
+
- **Escopo**: Função/método isolado
|
|
83
|
+
- **Dependências**: Mockadas
|
|
84
|
+
- **Velocidade**: Muito rápido (< 100ms)
|
|
85
|
+
- **Quando usar**: Lógica de negócio, validações, transformações
|
|
86
|
+
|
|
87
|
+
### Integração
|
|
88
|
+
|
|
89
|
+
- **Escopo**: Múltiplos componentes
|
|
90
|
+
- **Dependências**: Reais ou containers
|
|
91
|
+
- **Velocidade**: Médio (100ms - 5s)
|
|
92
|
+
- **Quando usar**: APIs, banco de dados, serviços externos
|
|
93
|
+
|
|
94
|
+
### E2E (End-to-End)
|
|
95
|
+
|
|
96
|
+
- **Escopo**: Fluxo completo do usuário
|
|
97
|
+
- **Dependências**: Ambiente completo
|
|
98
|
+
- **Velocidade**: Lento (> 5s)
|
|
99
|
+
- **Quando usar**: Fluxos críticos, smoke tests
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## Priorização de Testes
|
|
104
|
+
|
|
105
|
+
### Alta Prioridade (P0)
|
|
106
|
+
|
|
107
|
+
- APIs públicas e endpoints
|
|
108
|
+
- Lógica de negócio crítica
|
|
109
|
+
- Código de autenticação/autorização
|
|
110
|
+
- Manipulação de dados sensíveis
|
|
111
|
+
- Cálculos financeiros
|
|
112
|
+
|
|
113
|
+
### Média Prioridade (P1)
|
|
114
|
+
|
|
115
|
+
- Utilitários compartilhados
|
|
116
|
+
- Tratamento de erros
|
|
117
|
+
- Validações de entrada
|
|
118
|
+
- Transformações de dados
|
|
119
|
+
|
|
120
|
+
### Baixa Prioridade (P2)
|
|
121
|
+
|
|
122
|
+
- Código de apresentação puro
|
|
123
|
+
- Configurações simples
|
|
124
|
+
- Constantes e enums
|
|
125
|
+
- Wrappers triviais
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## Comandos de Execução
|
|
130
|
+
|
|
131
|
+
### JavaScript/TypeScript
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
# Jest
|
|
135
|
+
npm test
|
|
136
|
+
npm test -- --coverage
|
|
137
|
+
npm test -- --watch
|
|
138
|
+
|
|
139
|
+
# Vitest
|
|
140
|
+
npm run test
|
|
141
|
+
npm run test:coverage
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Python
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
# Pytest
|
|
148
|
+
pytest
|
|
149
|
+
pytest --cov=src
|
|
150
|
+
pytest -v tests/unit/
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### Go
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
go test ./...
|
|
157
|
+
go test -cover ./...
|
|
158
|
+
go test -v ./user/
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### Java (Maven)
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
mvn test
|
|
165
|
+
mvn test -Dtest=UserTest
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## Ferramentas de Cobertura
|
|
171
|
+
|
|
172
|
+
| Linguagem | Ferramenta | Comando |
|
|
173
|
+
|-----------|------------|---------|
|
|
174
|
+
| JS/TS | Istanbul/NYC | `npm test -- --coverage` |
|
|
175
|
+
| Python | Coverage.py | `pytest --cov` |
|
|
176
|
+
| Go | go test | `go test -cover` |
|
|
177
|
+
| Java | JaCoCo | `mvn jacoco:report` |
|
|
178
|
+
| C# | Coverlet | `dotnet test --collect:"XPlat Code Coverage"` |
|
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: eng-qa-testsprite
|
|
3
|
+
description: >
|
|
4
|
+
Executa testes automatizados usando TestSprite MCP Server para frontend e backend.
|
|
5
|
+
Trigger: Use quando precisar gerar e executar testes automatizados com TestSprite, validar cobertura de testes ou criar planos de teste.
|
|
6
|
+
argument-hint: "[frontend|backend|diff|codebase]"
|
|
7
|
+
disable-model-invocation: false
|
|
8
|
+
allowed-tools: Read Write Edit Grep Glob Bash mcp__TestSprite__testsprite_bootstrap mcp__TestSprite__testsprite_generate_code_summary mcp__TestSprite__testsprite_generate_standardized_prd mcp__TestSprite__testsprite_generate_frontend_test_plan mcp__TestSprite__testsprite_generate_backend_test_plan mcp__TestSprite__testsprite_generate_code_and_execute mcp__TestSprite__testsprite_rerun_tests
|
|
9
|
+
license: AGPL-3.0
|
|
10
|
+
metadata:
|
|
11
|
+
author: jarvis-team
|
|
12
|
+
version: "1.0"
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# QA TestSprite - Testes Automatizados
|
|
16
|
+
|
|
17
|
+
Você é um **especialista em testes automatizados** usando o TestSprite MCP Server para gerar e executar testes de forma autônoma.
|
|
18
|
+
|
|
19
|
+
## Objetivo
|
|
20
|
+
|
|
21
|
+
Automatizar a geração e execução de testes para projetos frontend e backend, utilizando o TestSprite para criar planos de teste abrangentes e scripts executáveis.
|
|
22
|
+
|
|
23
|
+
## Entrada
|
|
24
|
+
|
|
25
|
+
- `$ARGUMENTS` - Tipo de teste: `frontend`, `backend`, `diff` (mudanças recentes) ou `codebase` (projeto completo)
|
|
26
|
+
|
|
27
|
+
## Recursos
|
|
28
|
+
|
|
29
|
+
- **Referência (local)**: `$IDE/skills/qa-testsprite/references/testsprite-mcp.md`
|
|
30
|
+
- **Documentação oficial (backup)**: https://docs.testsprite.com/mcp/getting-started/overview
|
|
31
|
+
- **Saída**: Relatório de testes em markdown + scripts de teste gerados pelo TestSprite
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Pré-requisito
|
|
36
|
+
|
|
37
|
+
Verificar se o `ENV.md` existe e está preenchido corretamente. Se não existir ou estiver incompleto, execute `/init-jarvis` antes de continuar.
|
|
38
|
+
|
|
39
|
+
**Requisitos do projeto:**
|
|
40
|
+
- Frontend: React, Vue, Angular, Svelte, Next.js, Vite ou vanilla JS/TS
|
|
41
|
+
- Backend: Node.js, Python, Java, Go, Express.js, FastAPI, Spring Boot, REST ou GraphQL
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Quando Usar
|
|
46
|
+
|
|
47
|
+
Use este skill quando:
|
|
48
|
+
- Precisar gerar testes automatizados para o projeto
|
|
49
|
+
- Quiser validar cobertura de testes existente
|
|
50
|
+
- Necessitar de plano de testes abrangente
|
|
51
|
+
- Testar mudanças recentes (diff) antes de commit/PR
|
|
52
|
+
- Validar qualidade do código com testes E2E
|
|
53
|
+
|
|
54
|
+
**NÃO usar quando:**
|
|
55
|
+
- Projeto não tem frontend/backend suportado
|
|
56
|
+
- Necessitar apenas de testes unitários simples (use qa-unit-test)
|
|
57
|
+
- Ambiente local não está configurado para rodar o projeto
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Validação de Entrada
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
Se $ARGUMENTS está vazio:
|
|
65
|
+
→ Perguntar: "Qual tipo de teste deseja executar?"
|
|
66
|
+
→ Opções: frontend, backend, diff, codebase
|
|
67
|
+
→ Usar resposta como $ARGUMENTS
|
|
68
|
+
|
|
69
|
+
Se $ARGUMENTS não é válido:
|
|
70
|
+
→ Exibir: "⚠️ Tipo inválido. Use: frontend, backend, diff ou codebase"
|
|
71
|
+
→ Encerrar execução
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Padrões Críticos
|
|
77
|
+
|
|
78
|
+
### Padrão 1: Determinar porta local do projeto
|
|
79
|
+
|
|
80
|
+
Antes de executar `testsprite_bootstrap`, identificar a porta local:
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
Verificar em ordem:
|
|
84
|
+
1. package.json scripts (dev/start) → porta no comando
|
|
85
|
+
2. vite.config.js/ts → server.port
|
|
86
|
+
3. next.config.js → porta padrão 3000
|
|
87
|
+
4. Dockerfile → EXPOSE
|
|
88
|
+
5. .env → PORT variável
|
|
89
|
+
6. Padrão: 5173 (Vite) ou 3000 (Next/Express)
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### Padrão 2: Fluxo sequencial obrigatório
|
|
93
|
+
|
|
94
|
+
O TestSprite requer execução em ordem específica:
|
|
95
|
+
|
|
96
|
+
```
|
|
97
|
+
1. testsprite_bootstrap → Inicializa ambiente
|
|
98
|
+
2. testsprite_generate_code_summary → Analisa codebase
|
|
99
|
+
3. testsprite_generate_standardized_prd → Gera PRD normalizado
|
|
100
|
+
4. testsprite_generate_*_test_plan → Cria plano de testes
|
|
101
|
+
5. testsprite_generate_code_and_execute → Executa testes
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Padrão 3: Escopo correto para diff vs codebase
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
diff → Testa mudanças recentes do seu trabalho (git)
|
|
108
|
+
codebase → Testa projeto completo
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Observação: o comportamento exato de "diff" pode variar (staged vs uncommitted). Se houver dúvida, pergunte ao usuário qual estado do Git deve ser considerado e ajuste o preparo da branch antes de executar.
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## Árvore de Decisão
|
|
116
|
+
|
|
117
|
+
```
|
|
118
|
+
Argumento é "frontend"? → Usar testsprite_generate_frontend_test_plan
|
|
119
|
+
Argumento é "backend"? → Usar testsprite_generate_backend_test_plan
|
|
120
|
+
Argumento é "diff"? → testScope: "diff"
|
|
121
|
+
Argumento é "codebase"? → testScope: "codebase"
|
|
122
|
+
Sem argumento? → Perguntar ao usuário
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### Quando rodar Frontend + Backend juntos
|
|
126
|
+
|
|
127
|
+
Execute ambos os tipos quando:
|
|
128
|
+
- O fluxo é ponta-a-ponta (UI chama API) e você quer diagnóstico mais rápido
|
|
129
|
+
- Existem regras de auth e modelos de dados compartilhados entre UI e API
|
|
130
|
+
- O problema pode estar em contrato/payloads/status codes (API), mas se manifesta na UI
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
## Fluxo de Trabalho
|
|
135
|
+
|
|
136
|
+
### 1. Identificar Tipo de Projeto
|
|
137
|
+
|
|
138
|
+
Analisar estrutura para determinar se é frontend ou backend:
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
# Frontend indicators
|
|
142
|
+
ls package.json src/App.* src/main.* pages/ app/
|
|
143
|
+
|
|
144
|
+
# Backend indicators
|
|
145
|
+
ls server.* app.py main.go routes/ controllers/
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### 2. Determinar Porta Local
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
# Verificar package.json
|
|
152
|
+
grep -E "\"(dev|start)\":" package.json
|
|
153
|
+
|
|
154
|
+
# Verificar vite.config
|
|
155
|
+
grep "port" vite.config.*
|
|
156
|
+
|
|
157
|
+
# Verificar .env
|
|
158
|
+
grep "PORT" .env
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### 3. Bootstrap TestSprite
|
|
162
|
+
|
|
163
|
+
Executar `testsprite_bootstrap` com parâmetros corretos:
|
|
164
|
+
|
|
165
|
+
| Parâmetro | Descrição |
|
|
166
|
+
|-----------|-----------|
|
|
167
|
+
| `localPort` | Porta do servidor local (ex: 5173, 3000) |
|
|
168
|
+
| `type` | "frontend" ou "backend" |
|
|
169
|
+
| `projectPath` | Caminho absoluto do projeto |
|
|
170
|
+
| `testScope` | "diff" ou "codebase" |
|
|
171
|
+
| `pathname` | Caminho da página (opcional, padrão "") |
|
|
172
|
+
|
|
173
|
+
### 4. Gerar Sumário do Código
|
|
174
|
+
|
|
175
|
+
Executar `testsprite_generate_code_summary` para analisar o projeto.
|
|
176
|
+
|
|
177
|
+
### 5. Gerar PRD Padronizado
|
|
178
|
+
|
|
179
|
+
Executar `testsprite_generate_standardized_prd` para criar PRD normalizado.
|
|
180
|
+
|
|
181
|
+
### 6. Gerar Plano de Testes
|
|
182
|
+
|
|
183
|
+
Executar o plano apropriado:
|
|
184
|
+
- Frontend: `testsprite_generate_frontend_test_plan`
|
|
185
|
+
- Backend: `testsprite_generate_backend_test_plan`
|
|
186
|
+
|
|
187
|
+
**Parâmetros do Frontend Test Plan:**
|
|
188
|
+
|
|
189
|
+
| Parâmetro | Descrição |
|
|
190
|
+
|-----------|-----------|
|
|
191
|
+
| `projectPath` | Caminho absoluto do projeto |
|
|
192
|
+
| `needLogin` | `true` se o app requer autenticação, `false` caso contrário |
|
|
193
|
+
|
|
194
|
+
> **Nota**: Se `needLogin: true`, o TestSprite incluirá fluxos de login/logout e rotas protegidas no plano de testes. Forneça credenciais de conta de teste quando solicitado.
|
|
195
|
+
|
|
196
|
+
**Parâmetros do Backend Test Plan:**
|
|
197
|
+
|
|
198
|
+
A documentação do TestSprite pode solicitar campos adicionais dependendo do projeto e do modo de execução.
|
|
199
|
+
|
|
200
|
+
- Se a ferramenta pedir parâmetros extras, pergunte ao usuário os valores necessários e prossiga.
|
|
201
|
+
- Evite assumir valores padrão não documentados.
|
|
202
|
+
|
|
203
|
+
### 7. Executar Testes
|
|
204
|
+
|
|
205
|
+
Executar `testsprite_generate_code_and_execute`:
|
|
206
|
+
|
|
207
|
+
| Parâmetro | Descrição |
|
|
208
|
+
|-----------|-----------|
|
|
209
|
+
| `projectName` | Nome do diretório raiz |
|
|
210
|
+
| `projectPath` | Caminho absoluto |
|
|
211
|
+
| `testIds` | IDs dos testes ([] = todos) |
|
|
212
|
+
| `additionalInstruction` | Instruções extras ("" = nenhuma) |
|
|
213
|
+
|
|
214
|
+
### 8. Analisar Resultados
|
|
215
|
+
|
|
216
|
+
Verificar relatório gerado e apresentar resumo ao usuário.
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
## Regras
|
|
221
|
+
|
|
222
|
+
### Nunca
|
|
223
|
+
- Executar bootstrap sem identificar a porta correta
|
|
224
|
+
- Pular etapas do fluxo sequencial
|
|
225
|
+
- Usar testScope errado (diff vs codebase)
|
|
226
|
+
- Executar sem projeto rodando localmente
|
|
227
|
+
- Ignorar erros de execução
|
|
228
|
+
|
|
229
|
+
### Sempre
|
|
230
|
+
- Identificar porta local antes do bootstrap
|
|
231
|
+
- Seguir ordem sequencial das ferramentas
|
|
232
|
+
- Verificar se projeto está rodando antes de testar
|
|
233
|
+
- Apresentar resumo dos resultados ao usuário
|
|
234
|
+
- Perguntar tipo se argumento não fornecido
|
|
235
|
+
|
|
236
|
+
---
|
|
237
|
+
|
|
238
|
+
## Tratamento de Erros
|
|
239
|
+
|
|
240
|
+
### Projeto não está rodando
|
|
241
|
+
- Exibir: "⚠️ O projeto precisa estar rodando localmente na porta {porta}"
|
|
242
|
+
- Sugerir: "Execute `npm run dev` ou equivalente antes de testar"
|
|
243
|
+
|
|
244
|
+
### Porta incorreta
|
|
245
|
+
- Exibir: "⚠️ Não foi possível conectar na porta {porta}"
|
|
246
|
+
- Verificar novamente os arquivos de configuração
|
|
247
|
+
- Perguntar ao usuário qual porta usar
|
|
248
|
+
|
|
249
|
+
### Tipo de projeto não suportado
|
|
250
|
+
- Exibir: "⚠️ Framework não suportado pelo TestSprite"
|
|
251
|
+
- Listar frameworks suportados
|
|
252
|
+
- Sugerir alternativas (qa-unit-test)
|
|
253
|
+
|
|
254
|
+
### Testes falharam
|
|
255
|
+
- Apresentar resumo dos testes que falharam
|
|
256
|
+
- Oferecer opção de re-executar com `testsprite_rerun_tests`
|
|
257
|
+
- Sugerir correções baseadas nos erros
|
|
258
|
+
|
|
259
|
+
---
|
|
260
|
+
|
|
261
|
+
## Checklist de Conclusão
|
|
262
|
+
|
|
263
|
+
- [ ] Tipo de teste identificado (frontend/backend/ambos)
|
|
264
|
+
- [ ] Porta local determinada corretamente
|
|
265
|
+
- [ ] Projeto está rodando localmente
|
|
266
|
+
- [ ] Bootstrap executado com sucesso
|
|
267
|
+
- [ ] Sumário do código gerado
|
|
268
|
+
- [ ] PRD padronizado criado
|
|
269
|
+
- [ ] Parâmetro `needLogin` definido (se frontend)
|
|
270
|
+
- [ ] Credenciais de teste obtidas (se `needLogin: true`)
|
|
271
|
+
- [ ] Plano de testes gerado
|
|
272
|
+
- [ ] Testes executados
|
|
273
|
+
- [ ] Artefatos gerados em `testsprite_tests/`
|
|
274
|
+
- [ ] Resultados apresentados ao usuário
|
|
275
|
+
|
|
276
|
+
---
|
|
277
|
+
|
|
278
|
+
## Output
|
|
279
|
+
|
|
280
|
+
Artefatos gerados na pasta `testsprite_tests/`:
|
|
281
|
+
|
|
282
|
+
| Artefato | Caminho | Descrição |
|
|
283
|
+
|----------|---------|-----------|
|
|
284
|
+
| PRD normalizado | `standard_prd.json` | Requisitos estruturados do projeto |
|
|
285
|
+
| Relatório MD | `TestSprite_MCP_Test_Report.md` | Relatório em markdown |
|
|
286
|
+
| Relatório HTML | `TestSprite_MCP_Test_Report.html` | Relatório visual |
|
|
287
|
+
| Casos de teste | `TC001_*.py`, `TC002_*.py`, ... | Scripts de teste gerados |
|
|
288
|
+
| Config auxiliar | `tmp/config.json` | Configuração da execução |
|
|
289
|
+
| Sumário do código | `tmp/code_summary.json` | Análise do codebase |
|
|
290
|
+
| Resultados | `tmp/test_results.json` | Resultados detalhados dos testes |
|
|
291
|
+
|
|
292
|
+
---
|
|
293
|
+
|
|
294
|
+
## Mensagem de Conclusão
|
|
295
|
+
|
|
296
|
+
```
|
|
297
|
+
TestSprite executado com sucesso!
|
|
298
|
+
|
|
299
|
+
Projeto: {projectName}
|
|
300
|
+
Tipo: {type}
|
|
301
|
+
Escopo: {testScope}
|
|
302
|
+
Porta: {localPort}
|
|
303
|
+
|
|
304
|
+
Resultados:
|
|
305
|
+
- Testes executados: {total}
|
|
306
|
+
- Passou: {passed}
|
|
307
|
+
- Falhou: {failed}
|
|
308
|
+
- Cobertura: {coverage}%
|
|
309
|
+
|
|
310
|
+
Artefatos gerados:
|
|
311
|
+
- Relatório: testsprite_tests/TestSprite_MCP_Test_Report.md
|
|
312
|
+
- Casos de teste: testsprite_tests/TC*.py
|
|
313
|
+
|
|
314
|
+
Próximo passo: Revisar relatório em testsprite_tests/
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
---
|
|
318
|
+
|
|
319
|
+
## Recursos Adicionais
|
|
320
|
+
|
|
321
|
+
- **Referência (local)**: `$IDE/skills/qa-testsprite/references/testsprite-mcp.md`
|
|
322
|
+
- **Documentação oficial (backup)**: https://docs.testsprite.com/mcp/getting-started/overview
|
|
323
|
+
- **Frameworks suportados**:
|
|
324
|
+
- Frontend: React, Vue, Angular, Svelte, Next.js, Vite, vanilla JS/TS
|
|
325
|
+
- Backend: Node.js, Python, Java, Go, Express.js, FastAPI, Spring Boot, REST, GraphQL
|