QA Planner — plano de testes, sem execução
Use esta skill para criar um plano de QA executável por outra IA para a branch atualmente aberta em um repositório local.
O contrato é estritamente plan-only:
validar escopo → analisar requisitos → planejar testes → criar cenários → gravar QA.md → STOP
Contrato não negociável
- Realize somente estas etapas: 1. análise de requisitos, 2. planejamento dos testes e 3. criação dos cenários.
- O artefato principal é
QA.md; ele descreve testes a executar, não resultados.
- Nunca execute testes, builds, linters, typecheckers, instalação de dependências, migrações ou chamadas de produção.
- Nunca altere código de produto, configuração, testes existentes, lockfiles, branches, commits, PRs ou issues.
- A única escrita permitida no repositório-alvo é o bloco gerenciado de
QA.md escolhido por esta skill.
- Não invente requisito, comando, ambiente, dado de teste ou resultado. Marque inferências e lacunas explicitamente.
- A IA executora é outro workflow: ela registra resultados em
QA-RESULTS.md, sem alterar os cenários planejados.
- Ao terminar, pare. Não inicie execução de teste, não gere
QA-RESULTS.md e não proponha uma correção.
O marcador terminal obrigatório é:
Planejamento de QA encerrado. Nenhum teste foi executado.
Entrada e proteção de branch
Use o diretório de trabalho atual. Primeiro descubra a raiz com git rev-parse --show-toplevel e registre:
- repositório e caminho da raiz;
- branch atual e
HEAD SHA;
- estado limpo/sujo;
base e intervalo de diff usados.
| Parâmetro |
Regra |
branch |
Branch esperada. Se informada e diferente da atual, pare como BLOCKED; nunca faça checkout, stash ou reset. |
base |
Base explícita. Se ausente, escolha nesta ordem: base da PR disponível localmente, origin/HEAD, main, master. Registre a escolha. |
source |
PR, issue, documento ou requisito fornecido pelo usuário. Cite-o como evidência. |
output |
Caminho explícito para QA.md; prevalece sobre a seleção automática. |
include_worktree |
Padrão false. Com false, planeje o HEAD commitado e registre alterações locais como não cobertas. Com true, inclua a sujeira atual, sem modificá-la. |
Se a base não puder ser identificada, se HEAD não puder ser resolvido ou se o diretório não for um repositório Git, emita BLOCKED e não crie um plano que finja cobrir uma branch.
Evidências e autoridade
Colete somente por leitura. Priorize as fontes nesta ordem:
- requisito, issue, PR ou especificação fornecidos em
source;
- instruções do repositório (
AGENTS.md, CLAUDE.md, CONTRIBUTING.md, constituição e documentos de arquitetura);
- diff entre a base e o
HEAD, incluindo arquivos adicionados/removidos;
- commits, README, manifests, CI e testes existentes;
- inferência do código — identificada como inferida, nunca apresentada como requisito confirmado.
Liste no plano cada evidência com caminho/URL e, quando aplicável, linhas, commit ou range de diff. Se houver contradição, preserve as duas fontes e registre uma pergunta aberta.
Seleção do local de QA.md
output explícito vence, desde que esteja dentro da raiz do repositório.
- Defina o escopo de lifecycle:
- use um pacote de monorepo somente se todo o diff estiver nele e o pacote possuir manifest/configuração de testes próprios;
- caso contrário, use a raiz do repositório.
- No escopo selecionado, se já existir um diretório explícito de QA/testing com conteúdo (
docs/qa/ ou docs/testing/), grave QA.md nele.
- Caso contrário, grave
<escopo>/QA.md.
- Nunca escolha diretórios gerados, de dependências, vendor, build, cache ou
.git.
- Registre no documento o caminho e a justificativa da escolha.
Preservação de conteúdo humano
O bloco gerenciado usa exatamente:
<!-- qa-planner:start -->
...
<!-- qa-planner:end -->
- Se o arquivo não existir, crie-o com esse bloco.
- Se ambos os marcadores existirem uma vez, atualize somente o conteúdo entre eles.
- Se existir
QA.md sem os marcadores, ou marcadores duplicados/invertidos, pare como BLOCKED. Nunca sobrescreva conteúdo humano.
Fase 1 — Análise de requisitos
Produza em QA.md:
- requisitos confirmados e inferidos, com IDs
REQ-001, REQ-002...;
- critérios de aceite observáveis;
- áreas e contratos alterados;
- integrações, permissões, estados e migrações relevantes;
- riscos de regressão;
- ambiguidades, dependências e bloqueios.
Para cada requisito, indique confirmado ou inferido e cite evidência. Se não houver requisito explícito, use o diff como hipótese de comportamento, mas mantenha o status do plano como PARTIAL até que as lacunas sejam resolvidas.
Fase 2 — Planejamento dos testes
Defina uma estratégia proporcional ao risco, com:
- escopo e fora de escopo;
- matriz de risco (
probabilidade, impacto, prioridade);
- níveis aplicáveis: unitário, integração, API, UI/E2E, smoke, regressão, segurança, desempenho e acessibilidade;
- ambiente, massa de dados, contas, feature flags e dependências necessárias;
- comandos ou harnesses somente quando encontrados nas evidências; caso contrário, escreva
TBD — não encontrado;
- critérios de entrada e de saída para a futura execução.
| Prioridade |
Uso |
P0 |
segurança, dinheiro, identidade, dados, indisponibilidade ou fluxo central bloqueado |
P1 |
regra relevante, integração ou regressão provável |
P2 |
borda, usabilidade, compatibilidade ou melhoria não bloqueadora |
Fase 3 — Criação dos cenários
Crie cenários únicos QA-001, QA-002... Todo cenário precisa mapear ao menos um REQ-* ou um risco explícito. Cubra, quando aplicável:
- caminho feliz;
- entradas inválidas e estados de erro;
- limites e ausência de dados;
- autorização e isolamento entre usuários/tenants;
- falha de integrações, timeout, retry e idempotência;
- persistência, rollback e regressão;
- observabilidade e mensagens de erro;
- segurança, desempenho ou acessibilidade conforme o risco.
Use este formato por cenário:
### QA-001 — <título objetivo>
- **Rastreabilidade:** REQ-001; RISK-002
- **Prioridade:** P0 | P1 | P2
- **Nível/tipo:** API | integração | unitário | UI/E2E | segurança | ...
- **Automação:** recomendada | manual justificadamente | TBD
- **Status inicial:** NOT_RUN
- **Pré-condições e dados:** <estado verificável>
- **Passos:**
1. ...
- **Resultado esperado:** <resultado observável>
- **Evidência a coletar:** <assertion, log, response, screenshot ou métrica>
- **Comando/harness candidato:** <somente se comprovado; caso contrário TBD>
Não escreva PASS, FAIL, SKIPPED ou resultado executado em QA.md.
Estrutura obrigatória de QA.md
Use os headings abaixo, nesta ordem:
# QA Plan
<!-- qa-planner:start -->
## 1. Identificação
## 2. Evidências consultadas
## 3. Requisitos e critérios de aceite
## 4. Rastreabilidade
## 5. Escopo e fora de escopo
## 6. Estratégia de testes
## 7. Ambiente, dados e dependências
## 8. Cenários detalhados
## 9. Regressão necessária
## 10. Candidatos à automação
## 11. Dúvidas, suposições e bloqueios
## 12. Handoff para a IA executora
<!-- qa-planner:end -->
Em ## 1. Identificação, registre READY, PARTIAL ou BLOCKED, a branch/base/SHAs, o range de diff, o local escolhido e a justificativa.
Em ## 12. Handoff para a IA executora, instrua a próxima IA a:
- validar que branch e
HEAD ainda coincidem com o plano;
- executar somente cenários
QA-* aplicáveis;
- registrar comandos, entradas, saída real, evidências e timestamps;
- gravar resultados em
QA-RESULTS.md, preservando QA.md como plano;
- usar apenas
PASS, FAIL, BLOCKED ou SKIPPED em QA-RESULTS.md;
- não inventar resultado quando ambiente, dado ou dependência estiver indisponível.
O documento deve terminar, antes do marcador de fechamento, com:
Planejamento de QA encerrado. Nenhum teste foi executado.
Verificação final
Antes de concluir:
- confirme que somente
QA.md foi criado ou alterado no repositório-alvo;
- confirme que os marcadores e os 12 headings existem uma vez e estão ordenados;
- confirme que todo cenário tem rastreabilidade, prioridade, pré-condição, passos, resultado e evidência;
- confirme que cada comando candidato tem fonte ou está
TBD;
- confirme que não há resultado de execução em
QA.md;
- confirme que toda incerteza permanece explícita;
- encerre no marcador obrigatório e pare.
1---2name: qa-planner3description: QA Planner — plano de testes, sem execução4---56# QA Planner — plano de testes, sem execução78Use esta skill para criar um **plano de QA executável por outra IA** para a branch atualmente aberta em um repositório local.910O contrato é estritamente **plan-only**:1112```text13validar escopo → analisar requisitos → planejar testes → criar cenários → gravar QA.md → STOP14```1516## Contrato não negociável1718- Realize somente estas etapas: **1. análise de requisitos**, **2. planejamento dos testes** e **3. criação dos cenários**.19- O artefato principal é `QA.md`; ele descreve testes a executar, não resultados.20- Nunca execute testes, builds, linters, typecheckers, instalação de dependências, migrações ou chamadas de produção.21- Nunca altere código de produto, configuração, testes existentes, lockfiles, branches, commits, PRs ou issues.22- A única escrita permitida no repositório-alvo é o bloco gerenciado de `QA.md` escolhido por esta skill.23- Não invente requisito, comando, ambiente, dado de teste ou resultado. Marque inferências e lacunas explicitamente.24- A IA executora é outro workflow: ela registra resultados em `QA-RESULTS.md`, sem alterar os cenários planejados.25- Ao terminar, pare. Não inicie execução de teste, não gere `QA-RESULTS.md` e não proponha uma correção.2627O marcador terminal obrigatório é:2829```text30Planejamento de QA encerrado. Nenhum teste foi executado.31```3233## Entrada e proteção de branch3435Use o diretório de trabalho atual. Primeiro descubra a raiz com `git rev-parse --show-toplevel` e registre:3637- repositório e caminho da raiz;38- branch atual e `HEAD` SHA;39- estado limpo/sujo;40- `base` e intervalo de diff usados.4142| Parâmetro | Regra |43|---|---|44| `branch` | Branch esperada. Se informada e diferente da atual, pare como `BLOCKED`; nunca faça checkout, stash ou reset. |45| `base` | Base explícita. Se ausente, escolha nesta ordem: base da PR disponível localmente, `origin/HEAD`, `main`, `master`. Registre a escolha. |46| `source` | PR, issue, documento ou requisito fornecido pelo usuário. Cite-o como evidência. |47| `output` | Caminho explícito para `QA.md`; prevalece sobre a seleção automática. |48| `include_worktree` | Padrão `false`. Com `false`, planeje o `HEAD` commitado e registre alterações locais como não cobertas. Com `true`, inclua a sujeira atual, sem modificá-la. |4950Se a base não puder ser identificada, se `HEAD` não puder ser resolvido ou se o diretório não for um repositório Git, emita `BLOCKED` e não crie um plano que finja cobrir uma branch.5152## Evidências e autoridade5354Colete somente por leitura. Priorize as fontes nesta ordem:55561. requisito, issue, PR ou especificação fornecidos em `source`;572. instruções do repositório (`AGENTS.md`, `CLAUDE.md`, `CONTRIBUTING.md`, constituição e documentos de arquitetura);583. diff entre a base e o `HEAD`, incluindo arquivos adicionados/removidos;594. commits, README, manifests, CI e testes existentes;605. inferência do código — identificada como **inferida**, nunca apresentada como requisito confirmado.6162Liste no plano cada evidência com caminho/URL e, quando aplicável, linhas, commit ou range de diff. Se houver contradição, preserve as duas fontes e registre uma pergunta aberta.6364## Seleção do local de `QA.md`65661. `output` explícito vence, desde que esteja dentro da raiz do repositório.672. Defina o **escopo de lifecycle**:68 - use um pacote de monorepo somente se todo o diff estiver nele **e** o pacote possuir manifest/configuração de testes próprios;69 - caso contrário, use a raiz do repositório.703. No escopo selecionado, se já existir um diretório explícito de QA/testing com conteúdo (`docs/qa/` ou `docs/testing/`), grave `QA.md` nele.714. Caso contrário, grave `<escopo>/QA.md`.725. Nunca escolha diretórios gerados, de dependências, vendor, build, cache ou `.git`.736. Registre no documento o caminho e a justificativa da escolha.7475### Preservação de conteúdo humano7677O bloco gerenciado usa exatamente:7879```markdown80<!-- qa-planner:start -->81...82<!-- qa-planner:end -->83```8485- Se o arquivo não existir, crie-o com esse bloco.86- Se ambos os marcadores existirem uma vez, atualize somente o conteúdo entre eles.87- Se existir `QA.md` sem os marcadores, ou marcadores duplicados/invertidos, pare como `BLOCKED`. Nunca sobrescreva conteúdo humano.8889## Fase 1 — Análise de requisitos9091Produza em `QA.md`:9293- requisitos confirmados e inferidos, com IDs `REQ-001`, `REQ-002`...;94- critérios de aceite observáveis;95- áreas e contratos alterados;96- integrações, permissões, estados e migrações relevantes;97- riscos de regressão;98- ambiguidades, dependências e bloqueios.99100Para cada requisito, indique `confirmado` ou `inferido` e cite evidência. Se não houver requisito explícito, use o diff como hipótese de comportamento, mas mantenha o status do plano como `PARTIAL` até que as lacunas sejam resolvidas.101102## Fase 2 — Planejamento dos testes103104Defina uma estratégia proporcional ao risco, com:105106- escopo e fora de escopo;107- matriz de risco (`probabilidade`, `impacto`, `prioridade`);108- níveis aplicáveis: unitário, integração, API, UI/E2E, smoke, regressão, segurança, desempenho e acessibilidade;109- ambiente, massa de dados, contas, feature flags e dependências necessárias;110- comandos ou harnesses **somente quando encontrados nas evidências**; caso contrário, escreva `TBD — não encontrado`;111- critérios de entrada e de saída para a futura execução.112113| Prioridade | Uso |114|---|---|115| `P0` | segurança, dinheiro, identidade, dados, indisponibilidade ou fluxo central bloqueado |116| `P1` | regra relevante, integração ou regressão provável |117| `P2` | borda, usabilidade, compatibilidade ou melhoria não bloqueadora |118119## Fase 3 — Criação dos cenários120121Crie cenários únicos `QA-001`, `QA-002`... Todo cenário precisa mapear ao menos um `REQ-*` ou um risco explícito. Cubra, quando aplicável:122123- caminho feliz;124- entradas inválidas e estados de erro;125- limites e ausência de dados;126- autorização e isolamento entre usuários/tenants;127- falha de integrações, timeout, retry e idempotência;128- persistência, rollback e regressão;129- observabilidade e mensagens de erro;130- segurança, desempenho ou acessibilidade conforme o risco.131132Use este formato por cenário:133134````markdown135### QA-001 — <título objetivo>136137- **Rastreabilidade:** REQ-001; RISK-002138- **Prioridade:** P0 | P1 | P2139- **Nível/tipo:** API | integração | unitário | UI/E2E | segurança | ...140- **Automação:** recomendada | manual justificadamente | TBD141- **Status inicial:** NOT_RUN142- **Pré-condições e dados:** <estado verificável>143- **Passos:**144 1. ...145- **Resultado esperado:** <resultado observável>146- **Evidência a coletar:** <assertion, log, response, screenshot ou métrica>147- **Comando/harness candidato:** <somente se comprovado; caso contrário TBD>148````149150Não escreva `PASS`, `FAIL`, `SKIPPED` ou resultado executado em `QA.md`.151152## Estrutura obrigatória de `QA.md`153154Use os headings abaixo, nesta ordem:155156```markdown157# QA Plan158159<!-- qa-planner:start -->160## 1. Identificação161## 2. Evidências consultadas162## 3. Requisitos e critérios de aceite163## 4. Rastreabilidade164## 5. Escopo e fora de escopo165## 6. Estratégia de testes166## 7. Ambiente, dados e dependências167## 8. Cenários detalhados168## 9. Regressão necessária169## 10. Candidatos à automação170## 11. Dúvidas, suposições e bloqueios171## 12. Handoff para a IA executora172<!-- qa-planner:end -->173```174175Em `## 1. Identificação`, registre `READY`, `PARTIAL` ou `BLOCKED`, a branch/base/SHAs, o range de diff, o local escolhido e a justificativa.176177Em `## 12. Handoff para a IA executora`, instrua a próxima IA a:1781791. validar que branch e `HEAD` ainda coincidem com o plano;1802. executar somente cenários `QA-*` aplicáveis;1813. registrar comandos, entradas, saída real, evidências e timestamps;1824. gravar resultados em `QA-RESULTS.md`, preservando `QA.md` como plano;1835. usar apenas `PASS`, `FAIL`, `BLOCKED` ou `SKIPPED` em `QA-RESULTS.md`;1846. não inventar resultado quando ambiente, dado ou dependência estiver indisponível.185186O documento deve terminar, antes do marcador de fechamento, com:187188```text189Planejamento de QA encerrado. Nenhum teste foi executado.190```191192## Verificação final193194Antes de concluir:195196- confirme que somente `QA.md` foi criado ou alterado no repositório-alvo;197- confirme que os marcadores e os 12 headings existem uma vez e estão ordenados;198- confirme que todo cenário tem rastreabilidade, prioridade, pré-condição, passos, resultado e evidência;199- confirme que cada comando candidato tem fonte ou está `TBD`;200- confirme que não há resultado de execução em `QA.md`;201- confirme que toda incerteza permanece explícita;202- encerre no marcador obrigatório e pare.