egutierrez 7158be8142 feat(eda): cat_distr una hoja por columna (gráfico incluido) + sin descripción redundante con glosario
Cada columna categórica del capítulo CAT DISTR ocupa ahora su propia página
(PDF) / slide (PPTX) con su gráfico junto a su tabla, y se elimina la
explicación larga de la entropía que duplicaba el capítulo GLOSARIO.

Cambios:

- model.Group: nuevo campo aditivo `page_break_before` (default False). Cuando
  es True el renderer fuerza al grupo a empezar en página/slide nueva (salvo que
  la actual esté vacía). Comportamiento de todos los capítulos existentes
  intacto. Soportado también en el normalizador dict-defensivo `as_block`.

- render_pdf_impl / render_pptx_impl `_place_group`: respetan `page_break_before`.

- render_pdf_impl / render_pptx_impl `_measure_block`: medición fiel de KVTable y
  DataTable (replica `_place_*`: título-heading, wrap del valor/celdas por
  columna, nota). La estimación previa asumía una línea por fila e ignoraba el
  título, así que el keep-together infra-presupuestaba la figura y el gráfico se
  desbordaba a la página siguiente. Helpers `_measure_kv_table`/`_measure_data_table`.

- render_pptx_impl `_shrink_group_figures`: umbrales más bajos (budget>0.6,
  per>0.35) para que en el slide corto 16:9 la figura se encoja y conviva con la
  tabla en lugar de partir la columna (misma filosofía keep-together del PDF).

- cat_distr.py:
  - build envuelve cada columna en un `Group(page_break_before=idx>0)`: una
    columna por página/slide, con su tabla de cardinalidad, su top-k y su donut
    juntos. La primera comparte página con la intro para no dejar una casi vacía.
  - intro recortada: se elimina el párrafo que explicaba qué es la entropía
    (vive en el capítulo GLOSARIO, donde el término `[[term:entropia]]` enlaza);
    se conserva el término clicable y el total de filas de referencia.
  - `_cardinality_block`: métricas relacionadas agrupadas por fila (distintos·%·
    únicos; entropía bits·máx·norm; desbalance·longitud) sin perder ningún dato,
    para que tabla + gráfico quepan en el slide 16:9.
  - columnas id-like (≈100% distintas): se omite la top-k (sería una lista de
    valores únicos; la nota lo explica) y el donut ocupa ese hueco.
  - CHAPTER_VERSION 1.1.0 -> 1.2.0.

Verificado con titanic (render_automatic_eda run_models=True): PDF 5 páginas y
PPTX 5 slides del capítulo (intro + 1 por columna: Name, Sex, Ticket, Embarked),
cada columna con su gráfico junto a su tabla, sin cortes. Suite verde
(121 passed): pytest automatic_eda/ + render_automatic_eda_test.py.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-30 19:26:33 +02:00
2026-06-29 11:05:00 +02:00
2026-05-30 17:28:47 +02:00
2026-05-30 17:28:47 +02:00
2026-05-30 17:28:47 +02:00
2026-06-27 20:43:03 +02:00

fn-registry — Schema de documentación

Registry personal de código con búsqueda FTS. Diseñado para composición funcional y agentes.

Archivos

  • functions.md — Schema de la tabla functions (incluye pipelines y componentes React)
  • types.md — Schema de la tabla types
  • integrity.md — Reglas de integridad y referencias cruzadas
  • architecture.md — Visión general del sistema
  • sync_setup.md — Vincular una PC al server registry.organic-machine.com (env vars, fn sync, troubleshooting)
  • adr/ — Architecture Decision Records: decisiones de diseño (qué se decidió y por qué)
  • ../reports/ — Reportes de trabajo: artefacto local (entregable de una tarea: qué se hizo, cómo se verificó, gaps). Gitignored salvo .gitkeep, NO sube a Gitea ni se versiona (como los vaults). Convención en .claude/rules/reports.md. Decisión: ADR 0006

Tablas

Tabla Descripción
functions Funciones atómicas, pipelines y componentes React
types Tipos algebraicos (product / sum)

kind: valores posibles

Valor Descripción
function Función atómica pura o impura
pipeline Composición de funciones, siempre impura
component Componente React, extiende el schema base

fn-registry schema v1.0

S
Description
Registry personal de codigo reutilizable con busqueda FTS
Readme 186 MiB
Languages
Python 51.7%
Go 18.5%
C++ 15%
Shell 8.1%
C 3.4%
Other 3.2%