📜 Historial de cambios
Todo lo que ha cambiado en el programa, versión a versión, con el formato Keep a Changelog.
El formato sigue Keep a Changelog y el versionado sigue SemVer.
[2.3.1] — 2026-08-20
Cierra el hueco que la 2.3.0 dejó declarado: las normas que el material citaba sin enlace a su fuente primaria, y los enlaces que habían dejado de responder.
🔧 Corregido
- Trece enlaces oficiales estaban rotos y nadie lo sabía porque nadie los abría: el boletín estadístico del BIS, dos informes del FSB, la página de criptoactivos de ESMA, las dos de MiCA de la EBA, el informe de moneda digital del Banco Central de Chile, la guía tributaria del SII, la carta SR 11-7 de la Reserva Federal y los principios G20/OCDE de protección al consumidor. Todos apuntan ahora al documento que responde hoy, comprobado abriéndolo.
- La revisión de prácticas de margen se atribuía al FSB y la firman el Comité de Basilea, el CPMI e IOSCO. Corregidos el emisor y el enlace.
✨ Añadido
- Enlace a la fuente primaria en 47 citas que nombraban la norma sin decir dónde leerla: quince documentos del BIS, el Comité de Basilea, el CPMI e IOSCO; ocho del FSB; doce guías de la EBA. Cada URL se buscó en el sitio del emisor y se comprobó abriéndola: responde 200 y el título de la página es el de la obra citada. Lo que no se pudo comprobar así no se añadió.
🔒 Trazabilidad
- Obras con localizador comprobado: 408 → 480 de 699. Las 219 restantes siguen declaradas con su motivo, y ya no queda ningún enlace roto: lo que falta son 99 normas que el material cita sin enlace —de la CFPB, el Banco Mundial, el FMI, la OCDE, la ICC y la ISO, entre otros—, 84 libros y artículos sin coincidencia fiable en Open Library o Crossref, 25 servidores que rechazan consultas automáticas y 9 enlaces que este equipo no alcanzó por red o TLS.
- 98 de las 116 clases normativas llevan fecha de verificación de hoy, frente a 81 en la versión anterior.
📚 Documentos rectores, al completo
- El 100 % de los documentos del Comité de Basilea y de la CMF que el programa usa tiene localizador con fecha. Del BIS, 32 de 33; del CPMI, 23 de 23; de IOSCO, 14 de 16. Los tres que faltan son documentos que no se pudieron identificar con seguridad en el sitio del emisor, y se declaran como tales.
[2.3.0] — 2026-08-19
Cada cita, con su localizador. El programa citaba bien y no lo podía demostrar: las 356 clases traían sus fuentes, pero el registro consolidado cubría una fracción de lo que se citaba, y el README prometía «fuentes oficiales verificables» sin nada que permitiera comprobarlo. Esta versión convierte esa promesa en un archivo con verificador.
✨ Añadido
sources/bibliography.json— el registro de fuentes del programa: 699 obras con su emisor, su tipo, el año, las clases que las usan y un localizador resoluble. Se admiten exactamente tres formas de localizador: ISBN-13 con dígito de control válido para un libro, DOI para un artículo y URL https de la fuente primaria con fecha de acceso para una norma o un documento oficial. El registro no se escribe a mano: se reconstruye desde las citas de las clases, de modo que no puede contener una obra que nadie cite ni omitir una que alguien cite.scripts/verify_sources.py— verificador offline y bloqueante, ya conectado aci.yml. Comprueba el esquema, el dígito de control de cada ISBN-13, la forma canónica de cada localizador, que toda obra citada esté registrada, que ninguna entrada del registro haya dejado de usarse, que ningún bloque de fuentes se repita entre clases y que las pocas cifras que quedan escritas salgan del recuento y no de la mano de alguien.scripts/refresh_sources.py— revalidador en red y no bloqueante. Resuelve el ISBN contra Open Library y el DOI contra Crossref comparando título y autores, consulta cada URL oficial y registra su estado. Lo corre cada lunes el flujo nuevofuentes.yml, que publica el informe y abre un issue cuando una fuente oficial deja de responder.sources/revalidacion.md— el resultado de la última revalidación, clase normativa por clase normativa, con los enlaces que no resolvieron.
🔧 Corregido
- Las citas decían qué obra, no qué se tomaba de ella. 860 citas de las 1 729 del programa nombraban una obra sin decir qué sostiene en esa clase, lo que obligaba a leerse el documento entero para comprobar una sola afirmación. Todas declaran ahora su uso, y el verificador rechaza las que no lo hagan.
- Un mismo documento se citaba con títulos distintos —«Ley 21.521» y su título oficial completo, «BCBS 239» y «Principles for effective risk data aggregation and risk reporting», el informe anual del BIS y su capítulo III—, lo que partía una obra en varias entradas. Los títulos se unificaron y el capítulo del informe anual se distingue del informe completo, que son documentos distintos con enlaces distintos.
docs/fuentes.mdera una lista escrita a mano que enumeraba 99 claves frente a las que el material usaba de verdad. Ahora se genera desde el registro y encabeza con lo que un lector busca: qué documento de qué regulador sostiene qué parte, con el enlace a la fuente primaria. Después agrupa el resto por quién responde por cada obra y declara qué queda pendiente y por qué.- El README no gana un tablero de cifras. Un marcador de cobertura no ayuda a estudiar: lo que valida el contenido es la fuente al pie de cada clase, y esa ya está en las 356. Del registro solo toma las dos cifras que antes estaban escritas a mano, y un enlace a la bibliografía.
🔒 Trazabilidad
- 408 de las 699 obras tienen hoy el localizador resuelto contra su
fuente, con fecha de acceso. Las 291 restantes quedan como
pendientecon el motivo escrito: la mayoría —134— son normas que el material cita sin enlace a la fuente primaria, y el resto son catálogos que no devuelven coincidencia o servidores que rechazan una consulta automática. Ninguna se ha borrado: un hueco declarado es información, y un hueco relleno por intuición sería una invención con formato de bibliografía. - Las 116 clases con contenido normativo se revalidaron por lote. La fecha de verificación solo avanza cuando todos los enlaces oficiales que esa clase cita respondieron; si uno falló, la clase conserva la fecha anterior.
🧭 Notas de migración
- El registro y las dos vistas que lo muestran son documentos generados. Al
añadir o corregir una cita hay que ejecutar
python scripts/verify_sources.py --rebuild; la integración continua falla si quedan desfasados. - Toda cita nueva debe declarar qué uso hace la clase de la obra después de la editorial y antes del enlace. Es un requisito verificado, no una convención de estilo.
[2.2.1] — 2026-08-13
Arregla el paquete del release, que salía incompleto.
🔧 Corregido
programa-completo.zipse armaba con una lista de directorios escrita a mano —modules docs apps datasets tools tests— y esa lista nunca incorporócase-studies/niregulatory/. El resultado: el paquete que el release describe como «el repositorio entero» se publicó en la 2.2.0 sin los 26 estudios de caso y sin las 13 fichas normativas, y nada falló, porque unzipde una ruta que no existe no devuelve error. Ahora la lista sale degit ls-files, así que el paquete no puede quedarse corto cuando aparezca una carpeta nueva.- El flujo comprueba además el paquete abriéndolo: cuenta los archivos de
cada carpeta dentro del
.zipy los compara con los del repositorio. Es la misma verificación que ya existía para el APK y para la aplicación de Windows, que sí contaban las clases de dentro.
🧭 Notas de migración
- Quien haya descargado
programa-completo.zipde la v2.2.0 debe descargarlo de nuevo: le faltancase-studies/yregulatory/. El APK, la aplicación de Windows, el PDF ysolo-clases.zipde la 2.2.0 están completos y no hace falta volver a bajarlos.
[2.2.0] — 2026-08-12
Regulación con nombre propio y la biblioteca de casos. Hasta esta versión, la Parte 22 enseñaba a determinar un perímetro sin decir en qué país; el método estaba completo y nunca se aplicaba a una norma concreta. Esta versión cierra esa brecha con cuatro clases sobre dos regímenes reales, y añade los veintiséis casos que el repositorio declaraba pendientes desde la 1.0.0.
✨ Añadido
- Parte 22 · cuatro clases nuevas que leen regímenes concretos en lugar de describir principios:
- clase 17 · MiCA I: perímetro, activos y participantes — el embudo de tres filtros, las tres categorías y por qué el libro blanco no es una autorización;
- clase 18 · MiCA II: obligaciones, reservas y supervisión — las cuatro reglas de la reserva, el reembolso a la par y la diferencia entre el plan de recuperación y el plan de reembolso;
- clase 19 · Regímenes europeos conexos — régimen piloto DLT, resiliencia operativa y regla del viaje, con el reparto de coste que demuestra que MiCA suele ser la quinta parte de la carga regulatoria;
- clase 20 · El Salvador: bitcoin, Chivo y activos digitales — tres decisiones en una sola ley y siete resultados que no se promedian.
- Biblioteca de casos en
case-studies/: 26 casos en 13 temas, todos con la misma estructura de diez bloques —hechos, actores, decisiones, riesgos, regulación, controles, resultado, lecciones, preguntas y fuentes— y con la separación explícita entre hecho verificado, supuesto del ejercicio e interpretación. - Cinco fichas normativas nuevas en
regulatory/: Ley Bitcoin de El Salvador y su reforma, Ley de Emisión de Activos Digitales, resiliencia operativa digital de la Unión Europea, reglamento europeo sobre la información que acompaña a las transferencias, y la norma de carácter general chilena de prestadores de servicios financieros. - Siete documentos en
docs/: mapa-stablecoins.md— la ruta transversal completa, de diseño a resolución;mapa-fx-onchain.md— el cambio de divisas sobre infraestructura programable;arquitectura-mercado-tokenizado.md— las nueve piezas y las cinco decisiones que ninguna tecnología resuelve;mapa-regulatorio-chile.md— matriz de actividad, norma, autoridad y clase;mapa-regulatorio-internacional.md— el método de comparación y quién produce qué;guia-docente-etapa-5.md— qué cambia al enseñar las Partes 17 a 23;referencias-oficiales-digitales.md— dónde verificar cada cosa.
🔧 Cambiado
- La Parte 22 pasa de 18 a 22 clases. Las dos últimas se renumeran: espacios de prueba pasa de la 17 a la 21, y el proyecto de expediente regulatorio de la 18 a la 22. Las referencias cruzadas del resto de la parte se actualizaron en consecuencia.
- El programa pasa de 352 a 356 clases y de 528 a 534 horas de sesión.
Todas las cifras de
STATUS.md,SYLLABUS.md,FILE_INDEX.mdy el glosario maestro se regeneraron desde los archivos. tools/progress.pyactualiza el plan de la Parte 22 a 22 clases, para que el avance declarado no supere el cien por cien.ROADMAP.mdcierra la línea «Biblioteca de casos», que figuraba como abierta.docs/README.mdincorpora los siete documentos nuevos y la biblioteca de casos.
📚 Documentación
- El glosario maestro pasa de 2 175 a 2 198 términos.
- El índice del manual pasa de 380 a 384 entradas.
🔐 Seguridad
- Las cuatro clases nuevas y los veintiséis casos declaran de forma expresa que los regímenes citados no son derecho aplicable en Chile cuando son extranjeros, y que sus cifras son sintéticas.
- Ningún caso atribuye a una entidad identificable un fallo, una pérdida o una infracción.
🧭 Notas de migración
- Quien tenga enlaces a
modules/21-.../classes/17-espacios-de-prueba-*.mdo a18-proyecto-expediente-regulatorio.mddebe apuntarlos a21-y22-respectivamente. Los enlaces internos del repositorio ya se actualizaron ytools/check_links.pylos verifica.
[2.1.0] — 2026-08-07
Portal de estudio propio, aplicaciones para teléfono y escritorio, y el primer release del repositorio.
✨ Añadido
- Portal de estudio con portada propia, temario de las 352 clases y buscador que indexa títulos, niveles y los 2 629 conceptos centrales. Instalable en el teléfono: manifiesto, iconos y trabajador de servicio para releer sin conexión lo ya visitado.
- Aplicación de Android (
mobile/): WebView sobre el HTML del portal, embebido en el APK. El manifiesto no declaraandroid.permission.INTERNET, de modo que la ausencia de telemetría se puede comprobar desde los ajustes. - Aplicación de Windows (
desktop/): lector en PySide6 con QtWebEngine sobre el mismo HTML, portable y sin instalador. - Flujo
apps.yml: genera el sitio una vez y de ahí salen las tres piezas. Antes de publicar abre cada artefacto y cuenta las clases que contiene. - Portada, insignias y navegación en los 29 documentos, también en los cuatro que se generan.
- El manual se publica como descarga del portal, en PDF, HTML y Markdown.
🐛 Corregido
- El manual titulaba «🎯 Propósito» las 352 clases: el generador leía el título del cuerpo, pero el H1 vive dentro del bloque generado que se limpia. Además se perdía esa sección en todas las clases.
- El PDF salía sin marcadores ni numeración. Ahora lleva 380 marcadores en tres niveles y folio al pie.
- La impresión del PDF fallaba en silencio: el navegador imprime en segundo plano y sale con código 0 en décimas de segundo.
- El portal servía el README sin convertir desde su rediseño: faltaba
md_in_html, así que todo lo que va dentro de<div markdown="1">salía como texto plano. - El APK compilaba sin firmar, y Android no instala un APK sin firma.
- Cifras obsoletas en la documentación: «240 clases» y «360 horas».
- «periodo de gracia» figuraba dos veces en el glosario, con y sin tilde.
🔄 Cambiado
- La entrada del portal es la portada, no el README volcado.
- El despliegue verifica las tres descargas del manual por código y por peso.
2.0.0 — 2026-08-07
Séptima y última parte de la Etapa 5, y cierre del programa. Con ella existen las siete partes de la etapa, y por eso se libera la versión que estaba reservada desde la 1.2.0: el programa pasa de 240 clases en 16 partes a 352 clases en 23 partes, agrupadas en cinco etapas que se recorren en orden.
La Parte 23 no introduce ningún concepto nuevo, y esa es su dificultad. Reúne los métodos de las veintidós anteriores y los somete a la única prueba que ninguna de ellas podía aplicar: hacerlos funcionar juntos. Al integrarlos aparecen contradicciones entre decisiones que eran correctas por separado, y esas contradicciones son el contenido de la parte.
Añadido
Parte 23 — Proyecto: banco digital y mercado tokenizado
- 18 clases de 90 minutos organizadas en tres bloques: qué construir (1-6), construirlo y encontrar las contradicciones (7-12), y probarlo y defenderlo (13-18).
- Una cadena de decisiones explícita —alcance, registro, dinero, producto— donde la clase 4 deja su conclusión pendiente de la 5 en vez de resolverla por adelantado. Cerrar la cadena al revés es el error de capstone más difícil de detectar, porque el resultado parece coherente.
- 9 laboratorios con solución de referencia comentada.
- Evaluación diagnóstica y final. La final califica algo distinto de las anteriores: no si se sabe cada tema, sino si el conjunto se sostiene ante alguien que busca dónde se contradice.
- Proyecto capstone en tres fases, con doce entregables y la restricción de que una tensión sin resolver bloquea la operación.
Aplicación apps/digital_bank_capstone/
scope: las cuatro preguntas por función, exclusiones que exigen razón escrita y el cálculo de la carga regulatoria y la facturación necesaria.build: construir, integrar o comprar, con la salida real por encima del coste y la medición de la concentración del sector.tensions: decisiones, tolerancias que solo el consejo puede fijar y tensiones que exigen declarar y cuantificar el sacrificio.stress: fuente de correlación, escenario que debe afectar a más de un componente y punto de rotura medido en desviaciones.- 24 pruebas, cuatro de las cuales documentan razonamientos del capstone y deben pasar.
Documentación
docs/mapa-capstone.mdcon la cadena de decisiones, la tabla de dónde está cada cosa y las cinco afirmaciones que la parte desmonta.- Seis términos nuevos en el glosario digital, en una sección propia de diseño de sistemas completos.
Cambiado
- El programa deja de estar en ampliación activa. El README raíz, la ficha técnica y la hoja de ruta describen ahora un programa completo de cinco etapas y veintitrés partes, en vez de una etapa en curso.
- La cifra publicada pasa a 352 clases en 23 partes (528 horas), con 150 laboratorios, 46 evaluaciones, 23 proyectos y 11 aplicaciones.
- El trabajo transversal que sigue abierto —biblioteca de casos, bloques «para profundizar» en las partes antiguas y más fichas normativas— se separa en la hoja de ruta del trabajo de la etapa, que está cerrado.
1.7.0 — 2026-08-06
Sexta parte de la Etapa 5: el régimen que alcanza a la infraestructura construida en las cinco anteriores. Cambia el registro del programa —las respuestas dejan de depender de cómo funciona algo y pasan a depender de qué está haciendo alguien— y por eso esta entrega incorpora además la corrección pedagógica que faltaba en toda la etapa.
Añadido
Parte 22 — Regulación de mercados financieros digitales
- 18 clases de 90 minutos, con el eje de que la regulación sigue a la actividad, no a la tecnología, y con la clase 2 dedicada íntegramente a los tres límites de ese principio: el riesgo cambia, el sujeto puede no existir y hay riesgos sin precedente.
- 9 laboratorios con solución de referencia comentada.
- Evaluación diagnóstica y final, con un criterio transversal nuevo: una afirmación regulatoria sin la norma citada y su fecha no puntúa, aunque sea correcta.
- Proyecto integrador «expediente regulatorio» de doce piezas, cuyo valor está en la lectura cruzada por parejas: las contradicciones no están dentro de ninguna pieza, están entre dos.
Aplicación apps/regulatory_perimeter_engine/
perimeter: las seis preguntas aplicadas sobre hechos con fuente obligatoria; un hecho sin fuente se rechaza, porque es una declaración disfrazada.qualification: los cuatro criterios, con análisis del material de promoción en vez de pregunta al emisor.compliance: las cuatro preguntas de la salvaguarda con su cuantificación, vigilancia con coste marginal frente a medio, y concentración medida por proveedor y por infraestructura para poder contrastarlas.dossier: las doce piezas, las cinco parejas críticas, la priorización por efecto sobre el cliente y la remediación que exige medida provisional.- 29 pruebas, seis de las cuales documentan defectos o errores de razonamiento y deben pasar.
Documentación y metadatos
docs/mapa-regulatorio.mdcon las seis preguntas del perímetro, la tabla de dónde está cada concepto y las seis afirmaciones que la parte desmonta.- 21 términos nuevos en el glosario digital, cada uno con su «qué NO significa».
Cambiado
- Prosa pedagógica en todo el material de la etapa. El README de cada parte abre con una explicación narrativa de qué trata y una sección que explica por qué cada clase lleva a la siguiente; las clases incorporan párrafos que presentan cada bloque y extraen su consecuencia, y los laboratorios abren con el porqué del ejercicio. La estructura de secciones no cambia: la prosa se añade.
- README raíz coherente. Las cinco etapas se presentan con el mismo formato y el mismo nivel de detalle, en vez de destacar la ampliación más reciente sobre las demás.
- La cifra publicada pasa a 334 clases en 22 partes (501 horas).
1.6.0 — 2026-08-06
Quinta parte de la Etapa 5: el instrumento financiero anotado en el registro. Su pregunta central es jurídica antes que técnica, y decide si el único beneficio exclusivo de la tokenización es alcanzable.
Añadido
Parte 21 — Tokenización, FX on-chain y mercados programables
- 16 clases de 90 minutos, con el eje de que tokenizar no crea un derecho: lo representa, y que si el registro oficial sigue mandando, la liquidación atómica es imposible por construcción.
- De cinco promesas habituales de la tokenización, la parte demuestra que dos resisten: la operación fuera del horario del sistema de pagos y la liquidación atómica contra el dinero, esta última solo si ambos tramos están en el mismo registro.
- 8 laboratorios con solución de referencia comentada.
- Evaluación diagnóstica y final con rúbrica que no puntúa las decisiones justificadas por «es más adecuado».
- Proyecto integrador de doce decisiones, cada una con su alternativa medida, que puede concluir que no procede tokenizar y obtener la máxima calificación.
Aplicación apps/tokenization_platform/
registry: espejo frente a bloqueo de origen, con las seis causas de divergencia, conciliación completa, congelación simultánea y autoridad de resolución obligatoria.issuance: libro de órdenes, tres mecanismos de adjudicación, coste del bloqueo del importe y emisión desierta con liberación automática.lifecycle: cupón que verifica el aprovisionamiento antes de pagar, inmovilización con doble aprobación y vencimiento que destruye solo lo confirmado.settlement: entrega contra pago que rechaza antes de bloquear, conobservar()para poder probar la ausencia de estado intermedio, y que se niega a operar si el tramo de dinero está fuera del registro.collateral: recorte, colchón, cascada de liquidaciones y la corrección que la apaga sin tocar ningún parámetro de riesgo.
Aplicación apps/onchain_fx_lab/
pricing: coste total por ruta con los seis tramos y corrección por profundidad del libro.amm: producto constante, deslizamiento y pérdida por divergencia, con la razón crítica resuelta por bisección.-
settlement: ventana de irrevocable a confirmado, y comparación de neteo, límites y pago contra pago contra la misma base, con la oponibilidad del acuerdo como parámetro explícito. -
62 pruebas entre ambas aplicaciones, cinco de las cuales documentan defectos o errores de razonamiento y deben pasar.
Documentación y metadatos
docs/mapa-tokenizacion.mdcon las cuatro preguntas de viabilidad, la tabla de dónde está cada concepto y las seis afirmaciones que la parte desmonta.- 20 términos nuevos en el glosario digital, cada uno con su «qué NO significa».
- Fichas normativas del régimen piloto DLT de la Unión Europea y de los Principios para las Infraestructuras del Mercado Financiero.
Cambiado
- La cifra publicada pasa a 316 clases en 21 partes (474 horas).
README.md,MANIFEST.mdyROADMAP.mdreflejan cinco de las siete partes de la Etapa 5 publicadas. La versión2.0.0sigue reservada para cuando existan las siete.
1.5.0 — 2026-08-06
Cuarta parte de la Etapa 5: lo que circula sobre el registro. El eje es que un activo digital no es una tecnología sino una promesa anotada, y que clasificarlo no exige mirar ni una línea de código.
Añadido
Parte 20 — Activos digitales, stablecoins y dinero programable
- 16 clases de 90 minutos, con la ficha de cinco preguntas —quién promete, qué promete, con qué respaldo, exigible cuándo y ante quién— como criterio único de clasificación. Ninguna de las cinco es técnica.
- Separación estricta de cinco instrumentos que se confunden a diario: criptoactivo no respaldado, stablecoin, dinero electrónico, depósito tokenizado y CBDC. La distinción decide quién quiebra, qué garantía aplica y a quién reclama el cliente.
- 8 laboratorios con solución de referencia comentada.
- Evaluación diagnóstica y final con guía de corrección y rúbrica que penaliza el supuesto oculto el doble de lo que valía la cifra.
- Proyecto integrador «expediente de decisión» de doce piezas, que puede concluir que el instrumento no es apto y obtener la máxima calificación.
Aplicación apps/digital_assets_risk_lab/
classification: ficha de cinco preguntas y rastreo del respaldo hasta un activo externo, con detección de circularidad.reserves: cobertura contable, cobertura líquida a 24 horas, escalera de descuentos creciente y punto de no retorno.redemption: orden de llegada frente a prorrateo, comisión antidilución y tramo mínimo íntegro, con la ventaja del primero como métrica.depeg: banda de no arbitraje, vigilancia de desvío persistente y las cinco fases de una corrida.algorithmic: espiral de dos tokens, con el ratio de absorción y la emisión por unidad retirada calculados en paralelo.custody: independencia efectiva por cuatro factores, recuperación con retardo y los siete controles de retirada.market: libro con importe acumulado, profundidad, impacto y límite de posición colgado de la profundidad, no del volumen.contagion: grafo de exposición, segundo grado, dependencias comunes y cascada de liquidez.- 49 pruebas, seis de las cuales documentan defectos y deben pasar.
Documentación y metadatos
docs/mapa-activos-digitales.mdcon el recorrido, la tabla de dónde está cada concepto y las seis afirmaciones que la parte desmonta.- 24 términos nuevos en el glosario digital, cada uno con su «qué NO significa».
- Fichas normativas del Reglamento (UE) 2023/1114, de la norma prudencial SCO60 de Basilea y de las recomendaciones del FSB sobre stablecoins globales.
Cambiado
- La cifra publicada pasa a 300 clases en 20 partes (450 horas).
README.md,MANIFEST.mdyROADMAP.mdreflejan cuatro de las siete partes de la Etapa 5 publicadas. La versión2.0.0sigue reservada para cuando existan las siete.
1.4.0 — 2026-08-06
Tercera parte de la Etapa 5: el registro distribuido. Se estudia como una opción de arquitectura, no como una conclusión, y la parte enseña sobre todo a decidir cuándo no hace falta.
Añadido
Parte 19 — Blockchain y DLT para instituciones financieras
- 14 clases de 90 minutos, con el eje de que un registro distribuido resuelve un problema —que partes que no confían entre sí ni en un tercero común mantengan un registro que ninguna controla— y lo resuelve caro: redundancia total, lentitud e irreversibilidad.
- Seis preguntas de criterio, de las que solo la de confianza justifica por sí sola la arquitectura; las otras cinco se resuelven mejor de otra forma.
- 6 laboratorios con solución de referencia comentada.
- Evaluación diagnóstica y final con guía de corrección.
- Proyecto integrador «expediente de decisión», que puede concluir que no hace falta un registro distribuido y obtener la máxima calificación.
Aplicación apps/dlt_financial_lab/
- Cadena con estado, instantáneas, número de orden por cuenta y reescritura
completa:
recalcular_desdedevuelve la cadena a un estado válido, que es justo lo que el laboratorio quiere demostrar. - Árbol de Merkle con prefijos distintos para hoja y nodo, sumas por nodo, prueba de inclusión y prueba de exclusión sobre un orden total. El nodo suelto de un nivel impar se promueve en vez de duplicarse: duplicarlo sumaría su valor dos veces y la raíz dejaría de declarar la suma real.
- Consenso con nodos honestos, silenciosos, mentirosos y con defecto común,
más
independencia_efectivapara medir cuántos comparten implementación. - Contrato de depósito en garantía con y sin reentrada, e interruptor que solo detiene: no altera saldos ni transfiere.
- Oráculo con mediana, banda de descarte y mínimo de fuentes vivas.
- Firma múltiple con análisis de correlación entre guardianes.
- 38 pruebas, tres de las cuales documentan defectos y deben pasar:
test_recalcular_toda_la_cadena_NO_se_detecta,test_un_fallo_comun_produce_acuerdo_erroneoytest_el_ataque_de_reentrada_vacia_el_contrato_defectuoso.
Documentación
docs/mapa-blockchain-dlt.mdcon el recorrido de la parte, la tabla de dónde está cada concepto y las cinco afirmaciones que desmonta.- Ampliación del glosario digital con los 12 términos de la parte, cada uno con su «qué NO significa».
Cambiado
- La cifra publicada pasa a 284 clases en 19 partes (426 horas).
README.md,MANIFEST.mdyROADMAP.mdreflejan tres de las siete partes de la Etapa 5 publicadas. La versión2.0.0sigue reservada para cuando existan las siete: declararla antes contradiría el principio del repositorio de que la documentación nunca declara más de lo que existe.
1.3.0 — 2026-08-06
Segunda parte de la Etapa 5: la infraestructura por la que un pago cruza una frontera. Continúa desde la Parte 10 hacia la corresponsalía, la mensajería ISO 20022, la liquidación y las arquitecturas que intentan sustituirla.
Añadido
Parte 18 — Pagos transfronterizos, remesas y liquidación internacional
- 16 clases de 90 minutos, con el eje de que un mensaje no es un movimiento de fondos: la red transporta instrucciones, el dinero se mueve en cuentas, la liquidación ocurre en un sistema de pagos y la finalidad la da la norma.
- 8 laboratorios con solución de referencia comentada.
- Evaluación diagnóstica y final con guía de corrección y cálculos resueltos.
- Proyecto integrador «red de pagos transfronterizos» con seis corredores, cada uno diseñado para forzar una decisión distinta del motor de rutas.
Aplicación apps/cross_border_payments_lab/
- Los cuatro flujos modelados por separado, con husos, ventanas y calendarios.
- Motor de rutas con tres filtros y tres factores: un filtro de cumplimiento no se compensa con precio, y hay una prueba que lo demuestra.
- Construcción y validación de
pacs.008,pacs.002y la máquina de estados que impide devolver antes de liquidar. - Screening con precisión, exhaustividad y prueba retrospectiva.
- Liquidación con pago contra pago, incluidos los dos escenarios de fallo.
- Enlace de pagos inmediatos con resolución de alias y subasta de liquidez.
- Comparación honesta de la ruta con stablecoin, con el ahorro descompuesto por fuente.
- 56 pruebas, cada una asociada a una afirmación concreta de una clase.
Herramientas
tools/validate_iso20022.py: campos obligatorios, formato de importe, divisa ISO, direcciones estructuradas, códigos de propósito y referencia estable entre reintentos. Es independiente del espacio de nombres del esquema, para que no deje de funcionar en la siguiente versión.
Datos y metadatos
datasets/synthetic/remittance_corridors.csv(36 rutas, 9 corredores) ysanctions_screening_alerts.csv(12 000 alertas con resolución etiquetada), ambos con ficha, supuestos y limitaciones explícitas.- Fichas normativas de la Recomendación 16 del GAFI y de la hoja de ruta del G20.
Documentación
docs/mapa-pagos-transfronterizos.mdy ampliación del glosario digital con los 12 términos de la parte.
Cambiado
- La CI valida los mensajes ISO 20022 en cada cambio.
tools/build_file_index.pyusa--cached --others --exclude-standard: el índice ya no depende de si se generó antes o después degit add.tools/build_site.pydescubre los adjuntos enlazados leyendo los enlaces reales, en lugar de una lista mantenida a mano.
Corregido
- Base del diferencial de cambio (Parte 18, clase 9). El material medía el diferencial sobre la cotización inversa (28/950 = 2,947 %) cuando la pérdida del cliente es 1 − 950/978 = 2,863 %. Con la base equivocada, la composición del diferencial cruzado no cuadraba con el cálculo directo. La clase explica ahora la diferencia y el laboratorio la comprueba.
- Descomposición del ahorro de la ruta con stablecoin. Las partes no sumaban el ahorro total, lo que producía porcentajes sin sentido. Ahora suman, incluida una componente negativa que el análisis honesto no puede ocultar.
CHANGELOG.md: 66 líneas con codificación corrompida en la entrada 1.1.0.
Seguridad
- Las listas de sanciones y los nombres del laboratorio son sintéticos y se declara en cada salida. El módulo no sirve para calibrar un sistema real.
- El screening nunca descarta un caso por falta de información: lo escala. Descartar por ausencia de dato es el falso negativo que la Parte 18 persigue.
Notas de migración
- Las Partes 1 a 17 no cambian.
- Quien tuviera un guion contra
tools/build_file_index.pydebe saber que ahora incluye los archivos sin rastrear que no están ignorados.
1.2.0 — 2026-08-06
Comienza la Etapa 5 — Finanzas digitales, infraestructura y mercados tokenizados, que continúa el programa desde la introducción fintech de la Parte 14 hacia la infraestructura financiera. Esta versión publica la primera de sus siete partes.
Sobre la numeración. La ampliación completa de la Etapa 5 se publicará como
2.0.0cuando existan sus siete partes. Declarar2.0.0con una de siete contradiría el principio que sostiene el repositorio:STATUS.mddescribe lo que hay, no lo que se planea.
Añadido
Parte 17 — Finanzas abiertas, APIs y economía de datos
- 14 clases de 90 minutos, con el eje de que las finanzas abiertas no son una API sino un régimen de consentimiento con soporte técnico.
- 6 laboratorios reproducibles, cada uno con escenario, supuestos, criterios de aceptación, amenazas, rúbrica y solución de referencia comentada.
- Evaluación diagnóstica y evaluación final con rúbrica, escala y guía de corrección con los cálculos resueltos.
- Proyecto integrador «agregador financiero regulado», con expediente de doce piezas y guion de defensa.
Aplicación apps/open_finance_sandbox/
- Entorno simulado completo: servidor de autorización con PKCE, API de cuentas, panel de consentimientos, iniciación de pagos y proveedor tercero.
- Contrato
openapi.jsonvalidado en integración continua. - 28 pruebas, en su mayoría negativas, y batería de conformidad de 16 casos en cuatro familias, con sus limitaciones declaradas.
- Modelo de amenazas priorizado por impacto × probabilidad, con la prueba que verifica cada control.
Herramientas de validación
tools/validate_metadata.py: falla si una clase cita un instrumento normativo sin declarar su fecha de verificación.tools/validate_openapi.py: alcances declarados, respuestas de error, referencias resueltas, importes que no son coma flotante y enumerados con cláusula de compatibilidad.tools/validate_datasets.py: todo conjunto de datos con ficha, toda columna con diccionario.tools/detect_secrets.pyytools/detect_pii.py: credenciales reales y datos personales, distinguiendo el valor de ejemplo del secreto.
Metadatos regulatorios
- Directorio
regulatory/con una ficha por instrumento: autoridad, número, fechas, estado, alcance, fuente oficial ylast_verified. - Encabezado YAML ampliado en las clases de la Etapa 5:
jurisdictions,regulatory_topics,regulation_last_verified,regulatory_status,primary_authoritiesyrequires_legal_review.
Datos
datasets/synthetic/open_finance_consents.csv: 1 200 consentimientos con los patrones que las clases analizan (revocación temprana, fatiga).- Separación
raw/,processed/,synthetic/,schemas/. - Ficha con diccionario, supuestos, calidad y límites para los cuatro conjuntos, incluidos los tres históricos que no la tenían.
Documentación
docs/etapa-5-finanzas-digitales.md,docs/mapa-finanzas-abiertas.md,docs/metodologia-verificacion-regulatoria.md,docs/guia-laboratorios-digitales.mdydocs/glosario-finanzas-digitales.md, este último con el campo «qué NO significa» en cada término.
Cambiado
tools/progress.pycuenta los componentes no curriculares sobre los archivos reales en lugar de declararlos a mano.tools/build_syllabus.pyreconoce la Etapa 5 y calcula el número de proyectos y la clase final desde el contenido.tools/build_site.pyderiva el número de partes y clases del repositorio: el pie del portal ya no puede quedar desactualizado.datasets/README.mddocumenta la organización y las cinco reglas de datos.
Corregido
CHANGELOG.mdtenía 66 líneas con codificación corrompida (mojibake) en la entrada 1.1.0. Reparadas a UTF-8 correcto.- Las cifras «240 clases» y «16 partes» escritas a mano en generadores y documentación quedaban desactualizadas al crecer el programa; ahora se calculan.
Seguridad
- Las claves del entorno simulado son de juguete y están versionadas a
propósito;
tools/detect_secrets.pydistingue ese caso del secreto real. - Ningún dato personal, ningún fondo real, ninguna red externa y ninguna herramienta reutilizable de ataque: los ataques existen solo como pruebas que deben fallar.
Notas de migración
- Las clases de las Partes 1 a 16 no cambian. El encabezado ampliado y las secciones adicionales solo se exigen a partir de la parte 17.
- La regla «toda cita de un instrumento lleva línea de verificación» sí se aplica a todo el repositorio; las 15 clases anteriores que citan instrumentos ya la cumplían.
- Quien tuviera un guion propio contra
tools/progress.pydebe saber quePLANNEDincluye ahora las siete partes de la Etapa 5.
1.1.0 — 2026-08-06
Portal de estudio publicado y endurecimiento de la integración continua siguiendo las convenciones del resto de los programas del autor.
Añadido
Portal de estudio
tools/build_site.pygenera un sitio navegable con las 467 páginas del material: 240 clases, documentación, laboratorios, evaluaciones y proyectos.- El sitio espeja la estructura del repositorio (
X.md→X.htmlen la misma ruta), de modo que cualquier enlace del material funciona dentro del portal. - Diagramas mermaid renderizados, tema claro y oscuro, navegación por migas y diseño adaptable.
- Publicado en GitHub Pages y verificado tras el despliegue.
Flujos de integración continua
ci.ymlreemplaza avalidate.yml: añade estilo de Markdown, matriz de compatibilidad (3 sistemas × 3 versiones de Python), auditoría de los propios workflows conactionlintyzizmor, y puerta de calidad final.security.yml:pip-auditsobre las dependencias,banditsobre el código y escaneo de secretos congitleakssobre el historial completo.codeql.yml: análisis semántico del código Python.pages.yml: genera, publica y verifica el portal.enlaces-externos.yml: revisa semanalmente los enlaces a fuentes oficiales y abre un issue si alguno cae. Informativo: no bloquea la CI.release.yml: al etiquetar una versión publica el programa completo, las clases por separado, el SBOM en formato CycloneDX y las sumas de verificación.
Configuración
.markdownlint-cli2.jsonccon las reglas de estilo y la razón de cada excepción..lycheeignorecon los dominios que bloquean agentes automáticos.requirements-site.txtcon las dependencias del portal.
Cambiado
- Acciones de terceros fijadas por SHA de commit, con su versión en comentario.
persist-credentials: falseen todos los checkout, para no dejar el token en.git.timeout-minutesen todos los jobs.- Ninguna expresión
${{ }}se interpola dentro de unrun: los valores entran porenvy el script los lee como variables de shell. Es la vía de inyección que señalazizmor, y el repositorio cierra su auditoría sin un solo hallazgo. - La publicación usa
gh release, ya incluido en el runner, en lugar de una acción de terceros: una dependencia externa menos que fijar, auditar y renovar. pytestsube a>=9.0.3para resolver la vulnerabilidad PYSEC-2026-1845.- README con las insignias de los cuatro flujos y el enlace al portal.
Corregido
- Seis errores de estilo de Markdown detectados por
markdownlint: un nivel de encabezado saltado, tres tablas con celdas de más por barras verticales sin escapar, una almohadilla sin espacio interpretada como encabezado y un enlace vacío.
1.0.0 — 2026-08-06
Primera versión completa del programa: las 240 clases redactadas, verificadas y con bibliografía oficial.
Añadido
Contenido — 240 clases en 16 partes
- Partes 1–4 · Fundamentos (56 clases): matemática financiera, finanzas personales, productos y servicios, seguridad y consumo financiero.
- Partes 5–8 · Analista (60 clases): contabilidad, economía y sistema financiero, matemática financiera avanzada, inversiones y mercados.
- Partes 9–12 · Bancario (64 clases): crédito, operaciones, gestión integral de riesgos, regulación y cumplimiento.
- Partes 13–16 · Dirección (60 clases): finanzas corporativas, fintech y datos, estrategia y dirección, y el proyecto integrador «Banco Virtual».
Estructura pedagógica
- Trece secciones por clase, incluidas ejemplo numérico guiado paso a paso, puente «del cliente al banco», errores frecuentes con causa y corrección, preguntas de comprobación y entregable de portafolio.
- Mínimo de cuatro fuentes verificables por clase, con línea de verificación local en todo contenido normativo.
- 96 laboratorios, 32 evaluaciones y 16 proyectos integradores.
Herramientas de verificación
tools/validate_program.py— estructura, secciones obligatorias y fuentes.tools/render_program.py— genera navegación, agenda docente y bloque de ética, con modo--checkidempotente.tools/build_syllabus.py— generaSYLLABUS.mdcon el índice de las 240 clases.tools/progress.py— generaSTATUS.mddesde los archivos reales.tools/check_links.py— verifica los ~2 000 enlaces relativos del repositorio.
Documentación
README.mdreescrito con navegación, insignias, diagramas y anatomía de una clase.docs/fuentes.md— bibliografía consolidada de manuales, marcos institucionales y artículos fundacionales.docs/glosario.md— definiciones operativas indexadas por parte.docs/formulas.md— formulario por dominio, con la trampa habitual de cada fórmula.docs/guia-docente.md— sesión de 90 minutos, rúbricas y adaptación por contexto.docs/ruta-aprendizaje.md— progresión, puntos de entrada y cadenas de dependencia.docs/mapa-competencias.md— competencias por nivel con listas de autoevaluación.docs/etica-y-limitaciones.md— alcance, uso de datos, modelos y contenidos sensibles.CONTRIBUTING.md,CODE_OF_CONDUCT.mdySECURITY.mdampliados.
Integración continua
- Flujo
Validate programcon trabajos de validación, enlaces y calidad de Markdown. - Permisos mínimos, control de concurrencia y caché de dependencias.
Cambiado
SYLLABUS.mdpasa de ser una tabla escrita a mano a un índice generado desde los archivos: incluye las 240 clases con su nivel y su enlace.STATUS.mdse genera desde los archivos y nunca declara más contenido del que existe.- Nombres de archivo normalizados a ASCII para compatibilidad entre sistemas y URL.
- Finales de línea unificados a LF mediante
.gitattributes.
0.1.0 — 2026-08-05
Versión inicial: estructura del programa y herramientas base.
Añadido
- Arquitectura curricular de 16 partes y 240 clases.
- 96 laboratorios y 32 evaluaciones estructurados.
- Calculadoras financieras con interfaz de línea de comandos.
- Modelo de scoring crediticio con métricas.
- Banco virtual sobre SQLite.
- Conjuntos de datos sintéticos.
- Validación estructural inicial.