validar-cnhlisted
Install: claude install-skill roldaobatista/roldao-method
# validar-cnh
Valida numero de registro de CNH (11 digitos) usando algoritmo oficial Denatran/Detran.
## Regras
- **11 digitos.** Numero unico nacional, vinculado a pessoa (segue ao motorista mesmo trocando de estado).
- **DV1:** soma ponderada dos 9 primeiros digitos por pesos 9..1. Modulo 11. Se resto > 9, DV1 = 0 e marca `dsc = 2` para o calculo do DV2.
- **DV2:** soma ponderada dos 9 primeiros por pesos 1..9. Subtrai `dsc`. Modulo 11. Se < 0, soma 11. Se > 9, DV2 = 0.
- **Mesmo digito repetido** (`11111111111`) bloqueia — invalido por construcao mesmo passando o DV.
## Como invocar
```bash
python3 ${CLAUDE_SKILL_DIR}/scripts/validar.py 12345678900
```
> **Windows:** `python` em vez de `python3`.
Saida: `OK <11-digitos>` ou `INVALIDO <motivo>`.
## Boas praticas
- Salvar como `VARCHAR(11)` (preserva zeros a esquerda).
- Categoria (A/B/AB/C/D/E) e validade vivem em coluna separada — algoritmo nao valida.
- Mascarar em log: `*********12`.
- CNH e dado pessoal (LGPD-001). Acesso a CNH em larga escala (frota) loga em audit trail (LGPD-004).
- Para frota: validar tambem RENAVAM (skill `validar-renavam`) e placa do veiculo.
## Anti-padroes
- Confundir numero de registro CNH com numero de espelho — sao codigos diferentes.
- Aceitar `00000000000` em fixture — gerar valido por algoritmo.
- Confiar que CNH valida = motorista habilitado — algoritmo so confere matematica, nao consulta Detran.