Importar regras em JSON
Referência técnica de docs/rule-packs.md, preservada a partir do projeto Caderninho.
Documento técnico do projeto
Este texto foi preservado de docs/rule-packs.md. Relatos de testes e validações são os do documento original. Para a jornada guiada, comece em Instalar o Caderninho.
Na tela Regras, escolha Importar regras, selecione um JSON e confira a prévia. Resolva nomes de categorias ambíguos, atualize a prévia e confirme. A lista é atualizada depois da gravação. Cancelar/voltar não grava nada.
O JSON Brasil é um arquivo externo de exemplo (30 regras, 9 categorias, 60 alternativas); também pode ser baixado pelo diálogo. Nenhum catálogo é importado no bundle ou instalado automaticamente.
O contrato aceita pacotes genéricos com id, version, categories e rules.
Categorias declaram key, name, kind (expense, income ou transfer).
Cada regra declara key, categoryKey e os mesmos campos/filtros nativos de
create_rule, sem categoryId: a categoria é resolvida no espaço selecionado.
Limites: 100 regras, 50 categorias e arquivo de 64 KiB. JSON malformado, chaves
repetidas, categorias não declaradas e filtros incompatíveis são recusados.
A prévia usa preview_rule_import sem escrever. import_rules exige confirmação,
revisão da prévia e chave de idempotência; categorias/regras/recibo são gravados
no mesmo batch atômico. Uma revisão concorrente exige atualizar a prévia. Um
resultado de rede incerto pode ser confirmado novamente com a mesma chave.
Nomes iguais de categorias exigem mapeamento explícito. IDs de outro espaço, categorias ocultas ou de outro tipo são recusados. Categorias ausentes são criadas; categorias existentes mantêm nome, ícone e grupo. Conta/pessoa em filtros precisa existir nesta instalação e respeitar o escopo do motor.
IDs de regras derivam de espaço/pacote/chave. Reimportar preserva regras editadas ou pausadas e não duplica regras idênticas já existentes. Esta versão acrescenta regras; não substitui versões instaladas. Excluir uma regra permite recriá-la em uma importação explícita posterior.
Regras pessoais vêm antes das importadas, inclusive quando criadas depois.
Dentro de cada grupo, prioridade menor e depois ID determinam o vencedor.
Defaults preservam categorias editadas localmente, inclusive null. Editar uma
regra importada a torna pessoal. Não há aplicação automática ao histórico:
novas importações normais usam o trigger existente; preview_rule e apply_rules
continuam disponíveis para conferência e reaplicação explícita (até 500 registros).
Excluir/pausar regra não desfaz classificações anteriores.
O motor só dobra A–Z; acentos são literais. O Brasil de exemplo exige débito POSTED/BRL e descrições inteiras declaradas. iFood/Rappi precisam indicar ramo. Não há inferência por CNPJ/raiz/gateway nem garantia de cobertura bancária; fontes sustentam atividades, não descritores ou frequência pessoal de compras.
Fontes primárias conferidas em 24/10/2026 sustentam as atividades abaixo, sem provar frequência pessoal ou formatos de extrato. Antes de ampliar aliases, confira ramo e colisões na fonte e acrescente casos positivos/negativos ao teste D1 rule-packs.test.ts.
| Regras | Fonte de manutenção / razão |
|---|---|
| iFood: farmácia, pets, mercado, restaurante | iFood: vários segmentos; exigir ramo explícito. |
| Rappi: farmácia, pets, mercado, restaurante | Rappi: vários segmentos; exigir ramo explícito. |
| Uber viagens / 99Pop | Uber, 99: separar viagens de entregas e carteira. |
| Netflix / Spotify | Netflix, Spotify: serviços pagos; não afirmar recorrência individual. |
| Petz | Petz: produtos/serviços pet. |
| Drogasil / Drogaria Raia | RD Saúde: varejo farmacêutico; não inferir medicamento. |
| Drogaria São Paulo / Drogarias Pacheco | DPSP: farmácias; não inferir item. |
| Assaí / Atacadão / Pão de Açúcar | Assaí, Atacadão, GPA: mercado amplo, não apenas alimentos. |
| McDonald’s / Burger King / KFC | McDonald’s, BK, KFC: restaurantes. |
| Lojas Renner / Lojas Riachuelo / KaBuM / Decathlon | Renner, Riachuelo, KaBuM, Decathlon: compras amplas; não classificar fatura ou produto específico. |
| Smart Fit / Alura / Udemy | Smart Fit, Alura, Udemy: academia e educação. |