Descarga un laboratorio. Mantén tu trabajo separado.
Un ejercicio, un kit de aprendizaje, un workspace desechable. Empieza con el material que necesitas en lugar de clonar todos los lenguajes, instalar todas las dependencias o copiar la solución final del instructor.
[!TIP] ¿Primera visita? Elige 01 — Contexto e interfaz abajo. Necesitas Node 24 para sus pruebas locales; el acceso a Copilot es independiente. No se requiere un repositorio de GitHub ni una suscripción en la nube para el ejercicio local.
| Tu objetivo | Empieza aquí |
|---|---|
| Instalar herramientas o preparar cuentas personales | Requisitos previos y cuentas, incluidos los tres sistemas operativos para la CLI |
| Practicar un escenario profesional | Uno de los kits prácticos de abajo |
| Seguir la ruta de aprendizaje con fantasía | Uno de los kits de aventura de abajo |
| Entender primero la secuencia | Mapa del currículo |
| Elegir un entorno de ejecución o resolver problemas de configuración | Guía del entorno |
| Verificar una descarga | Sumas de comprobación e inventario de kits |
Qué contiene un kit
| Archivo o carpeta | Para qué sirve |
|---|---|
KIT-START.md |
Entorno de ejecución, raíz del espacio de trabajo, comando de comprobación inicial y estado inicial esperado |
KIT-LESSON.md |
Copia de las instrucciones completas del ejercicio |
| Archivos originales del proyecto | Código inicial, pruebas existentes, datos sintéticos y configuración |
.workshop/ |
Requisitos previos locales, orientación de configuración e imágenes incluidas en la lección |
KIT-MANIFEST.json |
Tamaños y hashes SHA-256 de cada archivo |
KIT-VERIFY.cjs |
Comprobación de integridad antes de modificar el proyecto inicial |
KIT-LICENSE.txt |
Licencia que acompaña al material redistribuido |
Los kits excluyen el directorio reference del instructor, el historial de Git, las dependencias, las cachés y los archivos del entorno local. No incluyen cuentas, runtimes ni credenciales. La lección y el código canónicos permanecen en inglés dentro del paquete; el sitio de aprendizaje también ofrece vistas de lectura en español y portugués brasileño. Las referencias oficiales externas siguen necesitando conexión a Internet.
[!IMPORTANT] Un starter no es una aplicación terminada. Algunas comprobaciones iniciales fallan de forma deliberada. Sigue el estado esperado en
KIT-START.md; un runtime faltante, un error de importación o una ejecución de pruebas vacía no son una reproducción exitosa de un fallo intencional.
1. Selecciona y descarga
En el sitio de aprendizaje, un vínculo ZIP descarga el archivo directamente. En GitHub, si el vínculo abre una vista previa del archivo, selecciona Download raw file. Descarga el inventario de checksums correspondiente de la misma revisión inspeccionada.
Kits prácticos
Las cinco guías de preparación reutilizan el kit de ejercicio asociado; no necesitan cinco archivos duplicados. Elige la variante C# o Python para los laboratorios con pareja de lenguajes, no ambas a la vez.
| Laboratorio | Descarga | Primera comprobación local |
|---|---|---|
| 01 — Contexto e interfaz | 01-interface.zip | Pruebas de saludo |
| 02 — Analizar C# | 02-csharp.zip | Pruebas de la biblioteca |
| 02 — Analizar Python | 02-python.zip | Pruebas de la biblioteca |
| 03 — Desarrollar C# | 03-csharp.zip | Pruebas de la biblioteca existente |
| 03 — Desarrollar Python | 03-python.zip | Pruebas de la biblioteca existente |
| 04 — xUnit | 04-xunit.zip | Pruebas del servicio existente |
| 04 — pytest | 04-pytest.zip | Línea base unittest sin dependencias |
| 05 — Refactorizar C# | 05-csharp.zip | Pruebas de caracterización |
| 05 — Refactorizar Python | 05-python.zip | Pruebas de caracterización |
| 06 — Prototipo de compras | 06-prototype.zip | Pruebas del dominio del carrito, no finalización de la interfaz |
| 07 — Duplicación | 07-duplication.zip | Compilación del proyecto seleccionado |
| 08 — Funciones grandes | 08-functions.zip | Compilación del proyecto de consola |
| 09 — Reglas de decisión | 09-conditionals.zip | Compilación del proyecto de precios |
| 10 — Perfilado acotado | 10-profiling.zip | Compilación del analizador; sin prueba de carga |
| 11 — Incidencias | 11-issues.zip | La línea base pasa; la regresión empieza en rojo |
| 12 — Remediación de secretos | 12-secrets.zip | Pruebas de política sin conexión |
| 13 — Nuevo proyecto | 13-greenfield.zip | Fallo intencional por almacén sin terminar |
| 14 — Funcionalidad de brownfield | 14-brownfield.zip | El contrato antiguo pasa; la función empieza en rojo |
| 15 — Personalización | 15-customization.zip | Pruebas de inventario |
| 16 — Copilot SDK | 16-sdk.zip | Pruebas de aplicación sin conexión |
| 17 — Modernización | 17-modernization.zip | Línea base CSV; la migración empieza en rojo |
Kits de aventura
Cada kit contiene el laboratorio, su verificador y las instrucciones de la aventura. Un verificador rechaza un ejercicio sin terminar salvo que la tabla indique lo contrario. El descubrimiento del host y las integraciones en vivo requieren evidencia separada.
| Nivel | Descarga | Qué establece el trabajo local |
|---|---|---|
| Fundamentos | portals-of-nexus.zip | Mapeo de rol, harness, destino y entorno |
| Fundamentos | context-mirrors.zip | Línea base de secuencia para experimentos controlados |
| Básicos | tempora-loop.zip | Comportamiento de convergencia acotada |
| Básicos | eldoria-laws.zip | Contrato de instrucciones del repositorio |
| Intermedio | algora-skills.zip | Estructura enfocada de skills |
| Intermedio | stellaris-agents.zip | Perfil de agente personalizado y definición de traspaso |
| Intermedio | stonevale-guardrails.zip | Política de comandos determinista |
| Avanzado | cartographer-mcp.zip | Intercambio MCP local de solo lectura |
| Avanzado | lumoria-graph.zip | Recorrido de dependencias sin ciclos |
| Avanzado | mythos-parallel.zip | Ejecución paralela de tareas y resultados ordenados |
| Superficies | cloud-citadel.zip | Contrato acotado de tarea en la nube, no una ejecución en la nube |
| Superficies | terminal-gate.zip | Analizador seguro de comandos, no autenticación de CLI |
| Superficies | automaton-foundry.zip | Estructura del SDK y plan de evaluación; la ejecución en vivo va aparte |
| Capstone | convergence-of-three-realms.zip | Contrato trazable de flujo de trabajo entre entornos |
2. Verifica y extrae en tu sistema
Elige un proyecto o unidad de trabajo existente con suficiente espacio. Las rutas siguientes son ejemplos: sustitúyelas por tu ubicación de trabajo aprobada. Nunca extraigas encima de un repositorio existente. En el Mac compartido del taller, usa la unidad de trabajo T9.
| Sistema | Comprueba el ZIP descargado | Extrae en un directorio nuevo |
|---|---|---|
| Windows PowerShell | Get-FileHash .\01-interface.zip -Algorithm SHA256 |
Clic derecho en el ZIP → Extraer todo; elige una carpeta nueva de la unidad de trabajo |
| macOS | shasum -a 256 01-interface.zip |
Finder → doble clic en el ZIP dentro del directorio elegido de la unidad de trabajo |
| Linux | sha256sum 01-interface.zip |
Gestor de archivos → Extraer aquí, en el directorio elegido de la unidad de trabajo |
Compara el hash completo con la entrada de SHA256SUMS.txt. Un hash procedente de un archivo comprimido no confiable no autentica ese archivo. Revisa el repositorio y el origen de descarga antes de ejecutar cualquier código.
Abre la carpeta extraída y lee KIT-START.md. Especifica si VS Code debe abrir la raíz del kit o starter/. Usa Archivo → Abrir carpeta en una ventana nueva. No dejes otro repositorio en un workspace de varios roots.
Punto de control: puedes encontrar la fuente, la lección y el manifiesto en el disco fuera del visor del ZIP. Si Node 24 está instalado, node KIT-VERIFY.cjs desde la raíz del kit comprueba que la extracción conservó los archivos empaquetados.
3. Ejecuta solo la línea base seleccionada
- Lee el requisito de runtime en
KIT-START.md. - Selecciona el intérprete o SDK correspondiente. No instales todas las pilas de lenguaje.
- Usa el directorio de trabajo impreso junto al comando de la línea base.
- Registra el comando, las pruebas descubiertas, el código de salida y la salida real.
- Compara el resultado con éxito esperado o fallo intencional del starter.
- Continúa con
KIT-LESSON.md: conceptos, Ask, Plan, Agent, comprobaciones negativas y revisión.
Las pruebas de contrato locales no necesitan autenticación de Copilot. Un agente en vivo, CLI, SDK o ejercicio en la nube puede requerir acceso a la cuenta y consumir uso. Mantenlo separado.
Usa VS Code o Insiders desde el kit extraído
-
Lee el valor del espacio de trabajo en
KIT-START.md. Los kits prácticos se abren en la raíz del kit; las personalizaciones de las aventuras se abren enstarter/. -
Usa File > Open Folder (Archivo > Abrir carpeta) en la edición elegida, o abre un terminal en ese espacio de trabajo y ejecuta uno de los comandos del editor:
code .Para usar Insiders en su lugar:
code-insiders . -
Comprueba la cuenta de GitHub y el perfil activos en esa edición. Revisa la Confianza del área de trabajo (Workspace Trust) y las personalizaciones incluidas antes de autorizar herramientas.
-
Sigue las etapas de Ask, Plan, Agent y revisión de la lección. Desde un terminal en el directorio
starter/de una aventura, el verificador está un directorio más arriba:node ../verify.jsSi estás en la raíz del kit de la aventura:
node verify.js
Estos dos comandos son alternativas según el directorio de trabajo, no dos pruebas diferentes. Los kits prácticos usan la comprobación inicial indicada en su propia guía de primera ejecución. No sustituyas una prueba específica del lenguaje por el verificador de una aventura.
Usa Copilot CLI desde el kit extraído
-
Completa la instalación y la autenticación de la CLI para tu sistema operativo. No es necesario instalar VS Code para trabajar con código solo desde el terminal.
-
Abre un terminal en la raíz del kit extraído. Para una aventura, entra primero en su directorio
starter/; para un kit práctico, permanece en la raíz del kit:cd starterEjecuta el comando de cambio de directorio solo para una aventura. Después, inicia el agente independiente:
copilot -
Usa primero el prompt de investigación de la lección sin hacer cambios. Después, solicita un plan con el alcance de archivos, comprobaciones positivas y negativas y el restablecimiento. Estas son responsabilidades, no una promesa de controles idénticos a los de VS Code en la CLI.
-
Aprueba únicamente el cambio revisado. No concedas acceso a todo el repositorio padre ni desactives las solicitudes de permiso para facilitar una prueba.
-
Mantén un terminal normal separado para las pruebas. Ejecuta los comandos de
KIT-START.mddesde el directorio indicado; no pegues comandos de prueba en el agente como si eso fuera un resultado ejecutado en el terminal. -
Revisa el diff y las salidas reales. Si inicializaste Git en la raíz del kit, estos comandos de solo lectura muestran los cambios:
git status --short git diff -
Registra en tu evidencia la interfaz, la versión, los permisos y las limitaciones que realmente utilizaste. Sal de la sesión de aprendizaje cuando termines; no dejes un agente sin supervisión con amplias facultades.
| Interfaz de la lección | Lo que puede y no puede demostrar el trabajo solo desde el terminal |
|---|---|
| Comprobaciones locales de código y contratos en todos los kits | Ejecuta las comprobaciones declaradas del estado inicial y de la implementación con el entorno de ejecución requerido |
| Tareas de interfaz de VS Code, pruebas en el editor y depurador | Las pruebas de la CLI no demuestran interacción con el editor; completa esas tareas en VS Code o márcalas como no realizadas |
| Instrucciones, skills, agentes personalizados y MCP | Revisa los archivos localmente; el descubrimiento, los permisos de herramientas y los traspasos entre agentes deben comprobarse en el host específico documentado |
| Puerta del terminal | Su verificador del analizador no demuestra que una sesión real de Copilot CLI se haya autenticado o ejecutado |
| Lecciones de SDK y agente en la nube | Las comprobaciones sin conexión no demuestran inferencia autenticada, una asignación remota ni un pull request; completa la ruta real independiente solo con acceso autorizado |
El mismo proyecto inicial puede servir para diferentes entornos sin que sus capacidades sean intercambiables. No se necesita crédito de Azure para estas comprobaciones locales ni para la autenticación de GitHub Copilot CLI.
4. Crea un repositorio local, si hace falta
Ejecuta estos comandos dentro de la raíz del kit extraído, después de inspeccionar sus archivos:
git init -b training
git status --short
Revisa la lista de archivos. Excluye dependencias, archivos de entorno y datos de tiempo de ejecución en el .gitignore local antes de hacer staging. Si Git necesita una identidad, configúrala solo para este repositorio, con tu propio nombre y correo aprobados.
git config user.name "YOUR NAME"
git config user.email "YOUR APPROVED EMAIL"
git add .
git commit -m "Record untouched learning baseline"
Los dos valores de identidad son marcadores de posición, no comandos para copiar sin cambios. Crear esta línea base local no crea un repositorio en GitHub.
5. Publica opcionalmente en tu propio repositorio de GitHub
[!CAUTION] Publicar transfiere archivos a GitHub. Revisa las licencias y cada archivo en staging. Nunca subas credenciales, datos personales reales ni material privado del instructor. Un repositorio privado es un valor predeterminado sensato, no permiso para subir secretos.
- Inicia sesión en GitHub con tu cuenta autorizada.
- Selecciona New repository y elige un propietario que tengas permitido usar.
- Introduce un nombre único de entrenamiento y elige la visibilidad adecuada.
- Deja sin marcar la inicialización con README, licencia y
.gitignore: el kit local ya tiene archivos y un commit. - Crea el repositorio vacío y copia su URL HTTPS.
- En la raíz del kit, inspecciona
git remote -v. Si ya hay unorigin, detente y confirma qué repositorio identifica; no lo reemplaces automáticamente. - Añade la URL copiada y sube la rama de entrenamiento:
git remote add origin https://github.com/YOUR-OWNER/YOUR-TRAINING-REPOSITORY.git
git push -u origin training
Sustituye los marcadores de URL. Usa el flujo de autenticación aprobado por GitHub; no pongas un token de acceso en la URL ni en un documento. Comprueba la rama y los archivos en GitHub. Un encargo de agente en la nube o una pull request es una acción posterior, revisada por separado.
Finalizar, solucionar problemas y restablecer
| Síntoma | Siguiente acción |
|---|---|
| Falta un archivo después de extraer | Vuelve a descargar y compara el hash del archivo; no inventes un reemplazo |
KIT-VERIFY.cjs falla después de editar |
Esperado cuando cambian los hashes; usa las pruebas de la lección para obtener evidencia de implementación |
| No se encuentra el comando | Instala o selecciona solo el runtime nombrado por el kit elegido |
| Python no puede encontrar un módulo | Comprueba el directorio de trabajo library del kit y el intérprete |
| Una personalización no se descubre | Abre la raíz especificada, incluyendo starter/ donde sea necesario |
| GitHub rechaza el push | Verifica propietario, URL, autenticación y rama; no hagas force-push |
| Una función avanzada no está disponible | Registra el bloqueo y usa la alternativa local o en papel documentada |
- Conserva el archivo original como línea base limpia.
- Guarda el diff, las comprobaciones ejecutadas y las limitaciones.
- Detén solo los procesos y sesiones creados para el ejercicio.
- Extrae en un directorio nuevo y sin usar para otro intento.
- Cierra solo los recursos remotos propiedad del ejercicio después de revisar qué debe preservarse.
Reproducibilidad para mantenedores
Desde la copia del currículo, ejecuta npm run build:kits después de cambiar una lección empaquetada, un fixture o una imagen. npm run check:kits rechaza artefactos faltantes o desactualizados. El generador usa la biblioteca estándar de Node, entradas ordenadas, marcas temporales ZIP fijas, licencias incluidas, manifiestos de archivos e inventario SHA-256. Nunca ejecuta código del alumno. Esto es reproducibilidad para el formato de paquete declarado, no una certificación de seguridad.
Las entradas ZIP usan el método STORE sin compresión, de modo que las sumas de comprobación no dependen de la biblioteca de compresión del runtime. Los archivos son más grandes que los ZIP comprimidos, pero conservan los mismos archivos extraídos y bytes deterministas en los entornos compatibles.