format_list_bulleted
Tabla de Contenidos
21 secciones
Orden de lectura recomendado: doc-readme → doc-guia → doc-arquitectura → doc-operacion → doc-auditoria
Auditoría: 2026-07-08 · Build: 192 páginas, 0 errores, 0 warnings · Dependencias: 21 producción, 4 desarrollo · Posts: 63 · Hermes skills: 5
Área Estado Observaciones Build ✅ Saludable 192 páginas, 0 errores, 0 warnings Dependencias ✅ Actualizadas Sin vulnerabilidades npm audit Cobertura de tests ⚠️ Baja 6 tests solo en posts.ts SEO ✅ Completo BreadcrumbList JSON-LD, OG tags, Twitter Cards, sitemap, RSS Rendimiento ✅ Optimizado Imágenes responsivas (srcset), preload LCP, font-display swap Accesibilidad ⚠️ Mejorable Sin tests de a11y automatizados Documentación ✅ Actualizada 5 docs del sistema (Julio 2026) + Hermes integrado Gestión IA ✅ Nuevo Hermes Agent con 5 skills, 12 archivos de configuración CI/CD ✅ Funcional GitHub Actions → Cloudflare Pages
Componente Archivos Función SOUL SOUL.mdPersonalidad, protocolo LEER→ANALIZAR→PROPONER→CONFIRMAR→ESCRIBIR→LOGUEAR→INDEXAR Memory vault-index.md, conventions.md, backlog.mdÍndice de 63 slugs, ~150 tags, ~100 huérfanos, 22 ideas priorizadas Rules frontmatter-spec.md, wikilinks-spec.md, style-guide.mdEspecificaciones formales de frontmatter, wikilinks y estilo Skills crear-post.md, ampliar-post.md, generar-wikilinks.md, auditar-vault.md, documentar.mdFlujos detallados para cada operación Templates post-template.mdPlantilla YAML con 21 variables
Capacidades: crear posts con frontmatter + wikilinks, ampliar notas, escanear/enriquecer wikilinks, auditar el vault (huérfanos, consistencia), verificar documentación.
Los 5 docs (doc-readme, doc-guia, doc-arquitectura, doc-operacion, doc-auditoria) reflejan el sistema Hermes
Conteos actualizados: 36→63 posts
Nuevo skill documentar.md para mantener los docs sincronizados
Arquitectura limpia: Separación clara en capas (lib → pages → components → layout). Sin dependencias circulares.
CSS modular: @layer para control de cascada, overrides DaisyUI fuera de layer, 0% CSS duplicado.
SEO completo: BreadcrumbList (Schema.org), OG tags con dimensiones de imagen, Twitter Cards, preload de LCP, fetchpriority="high".
Imágenes responsivas: Pipeline completo con Sharp: crop 1920×1080 + variantes 640w/1024w/1280w. <picture> + srcset + sizes + aspect-ratio en todos los componentes.
Fuentes locales: Roboto Flex + Material Symbols cargadas sin CDN externo, font-display: swap.
Build automatizado: npm run build = images + astro + pagefind en un solo comando.
192 páginas estáticas: Sin servidor, sin base de datos, hosting en CDN global.
Búsqueda offline: Pagefind indexa 5933 palabras en 192 páginas sin servidor de búsqueda.
Grafo interactivo: 3D (Three.js) y 2D (D3.js) para visualizar relaciones entre contenido.
Scroll suave: Lenis 1.3 con soporte táctil y re-inicialización con View Transitions.
Generación automática de posts: Script generar_articulo.py que, a partir de una URL, extrae contenido, detecta categoría, genera tags y produce un artículo Markdown completo vía Ollama (qwen2.5-coder:7b-64k) con frontmatter validado contra el schema Zod del blog.
Detección inteligente de categorías: El script analiza el texto extraído contra un diccionario de palabras clave por categoría (Biodanza, Documentación, Tecnología, Opinión, Literatura) y asigna automáticamente la más relevante.
Normalización de tags: Sistema de extracción de palabras frecuentes con filtrado de stopwords en español, normalización a formato palabra-compuesta y aseguramiento de cantidad mínima (3) y máxima (8) de etiquetas.
# Problema Impacto Prioridad 1 Cobertura de tests baja (solo 6 tests en posts.ts)Alto — regresiones no detectadas en tags.ts, graph.ts, images.ts Alta 2 Script sync-obsidian.js obsoleto en package.json Bajo — script sync referencia archivo inexistente Baja 3 package.json name: multiblog-obsidian (no coincide con markeup/)Bajo — solo afecta a npm internals Baja 4 Sin E2E tests Medio — no hay tests de integración para páginas renderizadas Media 5 Sin tests de a11y automatizados Medio — no hay axe-core ni pa11y en CI Media 6 Sin TypeScript en componentes Astro Bajo — los .astro usan JSX sin type-checking estricto en props Baja 7 Posts de prueba (posiblemente existan archivos de test)Bajo — pueden aparecer en build si no están en draft Baja 8 Lighthouse CI umbrales no verificados recientemente Medio — los umbrales en lighthouserc.json pueden no reflejar realidad Media
Paquete Versión Uso Estado astro ^4.0.0 Framework SSG ✅ Activo @astrojs/rss ^4.0.0 RSS feed ✅ Activo @astrojs/sitemap ^3.0.0 Sitemap XML ✅ Activo @astrojs/tailwind ^5.0.0 Integración Tailwind ✅ Activo @tailwindcss/typography ^0.5.20 Estilos .prose ✅ Activo daisyui ^4.0.0 Componentes UI + temas ✅ Activo 3d-force-graph ^1.80.0 Grafo 3D ✅ Activo three ^0.184.0 Three.js (grafo 3D) ✅ Activo three-spritetext ^1.10.0 Texto en grafo 3D ✅ Activo pagefind ^1.5.2 Búsqueda full-text ✅ Activo @pagefind/default-ui ^1.5.2 UI de búsqueda ✅ Activo sharp ^0.33.5 Procesamiento imágenes ✅ Activo gray-matter ^4.0.3 Parse frontmatter ✅ Activo unist-util-visit ^5.1.0 AST traversal (wikilinks) ✅ Activo zod ^4.4.3 Validación schema ✅ Activo lenis ^1.3.23 Smooth scroll ✅ Activo rehype-slug ^6.0.0 IDs en headings ✅ Activo rehype-autolink-headings ^7.1.0 Anchor links ✅ Activo gsap ^3.15.0 Animaciones (¿en uso?) ⚠️ Verificar @fontsource/* ^5.2.8 Fuentes (cargamos locales) ⚠️ Posiblemente redundante
Paquete Versión Uso Estado typescript ^5.0.0 Type checking ✅ Activo vitest ^4.1.8 Test runner ✅ Activo @vitest/ui ^4.1.8 UI de tests ✅ Activo @types/node ^20.0.0 Tipos Node.js ✅ Activo
gsap — Verificar si realmente se usa en el código actual. Si no, eliminar.
@fontsource/roboto-flex — Las fuentes se cargan localmente desde public/fonts/. Este paquete puede ser redundante.
Estas dependencias son independientes del ecosistema npm y no afectan al build de Astro. Se gestionan con uv pip install y no aparecen en package.json.
Paquete Versión Uso Estado python 3.x Runtime del script ✅ Requerido requests reciente Descarga HTTP + API Ollama ✅ Activo trafilatura reciente Extracción de texto principal (primario) ✅ Activo beautifulsoup4 reciente Parseo HTML (fallback) ✅ Activo ollama latest Servidor LLM local ✅ Requerido qwen2.5-coder:7b-64k latest Modelo de generación de artículos ✅ Requerido
Optimización Implementación Impacto Imágenes responsivas <picture> + srcset 640w/1024w/1280w/1920w + sizesLCP ↓ Preload LCP <link rel="preload"> + fetchpriority="high" en heroLCP ↓↓ Font display swap font-display: swap en Roboto Flex + Material SymbolsFCP ↓ Aspect ratio style="aspect-ratio: 16/9" en todas las imágenesCLS ↓ Lazy loading loading="lazy" en PostCard + decoding="async"LCP ↑ CSS modular @layer para especificidad controladaFCP ↓ Chunk splitting chunkSizeWarningLimit: 1000kB, carga asíncrona Three.jsFCP ↓ View Transitions Fade 1000ms UX ↑
Optimización Prioridad Esfuerzo Lighthouse CI en pre-commit hook Media Bajo Eliminar CSS no utilizado (PurgeCSS) Baja Medio Service Worker para offline Baja Alto
Aspecto Estado npm audit 0 vulnerabilidades conocidas Secretos en código No detectados .gitignore Syncthing, Obsidian, logs, .env ignorados HTTPS Cloudflare Pages fuerza HTTPS Headers de seguridad No configurados (CSP, HSTS) — delegado a Cloudflare Admin panel Protegido con JWT (login.astro)
Fecha Cambio 2026-07-08 🆕 Hermes Agent: sistema de gestión IA con 5 skills, 12 archivos. Documentación actualizada (63 posts). Skill documentar.md 2026-07-03 Imágenes responsivas (srcset), preload LCP, font-display swap, OG tags completos, BreadcrumbList JSON-LD 2026-06-29 Scripts deploy.sh y commit-local.sh, desactivación watchexec, compresión audio 2026-06-15 Glassmorphism unificado, documentación reestructurada 2026-02-07 CSS modular, warnings de build resueltos, 191→192 páginas
Auditoría generada: 2026-07-09 20:33
Posts: 65 | Build: 347 páginas (98M)
Dependencias: 23 producción, 4 desarrollo
Scripts npm: 23 | Imágenes: 57 WebP | Audios: 6
Ollama: 🟢 ONLINE (6 modelos)
Último commit: 300f118 📝 Nuevo post: musica-esferas (3 hours ago)