# Lista de comprobación del proyecto

## Funcionamiento

- [ ] El programa procesa todos los registros.
- [ ] Un registro inválido no detiene los siguientes.
- [ ] Se conserva el texto original.
- [ ] Se detectan cantidades incorrectas de campos.
- [ ] Se detectan códigos duplicados.
- [ ] Las etiquetas vacías y repetidas se tratan según las reglas.
- [ ] La salida contiene tabla, resumen y detalle de errores.

## Herramientas del módulo

- [ ] Se utilizan `strip()`, `split()` y `join()`.
- [ ] Se utiliza `casefold()` o se justifica una alternativa.
- [ ] Se utiliza una f-string con ancho o alineación.
- [ ] Se utilizan `len()`, `sum()`, `any()` y `all()`.
- [ ] Se utiliza `min()` o `max()` con `key`.
- [ ] Se utiliza `sorted()` con `key`.
- [ ] Se utiliza `re.fullmatch()`.

## Calidad

- [ ] Cada función tiene una responsabilidad reconocible.
- [ ] Los nombres comunican intención.
- [ ] No se escribieron resultados manualmente.
- [ ] El código no corrige datos mediante suposiciones.
- [ ] Se ejecutaron los casos obligatorios y cinco casos propios.

## Entrega

- [ ] Incluí `normalizador_registros.py`.
- [ ] Incluí `datos_registros.py`.
- [ ] Incluí `README.md`.
- [ ] Incluí el plan de pruebas.
- [ ] Incluí evidencia del reporte.
- [ ] Respondí las cinco preguntas de reflexión.
- [ ] El archivo comprimido tiene el nombre solicitado.
