Scenario Generator
Crie planos de execucao (scenarios) a partir de pedidos em linguagem natural. Gere o plan.json e os arquivos de apoio (behaviors, curl, SQL mock) seguindo o padrao do repositorio.
Entrada minima a confirmar
- •Nome da feature, ticket e ambiente (metadata).
- •Quais evidencias sao esperadas (browser, api, sql, cli, specialist, logstream).
- •Dependencias externas (endpoints, arquivos, credenciais) e se devem ser mockadas.
- •Ordem do fluxo e regras de export/require entre steps.
Se faltar informacao critica, faca 1-2 perguntas objetivas e siga.
Onde pesquisar primeiro
Leia references/paths.md para a lista de arquivos do repo e padroes de busca.
- •Reaproveitar padroes existentes:
- •
scenarios/eexamples/para planos similares - •
docs/howto/steps.mdedocs/howto/create-plans.mdpara formato - •
docs/howto/browser-behaviors.mdpara actions Playwright - •
docs/howto/inputs-context.mdpara exports/requires
- •
- •Usar
rg --filespara localizarplan.json,behaviors.json,.curl,.sql,.csv.
Fluxo de trabalho recomendado
- •Resumir o pedido do usuario em steps declarativos.
- •Mapear cada step para o dominio correto:
- •
browser,api,sqlEvidence,cli,specialist,logstream
- •
- •Definir estrutura de pasta:
- •
scenarios/<slug>/plan.json - •
scenarios/<slug>/behaviors.json(se houver browser) - •
scenarios/<slug>/requests/*.curl(se houver api) - •
scenarios/<slug>/sql/*.sqlescenarios/<slug>/sql/*.csv(se houver sqlEvidence)
- •
- •Escrever
plan.jsoncom metadata, steps e referencias de arquivos. - •Aplicar exports/requires para encadear dados.
- •Validar rapidamente com
npm start -- --plan <path> --out runs.
Modelo base de plan.json
json
{
"metadata": { "feature": "minha-feature", "ticket": "ABC-123", "env": "local" },
"behaviorsPath": "behaviors.json",
"curlPath": "requests/requests.curl",
"steps": [
{ "id": "login", "type": "browser", "behaviorId": "login" },
{
"id": "get-itens",
"type": "api",
"exports": {
"itemId": { "source": "responseData", "jsonPath": "items[0].id" }
}
},
{
"id": "sql-count",
"type": "sqlEvidence",
"config": {
"sql": {
"queryPath": "sql/count.sql",
"resultPath": "sql/count.csv",
"expectRows": 1
}
}
}
]
}
Behaviors (browser)
- •Sempre nomear
behaviorIdconforme o objetivo do step. - •Preferir actions declarativas (click, fill, waitForResponse, waitForRequest).
- •Evitar waits arbitrarios; usar
waitForRequest/waitForResponsequando houver eventos de API.
Exemplo de trecho:
json
{
"behaviors": {
"login": {
"actions": [
{ "type": "goto", "url": "https://app.exemplo.com" },
{ "type": "fill", "selector": "#email", "text": "{{userEmail}}" },
{ "type": "click", "selector": "button[type=submit]" },
{ "type": "waitForResponse", "url": "/api/session", "status": 200 }
]
}
}
}
Variaveis e env
- •Use sempre
{{chave}}(mustache) para interpolar contexto. - •Se precisar de env, inclua
inputs.envPrefixe mencione.env. - •Exemplo
.env:AUTO_TOKEN=abcvira{{TOKEN}}no contexto.
Erros e validacoes
- •SQL pode falhar com
expectRowsou query invalida. - •CLI falha com
exitCodeeerrorPatterns. - •API so falha em erros de rede/timeout; se precisar falhar em 4xx/5xx, deixe isso explicito no plan (ex: validar com
exports+requires).
SQL evidence
- •Use arquivos mock por padrao:
query.sqleresult.csv. - •Configure
expectRowsquando o resultado precisa validar quantidade.
Curl (API)
- •Centralize chamadas em
.curle usecurlPathno plan. - •Use placeholders
{{variavel}}no curl e exports no stepapi.
Checklist de entrega
- •
plan.jsoncom steps em ordem e metadata completa. - •Arquivos auxiliares criados e referenciados corretamente.
- •
exportserequirescoerentes. - •
npm start -- --plan <path> --out runsexecuta sem erro de schema.
Regras e limites
- •Nao adicionar credenciais reais no repo.
- •Preferir mocks para SQL e API quando nao houver ambiente real.
- •Manter comentarios minimos e arquivos em ASCII.