validar-codigo-municipio-ibgelisted
Install: claude install-skill roldaobatista/roldao-method
# validar-codigo-municipio-ibge
Skill para validar codigo IBGE de municipio (7 digitos).
## Regras
- **Formato:** 7 digitos. Os 2 primeiros sao o codigo da UF (11-53, com gaps em 30, 34, 36-39, 44-49); os 4 seguintes sao o sequencial dentro da UF; o ultimo e o DV modulo 10 estilo Luhn.
- **DV:** pesos `1,2,1,2,1,2` sobre os 6 primeiros digitos. Para cada produto, se >= 10 soma os digitos. DV = `(10 - (soma % 10)) % 10`.
- **UF valida:** 11 (RO), 12 (AC), 13 (AM), 14 (RR), 15 (PA), 16 (AP), 17 (TO), 21 (MA), 22 (PI), 23 (CE), 24 (RN), 25 (PB), 26 (PE), 27 (AL), 28 (SE), 29 (BA), 31 (MG), 32 (ES), 33 (RJ), 35 (SP), 41 (PR), 42 (SC), 43 (RS), 50 (MS), 51 (MT), 52 (GO), 53 (DF). 27 codigos.
- **Consulta:** API IBGE (`https://servicodados.ibge.gov.br/api/v1/localidades/municipios/<codigo>`) confirma existencia e devolve nome + UF. Cota publica — nao chamar em loop.
## Como invocar
```bash
python3 ${CLAUDE_SKILL_DIR}/scripts/validar-codigo-municipio-ibge.py 3550308
python3 ${CLAUDE_SKILL_DIR}/scripts/validar-codigo-municipio-ibge.py --remoto 3550308
```
> **Windows:** substitua `python3` por `python` (o instalador oficial do Python no Windows cria apenas `python.exe`).
- Sem `--remoto`: valida UF + DV (offline, gratis, instantaneo).
- Com `--remoto`: confirma existencia no IBGE (requer internet).
## Codigos uteis pra testar
| Cidade | Codigo IBGE |
|---|---|
| Sao Paulo (SP) | 3550308 |
| Rio de Janeiro (RJ) | 3304557 |
| Brasilia (DF) | 5300108 |
| Manaus (AM) | 1302603 |