validar-pis-paseplisted
Install: claude install-skill roldaobatista/roldao-method
# validar-pis-pasep
Valida PIS (Programa de Integração Social), PASEP (Programa de Formação do Patrimônio do Servidor Público) e NIS (Número de Identificação Social) brasileiros — todos 11 dígitos, mesmo algoritmo de dígito verificador.
## Quando usar
- Admissão eSocial (S-2200) — PIS obrigatório.
- Folha de pagamento.
- Consulta CAIXA / FGTS.
- Importação de planilha de RH.
- Cadastro de pensão alimentícia (BPC, Bolsa Família).
## Uso
```bash
python3 scripts/validar-pis.py "17033259504"
python3 scripts/validar-pis.py "170.33259.50-4"
```
> **Windows:** substitua `python3` por `python` (o instalador oficial do Python no Windows cria apenas `python.exe`). No Git Bash, `python3` so existe via alias do user.
Output:
```
OK PIS/PASEP/NIS válido
INVÁLIDO DV de PIS/PASEP/NIS inválido
INVÁLIDO formato esperado: 11 dígitos
```
## Algoritmo
Módulo 11 com pesos `[3, 2, 9, 8, 7, 6, 5, 4, 3, 2]` aplicados aos 10 primeiros dígitos. Resto 10 ��� DV = 0.
```python
PESOS_PIS = [3, 2, 9, 8, 7, 6, 5, 4, 3, 2]
def valida_pis(s: str) -> bool:
d = ''.join(c for c in s if c.isdigit())
if len(d) != 11:
return False
if d == d[0] * 11:
return False
soma = sum(int(d[i]) * PESOS_PIS[i] for i in range(10))
resto = soma % 11
dv = 0 if resto < 2 else 11 - resto
return int(d[10]) == dv
```
## Sinteticos pra teste
Use em fixture:
- `17033259504` — válido (sintético, DV correto por módulo 11)
- `00000000000` — REJEITADO (sintético óbvio inválido)
Gere