Gracias por tu interés en mejorar el Programa de Ciberseguridad Moderna.
Cada clase vive en classes/parte-N-.../NNN-slug/README.md y sigue una plantilla fija:
🎯 Objetivo📚 Resultados de aprendizaje (verificables, con verbos de acción)🗺️ Temas (tabla tema → por qué importa)📖 Definiciones y características🧰 Herramientas y preparación🧪 Laboratorio guiado (pasos numerados, reproducibles)✍️ Ejercicios📝 Reto verificable (con criterio de aceptación)⚠️ Errores comunes (tabla síntoma → causa/solución)❓ Preguntas frecuentes🔗 Referencias➡️ Siguiente claseclasses/README.md) coherente.Al enviar una contribución declaras que tienes derecho a aportarla y aceptas que se publique bajo la licencia aplicable a su tipo:
No envíes material copiado, secretos, datos personales, telemetría de terceros, malware real ni activos cuya licencia no permita la distribución. Si incorporas o adaptas material externo permitido, identifica autor, fuente, versión, licencia y cambios en el mismo pull request, y actualiza THIRD_PARTY_NOTICES.md, ASSET_LICENSES.md o DATA_LICENSES.md, según corresponda.
La licencia de una contribución no autoriza pruebas sobre sistemas ajenos. Toda práctica debe seguir SECURITY_AND_ETHICS.md.
El README.md de la clase es la única fuente de verdad; el sitio, el manual, el material
descargable y el temario de la app móvil se generan a partir de él. Tras editar una clase:
python scripts/mermaid_svg.py # diagramas nuevos o modificados
python scripts/generar_curriculum_movil.py # catálogo de la app (--check en CI)
python scripts/generar_material.py <n_de_parte> # guía PDF + PPTX de esa parte
python scripts/generar_manual.py # manual completo
El sitio lo reconstruye el CI en cada push a main, así que no hace falta commitear site/.
La revisión no termina en la carpeta de la clase. Si cambia una capacidad profesional, una práctica
o un concepto transversal, revisa también el README de la parte, rutas/, labs/README.md, el
glosario global, los recursos transversales, la bibliografía, el manual y el catálogo móvil. Declara
qué superficies no aplican y por qué; no asumas que una revisión anterior sigue vigente después de
añadir clases, roles, laboratorios o recursos.
Los diagramas van en bloques ```mermaid. Antes de dar una clase por terminada, comprueba que
el diagrama compila: uno con la sintaxis rota no deja un hueco, sino un cartel de "Syntax
error" con una bomba, y ese cartel viaja igual al sitio y al PDF. scripts/mermaid_svg.py los
rechaza y los cuenta, así que basta con ejecutarlo y mirar el resumen.
Los diagramas dibujados viven en diagramas/ y se commitean: el CI construye el sitio y no
tiene navegador con el que dibujarlos. Si editas un diagrama, ejecuta scripts/mermaid_svg.py e
incluye el .svg y el .png nuevos en el commit.
Tres formas de romperlo que ya han aparecido en este repositorio: usar ; dentro de un
Note over (mermaid lo lee como fin de sentencia), abrir una etiqueta con [/ (es la sintaxis de
la forma de paralelogramo, no texto — entrecomilla la etiqueta), y dejar espacios dentro de
{ ... } en un nodo rombo.