cnj-parserlisted
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