Scenarios Index
Cada cenário é um par doc+spec lado a lado: scenarios/NNN-slug.md (Gherkin) + scenarios/NNN-slug.spec.ts (BDD). 1:1, sibling. Convenção: feature no topo, Scenario: por sub-fluxo, Given/When/Then/And em bullets. Spec traduz cada Scenario: num describe + it.
Detalhes da convenção em AGENTS.md ## Testing convention.
Green (16) — domain core estável
Section titled “Green (16) — domain core estável”Cenários implementados, specs verdes, domínio in-memory.
- 000 — Custos mensais da casa —
Budgetaggregate +RecurringExpenseentity. - 001 — Importar fatura do cartão —
Account+Invoice+TransactionVO. - 002 — Meta de poupança do casal —
Goalaggregate +ContributionVO. - 003 — Custo variável (expected vs actual) —
RecurringExpense.recordSpend+ variance. - 004 — Reconciliar fatura com expense —
ExpenseReconcilerDomain Service. - 005 — Renda do casal (Household) —
Householdaggregate,MemberEntity em shared-kernel. - 006 — Viabilidade da meta —
FeasibilityCheckcross-context. - 007 — Persistir o orçamento —
BudgetRepositoryport + fake + SQLite. - 008 — Chat com agente conversacional —
AgentChatstateless + read tools. - 009 — Importar fatura Nubank via chat — multimodal PDF via
ImportInvoiceTool. - 010 — Persistir o resto —
GoalRepository/HouseholdRepository/AccountRepository. - 011 — Cotação FX viva —
ExchangeRateProviderport em shared-kernel. - 012 — Chat persistido + retrieval —
AgentMemory+ Mastra adapter. - 013 — Agente escreve no domínio via write tools — propose → confirm + idempotência.
- 014 — Receita variável —
Household.recordExtraIncome+forecastIncome. - 015 — Alerts proativos do orçamento —
BudgetAlertsDomain Service.
Red (14) — impl pendente
Section titled “Red (14) — impl pendente”Cenários documentados (specs escritas, vermelhos), implementação pendente.
Referral + GTM (1):
- 016 — Referral attribution (sem fila) —
Referralsaggregate,ReferralLinkentity, attribution-only.
Agente conversacional avançado (5):
- 017 — Goal via conversa —
CreateGoalToolcria meta via diálogo. - 018 — Onboarding zero-state — chat captura member 2 + rendas + custos.
- 019 — Reminder proativo —
ReminderServiceem planning. - 020 — Gasto rápido sem confirm —
RecordSpendToolfast-path. - 021 — Agente admite limite — anti-hallucination,
{found:false}shape.
Quality conversacional (2):
- 022 — Eval harness conversacional —
EvalRunner+MelToneGuard+ fixtures. - 023 — Edge cases conversacionais —
ConversationGuardpreempt (frustração, loop, humano).
WhatsApp (3):
- wa-001 — Onboarding via WhatsApp — primeira msg
oicria Household direto;ref-<token>opcional dispara attribution. - wa-002 — Fatura Nubank via WhatsApp — upload PDF via canal.
- wa-003 — Group com parceiro — chat 1:1 entre casal + bot.
Landing (3):
- landing-001 — Hero CTA direto — CTA “Falar com mel” direto pra
wa.me/<bot>?text=oi. - landing-002 — Share viral —
?ref=<token>attribution-only, sem fila. - landing-003 — Blog + chat teaser — SEO post + CTA
wa.me.
Convenção em uma linha
Section titled “Convenção em uma linha”- “O casal observa…” →
scenarios/. - “Decidimos usar X porque Y” →
decisions/. - “Esse adapter mapeia row ↔ aggregate” → spec colocada em
src/.../infrastructure/.
Cross-link: AGENTS.md ## Scenarios + ADR 003.