Skip to content

v0.4.0 — ADR-001 portable-day1 cerrado

Choose a tag to compare

@berriosb berriosb released this 14 Sep 18:31
· 32 commits to main since this release

ADR-001 cerrado: portable-day1

Este release cierra el ADR-001 (ver `docs/adr/001-portable-day1.md`): el toolkit ahora entrega valor end-to-end desde un Excel corporativo sucio hasta un PDF ejecutivo, pasando por warehouses cloud con dialecto-aware.

Skills nuevas (3)

  • `excel-profiler` — Detecta hoja con datos, fila de headers, merged cells, columnas con >30% nulos, columnas constantes, IDs únicos en Excels con merged cells, headers en filas 3-7, totales mal formateados.
  • `report-export` — Exporta reporte ejecutivo a PDF (WeasyPrint + fallback pdfkit), PPTX (python-pptx nativo) o HTML standalone (imágenes embebidas en base64).
  • `sql-cloud-warehouse` — Conexión a Snowflake, BigQuery o Redshift vía SQLAlchemy + driver oficial + snippets dialecto-aware (IFF/IF/CASE, DATE_TRUNC, TRY_CAST/SAFE_CAST, GETDATE).

Recetas importables

  • 8 funciones en `skills/report-export/recetas/` (parse_insights, render_plotly, build_pdf, build_ppt, build_html, verify_*)
  • 6 módulos en `skills/sql-cloud-warehouse/recetas/` (connect, introspect, dialect_snippets, validate, errors)
  • Loader `skills_loader.py` para resolver el problema de imports con guión en nombres de skills.

Demos end-to-end

  • `examples/excel_sample/` — sample sucio + test que detecta 3 hojas, header en fila 5, columna email 52% nulos, columna país constante.
  • `examples/report_export_sample/` — 3 gráficos Plotly + insights.md → PDF 86KB + PPTX 126KB (6 slides) + HTML 139KB.
  • `examples/sql_cloud_warehouse_sample/` — demo offline (sin credenciales) + demo con SQLite mock para validar introspección + JOIN discovery.

Smoke tests

```bash
make test-excel # excel-profiler end-to-end
make test-export-pdf # report-export → PDF
make test-export-ppt # report-export → PPTX
make test-export-html # report-export → HTML
make test-sql-cloud-offline # dialect snippets + validate + errores
```

Targets skipped (corren solo si tenés credenciales reales):
`make test-snowflake` / `test-bigquery` / `test-redshift` ejecutan `SELECT 1` contra el warehouse.

Peer dependencies opcionales

Las deps cloud son peerDeps opcionales — el usuario instala solo la que use. La skill emite error accionable con `pip install` si falta:

| Dep | Tamaño | Cuándo |
| |---|---|
| snowflake-connector-python | ~50MB | target=Snowflake |
| sqlalchemy-bigquery + google-cloud-bigquery | ~30MB | target=BigQuery |
| sqlalchemy-redshift + redshift-connector | ~20MB | target=Redshift |

SQLAlchemy, kaleido, python-pptx, weasyprint también son peerDeps (5-50MB cada una).

PRDs / ADRs incluidos

  • `docs/adr/001-portable-day1.md` — decisión arquitectónica firmada 2026-09-14.
  • `docs/prd/excel-profiler.md` + `docs/prd/report-export.md` + `docs/prd/sql-cloud-warehouse.md` — specs completos con workflow 6 fases, recetas y criterios de listo.

Próximo: ADR-002

Quedan como follow-up (ADR-002):

  • `api-builder` — FastAPI wrapper para deployar análisis como servicio
  • `excel-formulas` — lectura de fórmulas en Excel para auditoría
  • `sql-write` — escritura/DDL guarded (solo lectura por ahora)
  • Databricks SQL — extensión de sql-cloud-warehouse
  • Audit logging — qué agente disparó qué query en producción