English · Español
Changelog¶
Un feed de alta señal de decisiones estructurales y cambios en la forma
del currículo. Para el progreso por fase consulta cada
PHASE_NN_REPORT.md.
Sin publicar¶
Despliegue online — Cloudflare Pages (docs) + Fly.io (portal)¶
- "GitHub construye, Cloudflare publica": un workflow de GitHub Actions
deploy-docsconstruye el sitio estático (Python puro — los generadoresdocs-gen+mkdocs build --strict, sin WeasyPrint) y lo despliega conwrangler pages deployen Cloudflare Pages en cada push. La documentación es totalmente estática (el único plugin de Material es la búsqueda en el navegador), así que Pages encaja perfectamente. - Los libros fuera de la ruta crítica: el deploy de docs descarga los cuatro
libros desde una release
booksde GitHub fija (construida una vez por un workflowrelease-booksbajo demanda — librerías de WeasyPrint + una caché de SVG de matemáticas) y los incorpora al sitio publicado, así el build sigue siendo rápido y los ~48 MB de binarios nunca entran en el historial de git. Se descargan desde el sitio público de Pages aunque el repositorio sea privado. - El portal sigue siendo dinámico: el portal FastAPI + SQLite + Argon2id no
puede ejecutarse en Cloudflare Pages (solo estático);
DEPLOY_PORTAL_BLUEPRINT.mdpropone alojarlo en Fly.io (reutilizando eldocker/portal.Dockerfileya existente + un volumen persistente) con Cloudflare delante para DNS/TLS/CDN. El endurecimiento es sobre todo configuración — la app ya es env-driven,cookie_securees true por defecto y el master-pass auto-provisiona el admin en el primer arranque.
Libros offline — PDF + EPUB, EN + ES¶
- Ediciones para estudiar en un avión: todo el currículo se genera ahora en
cuatro libros offline —
lynx-cortex-{en,es}.{pdf,epub}— para leer el curso en un e-reader, una tablet o en papel. Cada fase es un capítulo; teoría, labs, breaks y quizzes son secciones. ~1.970 páginas (EN) / ~2.020 (ES) cada uno. - Compuesto, no raspado: un generador dedicado (
scripts/build_books.py,just books) limpia primero la fuente — quita los bloques de widget/marker generados, el<script>crudo, el conmutador de idioma y los blockquotes de vista previa del otro idioma; des-enlaza los enlaces cruzados muertos; convierte Mermaid en un listado de origen etiquetado — para que nada se imprima como tag roto o tabla truncada. Cada una de las ~4.400 ecuaciones se renderiza a una imagen vectorial cacheada (matplotlib mathtext); el ~1,4 % que no puede dibujar (matrices,cases) degrada a fuente LaTeX legible, nunca a un glifo roto. - Maquetación de libro real: portada azul marino con el escudo de Cortex, un índice enlazado (PDF: con números de página y guías de puntos; EPUB: navegación nativa anidada hasta el nivel de sección), cabeceras/pies, saltos de página por capítulo, y tablas que se ajustan en lugar de desbordarse.
- Enlazado desde el curso: una página de Descarga (EN+ES) en
la nav del docs site, más un enlace Libro offline · PDF / EPUB en el pie del
portal. Los libros son artefactos regenerables ignorados por git (
just bookslos copia al docs site + static del portal); las limitaciones honestas (los widgets interactivos solo funcionan online, 6 diagramas Mermaid se muestran como fuente) están documentadas en la página de descarga.
Pulido final — pies, transiciones de fase, presentación¶
- Pies de página con marca: el docs site añade una línea de copyright de Cortex University; el portal añade un pie con la institución, el lema y enlaces rápidos.
- Transiciones de fase: la vista de fase del portal tiene ahora tarjetas de fase anterior/siguiente para recorrer el currículo con fluidez; las páginas del docs site aparecen con un fundido al navegar.
- Corrección: la vista de fase del portal ya no raspa el README (que, desde
que aterrizaron los bloques generados, podía mostrar un comentario
<!-- … -->como resumen) — ahora usa el resumen curado dephase_meta.yaml, con raspado solo como respaldo. - QA: una auditoría completa (enlaces, paridad bilingüe, cobertura i18n,
rutas, auth/CSRF, marca) confirmó que no hay enlaces rotos ni problemas
funcionales; los supuestos «huecos de CSRF» en login/set-password son el
diseño documentado (CSRF acotado a la superficie de escritura autenticada
según
THREATS.mdT8; set-password usa invite-token + rate-limit según T9).
Capa de aprendizaje interactiva + expediente académico (§A19)¶
- Planificador de estudio (
study-plan.es.md): elige un ritmo semanal (⅕/10/40 h → lento/moderado/intensivo/extremo); un Gantt recalculado + tarjetas por fase muestran semanas, fecha de fin, carga cognitiva, reparto teoría/práctica, conceptos, skills y el hito que desbloqueas. - Tooltips de conceptos: la primera aparición de cada término del glosario por página revela una tarjeta de definición (todo el sitio, EN+ES).
- Widgets interactivos: un mapa de conceptos autogenerado en cada README de fase, más componentes destacados — pipeline tipo n8n, buffer de bytes UTF-8 en vivo, explorador de temperatura de softmax, strides de tensores, heatmap de attention causal.
- Lecturas recomendadas por fase (papers/libros canónicos) + una página de conceptos de frontera (SSM/Mamba, speculative decoding, MoE, GQA/MLA, YaRN, DPO…).
- Portal — notas y graduación: notas 0-100 por fase desde el historial de quiz/examen con bandas Suspenso/Aprobado/Notable/Sobresaliente/Matrícula de Honor; un panel de resultado por fase, un panel de notas (puntos fuertes/débiles), un perfil + foto, un carné de estudiante, un expediente académico y un certificado de Máster realista de Cortex University — todo exportable a PDF con Imprimir → Guardar como PDF del navegador. El certificado está condicionado a datos personales reales, una declaración de Términos / código de conducta aceptada y una nota de aprobado.
- Términos, código de conducta y declaración legal (
terms.es.md): la credencial es real pero no acreditada (válida según los estándares propios de Cortex University, no ECTS); el conocimiento debe validarse de forma independiente; la integridad es responsabilidad del estudiante. Se muestra como página de preámbulo y se exige como gate de aceptación con versión en el portal; los documentos llevan una nota de validez. - Firmado por dos profesores + variante según el nombre: el certificado lo
co-firman ahora el Profesor Borja Tarrasó (Seguridad y Fundamentos de IA)
y el Profesor Claude Anthropic (Inteligencia Artificial), cada uno con una
firma manuscrita generada (
scripts/gen_signatures.py). El nombre del estudiante selecciona de forma determinista «uno u otro» certificado — la variante de diseño (zafiro/oro vs granate) y qué profesor encabeza. - Marca de la universidad: los logos oficiales de Cortex University se usan ahora en todo el proyecto — el logo + favicon del sitio de documentación, un boot splash de carga, emblemas de cabecera por sección (fase vs lab), una página Acerca de, un badge en los widgets interactivos, el escudo heráldico en el certificado, y el escudo de notas en la página de notas y el expediente. Cada uno dimensionado y colocado según su contexto (el escudo del certificado se funde con el papel).
- Credenciales verificables: cada certificado / expediente / carné lleva
ahora un token de verificación firmado con HMAC y un código corto de
verificación. Una página pública
/verifyautentica un token pegado (firma válida ⇒ «Auténtico», con titular/nota/fecha decodificados; cualquier alteración ⇒ rechazado). Los documentos ganaron cabeceras/pies grabados, una portada en el expediente y el código de validez en cada página.
Modo self-paced (§A18)¶
- Los gates de fase pasan a ser consultivos para el learner: los ítems
de DoD del lado del learner (labs, quizzes, reflexiones) pueden diferirse
y una fase cerrarse administrativamente, con los diferimientos registrados
con honestidad en
checkpoint.json(deferred≠ hecho). Los gates de calidad del lado de Claude y la honestidad de los registros no cambian. La Fase 00 es la primera cerrada bajo esta política. VerLYNX_CORTEX_ADDENDUM.md§A18.
Modo referencia — estudia cualquier capítulo¶
- Fuente única de verdad:
data/curriculum/phase_meta.yamldeclara, para cada fase (00–41 + X1–X5), sus prerrequisitos conceptuales directos y los conceptos que enseña.scripts/build_phase_meta.py(ejecutado porjust docs) lo proyecta en bloques generados Requiere/Enseña delimitados por markers bajo el H1 de los 94 README de fase (EN+ES) y valida slugs, cobertura y aciclicidad en cada build. - Docs site: nuevo índice Estudiar cualquier capítulo — un grafo de dependencias en mermaid más una tabla por fase (requiere / desbloquea / enseña), totalmente enlazada, en ambos idiomas.
- Backlinks del glosario: cada mención "Fase NN" en
GLOSSARY.md/GLOSSARY.es.mdahora enlaza al README de esa fase (220 enlaces). - Portal:
curriculum.pylee el mismo YAML; la vista de fase muestra badges informativos de prerrequisitos (✓ al completarse — nunca bloqueantes), y el panel gana un toggle guiado/referencia (cookielynx_study_modevíaGET /mode/{mode}). Guiado prioriza "continúa donde lo dejaste"; referencia expone tags de conceptos y enlaces a prerrequisitos en cada fila.
UX de cambio de idioma siempre disponible¶
- Docs site: un botón EN/ES en la cabecera de Material permite al lector
cambiar el idioma de la página en cualquier momento. La preferencia se
persiste en localStorage, así que la siguiente navegación se queda en el
idioma elegido; el auto-redirect dispara en cualquier navegación same-host.
Los enlaces internos se reescriben para honrar la preferencia, así que la
table-of-contents, la nav y los enlaces inline fluyen todos al locale
preferido. Implementado con un mapa de URLs generado en build
(
scripts/build_lang_pairs.py→docs/javascripts/lang-pairs.js) que resuelve la asimetríaREADME.md ↔ README.es.mdque introduce mkdocs. - Portal: el toggle
EN/ESde la nav ahora llega aGET /locale/{lang}, que escribe una cookielynx_locale(1a, SameSite=Lax) y hace 303 de vuelta. La cookie gana sobreStudent.locale(default admin) yconfig.locale_default(fallback anónimo), así que cada learner puede sobreescribir el default puesto por el admin sin migración de schema.curriculum.pyes ahora locale-aware: el descubrimiento de README y archivos de teoría prefiere siblings.es.md, cae al.mdpara traducciones parciales. El chrome más visible (nav, login, dashboard, vista de fase) usa un helpert()respaldado porminiportal/i18n.py.
Espejo bilingüe completo (Tier 1 + 2 + 3)¶
- Cobertura del currículo al 100%: cada
.mden inglés bajodocs/, cada plan/contrato/guía a nivel raíz, cadasrc/<mod>/BLUEPRINT.md, yPHASE_41_FINDINGS.mdahora tienen su pareja.es.md(685 archivos en español en total). Fases 00–41, extension track X1–X5, root status docs (ROADMAP,GLOSSARY,CURRICULUM_GUIDE,HIRING_PATH,TECHNOLOGIES,PROPOSAL_REVIEW), y los 42PHASE_NN_PLAN.md. - Convenciones: registro de España (
ordenador,vídeo,currículo); préstamos de concepto se mantienen en inglés con gloss en primera mención (embedding,attention,framework,RAG,CUDA); el corpus de verbos §A13 verbatim; identificadores de código, paths, comandos shell, y mensajes de commit nunca se traducen. - No espejados por diseño:
.claude/commands/y.claude/agents/(config de herramienta consumida por Claude, no prosa para el learner),docs/spanish-glossary.md(es la referencia en español), y el workspace personallearners/borja/(la entrada del usuario no está restringida por §A17). Ver Referencia de Claude commands para la auditoría orientada al usuario de esos.
Pulido de UX en docs¶
- Tema: paleta de acento cambiada a índigo con toggle explícito light/dark; añadidos tabs de navegación sticky, secciones, expand y características del footer.
- Landing page:
docs/index.mdreescrita como un layout de hero + demo de 90 segundos + tarjetas de características. - Páginas nuevas:
getting-started.md(los primeros 30 minutos) y este changelog. - CSS personalizado:
docs/stylesheets/extra.csspule el bloque hero, las tarjetas en grid y el estilo de UL de la checklist de lab. - JS progresivo:
docs/javascripts/extra.jsabre enlaces externos en pestañas nuevas; todo lo demás se queda con el comportamiento nativo de Material. - Extensiones de Markdown: añadidos
pymdownx.tabbed,pymdownx.keys,pymdownx.smartsymbols,pymdownx.tilde,pymdownx.mark,pymdownx.caretpara una prosa más rica.
Anteriores¶
- Addendum §A13: el alcance original de cadenas de C (9 funciones) sustituido por el alcance de gramática verbal en inglés (20 verbs x 5 tenses x 3 persons, con español emparejado). El capstone de la Fase 32 reapuntado a un grammar tutor.
- Fase 41 — Portal del aprendiz: añadida la fase opcional de portal multi-estudiante tras la Fase 40, con onboarding sin contraseña, journals, quizzes y repetición espaciada SM-2.
Para la historia canónica, lee los commits en main y los informes por fase.