Hub único de Informes — secciones agrupadas + escaneo build-time anti-huérfanos
Descripción
Refactorización del sitio de informes en el Workspace. Consolida 3 entradas de navegación en 1 (/informes) y añade escaneo build-time anti-huérfanos para garantizar que ningún informe HTML queda invisible por falta de registro en el manifest.
Cambios principales
1. Consolidación de navegación
Antes: 3 entradas de menú
- “Informes” →
/reports(Informes del sistema, generados con IA) - “Deliberaciones” →
/informes(Archivo de La Antesala: roast, storm, análisis) - “Informes Supercontexto” →
/supercontext/reports(reportes del Bibliotecario)
Ahora: 1 entrada principal
- “Informes” →
/informes(hub único que agrupa todo)
Los informes del sistema y Supercontexto ahora aparecen como subsecciones en el pie del hub.
2. Nueva lógica de escaneo build-time (src/pages/informes.astro)
En tiempo de build, la página ejecuta:
// Lee el manifest curado
const registrados = readFileSync('./public/informes/index.json')
// Escanea el directorio físico buscando HTML huérfanos
for (const dir of readdirSync('./public/informes', { withFileTypes: true })) {
for (const file of readdirSync(`./public/informes/${dir.name}`)) {
if (!file.endsWith('.html')) continue;
const ruta = `/informes/${dir.name}/${file}`;
// Si la ruta no está en el manifest, añádela como "sin registrar"
if (!rutasRegistradas.has(ruta)) {
huerfanos.push({ titulo, fecha, ruta, sinRegistrar: true });
}
}
}
Beneficio: Garantiza visibilidad. Un HTML olvidado en public/informes/roast/ aparecerá igualmente en la página, marcado con badge “sin registrar”. El dev/skill responsable sabe que debe actualizar index.json para curar el título y metadatos.
3. Agrupación en secciones
La página organiza los informes en secciones temáticas con descripción:
- Presentaciones y ayudas — Para usuarios: novedades del producto, explicaciones.
- Deliberaciones de La Antesala — roast (GO/RESHAPE/KILL) y storm (investigación multi-lente).
- Análisis técnicos — Mediciones puntuales (costes, rendimiento, viabilidad).
- Otros — Tipos adicionales no categorizados.
- Otras familias de informes (pie) — Enlaces a
/reports(sistema) y/supercontext/reports(wiki).
Cada informe muestra:
- Tipo (roast, storm, analisis, presentación, etc.)
- Título
- Veredicto (solo roast: GO/RESHAPE/KILL, con color semántico)
- Badge “sin registrar” si encontrado en disco pero no en manifest
- Fecha en formato largo (legible)
4. Cambio en /reports
- Título: “Informes” → “Informes del sistema”
- Subtítulo: aclarado que son “generados automáticamente con IA”
Esto deja claro que /reports es un dominio distinto (métricas, costes, estado del sistema) respecto al hub /informes (deliberaciones curadas + análisis).
Verificación
✓ Typecheck: 0 errores
✓ Build: 2171 páginas OK
Archivos modificados
src/pages/informes.astro— Escaneo + agrupación + seccionessrc/pages/reports.astro— Cambio de títulosrc/components/shell/BottomNav.tsx— Consolidación navsrc/components/shell/Sidebar.tsx— Consolidación nav
Impacto en UX
- Simplificación: menos opciones de menú, un punto de entrada claro.
- Descubribilidad: los informes “huérfanos” (olvidados en el manifest) ahora son visibles.
- Claridad informativa: secciones y descripción de propósito.
Véase también
- [[ia-tech—metodo—antesala-y-voz]] — Contexto de La Antesala y el flujo de deliberación
- [[entity—workspace—page—informes]] — Página de informes del Workspace
- [[feature—workspace—reports-panel]] — Panel de reportes del sistema (IA)