---
name: eda-csv-contextual
description: 'Realiza EDA robusto sobre un CSV por ejecucion con limpieza, verificacion, visualizaciones y analisis inferencial de cada grafica. Usar cuando se necesita perfilado de calidad, deteccion de outliers IQR y reporte accionable por columna. Antes de analizar, solicita contexto de negocio para cada columna (tipo esperado, rango o categorias validas, nulos permitidos y significado).'
argument-hint: 'Ruta CSV y objetivo del analisis'
user-invocable: true
---

# EDA CSV Contextual

## Objetivo
Crear un analisis exploratorio reproducible y util para decisiones, empezando por contexto semantico de columnas y continuando con limpieza, verificacion, visualizacion y hallazgos.
Cada grafica debe incluir una explicacion clara de que muestra y que se puede inferir.

## Cuando usar este skill
- Cuando hay un archivo CSV y se necesita EDA completo.
- Cuando la calidad de datos es incierta y se deben validar supuestos.
- Cuando se requiere documentar reglas por columna antes del analisis.

## Entradas minimas
- Ruta de archivo CSV.
- Objetivo del analisis (ejemplo: control de calidad, modelado, reporte operativo).

## Paso 0: Solicitar contexto por columna (obligatorio)
Antes de cualquier calculo, pedir al usuario una ficha por columna. Si el usuario no tiene todo, permitir "desconocido" y continuar con advertencias.

Plantilla requerida por columna:
- `column_name`
- `tipo_esperado`: numerico | categorico | fecha | texto | booleano | id
- `descripcion_columna` (que representa la columna en lenguaje simple)
- `unidad` (si aplica)
- `rango_valido` (min/max o regla)
- `categorias_validas` (si aplica)
- `nulos_permitidos`: si/no + regla
- `valores_invalidos_conocidos` (ejemplo: -999, NA, texto basura)
- `es_clave` (si/no)

Decision:
- Si falta mas del 50% del contexto critico (tipo_esperado, nulos_permitidos, rango/categorias, descripcion_columna), generar primero una version "EDA preliminar" y marcar conclusiones como provisionales.

## Paso 1: Carga y estandarizacion
1. Cargar CSV con configuracion robusta (encoding, separador, parse de fechas controlado).
2. Normalizar nombres de columnas (trim, lower_snake_case opcional, remover espacios dobles).
3. Crear diccionario de metadatos por dataset: filas, columnas, memoria, muestra.

Checks de calidad:
- Confirmar lectura sin truncamiento.
- Detectar columnas duplicadas por nombre.

## Paso 2: Limpieza inicial
1. Estandarizar nulos (`'', 'na', 'n/a', 'null', 'none', '-999'` segun contexto).
2. Convertir tipos usando `tipo_esperado` con coercion segura.
3. Limpiar texto (trim, unificar mayus/minus cuando aplique).
4. Eliminar duplicados exactos y reportar duplicados de clave si `es_clave = si`.

Decision:
- Si conversion de tipo falla en >10% de filas para una columna, no forzar conversion silenciosa. Reportar y pedir confirmacion de regla.

## Paso 3: Verificacion de calidad
Analizar por columna:
- Completitud: nulos y vacios.
- Validez: rango/categorias/tipos contra reglas esperadas.
- Consistencia: formatos mixtos, unidades mezcladas, valores atipicos de dominio.
- Unicidad: para columnas clave e IDs.

Checks de salida:
- Tabla de issues priorizada por severidad (alta/media/baja).
- Conteo y porcentaje de filas afectadas por issue.

## Paso 4: EDA descriptivo
Para numericas:
- `count, mean, std, min, p25, p50, p75, max`, skewness opcional.
- Outliers con IQR por defecto.

Para categoricas:
- cardinalidad, top categorias, rare categories.

Para fechas:
- cobertura temporal, huecos, granularidad, estacionalidad basica.

## Paso 5: Visualizaciones recomendadas
- Numericas: histogramas + boxplots.
- Categoricas: barras de frecuencia.
- Fechas: series temporales y volumen por periodo.
- Relaciones: matriz de correlacion (solo numericas), scatter para pares clave.

Para cada grafica, agregar una seccion breve:
- `lectura`: que se observa de forma objetiva.
- `inferencia`: que hipotesis o conclusion preliminar sugiere.
- `accion`: que validar o limpiar despues de este hallazgo.

Regla:
- Evitar graficos redundantes. Priorizar los que respondan el objetivo del analisis.

## Paso 6: Analisis por CSV
Para el CSV cargado:
1. Resumen ejecutivo (3-7 hallazgos).
2. Riesgos de calidad y su impacto probable.
3. Recomendaciones de limpieza adicional.

## Paso 7: Entregables
Generar:
1. `data_quality_report` por dataset.
2. `eda_summary` con hallazgos accionables.
3. Lista de decisiones tomadas y pendientes de confirmacion del usuario.
4. Interpretacion de cada grafica con lectura, inferencia y accion.

## Criterios de finalizacion
- Contexto por columna solicitado y registrado (o marcado como desconocido).
- Limpieza aplicada con trazabilidad de cambios.
- Verificacion completada con issues priorizados.
- Visualizaciones clave generadas.
- Explicacion inferencial incluida en cada grafica.
- Recomendaciones finales conectadas al objetivo del analisis.

## Prompt de ejemplo
- `/eda-csv-contextual Analiza data/assays.csv y explica que se puede inferir de cada grafica.`
- `/eda-csv-contextual Analiza data/litho.csv para calidad de datos y resume riesgos criticos.`
