{
    "format": "skillpro/v1",
    "skill_id": "gabrielcardosodeaguiar45-oss-claude-skills-azevedolima-notificacao-extrajudicial-skill-md",
    "name": "notificacao-extrajudicial",
    "version": "1.0.0",
    "description": "Gera notificações extrajudiciais bancárias (RMC, RCC, consignado-não-contratado, Bradesco-encargos/tarifas/capitalização/pagamento-eletrônico) a partir de templates DOCX com placeholders canônicos. Suporta versão COM-escritório (logo Tiago/Eduardo) e SEM-escritório (Patrick/Gabriel/Alexandre, timbrado neutro).",
    "category": [
        "开发编程"
    ],
    "trigger_words": [],
    "tags": [
        "api",
        "ai",
        "game"
    ],
    "source": "DeepseekModel",
    "source_url": "https://deepseekmodel.com/skill?id=gabrielcardosodeaguiar45-oss-claude-skills-azevedolima-notificacao-extrajudicial-skill-md",
    "exported_at": "2026-09-16T06:17:16+08:00",
    "system_prompt": "name notificacao-extrajudicial description Gera notificações extrajudiciais bancárias (RMC, RCC, consignado-não-contratado, Bradesco-encargos/tarifas/capitalização/pagamento-eletrônico) a partir de templates DOCX com placeholders canônicos. Suporta versão COM-escritório (logo Tiago/Eduardo) e SEM-escritório (Patrick/Gabriel/Alexandre, timbrado neutro). license Proprietary — De Azevedo Lima & Rebonatto Skill: notificacao-extrajudicial Gera notificações extrajudiciais bancárias preenchidas a partir de templates DOCX com placeholders. O fluxo padrão é: carregar _estado_cliente.json → selecionar tese → substituir placeholders → salvar DOCX final . Teses suportadas (7) Slug Subtítulo Versões Hipótese de uso consignado-nao-contratado \"Empréstimo Não Contratado\" COM (Tiago AL) + SEM (Patrick AM) Cliente descobriu desconto no INSS de empréstimo que jamais contratou rmc \"Cartão de Crédito RMC\" COM (Tiago AL) + SEM (Patrick AM) Cliente foi induzido a aderir a Reserva de Margem Consignável em vez de empréstimo rcc \"Cartão de Crédito RCC\" COM (Tiago AL) + SEM (Patrick AM) Cliente foi induzido a aderir a Reserva de Cartão Consignado bradesco-encargos \"Descontos indevidos de encargos\" SEM apenas (Patrick AM) Encargos \"MORA CRED PESS\" / \"ENC LIM CRED\" sem contrato — protocolada só no AM bradesco-tarifas \"Descontos indevidos de tarifas\" SEM apenas (Patrick AM) Tarifas bancárias sem contrato (IRDR 0005053-71 TJAM) — protocolada só no AM bradesco-capitalizacao \"Descontos indevidos de título de capitalização\" SEM apenas (Patrick AM) Título de capitalização não contratado — protocolada só no AM bradesco-pe \"Descontos a título de Pagamento Eletrônico\" SEM apenas (Patrick AM) \"PAGTO ELETRON COBRANÇA *\" — terceiros (EAGLE, ASPECIR, etc.) — protocolada só no AM Nota: As 4 teses Bradesco (encargos, tarifas, capitalização, PE) só têm versão SEM-escritório porque essas pretensões são protocoladas exclusivamente pelo Patrick no AM. Não há demanda de versão COM-logo Tiago/Eduardo para essas teses. Dossiê de notificação (gravado 13/05/2026) Toda notificação gerada pela _run_notificacoes.py agora sai dentro de uma subpasta dedicada por banco já com todos os documentos de instrução prontos para envio extrajudicial: <pasta_acao>/notificacao/ └── BRADESCO/ ├── Notificação Extrajudicial - BRADESCO - CONSIGNADO-NAO-CONTRATADO.docx ├── OAB TIAGO.pdf ← assinatura do procurador ├── 2- Procuração - Contrato 0123471622742.pdf ← procurações dos contratos do banco ├── 2- Procuração - Contrato 0123471622766.pdf ├── 2- Procuração - Contrato 016178952.pdf ├── 3- RG e CPF.pdf ← identidade do cliente ├── 6- Histórico de empréstimo (grifado).pdf ← HISCON └── 7- Histórico de pagamento.pdf ← HISCRE REGRA OPERACIONAL (gravada 13/05/2026, Gabriel): o dossiê extrajudicial NÃO inclui declaração de hipossuficiência nem comprovante de residência — esses ficam reservados para a inicial. A notificação extrajudicial só precisa demonstrar (a) identidade do notificante (RG/CPF), (b) outorga de poderes (procurações), (c) existência dos descontos (HISCON + HISCRE) e (d) qualificação do procurador (OAB). Cadastro de OAB em assets/oabs/ (PDFs das carteiras): OAB TIAGO.pdf — usado quando advogado.chave == 'tiago' (AL Federal/Estadual) OAB PATRICK.pdf — chave 'patrick' (AM Estadual) OAB GABRIEL.pdf — chave 'gabriel' (BA Federal) OAB ALEXANDRE.pdf — chave 'alexandre' (MG Estadual, SE) OAB EDUARDO.pdf — chave 'eduardo' (outras situações) Função montar_dossie_notificacao em _run_notificacoes.py : Copia a OAB do procurador (mapeada por advogado.chave → OAB_PDF_POR_PROCURADOR ) Filtra as procurações da pasta_acao pelos números dos contratos do banco (regex no nome do arquivo). Para litisconsórcio Bradesco + Mercantil, cada subpasta só leva as procurações relevantes ao seu banco. Copia documentos pessoais e financeiros (RG, hipossuficiência, comp. residência, HISCON grifado, HISCRE) que estão na pasta_acao. Validado em 13/05/2026: CICERO (Bradesco 9 docs anexos + Mercantil 7 docs anexos), bath completo de 14 clientes. Estrutura de arquivos notificacao-extrajudicial/ ├── SKILL.md ← este arquivo ├── assets/ │ ├── __BASE_com-escritorio__*.docx ← bases originais Tiago/Eduardo (com logo) │ ├── __BASE_sem-escritorio__*.docx ← bases originais Patrick/Gabriel (timbrado neutro) │ ├── template_<slug>__com-escritorio.docx ← templates placeholderizados COM │ └── template_<slug>__sem-escritorio.docx ← templates placeholderizados SEM ├── scripts/ │ └── docx_replace.py ← substituir_em_docx, aplicar_timbrado_neutro ├── _test_consignado.py ← gera testes consignado-nao-contratado ├── _test_rmc.py ← gera testes RMC ├── _test_rcc.py ← gera testes RCC └── _test_bradesco.py ← gera testes Bradesco (4 teses) Como adicionar conteúdo de cliente Os templates esperam placeholders {{VARIAVEL}} em MAIÚSCULAS. Vocabulário canônico documentado em Modelos/Notificacoes/placeholders-canonicos.md no vault. Resumo dos principais grupos: Cabeçalho: CIDADE_ASSINATURA , UF_ASSINATURA , DATA_EXTENSO Cliente: CLIENTE_NOME , CLIENTE_NACIONALIDADE_GENERO , CLIENTE_ESTADO_CIVIL , CLIENTE_PROFISSAO , CLIENTE_CPF , CLIENTE_RG , CLIENTE_RG_ORGAO , CLIENTE_LOGRADOURO , CLIENTE_BAIRRO , CLIENTE_MUNICIPIO , CLIENTE_UF , CLIENTE_CEP , INSCRITO_A , DOMICILIADO_A Banco: BANCO_NOME_QUALIFICADO , BANCO_CNPJ , BANCO_LOGRADOURO , BANCO_BAIRRO , BANCO_MUNICIPIO , BANCO_UF , BANCO_CEP , NOME_BANCO_CONTRATO Advogado: ADVOGADO_NOME , ADVOGADO_NOME_MAIUSCULO , ADVOGADO_OAB_UF , SEU_SUA_ADVOGADO_A , ESCRITORIO_ENDERECO_COMPOSTO (resolvido por UF de atuação via skills/_common/escritorios_cadastro.py → matriz Joaçaba/SC + unidade de apoio: AM→Maués, AL/SE→Arapiraca, BA/ES→Salvador, MG→Uberlândia; sem hardcoded em produção) Específicos por tese: Consignado/RMC/RCC: CONTRATO_NUMEROS , CONTRATO_VALOR_EMPRESTIMO , CONTRATO_QTD_PARCELAS , CONTRATO_VALOR_PARCELA , CONTRATO_DATA_INCLUSAO , CONTRATO_DATA_PRIMEIRO_DESCONTO Bradesco-Encargos/Tarifas/Capitalização/PE: RUBRICAS (os placeholders DATA_INICIAL , DATA_FINAL , NUMERO_DESCONTOS , VALOR_TOTAL foram REMOVIDOS dos templates em 13/05/2026 — o parágrafo \"Tais descontos vêm ocorrendo, em síntese, no período aproximado de...\" foi excluído porque o procurador prefere demonstrar os descontos diretamente via tabela anexa, sem repetir período/total em texto corrido) Bradesco-PE (terceiros): TERCEIRO_NOME , TERCEIRO_CNPJ , TERCEIRO_LOGRADOURO , TERCEIRO_BAIRRO , TERCEIRO_MUNICIPIO , TERCEIRO_UF , TERCEIRO_CEP API programática from scripts.docx_replace import substituir_em_docx, aplicar_timbrado_neutro # Gerar notificação para um cliente substituir_em_docx( 'assets/template_rmc__com-escritorio.docx' , { '{{CLIENTE_NOME}}' : 'JOSÉ DA SILVA' , '{{CLIENTE_CPF}}' : '000.111.222-33' , # ... resto dos placeholders }, 'output/notificacao_jose.docx' ) Helpers em scripts/docx_replace.py Função Uso substituir_em_docx(input, mapa, output) Substitui todas as ocorrências de cada chave do mapa (dict) no DOCX. Faz LOOP — múltiplas ocorrências do mesmo placeholder no mesmo parágrafo são todas substituídas. Limpa parágrafos vazios excessivos. aplicar_timbrado_neutro(corpo, timbrado, output) Pega o corpo de um template e aplica headers/footers/imagens de outro. Usado para gerar SEM a partir de COM (e vice-versa). inserir_paragrafo_antes(doc, ancora, texto, herdar_estilo_de) Insere parágrafo antes de uma âncora textual, herdando estilo do parágrafo anterior. padronizar_fontes(doc, corpo='Cambria', destaque='Segoe UI') Heurística para normalizar fontes (use só quando o BASE não vier com fontes corretas). normalizar_tema_corpo(docx_path) Conserta documentos cujo corpo aponta para majorFont (Calibri) em vez de minorFont (Cambria). Substitui asciiTheme=\"majorHAnsi\" → \"minorHAnsi\" . Geração programática vs templates manuais A skill distingue dois momentos: Bases originais ( __BASE_* ) — modelos reais do escritório com cliente preenchido. Servem de molde visual mas nunca são editados. Templates placeholderizados ( template_* ) — geração automática a partir das bases via _test_*.py , substituindo dados específicos por {{PLACEHOLDERS}} . Não editar diretamente — regenerar via script se mudar a base. Os scripts _test_*.py rodam o pipeline completo: Lê o BASE Aplica placeholderização (substitui dados reais por placeholders) Gera template SEM via aplicar_timbrado_neutro() (se BASE for COM) ou template COM (se BASE for SEM) Gera teste com cliente fictício para validação visual Reporta placeholders pendentes (= bug se houver) Pipeline integrado — _run_notificacoes.py Implementado em 2026-05-08. Processa em batch uma pasta de clientes. Para cada cliente: Carrega _estado_cliente.json (gerado pela skill kit-juridico ) Localiza pasta KIT (variantes: KIT , 0. Kit , Kit ) Localiza procuração (heurística em ordem de prioridade): PDF \"Procuração*\" no KIT PDF original referenciado em _proc_crops/manifesto.json PNG já recortado em _proc_crops/crop_pag_01.png (último recurso) Extrai qualificação via extrair_qualificacao.py : Tenta text-layer; se vazio, OCR com easyOCR + rotação automática (procurações vêm escaneadas em landscape) Aplica regex restrito ao bloco OUTORGANTE (antes de OUTORGAD[OA]S) para evitar pegar dados dos advogados Tolera erros de OCR (\"vlúva\" → \"viúva\", \"RG/CPF\" → distingue do CPF) Para cada pastas_acao do JSON, agrupa contratos por (banco_chave, tese) aplicando filtros: Banco extraído do path ( APOSENTADORIA\\BANCO BMG - RMC-RCC → BMG); suporta litisconsórcio ( BANCO X + BANCO Y ) Benefício : contratos com beneficio_pasta igual ao prefixo do path (APOSENTADORIA/PENSAO) Tipo : Path contém \"RMC-RCC\" → só tipo em (RMC, RCC) ; tese = rmc ou rcc (decidida por contrato). Mantém Ativos + Excluídos (mesmo a margem encerrada pode ter cobranças residuais). Senão → só tipo == CONSIGNADO ; tese = consignado-nao-contratado . Autoridade da procuração (regra crítica do escritório): se a pasta_acao contém PDFs de procuração com número de contrato no nome do arquivo (padrão Procuração - Banco X - Contrato N.pdf ), só esses contratos entram na notificação. Procurações são outorgadas individualmente por contrato — listar contratos não referidos é ultra vires. Estratégia primária: regex no nome do arquivo ( Contrato\\s+(?:nº)?\\s*(\\d{6,}) ) Fallback: procurar ESTUDO DE CADEIA.docx na pasta_acao e extrair os números do texto Se nenhum número encontrado, NÃO infla com \"todos do banco\" — gera notificação com todos os contratos do JSON apenas se não há procurações com número. Filtro de situação aplicado SOMENTE quando NÃO há procurações específicas: para CONSIGNADO, só Ativos. Quando há procurações, todas as situações entram (a procuração já decidiu impugnar). De-duplicação : por número de contrato; preferindo Ativo sobre Excluído Para cada (banco, tese) resolvido, busca cadastro de banco via bancos.py : UF da ação determina filial usada (AL → filial Maceió, AM → filial Manaus, demais → matriz) Monta mapa completo de placeholders e chama substituir_em_docx() Salva em <pasta_acao>/notificacao/Notificação Extrajudicial - <banco> - <tese>.docx Filtros importantes (lições aprendidas): Sem filtro de benefício → cliente com APOSENTADORIA + PENSAO ganhava notificações com contratos misturados (errado) Sem filtro de tipo → pasta \"BANCO BMG - RMC-RCC\" ganhava contratos consignados normais (errado) Sem de-duplicação → JSON da kit-juridico pode ter o mesmo contrato listado 2 vezes (ex: vindo de páginas diferentes do HISCON), inflando a lista de contratos na notificação Modo piloto (testar 1 cliente): $env:NOTIF_FILTRO_CLIENTE = \"ANAIZA\" python _run_notificacoes.py Cadastros usados: scripts/bancos.py — 21 bancos com matriz + filiais AL/AM/MG quando relevantes Advogado por UF: AL → Tiago (template COM-escritório); AM → Patrick (template SEM-escritório) Limitação atual: RG/órgão expedidor frequentemente não vêm da procuração (que tem só CPF). Os campos faltantes são substituídos por marcadores [INDICAR XXX] (ex: [INDICAR RG] ) para revisão manual no DOCX final. Bugs conhecidos da kit-juridico (a corrigir lá) Encontrados rodando o pipeline em 14 clientes (2026-05-08): Duplicação de contratos no JSON — o mesmo contrato (mesmo número, banco, benefício) aparece 2 vezes em contratos[] . O orchestrator do _run_notificacoes.py faz de-duplicação por número (preferindo Ativo sobre Excluído ), mas a fonte deveria ser limpa. Pastas com whitespace ruim — pastas_acao[].path_relativo ocasionalmente vem com espaços dentro de palavras: BANCO BRADESCO FINANC IAMENT OS , AGIBAN K , BANCO MERCA NTIL DO BRASIL . O orchestrator trata via fuzzy matching (normaliza whitespace), mas a fonte deveria gerar nomes corretos. cliente.* falta CPF, RG, endereço, profissão, estado civil, gênero — daí precisamos do OCR de procuração no _run_notificacoes.py . A kit-juridico deveria já popular esses campos no JSON quando processa procurações. Cadastros do vault A skill consulta o vault Obsidian em Modelos/Notificacoes/ : Arquivo Conteúdo _MOC.md Map of Content da pasta de notificações placeholders-canonicos.md Vocabulário fechado de placeholders teses/<slug>.md Texto-fonte da tese + metadados (template_docx, placeholders obrigatórios) bancos/<slug>.md Cadastro de cada banco (CNPJ, endereços, filiais) — em construção terceiros-pagamento-eletronico/<slug>.md Cadastro de terceiros recebedores (EAGLE, ASPECIR, etc.) — em construção Histórico 2026-05-11 — Endereço do escritório deixou de ser hardcoded ( Joaçaba/SC + Arapiraca/AL cravado para qualquer UF). Agora é resolvido em runtime via skills/_common/escritorios_cadastro.py:montar_endereco_escritorio_completo(uf_acao) . AM passa a usar a unidade de Maués; BA/ES Salvador; MG Uberlândia; SE compartilha Arapiraca. Aplicado em batch de 5 clientes do captador Elizio (todos AM Patrick). 2026-05-08 — Skill remasterizada. 7 teses suportadas (consignado-nao-contratado + rmc + rcc + 4 Bradesco). Templates COM/SEM gerados automaticamente. Bug de substituição múltipla corrigido ( substituir_em_paragrafo agora itera enquanto encontrar match).",
    "model_config": {
        "provider": "deepseek",
        "model": "deepseek-chat",
        "temperature": 0.7,
        "max_tokens": 4096,
        "top_p": 0.9
    },
    "examples": [
        {
            "input": "请用notificacao-extrajudicial帮我处理问题",
            "output": "好的，我是notificacao-extrajudicial。Gera notificações extrajudiciais bancárias (RMC, RCC, consignado-não-contratado, Bradesco-encargos/tarifas/capitalização/pagamento-eletrônico) a partir de templates DOCX com placeholders canônicos. Suporta versão COM-escritório (logo Tiago/Eduardo) e SEM-escritório (Patrick/Gabriel/Alexandre, timbrado neutro). 我会根据你的需求提供专业帮助。"
        },
        {
            "input": "介绍一下你的能力",
            "output": "我是notificacao-extrajudicial，专注于开发编程领域。Gera notificações extrajudiciais bancárias (RMC, RCC, consignado-não-contratado, Bradesco-encargos/tarifas/capitalização/pagamento-eletrônico) a partir de templates DOCX com placeholders canônicos. Suporta versão COM-escritório (logo Tiago/Eduardo) e SEM-escritório (Patrick/Gabriel/Alexandre, timbrado neutro)."
        }
    ],
    "install_guide": {
        "coze": "在 Coze 平台创建 Bot -> 技能配置 -> 导入此 .skill 文件",
        "dify": "在 Dify 平台创建应用 -> 添加知识库 -> 导入此 .skill 配置",
        "claude": "将 system_prompt 字段内容复制到 Claude 自定义指令中",
        "custom": "将此 .skill 文件加载到你的 AI Agent 框架中，解析 system_prompt 和 model_config 即可使用"
    },
    "scripts": {
        "python": "# notificacao-extrajudicial - Python extension\n# Add custom Python logic here\ndef process(input_data):\n    return input_data\n",
        "javascript": "// notificacao-extrajudicial - JavaScript extension\n// Add custom JS logic here\nfunction process(inputData) {\n    return inputData;\n}\n"
    },
    "tools": {
        "mcp_servers": [],
        "api_endpoints": []
    },
    "dependencies": {
        "python": [],
        "node": []
    },
    "hooks": {
        "on_load": "echo \"Skill loaded: notificacao-extrajudicial\"",
        "on_call": "",
        "on_error": "echo \"Skill error: please check logs\""
    }
}