Skill: data-validation
Validación de datos. Si entra basura, sale basura — pero no si la frenás antes.
Trigger
- Llegan datos de una fuente externa y necesitás verificar que estén bien
- Definiste un esquema y querés asegurarte de que se cumple
- Un pipeline de producción necesita garantías de calidad
- Querés documentar qué esperás de cada columna
Workflow LEND
1. ANALIZAR
├── Origen: ¿API, CSV, DB, usuario? ¿confiable?
├── Tipo de validación: ¿esquema (tipos), rango (valores), integridad (unicidad)?
├── ¿Qué pasa si falla? ¿rechazar, alertar, imputar?
└── Frecuencia: ¿one-shot o pipeline recurrente?
2. OFRECER (Menú del Senior)
├── A) Pandera — esquemas en Python, integración con Pandas, lightweight
├── B) Great Expectations — suites de expectativas, documentación, UI
└── C) Manual + asserts — validación ad-hoc con condiciones if/assert
3. ELEGIR → confirmación
4. HACER
├── Pandera: definir DataFrameModel con tipos, rangos, nulos permitidos
├── Great Expectations: crear expectation suite con expect_column_values_to_be_between, etc.
├── Manual: asserts + logging con mensajes claros
├── Documentar qué campos son requeridos, opcionales, y sus constraints
└── Si falla: decidir comportamiento (detener pipeline, alertar, imputar)
5. VERIFICAR
├── El esquema pasa con datos válidos
├── El esquema falla con datos inválidos (probado)
└── El mensaje de error es claro sobre qué falló y dónde
Patrones
- Validar temprano: en cuanto los datos entran al pipeline, no después de transformarlos
- Contrato de datos: documentar qué espera cada etapa del pipeline
- Pandera para DataFrames: validación tipada con integración Pandas nativa
- Great Expectations para producción: suites compartibles, data docs, alertas
Anti-patrones
- ❌ Validar después de transformar — perdés la traza del error original
- ❌ Mensajes de error genéricos — "validation failed" no ayuda a nadie
- ❌ No documentar el esquema — "esto funciona" no es documentación
- ❌ Validar todo como required cuando hay campos opcionales
1---2name: data-validation3description: Define and enforce data schemas and quality checks using pandera, Great Expectations, or manual assertions, with clear error handling and documentation.4license: MIT5---67# Skill: data-validation89Validación de datos. Si entra basura, sale basura — pero no si la frenás antes.1011## Trigger1213- Llegan datos de una fuente externa y necesitás verificar que estén bien14- Definiste un esquema y querés asegurarte de que se cumple15- Un pipeline de producción necesita garantías de calidad16- Querés documentar qué esperás de cada columna1718## Workflow LEND1920```211. ANALIZAR22 ├── Origen: ¿API, CSV, DB, usuario? ¿confiable?23 ├── Tipo de validación: ¿esquema (tipos), rango (valores), integridad (unicidad)?24 ├── ¿Qué pasa si falla? ¿rechazar, alertar, imputar?25 └── Frecuencia: ¿one-shot o pipeline recurrente?26272. OFRECER (Menú del Senior)28 ├── A) Pandera — esquemas en Python, integración con Pandas, lightweight29 ├── B) Great Expectations — suites de expectativas, documentación, UI30 └── C) Manual + asserts — validación ad-hoc con condiciones if/assert31323. ELEGIR → confirmación33344. HACER35 ├── Pandera: definir DataFrameModel con tipos, rangos, nulos permitidos36 ├── Great Expectations: crear expectation suite con expect_column_values_to_be_between, etc.37 ├── Manual: asserts + logging con mensajes claros38 ├── Documentar qué campos son requeridos, opcionales, y sus constraints39 └── Si falla: decidir comportamiento (detener pipeline, alertar, imputar)40415. VERIFICAR42 ├── El esquema pasa con datos válidos43 ├── El esquema falla con datos inválidos (probado)44 └── El mensaje de error es claro sobre qué falló y dónde45```4647## Patrones4849- **Validar temprano**: en cuanto los datos entran al pipeline, no después de transformarlos50- **Contrato de datos**: documentar qué espera cada etapa del pipeline51- **Pandera para DataFrames**: validación tipada con integración Pandas nativa52- **Great Expectations para producción**: suites compartibles, data docs, alertas5354## Anti-patrones5556- ❌ Validar después de transformar — perdés la traza del error original57- ❌ Mensajes de error genéricos — "validation failed" no ayuda a nadie58- ❌ No documentar el esquema — "esto funciona" no es documentación59- ❌ Validar todo como required cuando hay campos opcionales