{"id":9765,"plugin_id":"plugin_asdk_app_6a32a7da351c81919db830cd602abcf5","kind":"skill","collection_source":null,"comparison_source":null,"observed_at":"2026-09-30T22:55:37.853Z","digest":"7544e9acfa1e7cb89ac5cbb2d02c8147734a3010224c0c0b8a5704272181583c","against":null,"payload":{"description":"Use quando a conversa envolver Granatum ou dados financeiros da empresa: DRE, fluxo de caixa, resumo financeiro, pendências, extrato, lançamentos, contas a pagar/receber, criar ou corrigir lançamento. Não use para finanças pessoais genéricas, sistemas que não sejam Granatum, aconselhamento tributário/jurídico ou operações bancárias fora das ferramentas Granatum.\n","included_files":[{"relative_path":"agents/openai.yaml","size_in_bytes":479},{"relative_path":"references/config.md","size_in_bytes":2059},{"relative_path":"references/dre.md","size_in_bytes":2071},{"relative_path":"references/extrato.md","size_in_bytes":2533},{"relative_path":"references/fluxo-caixa.md","size_in_bytes":1859},{"relative_path":"references/novo-lancamento.md","size_in_bytes":3643},{"relative_path":"references/pendencias.md","size_in_bytes":1840},{"relative_path":"references/regras-de-campo.md","size_in_bytes":5305},{"relative_path":"references/resumo-mes.md","size_in_bytes":2101}],"name":"granatum-financeiro","skill_md_contents":"---\nname: granatum-financeiro\ndescription: >\n  Use quando a conversa envolver Granatum ou dados financeiros da empresa: DRE,\n  fluxo de caixa, resumo financeiro, pendências, extrato, lançamentos, contas a\n  pagar/receber, criar ou corrigir lançamento. Não use para finanças pessoais\n  genéricas, sistemas que não sejam Granatum, aconselhamento tributário/jurídico\n  ou operações bancárias fora das ferramentas Granatum.\nmetadata:\n  version: \"0.1.0\"\n---\n\n# Granatum Financeiro\n\nRegras que valem para toda interação com o Granatum. Aplicar mesmo quando o\nusuário não invocar nenhum comando específico.\n\n## Resolver a empresa antes de qualquer coisa\n\nToda ferramenta do Granatum exige `wgi_conta_id`. Nunca inventar esse valor.\n\n1. Chamar `listar_empresas` na primeira operação da sessão.\n2. Se houver uma única empresa, adotá-la e seguir sem perguntar.\n3. Se houver mais de uma, perguntar em qual trabalhar e manter essa escolha pelo\n   resto da conversa.\n4. Ao trocar de empresa no meio da conversa, avisar explicitamente e descartar\n   IDs de conta, categoria e centro de custo obtidos para a empresa anterior -\n   eles não são válidos entre empresas.\n\n## Quando ler referências\n\n- Para configurar ou testar a conexão, leia [references/config.md](references/config.md).\n- Para criar lançamento, leia [references/novo-lancamento.md](references/novo-lancamento.md).\n- Para DRE, leia [references/dre.md](references/dre.md).\n- Para fluxo de caixa, leia [references/fluxo-caixa.md](references/fluxo-caixa.md).\n- Para extrato, busca ou correção de lançamentos, leia [references/extrato.md](references/extrato.md).\n- Para contas a pagar/receber e vencimentos, leia [references/pendencias.md](references/pendencias.md).\n- Para visão geral do mês ou desempenho financeiro sem relatório específico, leia [references/resumo-mes.md](references/resumo-mes.md).\n- Para montar escrita, interpretar erro da API, diagnosticar relatório inesperado ou lidar com campos, leia [references/regras-de-campo.md](references/regras-de-campo.md).\n\n## Regime contábil: nunca deixar implícito\n\nO regime determina qual data conta. Errar aqui produz um relatório que parece\ncerto e está errado.\n\n| Situação | Regime |\n| --- | --- |\n| DRE (`obter_dre`) | `competencia`, sempre |\n| Fluxo de caixa (`obter_fluxo_caixa`) | `caixa`, sempre |\n| Drill-down após um relatório | o **mesmo** regime do relatório de origem |\n| Listagem livre de lançamentos | `caixa` por padrão; declarar qual foi usado |\n\nAo apresentar qualquer número, dizer qual regime foi usado e o período coberto.\nSe o usuário pedir algo ambíguo (\"quanto faturei em julho\"), assumir o padrão da\ntabela, entregar o resultado e mencionar em uma linha que existe a outra leitura.\n\n## Relatório zerado é diagnóstico, não resposta\n\nUm DRE ou fluxo de caixa que volta com tudo em zero quase nunca significa\n\"não houve movimento\". Antes de reportar ausência de dados ao usuário, verificar:\n\n1. **Regime trocado** - competência vs caixa invertidos.\n2. **Categorias não mapeadas** - conferir os alertas de mapeamento na resposta\n   do relatório; categorias fora da árvore da DRE não aparecem no resultado.\n3. **Período de referência** - confirmar o formato (`mensal`=YYYY-MM,\n   `trimestral`=YYYY-Tn, `semestral`=YYYY-Sn, `anual`=YYYY) e se o período já\n   fechou.\n4. **Filtros herdados** - `conta_ids`, `categoria_ids` ou\n   `centro_custo_lucro_ids` restritivos vindos de uma pergunta anterior.\n\nCruzar com `obter_lancamentos` no mesmo período para checar se há movimento\nbruto. Só afirmar \"não houve movimentação\" depois disso.\n\n## Guardrails de escrita\n\nEscritas atingem os livros reais do cliente. Não existe modo de simulação.\n\n**Antes de `criar_lancamento`:**\n\n- Reunir os dados, montar um resumo legível (tipo, valor, vencimento, categoria,\n  conta, pessoa, descrição) e **esperar confirmação explícita do usuário**.\n  Nunca criar direto a partir do primeiro pedido, mesmo que todos os campos\n  tenham sido informados de uma vez.\n- Validar a categoria: só usar item com `aceita_lancamento=true`. Categoria-pai é\n  recusada pela API. Se o usuário nomear uma categoria-pai, mostrar as folhas\n  disponíveis abaixo dela e pedir para escolher.\n- Validar a conta: usar `listar_contas` com `apenas_para_lancamento=true`.\n\n**Duplicatas:**\n\nSe a resposta vier com status `confirmacao_necessaria`, apresentar os\n`lancamentos_existentes` ao usuário e perguntar se deve criar mesmo assim. Só\nreenviar com `confirmar_duplicata: true` após um \"sim\" humano explícito.\n**Nunca definir `confirmar_duplicata: true` por conta própria**, em nenhuma\ncircunstância, nem para \"resolver\" um erro, nem em retry automático.\n\n**Exclusão:**\n\nSó chamar `excluir_lancamento` quando o usuário pedir exclusão de forma direta e\ninequívoca, identificando o lançamento. Confirmar antes. Nunca excluir como\nefeito colateral de uma correção - para corrigir, usar `atualizar_lancamento`.\n\n**Escopo de escrita ausente:**\n\nAs ferramentas de escrita exigem o escopo OAuth `lancamentos:write`, concedido\nseparadamente do escopo de leitura. Se uma ferramenta de escrita retornar erro\nJSON-RPC `-32602` com `data.codigo = \"escopo_insuficiente\"`, `escopo_necessario`,\n`escopos_concedidos` e `hint_for_llm`, a conexão do usuário foi autorizada apenas\npara leitura.\n\nNão é erro nos dados e não adianta ajustar os campos e tentar de novo. Dizer ao\nusuário que a conexão atual só tem permissão de leitura e que, para criar,\nalterar ou excluir lançamentos, precisa reconectar o Granatum aceitando a\npermissão de alterar lançamentos. Depois disso, parar. **Não** repetir a chamada,\nnão tentar outra ferramenta de escrita, não sugerir contorno. Consultas continuam\nfuncionando normalmente - seguir ajudando com relatórios e leitura.\n\n**Atualização preserva o que não é enviado:**\n\nEm `atualizar_lancamento`, omitir um campo preserva o valor atual; passar `0` nos\ncampos de vínculo (`pessoa_id`, `centro_custo_lucro_id`, `forma_pagamento_id`)\né que remove. Isso é o **oposto** de `criar_lancamento`, onde omitir e passar\nzero dão no mesmo. Para limpar um vínculo, enviar `0` explicitamente - omitir\nretorna sucesso sem alterar nada. Enviar somente o delta confirmado com o\nusuário, nunca o objeto inteiro.\n\n## Regras de campo que causam erro silencioso\n\n- `valor` é sempre positivo. O sinal vem de `tipo_lancamento`, nunca do número.\n- `data_pagamento` é o único indicador de pago. Presente = pago, ausente =\n  previsto. Não pode ser data futura.\n- `data_competencia` omitida faz o Granatum resolver sozinho. Não inventar valor.\n- `identificador_externo` é obrigatório e é o que protege contra duplicidade.\n  Regras completas em [references/regras-de-campo.md](references/regras-de-campo.md).\n- `atualizar_lancamento` só opera em lançamento simples. Séries, lançamentos\n  compostos e transferências precisam ser editados na interface do Granatum -\n  informar isso ao usuário em vez de tentar.\n\n## Como apresentar números\n\n- Formatar em reais (R$ 1.234,56).\n- Sempre indicar período e regime.\n- Em variações, dar o valor absoluto e o percentual.\n- Não arredondar valores de lançamentos individuais.\n- Não afirmar causa para uma variação sem ter feito drill-down. Dizer o que\n  mudou, e oferecer investigar o porquê.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}