← ClaudeAtlas

cnj-parserlisted

Valida, normaliza e extrai componentes de números de processos judiciais brasileiros no formato CNJ (NNNNNNN-DD.AAAA.J.TT.OOOO). Use quando receber números de processo em formatos variados (com ou sem máscara, colados de sistemas diferentes), precisar validar dígitos verificadores, identificar tribunal, instância e órgão julgador, ou preparar dados para consulta em APIs judiciais (DataJud, e-SAJ, PJe, Escavador).
autodevx/legal-skills · ★ 12 · Data & Documents · score 74
Install: claude install-skill autodevx/legal-skills
# Parser de Número CNJ ## Formato oficial O número unificado de processos judiciais segue a Resolução CNJ nº 65/2008: ``` NNNNNNN-DD.AAAA.J.TT.OOOO │ │ │ │ └── Órgão julgador (4 dígitos) │ │ │ └───── Tribunal (2 dígitos) │ │ └─────── Justiça (1 dígito) │ └───────────── Ano de distribuição (4 dígitos) │ └───────────── Dígitos verificadores (2 dígitos) └─────────────────────── Número sequencial (7 dígitos) ``` ## Comportamento esperado ### Input aceito - Número com máscara: `0002150-34.2023.8.13.0024` - Número sem máscara: `00021503420238130024` - Número com espaços ou caracteres extras: `0002150-34.2023.8.13.0024 (TJMG)` - Lote de números (lista, planilha, texto livre com múltiplos processos) ### Passos de processamento 1. **Normalizar**: remover tudo que não é dígito 2. **Validar tamanho**: deve resultar em exatamente 20 dígitos 3. **Segmentar**: separar nos campos NNNNNNN, DD, AAAA, J, TT, OOOO 4. **Validar dígito verificador**: algoritmo módulo 97 (Resolução CNJ 65/2008) 5. **Enriquecer**: identificar segmento de justiça, tribunal e formatar ### Algoritmo de validação (módulo 97) ```python # Dois passos conforme Resolução CNJ 65/2008 r1 = int(nnnnnnn) % 97 r2 = int(f"{r1:02d}{aaaa}{j}{tt}") % 97 dv_calculado = 98 - (int(f"{r2:02d}{oooo}") % 97) valido = (dv_calculado == int(dd)) ``` ### Mapa de segmentos de justiça (campo J) | J | Segmento | |---|----------| | 1 | Supremo Tribunal Federal | | 2 | Conselho Nacio