validar-ielisted
Install: claude install-skill roldaobatista/roldao-method
# validar-ie
Skill para validar Inscricao Estadual (IE) brasileira por UF.
## Regras
- **27 UFs, 27 algoritmos.** IE de SP tem 12 digitos + DV calculado por modulo 11 com pesos especificos. RJ tem 8 digitos, MG tem 13 com 2 DVs, etc. Cada estado define o seu.
- **"ISENTO"** e valor valido pra contribuinte nao-obrigado a IE (consumidor final PF, alguns servicos). Aceitar literalmente sem calcular DV.
- **Sem traco/ponto/barra no banco.** Salvar so digitos. Mascara so na exibicao.
- **VARCHAR, nao BIGINT.** Algumas UFs aceitam letras em casos antigos.
## UFs cobertas nesta skill
| UF | Tamanho | Notas |
|---|---|---|
| SP | 12 digitos | Indutrial/comercial; outras especificas (produtor rural) tem padrao proprio |
| RJ | 8 | Modulo 11 com pesos [2,7,6,5,4,3,2] |
| RS | 10 | Modulo 11 |
| PR | 10 | 2 DVs |
| SC | 9 | Modulo 11 |
| BA | 8 ou 9 | Modulo 10 ou 11 dependendo do primeiro digito |
| Demais (MG, DF, GO, MT, ES, CE, PE, etc.) | varia | **Sem algoritmo dedicado nesta skill** — retorna `valido: false` com motivo explicito |
A skill **valida formato + DV pras 6 UFs cobertas** (SP/RJ/RS/PR/SC/BA). Pras 21 demais, retorna `valido: false` com `metodo: "formal-sem-dv"` e `motivo: "uf-sem-algoritmo-dedicado-valide-com-sintegra-ou-sefaz"`. **Auditoria 10-agentes 2026-05-24:** mudamos de `valido: true` (aceito-com-aviso) pra `valido: false` porque o operador SEFAZ confiava no `true` e o SEFAZ rejeitava o XML.
Pra IE de UF não-coberta, **consultar SINTEGRA/SEFAZ** por outra