OSWork v6.2 · 8 módulos · lecciones de unos 15 minutos
Del chat a tu entorno de agentes, una lección corta a la vez. Organizas archivos, enseñas procedimientos a la IA y montas rutinas que puedes revisar. Al final de cada lección tienes el material completo del tema para quien quiera profundizar.

Comparar modelos con una tarea real y un criterio de calidad.
Redactar una orden de trabajo con entradas, salida y revisión.
Abre un proyecto de entrenamiento en Codex y produce una modificación verificable.
Construye la casa digital y separa conocimiento de credenciales.
Crear instrucciones de proyecto y una capacidad reutilizable con criterio de revisión.
Guardar una versión, inspeccionar diferencias y recuperar un cambio de entrenamiento.
Ejecute un bot restringido de consulta y entienda dónde entra la IA.
Prepare un plan de despliegue, supervisión, respaldo y verificación del servicio.
OSWork v6.2
Los términos técnicos del curso en palabras sencillas. Cada término te lleva a las lecciones donde aparece.
IA que ejecuta varias etapas por su cuenta, como leer archivos, crear y comparar, en lugar de solo responder un mensaje.
Aparece en: Lección 5 Lección 6 Lección 8 Lección 9 Lección 11 Lección 12 Lección 16 Lección 17 Lección 18 Lección 20 Lección 24 Lección 25 Lección 26 Lección 27 Lección 28 Lección 29 Lección 30 Lección 31 Lección 32 Lección 37 Lección 41 Lección 42 Lección 48
Archivo en Markdown con las instrucciones que el agente lee antes de trabajar en una carpeta: reglas, límites y cómo comprobarlo.
Aparece en: Lección 16 Lección 17 Lección 18 Lección 19 Lección 24 Lección 25 Lección 26 Lección 27 Lección 29 Lección 30
Archivo AGENTS.override.md: cuando está en la misma carpeta que un AGENTS.md, el Codex lee el override e ignora el AGENTS.md de esa carpeta.
Aparece en: Lección 26
Puerta de entrada para que un programa use un servicio de IA sin pasar por la pantalla del chat. El uso por API se cobra por consumo.
Aparece en: Lección 5 Lección 6 Lección 15 Lección 37 Lección 41 Lección 42 Lección 43
Instalador de programas de Ubuntu, usado en la terminal.
Aparece en: Lección 45 Lección 48
Archivo que Git ya incluye, porque entró en alguna versión guardada. El .gitignore no aplica para él.
Aparece en: Lección 23
Prueba que el propio bot del kit ejecuta sin Telegram y sin internet, con mensajes falsos, para verificar tus reglas.
Aparece en: Lección 42
Copia de seguridad de los archivos, guardada en otro lugar para recuperarlos si algo se pierde.
Aparece en: Lección 31 Lección 36 Lección 48
Lenguaje de comandos de la terminal en Linux y en macOS. Los comandos de este curso están escritos para él.
Aparece en: Lección 13 Lección 16 Lección 18 Lección 19 Lección 24 Lección 31
Programa que conversa mediante una aplicación de mensajería y responde solo, siguiendo las reglas que tú defines.
Aparece en: Lección 36 Lección 37 Lección 38 Lección 39 Lección 40 Lección 41 Lección 42 Lección 43 Lección 45 Lección 46 Lección 47 Lección 48
Cuenta oficial del propio Telegram que crea bots y genera el token de cada uno.
Aparece en: Lección 38 Lección 42
Línea paralela de trabajo en Git, donde pruebas cambios sin tocar la versión principal.
Aparece en: Lección 34 Lección 36
Dirección de una carpeta o de un archivo, con los nombres separados por barra, como ~/proyectos/config.
Aparece en: Lección 5 Lección 9 Lección 14 Lección 19 Lección 24 Lección 26 Lección 37 Lección 42 Lección 47 Lección 48
Contraseña larga que identifica quién usa la API y para quién va la cuenta. Nunca va en un pedido, en un archivo compartido o en un pantallazo.
Aparece en: Lección 5 Lección 15 Lección 22 Lección 23
Mitad pública del par de claves de SSH. Se registra en la VPS; la otra mitad, la clave privada, se queda solo en tu computadora y nunca se pega en ningún lugar.
Aparece en: Lección 44 Lección 48
Comando que define quién puede leer o modificar un archivo.
Aparece en: Lección 22 Lección 38 Lección 42 Lección 46
Copia de un repositorio de GitHub en tu computadora, con todo el historial.
Aparece en: Lección 34 Lección 36
Agente de programación de OpenAI que trabaja en una carpeta de tu computadora, a partir del terminal. El curso lo instala en el módulo 3.
Aparece en: Lección 3 Lección 5 Lección 12 Lección 13 Lección 14 Lección 15 Lección 16 Lección 17 Lección 18 Lección 19 Lección 25 Lección 26 Lección 27 Lección 28 Lección 29 Lección 30 Lección 41 Lección 45 Lección 48
Versión guardada en Git, con un mensaje que explica el cambio. Puedes volver a ella después.
Aparece en: Lección 23 Lección 31 Lección 32 Lección 33 Lección 34 Lección 35 Lección 36
Terminal de la VPS abierta desde el panel del proveedor, en el navegador, sin SSH. Es la ruta de vuelta cuando falla el SSH.
Aparece en: Lección 44 Lección 48
El material que la IA recibe para hacer una tarea: los archivos, las instrucciones y la información que tú señalas.
Aparece en: Lección 9 Lección 11 Lección 19 Lección 24 Lección 30 Lección 34
El paquete completo, con seis partes: objetivo, entradas, salida, límites, verificación y parada.
Aparece en: Lección 10 Lección 11 Lección 12
Cinco líneas escritas antes de conectar una IA a un bot: datos enviados, modelo, límite de costo, tiempo máximo y qué hacer si la IA falla.
Aparece en: Lección 41
Hoja de cálculo en texto simple, con los valores separados por comas. Se abre en Excel o en Google Sheets.
Aparece en: Lección 21 Lección 25 Lección 26 Lección 27 Lección 29 Lección 30 Lección 37 Lección 40 Lección 42 Lección 48
Aplicación de ChatGPT en la computadora, que trabaja más cerca de tus archivos y puede leer las carpetas que tú permitas.
Aparece en: Lección 6 Lección 7 Lección 9 Lección 10
Comparación que muestra, línea por línea, lo que cambió en un archivo.
Aparece en: Lección 18 Lección 32 Lección 35 Lección 36 Lección 48
Otro nombre para carpeta, usado en el terminal.
Aparece en: Lección 18 Lección 26 Lección 30 Lección 41 Lección 47 Lección 48
Trabajo que indica qué debe existir al final: objetivo, entradas, resultado, límites y parada.
Aparece en: Lección 7 Lección 8 Lección 11 Lección 12
Archivo que guarda claves y contraseñas fuera del código. Nunca se sube a Git, a un pedido o a una captura.
Aparece en: Lección 15 Lección 22 Lección 23 Lección 24 Lección 33 Lección 36 Lección 38 Lección 39 Lección 40 Lección 42 Lección 46 Lección 47 Lección 48
Copia del .env con los mismos nombres de variables y valores ficticios. Muestra qué tienes que completar sin dar acceso a nada, por eso se puede compartir.
Aparece en: Lección 22 Lección 23 Lección 24 Lección 38 Lección 42
Trabajo que corre en tu propio computador. Depende de que esté encendido, con red y con los permisos correctos.
Aparece en: Lección 10
Documento corto en el que anotas cómo funciona un trabajo con IA: herramientas, acceso, decisiones y pendientes. Puede ser una nota en el celular. En el módulo 4 se convierte en un archivo de la carpeta del proyecto.
Aparece en: Lección 5 Lección 10 Lección 14 Lección 15
Filtro que decide qué conexiones de red pueden entrar a la máquina o salir de ella.
Aparece en: Lección 44 Lección 46 Lección 48
Programa que guarda el historial de versiones de una carpeta de proyecto: qué cambió, cuándo y por qué.
Aparece en: Lección 18 Lección 23 Lección 30 Lección 31 Lección 32 Lección 33 Lección 34 Lección 35 Lección 36 Lección 45 Lección 46 Lección 48
Sitio donde guardas una copia de tu repositorio Git en internet, para trabajar desde otro computador o con otras personas.
Aparece en: Lección 31 Lección 33 Lección 34 Lección 35 Lección 36
Archivo que lista qué no debe guardar Git, como contraseñas y archivos temporales.
Aparece en: Lección 22 Lección 23 Lección 24 Lección 33 Lección 36 Lección 46
En Git, la versión en la que estás ahora.
Aparece en: Lección 35
Número fijo que Telegram asigna a cada cuenta. No cambia cuando la persona cambia el nombre que se muestra.
Aparece en: Lección 39 Lección 40 Lección 42
Secuencia corta que identifica la VPS. En la primera conexión por SSH, verificas si coincide con la que te informa el proveedor de la VPS.
Aparece en: Lección 44 Lección 48
Poner un programa en la computadora para que pueda usarse. El módulo 3 hace la primera instalación, desde la fuente oficial.
Aparece en: Lección 6 Lección 9 Lección 12 Lección 14 Lección 17 Lección 18 Lección 24 Lección 30 Lección 31 Lección 36 Lección 38 Lección 39 Lección 42 Lección 45 Lección 48
La pantalla por donde le pasas el objetivo a la IA, como la ventana del chat. El curso muestra otras interfaces a lo largo de los módulos.
Aparece en: Lección 1 Lección 6 Lección 7 Lección 10 Lección 12 Lección 37
Ejemplo de un modelo de clasificación citado en el curso. No conversa: recibe un texto y alternativas cerradas y devuelve una elección, un sí o no, o una calificación.
Aparece en: Lección 2
Comando que muestra el registro de los servicios de systemd.
Aparece en: Lección 47 Lección 48
Centro que da acceso a modelos de imagen y de video de varios proveedores, con crédito propio.
Lista de los IDs numéricos que el bot atiende. En el kit, se ve en la línea ALLOWED_USER_IDS del .env.
Aparece en: Lección 39 Lección 40 Lección 42
Modelo de lenguaje: programa entrenado con muchísimo texto que produce texto a partir de lo que tú entregas. Es el tipo de IA que está detrás de los chats.
Registro de lo que hizo un programa, línea por línea, con fecha y hora. Es donde se busca la causa de un error.
Aparece en: Lección 33 Lección 36 Lección 40 Lección 42 Lección 46 Lección 47 Lección 48
Entrar a una herramienta con tu cuenta, como la cuenta de ChatGPT. Los derechos y los límites vienen del plan de esa cuenta.
Aparece en: Lección 5 Lección 14 Lección 15 Lección 18 Lección 44
Forma en que el bot le pregunta al Telegram, de vez en cuando, si llegó un mensaje nuevo. No requiere un servidor con dirección pública.
Aparece en: Lección 40 Lección 46
Forma de escribir texto simple con marcas leves, como # para título y - para lista. Los archivos terminan en .md.
Aparece en: Lección 16 Lección 20 Lección 24 Lección 25 Lección 27 Lección 29 Lección 30
Archivos de consulta con hechos estables, decisiones y causas de fallas, que el agente lee cuando tú indicas. No cambia el modelo; alguien necesita mantenerlos al día.
Aparece en: Lección 28
Editor de texto que se abre dentro del terminal. Ctrl+O guarda el archivo y Ctrl+X sale.
Aparece en: Lección 20 Lección 21 Lección 24 Lección 38
Computadoras de una empresa, a las que se accede por internet, que ejecutan el trabajo y guardan archivos fuera de tu máquina.
Aparece en: Lección 10
Centro que da acceso a modelos de lenguaje de varias empresas en un solo punto, con crédito propio.
Nombre que Git le da, por defecto, a la dirección en GitHub de donde venía la carpeta y a dónde la envía.
Aparece en: Lección 34 Lección 36
Carpeta solo con archivos ficticios o copias, creada para probar la IA sin riesgo para el material real.
Aparece en: Lección 6 Lección 9 Lección 12 Lección 18 Lección 24 Lección 30 Lección 31 Lección 36 Lección 42 Lección 48
Tu carpeta principal en el computador, donde están Documentos, Downloads y las demás. En el terminal aparece como ~ (til).
Aparece en: Lección 16 Lección 19 Lección 24 Lección 31
Número que identifica un servicio dentro de la máquina. El SSH suele usar el puerto 22, pero tu VPS puede usar otro.
Aparece en: Lección 2 Lección 13 Lección 37 Lección 40 Lección 44 Lección 46 Lección 48
Empresa que ofrece un modelo de IA. Un centro reúne modelos de varios proveedores en un solo lugar.
Aparece en: Lección 2 Lección 43 Lección 44 Lección 46
Comando de Git que trae a tu computador los cambios nuevos de GitHub.
Aparece en: Lección 34 Lección 36
Comando de Git que envía tus commits a GitHub.
Aparece en: Lección 36
Lenguaje de programación. El bot del kit del curso está escrito en él.
Aparece en: Lección 39 Lección 45
Archivo de texto en la carpeta del proyecto que explica para qué sirve, qué tiene dentro y cómo comprobar el resultado.
Aparece en: Lección 6 Lección 12 Lección 16 Lección 17 Lección 18 Lección 19 Lección 20 Lección 22 Lección 23 Lección 24 Lección 25 Lección 26 Lección 30 Lección 32 Lección 33 Lección 34 Lección 35 Lección 36 Lección 38 Lección 42 Lección 48
Lista corta de criterios, escrita antes del pedido, que dice qué debe tener la respuesta para que sea aceptada.
Aparece en: Lección 4 Lección 11
Carpeta de proyecto acompañada por Git, con todo el historial de versiones.
Aparece en: Lección 22 Lección 27 Lección 31 Lección 33 Lección 34 Lección 36 Lección 47
Comando de Git que descarta los cambios que aún no se guardaron de un archivo, volviendo a lo que había en la última versión. Lo que se descartó no vuelve.
Aparece en: Lección 35 Lección 36
Comando de Git que crea un commit nuevo deshaciendo un commit anterior, sin borrar nada del historial.
Aparece en: Lección 35 Lección 36
Archivo con una secuencia de comandos que el computador ejecuta de una vez.
Aparece en: Lección 14 Lección 26
Computador que está encendido prestando un servicio para otros, como responder a los mensajes de un bot.
Aparece en: Lección 37 Lección 40 Lección 43 Lección 44 Lección 48
Programa que interpreta los comandos que escribes en el terminal.
Aparece en: Lección 13 Lección 18 Lección 39 Lección 42
Procedimiento empaquetado que el agente puede reutilizar: instrucciones, pasos y cómo verificar, guardados en una carpeta.
Aparece en: Lección 26 Lección 27 Lección 29 Lección 30 Lección 48
Forma segura de abrir la terminal de otro ordenador por internet.
Aparece en: Lección 44 Lección 46 Lección 47 Lección 48
Área de Git donde se guardan los cambios elegidos para entrar en el próximo commit.
Aparece en: Lección 32 Lección 36
Comando que ejecuta la instrucción siguiente con permiso de administrador. Pide tu contraseña.
Aparece en: Lección 44 Lección 45 Lección 46 Lección 47 Lección 48
Comando de systemd para encender, apagar y ver el estado de un servicio.
Aparece en: Lección 47 Lección 48
Parte de Linux que enciende, vigila y reinicia programas sola, incluso después de reiniciar la máquina.
Aparece en: Lección 47 Lección 48
Aplicación de mensajería. En el curso, se convierte en la pantalla de conversación con un bot tuyo, en el módulo 7.
Aparece en: Lección 6 Lección 12 Lección 18 Lección 24 Lección 30 Lección 36 Lección 37 Lección 38 Lección 39 Lección 40 Lección 41 Lección 42 Lección 43 Lección 46 Lección 47 Lección 48
Programa de texto en el que escribes comandos para que el computador los ejecute. El módulo 3 enseña a abrir y usar.
Aparece en: Lección 5 Lección 12 Lección 13 Lección 14 Lección 15 Lección 16 Lección 17 Lección 18 Lección 19 Lección 20 Lección 21 Lección 22 Lección 23 Lección 24 Lección 26 Lección 27 Lección 28 Lección 29 Lección 30 Lección 31 Lección 32 Lección 33 Lección 34 Lección 35 Lección 36 Lección 38 Lección 39 Lección 40 Lección 42 Lección 44 Lección 45 Lección 46 Lección 47 Lección 48
Contraseña que Telegram genera para tu bot. Quien tiene el token controla el bot; por eso se queda en el .env.
Aparece en: Lección 22 Lección 36 Lección 38 Lección 39 Lección 40 Lección 42 Lección 46 Lección 48
Trozo de texto, como una palabra corta o parte de una palabra, que el modelo lee y escribe. El uso y el cobro suelen medirse en tokens.
Aparece en: Lección 3 Lección 5 Lección 6 Lección 12 Lección 18 Lección 22 Lección 24 Lección 30
Versión popular de Linux, común en servidores.
Aparece en: Lección 13 Lección 14 Lección 43 Lección 45 Lección 46 Lección 48
Comando de Ubuntu para configurar el firewall de una forma simple.
Aparece en: Lección 46
Archivo que le dice a systemd qué programa iniciar, con qué usuario y en qué carpeta.
Aparece en: Lección 47 Lección 48
Un nombre con un valor guardado, escrito como NOMBRE=valor. El programa busca el valor por el nombre.
Aparece en: Lección 15 Lección 22 Lección 24 Lección 38 Lección 42
Computadora alquilada a un proveedor, encendida todo el tiempo y bajo tu responsabilidad. El módulo 8 enseña a usarla.
Aparece en: Lección 6 Lección 10 Lección 12 Lección 18 Lección 24 Lección 30 Lección 36 Lección 40 Lección 42 Lección 43 Lección 44 Lección 45 Lección 46 Lección 47 Lección 48
Forma en que Telegram avisa a tu servidor en el momento en que llega un mensaje. Requiere una dirección pública en internet.
Aparece en: Lección 40
Modo de ChatGPT en el que tú entregas una tarea más grande y recibes el resultado listo después, sin seguir cada respuesta.
Aparece en: Lección 3 Lección 6 Lección 7 Lección 8 Lección 10 Lección 12
Linux que se ejecuta dentro de Windows, oficial de Microsoft. En él, los comandos del curso funcionan como en Linux.
Aparece en: Lección 13 Lección 14 Lección 31 Lección 38 Lección 45 Lección 46 Lección 47 Lección 48
Módulo 1 · Lección 1 de 6

Puedes dibujar las siete piezas de tu sistema de IA y señalar cuál de ellas falta para terminar una tarea real de esta semana.
Cuando la respuesta sale mal, la reacción común es cambiar de herramienta o escribir un pedido más grande. Muchas veces el problema está en otra pieza: falta el archivo, el permiso o la forma de verificar. Esta lección muestra dónde buscar.
En 1 minuto
Cuando este curso habla de IA, habla de modelos de lenguaje, las LLMs. Un modelo es un mecanismo entrenado para producir texto a partir de lo que tú entregas.
No ve tu escuela, tu equipo ni la reunión de la semana pasada. Lo que falta en el pedido, lo completa con la forma más común de responder.
Denise, coordinadora pedagógica, pidió un plan para la reunión de padres. Sin la pauta, la IA imaginó prioridades. Con la pauta y la ata anterior pegadas, volvió con una propuesta que ella pudo comprobar.
TúHaz un plan para la reunión de padres del 8º año.
IASugerencia de plan: 1. Bienvenida. 2. Presentación del proyecto pedagógico. 3. Calendario de exámenes…
Prioridades inventadas. Nada de eso estaba en la pauta de la escuela.
TúHaz un plan para la reunión de padres del 8º año, usando solo la pauta y la ata de abajo. Marca lo que quedó pendiente de la reunión anterior. [pauta pegada] [ata anterior pegada]
IAPlan a partir de la pauta enviada: 1. [ítem 1 de la pauta] 2. [ítem 2 de la pauta] Pendiente del acta anterior: [pendencia registrada en el acta]
Misma IA. Ahora cada ítem apunta a un papel que Denise tiene en la mano.
Hay varios modelos, con nombres, tamaños y costos diferentes. La pregunta "¿cuál es el mejor?" no tiene una respuesta útil.
La pregunta que ayuda es otra: ¿qué modelo resuelve esta tarea, en este plazo, con este costo y con cuánto vas a necesitar que verifiques? Por eso el módulo compara modelos con una tarea real, y no con opiniones.
Lúcia, profesora de ciencias, dejó de buscar "la mejor IA". Ahora pregunta qué herramienta corrige la lista de ejercicios del 8º año en el tiempo que ella tiene.
"¿Cuál es la mejor IA?"
Cada persona responde una cosa. Ninguna respuesta sirve para tu tarea.
"¿Qué modelo resume esta acta en diez líneas, hoy, y me deja comprobar a los tres responsables?"
Se puede probar y comparar.
Un modelo produce respuestas. Un sistema organiza cómo esas respuestas se convierten en trabajo. OSWork combina siete piezas: modelo, interfaz, archivos, instrucciones, herramientas, memoria y automatizaciones.
El nombre OSWork es una metáfora de organización. No vas a cambiar el sistema de tu computadora.
Denise dibujó las siete cajas para la tarea "acta de la reunión de padres". Había modelo e interfaz. Faltaban los archivos: el orden del día estaba en el correo de otra persona.
Piensa en un taller pequeño. La habilidad del profesional importa, pero también deciden el resultado las herramientas, los materiales y los criterios de calidad.
Ponte a prueba
En la computadora de la escuela, el plan de la reunión salió bien. En el celular, con el mismo chat, la IA inventó dos elementos. Tú pegaste solo la mitad del orden del día. ¿Qué pieza falló?
Separar las piezas evita el reflejo de escribir un pedido cada vez más grande. Primero preguntas dónde nació la falla. Después corriges solo allí.
Y una pieza nunca se sale del sistema: tú. El modelo razona, las herramientas ejecutan, y quien verifica eres tú.
La IA de Lucía dijo que había guardado las notas, pero el archivo no apareció. Faltaba una herramienta con permiso para guardar. Escribir el pedido de nuevo no resolvería.
Si te trabaste aquí, es normalAl principio, siete piezas parecen muchas. En esta lección solo necesitas juzgar tres: modelo, interfaz y archivos. En las otras cuatro, un "?" es la respuesta correcta por ahora.
Practica ahora 0/3
Listo cuando, al circular entre modelo, interfaz y archivos, identifiques la pieza que falta en una tarea real de esta semana. Casi 8 minutos, en el papel o en las Notas del celular.
Es solo un dibujo: no se envía nada a nadie. Si todas las piezas parecen estar presentes, elige una tarea que te dio retrabajo recientemente.
Acabas de ver tu uso de IA como un sistema y señala la pieza que falta.
Cola de la lección
Cuando este curso habla de IA, habla de modelos de lenguaje, las LLM. Un modelo es un mecanismo entrenado para producir texto a partir de lo que usted entrega. Existen varios, con nombres, tamaños y costos diferentes, y la primera pregunta suele ser cuál es el mejor. Esa pregunta no tiene una respuesta útil: no existe el mejor modelo, existe el modelo adecuado para la tarea, el plazo, el costo y el nivel de verificación que ese trabajo exige. Por eso el módulo compara modelos con una tarea real y no con opiniones. Un modelo produce respuestas; un sistema organiza cómo esas respuestas se convierten en trabajo. OSWork combina modelo, interfaz, archivos, instrucciones, herramientas, memoria y automatizaciones. Piense en un pequeño taller: la habilidad del profesional importa, pero las herramientas, los materiales y los criterios de calidad también determinan el resultado. No estamos instalando un nuevo sistema operativo de computadora: usamos esa expresión como metáfora de organización.
Sin esa distinción, todo error se convierte en intento de escribir un prompt mayor. A veces solo falta el archivo de entrada, un permiso o la forma de verificar la salida. Separar las piezas permite corregir el punto correcto.
El modelo razona; la interfaz recibe el objetivo; los archivos aportan evidencia; las herramientas ejecutan; usted verifica.
Una coordinadora pide un plan de reunión. Sin agenda, la IA imagina prioridades. Con agenda y acta anterior, puede preparar una propuesta verificable.
Dibuja siete cajas con las piezas del sistema. Marca cuáles ya tienes y cuál falta para concluir una tarea.
Aceptar una conclusión sin comprobar la entrada que la sustenta.
Lección 1 · OSWork v6.2 · INEMA.CLUB PRO
Módulo 1 · Lección 2 de 6

Puedes decir, para cada tarea que se repite, qué tipo de modelo te pide: texto, imagen, video o clasificación — antes de elegir un nombre.
Adoptar un modelo como "el mejor" cierra la puerta a todo lo que no hace. Un modelo excelente de texto no genera un video. Un clasificador no escribe tu informe. Esta lección te enseña a separarlo por función primero.
En 1 minuto
Los modelos de lenguaje, las LLMs, escriben, resumen, explican y programan. Los modelos de imagen y de video generan o editan material visual.
También existen los modelos de clasificación. No conversan: reciben alternativas y devuelven una elección, un sí o no, o una calificación.
Lúcia listó lo que hace con IA en un mes. Resumir el acta del consejo de clase pide texto. La portada de la feria de ciencias pide imagen. Separar doscientos comentarios del curso pide clasificación.
ChatGPT, Gemini y Copilot son chats: detrás de cada uno hay modelos de lenguaje. Dentro de cada tipo hay familias con nombres propios. En texto, la familia GPT tiene Sol, Terra y Luna, además del GPT-6 Astra. La familia Claude tiene Opus y Fable.
No necesitas memorizar esta lista: estos nombres vienen de una consulta del 20/09/2026. Los nombres, versiones y disponibilidad cambian. Por eso la elección ocurre cuando aparece la tarea, y puede ser otra la semana siguiente.
Denise oyó de una colega que "ese modelo es el mejor" y quiso usarlo para todo. Al pedir el arte del convite de la fiesta junina, descubrió que solo escribe texto.
"Voy a usar el modelo que todo el mundo elogia, para todo."
El arte del convite no sale: el modelo es de texto.
Convite en texto: un modelo de lenguaje. Arte del convite: un modelo de imagen.
Cada tarea va al tipo que sabe hacerla.
Un clasificador, como el Jev, recibe un texto y una lista cerrada de alternativas. Devuelve una elección, y no un párrafo.
Para clasificar muchos ítems entre pocas categorías, esto puede ser más simple de revisar que una conversación. Es una hipótesis para probar, no una garantía. Puedes experimentar la idea hoy mismo en el chat: pega los ítems y pide "responde solo con una de estas categorías".
Lucía pegó en el chat un comentario de alumno y las tres categorías, pidiendo solo la categoría. Volvió una sola palabra. Ella revisó diez respuestas a mano antes de confiar en las otras.
TúComentario: "No entendí la parte de la fotosíntesis que cayó en el examen." Categorías: duda · elogio · queja
IAduda
Una elección entre las alternativas dadas. Fácil de comprobar en lote.
Ponte a prueba
Denise recibió 300 respuestas abiertas de padres sobre el horario de entrada. Quiere saber cuántas piden un cambio. ¿Qué tipo de modelo prueba primero?
Todavía están las centrales, que dan acceso a varios proveedores en un único punto. El OpenRouter reúne modelos de lenguaje. El Kie reúne modelos de imagen y video.
La disponibilidad varía según la cuenta, el plan y la liberación. Un modelo que le aparece a una colega puede que no te aparezca a ti.
Para el bocado de diez segundos del acto de graduación, Denise no tuvo que firmar un servicio de video por modelo. En un centro de imagen y video, comparó dos modelos en el mismo lugar, con una sola cuenta.
OpenRouter
Varios modelos de lenguaje en un solo punto de acceso.
Kie
Varios modelos de imagen y de video en un solo punto de acceso.
Si te trabaste aquí, es normalLa lista de nombres cansa y envejece rápido. Guarda solo las cuatro funciones. Los nombres los consultas en "Dónde consultar los nombres actuales", en la práctica de esta lección, cuando aparezca la tarea.
Practica ahora 0/3
Listo cuando cada tarea tenga un tipo de modelo y solo después un nombre. Aproximadamente 8 minutos, en papel o en las Notas del celular.
Nadie ve esa lista excepto tú. ¿Te quedó duda entre dos tipos? Escribe los dos: el laboratorio del módulo, en el material complementario de la lección 6, lo compara en la práctica.
TAREA 1: <ej.: resumir el acta del consejo> Tipo: <texto, imagen, video o clasificación> Nombre para probar: <rellena al final> TAREA 2: <…> Tipo: <…> Nombre para probar: <…> TAREA 3: <…> Tipo: <…> Nombre para probar: <…>
Las páginas oficiales listan lo que está disponible hoy: modelos de ChatGPT, modelos Claude, catálogo de OpenRouter y Kie. Consulta del curso: 20/09/2026.
Acabas de elegir por la función antes del nombre, para las tareas que más se repiten.
Cola de la lección
Antes de comparar nombres, separe por función. Los modelos de lenguaje, las LLM, escriben, resumen, explican y programan: ahí entran familias como GPT, con Sol, Terra y Luna, el GPT-6 Astra, y la familia Claude, con Opus y Fable. Los modelos de imagen y de video generan o editan material visual. Y existen modelos de clasificación, como Jev, que no conversan: reciben alternativas y devuelven una elección, un sí o no, o una nota. También están las centrales, que dan acceso a varios proveedores desde un único punto: OpenRouter para modelos de lenguaje y Kie para imagen y video. Nombres, versiones y disponibilidad cambian; esta consulta es del 20/09/2026.
Adoptar un modelo como el mejor cierra el puerto para todo lo que no hace. Un LLM excelente no genera un video, y un clasificador no escribe tu reporte. Entender para qué sirve cada tipo va antes de elegir, y la elección ocurre cuando aparece la tarea, pudiendo ser otra la semana siguiente. La disponibilidad también varía según el proveedor, el cliente, la autenticación y la liberación.
Texto; imagen; video; clasificación; centrales de acceso; disponibilidad.
Resumir un acta pide un modelo de lenguaje. Clasificar doscientos comentarios entre tres categorías puede encajar mejor en un clasificador como Jev. Producir una cortinilla de diez segundos exige un modelo de video, normalmente accedido por una central. Son hipótesis para probar, no garantías.
Enumere las tres tareas de IA que más repite. Junto a cada una escriba el tipo de modelo que pide y solo después el nombre que pretende probar; consulte las fuentes al final del módulo.
Lección 2 · OSWork v6.2 · INEMA.CLUB PRO
Módulo 1 · Lección 3 de 6

Puedes repetir un pedido cambiando solo el esfuerzo de razonamiento y decir, con evidencia, si el resultado mejoró.
Mucha gente conecta el esfuerzo máximo en toda tarea, por garantía. Eso puede gastar más tiempo y más consumo sin mejorar nada. Y ningún esfuerzo devuelve el documento que faltó en el pedido.
En 1 minuto
El modelo es el mecanismo elegido. El esfuerzo de razonamiento es una configuración de ese mecanismo: cuánto analiza antes de responder.
Los niveles más altos pueden gastar más tiempo y más tokens. Los nombres del selector cambian entre el Chat, el Work y el Codex. No existe una lista única de niveles que aplique a todos los productos.
Denise pensaba que cambiar el nivel era cambiar de IA. Descubrió que, en el mismo modelo, puedes pedir una respuesta rápida o un análisis más largo.
Subir el esfuerzo no proporciona un documento que quedó fuera. Si la respuesta depende de un dato, el dato tiene que estar en el pedido.
Primero completa las entradas. Después evalúa si el problema pide más análisis.
Lúcia quería saber por qué la hoja de cálculo de notas de secretaría no coincidía con la suya. Con el esfuerzo máximo, sin las hojas, recibió hipótesis generales. En el patrón, con las dos hojas pegadas, recibió la línea exacta de la diferencia.
Pedido: "¿Por qué las dos hojas de notas no coinciden?"
Resultado: una lista de causas posibles, sin señalar ninguna.
Pedido: lo mismo, con las dos hojas pegadas.
Resultado: "[aluno] tiene una nota diferente en la [avaliação] entre las dos versiones."
Balance: la entrada correcta resolvió lo que el control, en el máximo, no resolvió.
Para la mayoría de las tareas del día a día, el esfuerzo estándar resuelve. Reserva más análisis para lo que involucra varias etapas o muchos datos.
Denise necesitaba reescribir una invitación de cinco líneas para la reunión de padres. En el estándar, la respuesta llegó en segundos y servía.
TúReescribe esta invitación en un tono cordial, en hasta cinco líneas. Mantén la fecha y la hora exactamente como están. [convite colado]
IAQueridas familias, los invitamos a [o evento do convite] el día [data do convite], a las [horário do convite]…
Tarea corta y bien definida: con el estándar basta.
Ponte a prueba
Primera ronda: esfuerzo estándar, una planilla. Segunda ronda: esfuerzo máximo, dos planillas. La segunda salió mejor. ¿Qué se puede concluir sobre el esfuerzo?
Para saber si el esfuerzo ayudó, repite el mismo pedido, con el mismo material, en el mismo modelo. Cambia solo el esfuerzo.
Después registra: ¿hubo una mejora que puedas mostrar? Un hecho más, un error menos, una cuenta correcta. "Quedó mejor" sin evidencia no cuenta.
Lúcia pidió la misma corrección comentada dos veces. En el nivel más alto, apareció un error de unidad que el estándar había dejado pasar. Anotó cuál fue.
Si te trabaste aquí, es normalTu chat puede no mostrar un control de esfuerzo: depende del producto y del plan. En ese caso, anota "sin control de esfuerzo" en el registro y haz otra comparación de un solo control: cambia solo el modelo. Es una prueba diferente, pero el método es el mismo. ¿No tienes ninguno de los dos controles? Compara dos chats que ya uses, con el mismo pedido y el mismo material.
Practica ahora 0/3
Listo cuando el registro diga si hubo una mejora demostrable, con la evidencia. Cerca de 10 minutos, en el chat que ya usas. Busca el control de esfuerzo cerca del cuadro de mensaje o en el selector de modelo; a veces aparece como una opción de razonamiento o de "pensar más".
Usa un material tuyo que no sea confidencial, o inventa uno corto. Si las dos respuestas salen iguales, también es un resultado: el estándar basta para esa tarea.
PEDIDO (igual en las dos rondas) <ej.: señala los errores de esta respuesta del alumno y explica cada uno en una línea> MATERIAL (igual en las dos rondadas) <pega aquí el texto, la tabla o la respuesta> REGISTRO Comprueba que cambié: <esfuerzo · modelo · chat> Ronda 1 · <ej.: esfuerzo estándar> · lo que llegó: <…> Ronda 2 · <ej.: esfuerzo arriba> · lo que llegó: <…> ¿Mejora demostrable? <sí o no> · evidencia: <el hecho de más o el error de menos>
Acabas de probar un control de uno en uno y decidiste con evidencia.
Cola de la lección
El modelo es el mecanismo elegido. El esfuerzo de razonamiento es una configuración de ese mecanismo. Niveles más altos pueden consumir más tiempo y tokens, unidades de procesamiento de texto. Los nombres del selector cambian entre Chat, Work y Codex; no existe una lista única de Instant, Medium, High y Pro que represente todos los productos.
Pedir lo máximo en toda tarea puede aumentar el consumo sin mejorar el resultado. Incrementar el esfuerzo tampoco proporciona un documento que faltaba. Primero complete las entradas, luego evalúe si el problema requiere más análisis.
Modelo y esfuerzo son ejes diferentes; comience por el predeterminado; compare en condiciones iguales.
Para reescribir una invitación de cinco líneas, la opción predeterminada puede bastar. Para explicar por qué dos hojas de cálculo difieren, proporcionar las dos hojas suele importar más que mover un control.
Lección 3 · OSWork v6.2 · INEMA.CLUB PRO
Módulo 1 · Lección 4 de 6

Puedes escribir tres criterios antes del pedido y usar esa regla para decidir, sin discusión, cuál de dos respuestas sirve.
Sin criterio, eliges la respuesta más bonita. Un resumen puede sonar convincente y cambiar un nombre o inventar un plazo. Esta lección muestra cómo decidir por lo que contiene la respuesta, y no por el tono.
En 1 minuto
Una regla de calidad dice, antes del pedido, qué hechos deben aparecer, qué errores son inaceptables y cómo se usará el resultado.
Escrita antes, no se deja llevar por la respuesta. Escrita después, suele aprobar lo que llegó.
Denise iba a pedir el resumen de la reunión de planificación de la feria de ciencias. Antes de abrir el chat, escribió tres líneas en un papel.
"Quiero un buen resumen de la reunión."
Cualquier texto bien escrito sirve.
1. Los tres responsables, sin un plazo que no está en el acta.
2. Una sección de pendientes.
3. Cada frase se puede encontrar en el acta.
Balance: tres preguntas de sí o no, respondidas en menos de un minuto.
Para empezar, usa tres criterios. Fidelidad a los datos: ningún dato del material cambia o desaparece. Formato combinado: el tamaño y las secciones que pediste. Conclusiones verificables: no se añade nada que no se pueda encontrar en el material.
Los tres criterios son el molde. En cada tarea, se vuelven ítems concretos. En el acta de Denise, la fidelidad se volvió "los tres responsables, sin plazo inventado"; el formato se volvió "una sección de pendientes"; lo verificable se volvió "cada frase se puede encontrar en el acta".
Lúcia usó el mismo molde para el resumen de un capítulo del libro de ciencias. Cambiaron los ítems: conceptos del capítulo, una página, cada afirmación con el número de la página.
La prueba necesita reflejar el trabajo que vas a entregar, y no una demostración hecha para impresionar. Una frase elegante no compensa perder a un responsable.
Denise recibió dos versiones del resumen. La primera era fluida y agradable de leer. La segunda era seca. Pasó la regla por las dos.
IALa reunión fue productiva y llena de energía. Lúcia va a organizar los grupos con el entusiasmo de siempre, y Marcos reserva el patio hasta el viernes. ¡La feria promete!
Faltó Renata y "hasta el viernes" no está en el acta. No hay pendientes. "Lleno de energía" no se puede encontrar en el acta. Reprobada en los tres ítems.
IADecisiones: Lúcia organiza los grupos. Marcos reserva el patio. Renata compra el material. Pendientes: confirmar la fecha con la dirección.
Tres responsables, ningún plazo inventado, pendiente registrada. Pasa en los tres.
Ponte a prueba
La respuesta trae los tres responsables, tiene la sección de pendientes y termina con "el equipo salió motivado". Eso no está en el acta. ¿Qué criterio reprueba?
Convierte la regla en una tabla de cuatro columnas: criterio, esperado, observado y ¿pasó? Así la decisión queda escrita y se puede repetir la prueba después.
Guarda también una respuesta mala. Te recuerda lo que estás intentando evitar.
Lúcia pegó la tabla al final del documento de correcciones. En la semana siguiente, usó la misma regla para comparar un modelo nuevo, sin empezar de cero.
Si te trabaste aquí, es normalEscribir criterio parece burocracia la primera vez. Empieza con uno: "ningún dato que no está en el material". Los otros dos aparecen solos después de la primera respuesta incorrecta.
Practica ahora 0/3
Listo cuando completes la tabla para las dos respuestas y elijas una con base en ella. Cerca de 10 minutos. Anótalo en el papel o en el bloc de notas.
Es un caso ficticio, hecho para entrenar: no hay datos de nadie. ¿Diste vuelta al gabarito? Vuelve a leer el acta y revisa línea por línea.
El material (ficticio): Excursión del 7º A al museo de ciencias. Salida de la escuela a las 7h30, regreso a las 12h. La autorización firmada por los responsables debe entregarse hasta el jueves. Cada alumno lleva su propio refrigerio.
El pedido hecho a la IA: "Escribe un aviso corto para las familias con la información de la excursión."
Respuesta 1: "¡Hola, familias! Nuestro grupo va a vivir un día increíble en el museo de ciencias. Salida a las 7h30 y regreso a las 13h. ¡No se olviden del refrigerio!"
Respuesta 2: "Excursión del 7º A al museo de ciencias. Salida a las 7h30, regreso a las 12h. Entreguen la autorización firmada hasta el jueves. Cada alumno lleva su propio refrigerio."
Acabas de decidir entre dos respuestas por una regla escrita, y no por el tono.
Cola de la lección
Una regla transforma opinión en observación. Defina antes de la solicitud qué hechos deben aparecer, qué errores son inaceptables y cómo se usará la salida. Use tres criterios pequeños: fidelidad a los datos, formato combinado y posibilidad de verificar las conclusiones.
Sin criterio, usted elige la respuesta más bonita. Un informe puede sonar convincente y alterar valores. La prueba debe reflejar el trabajo que necesita entregar, no una demostración hecha para impresionar.
Aceptación; evidencia; muestra representativa; comparación controlada.
En un acta ficticia con tres responsables, la prueba exige los tres nombres, sin plazo inventado y una sección de pendientes. Una frase elegante no compensa perder un responsable.
Use la tabla: criterio | esperado | observado | ¿pasó? Guarde una respuesta mala también para recordar lo que se está intentando evitar.
Mezclar la copia de entrenamiento con archivos privados o trabajo en producción.
Lección 4 · OSWork v6.2 · INEMA.CLUB PRO
Módulo 1 · Lección 5 de 6

Puedes identificar el método de acceso de cada herramienta de IA y registrarlo en la ficha del proyecto, sin exponer ninguna credencial.
Un test puede estar consumiendo una cuenta diferente a la que crees. Suscribir un chat no te da saldo libre para cualquier programa. Si hoy solo usas el chat con tu cuenta, en tu ficha habrá una línea. Las otras entran cuando el curso llegue a esos programas, en el módulo 3.
En 1 minuto
Hacer login con la cuenta de ChatGPT usa los derechos y los límites de esa cuenta. Vienen del plan y del espacio de trabajo. Lo que puedes usar y cuánto, viene del plan.
Estos límites y reglas cambian. La fuente de verdad es la configuración actual de tu cuenta, y no lo que alguien contó.
Lúcia usa el chat con la cuenta de la escuela. Cuando alcanzó el límite de uso del día, descubrió que el límite era del plan de la escuela y no el suyo.
Los programas usan la IA a través de una API. Para eso, usan una clave de API, cobrada por consumo en la plataforma.
Suscribir el chat no significa recibir saldo libre para cualquier programa que llame a la API. Son dos cuentas, con dos cobros.
Denise ejecutó un programa de reportes con una clave de API de la escuela. Los tokens gastados aparecieron en la plataforma, y no en la suscripción del chat.
Quién lo usa: tú, en la pantalla del chat o en un agente conectado a la cuenta.
Cobro: el plan de la cuenta, con sus límites.
Quién lo usa: un programa.
Cobro: por consumo, en la plataforma de la API.
Centrales como el OpenRouter y el Kie tienen crédito propio, cobrado por consumo. Está separado de cualquier suscripción.
Entonces existen al menos tres lugares de los que puede salir el dinero: el plan del chat, la plataforma de la API y el crédito de la central.
Lúcia generó los carteles de la semana de la lectura en una central, con un crédito pequeño que ella misma compró para probar. El crédito se acabó a mitad del lote. La suscripción del chat seguía activa, pero no cubría eso.
Ponte a prueba
Lúcia se suscribe a un plan del chat. Ella genera carteles en una central, y el crédito de la central se acabó. ¿Qué lo resuelve?
Antes de dejar algo funcionando por mucho tiempo, revisa qué método está activo: en la configuración de la herramienta, mira el plan de la cuenta o la clave en uso. Más adelante, en el Codex, un comando en el terminal muestra eso.
En la ficha del proyecto, anota el método: cuenta, clave o central. La credencial en sí nunca va a la ficha, para un pedido o para un print.
Antes de pedir el resumen de las cuarenta actas del año, Denise revisó en la configuración y escribió en la ficha: "chat de la escuela · cuenta de la escuela · límite del plan". Sin ninguna contraseña.
$ codex login status
Logged in using ChatGPT
La primera línea es lo que tú escribes. La segunda, en inglés, dice "conectado usando el ChatGPT": el método es la cuenta.
Si te trabaste aquí, es normalCodex solo llega al módulo 3. Por ahora, revisa el método en la pantalla de configuraciones de la herramienta que usas y anota lo que muestra.
Practica ahora 0/3
Listo cuando la ficha tenga una línea por cada herramienta de IA que usas, con el método y dónde lo verificaste. Cerca de 8 minutos, en la computadora o en el celular.
¿Solo usas el chat con tu cuenta? Entonces la ficha tiene una línea, y está bien así. Solo anotas el tipo de acceso, nunca contraseña ni clave. Si encuentras una clave pegada en algún documento, bórrala de ahí y avisa a quien administra esa cuenta.
FICHA DEL PROYECTO · ACCESO Herramienta: <ex.: chat de la escuela> Método: <cuenta · clave de API · central> Dónde lo verifiqué: <ex.: Configuraciones › Plan> Límite de gasto: <ex.: el límite del plan> Credencial: NO ANOTAR AQUÍ
Acabas de mapear de dónde sale el costo de cada herramienta, sin exponer ninguna credencial.
Cola de la lección
Iniciar sesión con ChatGPT usa los derechos y límites asociados a la cuenta y al espacio de trabajo. Una clave de API usa cobro por consumo en la plataforma. Suscribirse a ChatGPT no significa recibir saldo libre para cualquier programa que llame a la API. Centrales como OpenRouter y Kie tienen crédito propio, cobrado por consumo y separado de cualquier suscripción. Verifique el método activo antes de una ejecución larga.
Esta precaución evita descubrir después que un experimento está consumiendo una cuenta diferente. Los límites de uso, el acceso a modelos y las reglas de datos pueden cambiar; la fuente de verdad es la configuración actual de su cuenta.
Suscripción; autenticación; API; consumo; límite de gasto.
Un estudiante usa Codex conectado al ChatGPT y luego ejecuta un programa con OPENAI_API_KEY. Son rutas distintas, incluso si usan un modelo con un nombre similar.
En Codex, use codex login status para comprobar el método. En la ficha del proyecto, registre el método, nunca la credencial.
Lección 5 · OSWork v6.2 · INEMA.CLUB PRO
Módulo 1 · Lección 6 de 6

Puedes escribir una autorización en cinco partes — objetivo, archivos, acciones, tiempo y parada — y pedir un cierre que diga qué se hizo y cómo se verificó.
Un agente ejecuta varias etapas y puede equivocarse en varias de ellas. Sin un límite escrito, puede gastar tiempo, crédito o tocar el archivo equivocado. Un límite simple protege todo eso sin impedir el trabajo útil.
En 1 minuto
En un chat, tú envías un mensaje y recibes una respuesta. Un agente recibe un objetivo y sigue solo: lee archivos, crea, compara, corrige.
Eso te ahorra trabajo. También multiplica los puntos en los que puede equivocarse sin que tú lo veas.
Lúcia le pidió a un agente que organizara las notas del bimestre. Leyó tres planillas, creó una nueva y renombró las antiguas. La última etapa ella no la había pedido.
Un mensaje, una respuesta.
Tú ves cada paso antes del siguiente.
Un objetivo, varias etapas: leer, crear, comparar, corregir.
Tú ves el resultado al final.
Combina cinco cosas antes de empezar: el objetivo, los archivos permitidos, las acciones autorizadas, el límite de tiempo y la condición de parada.
En un chat, el tiempo se vuelve “responde en un solo mensaje”; en un agente, es un tope de ejecución. Permiso técnico e instrucción escrita se complementan: la herramienta limita lo que es posible, y la autorización dice lo que se desea.
Denise escribió la autorización del agente que prepara el informe mensual de asistencia. Le tomó dos minutos y cabe en un post-it.
Enviar un mensaje, publicar o borrar son acciones externas. Cada una exige una instrucción explícita. El hecho de que exista el botón de envío no autoriza a usarlo.
Lúcia autorizó al agente a crear el borrador del comunicado de la gincana y compararlo con el del año pasado. Enviarlo a las familias quedó fuera, a propósito.
TúCrea el borrador del comunicado de la gincana usando solo el archivo de reglas de la gincana. Compáralo con el comunicado del año pasado. Para antes de enviárselo a cualquier persona.
IABorrador del comunicado creado. Comparación: tres fragmentos repetidos del año pasado, marcados en el borrador. No envié: el envío no estaba autorizado.
Se detuvo donde la autorización indicaba detenerse y dijo eso.
Ponte a prueba
La autorización decía solo "organize a pasta das provas". El agente podía borrar archivos y borró tres que parecían copias. ¿Qué parte de la autorización faltó?
Pide siempre un cierre en tres partes: qué se hizo, cómo se verificó y qué quedó pendiente. Así el resultado se vuelve algo que revisas, y no algo en lo que necesitas creer.
El agente de Denise terminó el borrador del informe de asistencia y listó lo que comprobó. Ella abrió la hoja de cálculo, comprobó uno de los números y aprobó el resto.
IAHecho: borrador del informe con la asistencia por curso. Verificado: el total por curso coincide con la suma de las filas de la hoja de cálculo. Pendiente: el curso 8º C tiene dos filas sin fecha. No lo completé.
Tres partes, y la pendencia no se completó con una suposición.
Si te trabaste aquí, es normalQuizás todavía no uses ningún agente. La práctica de esta lección es en el chat, que no permite enviar nada: entrena a escribir la autorización, no prueba que la IA obedezca. La prueba con un agente real viene en el módulo 3, con la autorización que escribas hoy.
Practica ahora 0/3
Listo cuando el cierre incluya lo que se hizo, cómo se verificaron los tres puntos y qué quedó pendiente. Cerca de 10 minutos, en el chat que ya usas.
Usa datos ficticios o un texto tuyo sin información personal. No se envía nada a nadie: el punto de parada garantiza eso. Si la IA se pasa del límite, anota lo que hizo y refuerza esa línea.
1. OBJETIVO <ex.: borrador de un aviso sobre la gincana> 2. ARCHIVOS: USA SOLO ESTE MATERIAL <pega aquí el texto o los datos ficticios> 3. ACCIONES AUTORIZADAS <ex.: escribir el borrador en hasta ocho líneas; no inventar fechas ni nombres> 4. TIEMPO Responde en un solo mensaje. 5. PARADA Detente antes de publicar o enviar. CIERRE (los tres puntos son tu vara de la lección 4) Di qué hiciste, cómo verificaste estos tres puntos y qué quedó pendiente: - <ex.: la fecha es la misma que el material> - <ex.: ningún nombre que no esté en el material> - <ex.: hasta ocho líneas>
1. Objetivo: borrador del aviso de cambio de horario de la biblioteca.
2. Archivos: [horario anterior y nuevo pegados]
3. Acciones: escribir el aviso en hasta seis líneas; no inventar motivo.
4. Tiempo: responde en un solo mensaje.
5. Parada: detente antes de enviar.
Cierre: di qué hiciste, cómo verificaste los dos horarios, la ausencia de nombres y el límite de seis líneas, y qué quedó pendiente.
Acabas de delegar una tarea con alcance, verificación y punto de parada.
Cola de la lección
La autonomía es una autorización con alcance, no una invitación a hacer cualquier cosa. Combine objetivo, archivos permitidos, acciones autorizadas, límite de tiempo y condición de parada. La salida debe incluir lo que se hizo y cómo se verificó.
Un agente puede ejecutar más pasos que un chat, inclusive errar en varios de ellos. Un límite simple protege tiempo, presupuesto y archivos sin impedir el trabajo útil. El permiso técnico y la instrucción escrita se complementan.
Alcance; aprobación de acciones externas; techo de ejecución; resultado revisable.
Autorice crear un borrador y comparar datos ficticios. Enviar la propuesta a un cliente es otra acción y requiere instrucción explícita. El botón de envío existir no significa autorización para usarlo.
Escriba: use estos archivos; genere este resultado; verifique estos tres puntos; deténgase antes de publicar o enviar.
Usa archivos ficticios y una carpeta de entrenamiento. Las prácticas con instalación, Telegram o VPS pueden requerir tiempo adicional para registro y configuración.
Lea el bloque antes de usar. Campos como Su Nombre y usuario@ip-de-vps son ejemplos para adaptar; los comandos administrativos pertenecen solo a su entorno de entrenamiento.
Tarea: resumir una reunión ficticia
Entrada: pauta con 5 ítems
Criterios: conservar 5 ítems; no inventar plazos
Modelo / esfuerzo: anota lo que está disponible
Resultado observado: registra los aciertos y errores
Elección: justifica por el resultado, no por el nombreComparar modelos con una tarea real y un criterio de calidad. Registre el archivo producido, la prueba ejecutada y el resultado observado.
Use esta rúbrica después del laboratorio. Cada línea pide una evidencia; marcar lectura no significa que la práctica se haya ejecutado.
Una respuesta llegó más rápido, pero inventó dos plazos. ¿Qué resultado debe orientar la elección?
La calidad verificable y el retrabajo; la velocidad aislada no basta.
Si su respuesta fue diferente, vuelva al tema correspondiente y escriba la diferencia en una frase. La verificación no bloquea su estudio.
Herramientas verificadas el 20/09/2026; los nombres de pantallas y la disponibilidad pueden cambiar.
Términos de esta sección: OpenRouter, Kie.
Lección 6 · OSWork v6.2 · INEMA.CLUB PRO
Módulo 2 · Lección 1 de 6

Puedes hacer una pregunta corta con público y finalidad y recibir la respuesta con las suposiciones de la IA a la vista.
No todas las tareas piden una herramienta grande. Montar una rutina complicada para algo que solo necesitaba una respuesta gasta tiempo y además te deja más cosas por revisar. Saber cuándo basta con el chat es el primer filtro de este módulo.
En 1 minuto
El chat es una interfaz de conversación. Piensa en la pregunta que le haces a una colega en el pasillo, entre dos lecciones. Es corta, la respuesta llega al instante y tú decides qué hacer con ella.
Si la respuesta no te sirvió, no vuelves a empezar. Envía un ajuste en la misma conversación.
Lúcia va a cubrir la lección de matemáticas de una colega. Pidió tres formas de explicar fracciones con los ingredientes de una receta. Eligió una, ajustó otra y la llevó al grupo.
TúDame tres formas de explicar fracciones usando los ingredientes de una receta de pastel.
IA1. Media taza de azúcar: la taza dividida en dos partes iguales. 2. Un cuarto de tableta de mantequilla: cuatro trozos, se usa uno. 3. Un tercio de taza de leche: la taza en tres partes, se usa una.
TúCambia el tercero: quiero un ejemplo con tres huevos divididos entre dos recetas.
IA3. Tres huevos para dos recetas: cada una lleva un huevo y medio.
El tercer mensaje es el ajuste: la misma conversación, sin empezar de cero.
Una pregunta suelta recibe una respuesta de enciclopedia. Dile quién va a leer y qué vas a hacer con el texto. La respuesta ya sale con el tamaño y el tono correctos.
Denise necesitaba explicar el consejo de clase a los padres del 6º año. La primera pregunta trajo un párrafo técnico. Con público y finalidad, llegaron dos frases listas para el mensaje.
Tú¿Qué es consejo de clase?
IAEl consejo de clase es una instancia colegiada de evaluación prevista en la organización escolar, que reúne docentes y equipo pedagógico para analizar el proceso de enseñanza y aprendizaje…
Correcto, pero demasiado largo y técnico para un mensaje a los padres.
TúExplícame qué es consejo de clase en dos frases, para padres del 6º año. Va en un mensaje de la agenda.
IAEl consejo de clase es una reunión de los profesores con la coordinación para conversar sobre cómo va cada grupo y cada alumno. De ahí salen acuerdos para ayudar a quien lo necesita.
Mismo tema, ahora en el tamaño y el tono del mensaje.
Toda pregunta corta deja huecos. La IA rellena esos huecos sin avisar: supone la edad del grupo, el tono, el tamaño. Pídele que liste lo que supuso.
Así ves el atisbo antes de usar la respuesta. Corregir una suposición cuesta un mensaje.
Lúcia pidió una pregunta de apertura para la lección sobre mezclas. La lista de suposiciones mostró que la IA pensó en alumnos de secundaria. Ella corrigió con una línea.
TúCrea una pregunta de apertura para una lección sobre mezclas. Al final, lista las suposiciones que hiciste.
IAP: ¿por qué la sal desaparece en el agua, pero la arena no? Suposiciones: alumnos de secundaria; lección de 50 minutos; la pregunta se hará en voz alta.
TúEl grupo es de 8º año. Ajusta la pregunta si lo necesitas.
IAPara 8º año: ¿qué pasa con la sal cuando entra en el agua, y por qué la arena se queda en el fondo?
La suposición incorrecta apareció en la lista, y no escondida en el texto.
La elección es por la intención de la tarea, no por una prohibición técnica. Algunos chats también leen archivos adjuntos. Si la entrega es una respuesta que tú lees y verificas al momento, el chat basta.
Si la entrega es un documento con varias entradas, la conversación queda demasiado corta. Algunos chats tienen un modo para tareas más grandes; en ChatGPT, se llama Work. Ese es el tema de la próxima lección, que también muestra cómo hacerlo sin eso.
Denise casi abrió una tarea larga para escribir un recado de tres líneas. Volvió al chat y lo resolvió en dos minutos.
Explicar un concepto en pocas líneas.
Redactar un recado o un correo corto.
Generar ideas para una lección.
Juntar varias fuentes en una tabla.
Entregar un documento listo para revisar.
Tarea que lleva más tiempo que una conversación.
Ponte a prueba
Solo necesitas una explicación de dos frases para un recado. ¿Necesitas usar el Work?
Si te trabaste aquí, es normalNo sabes si tu chat tiene Work o lee archivos? No necesitas saberlo ahora. Esta lección y la práctica funcionan en cualquier chat, incluso en el plan gratuito, en el celular.
Practica ahora 0/3
Listo cuando la respuesta venga con una lista de suposiciones y tú hayas corregido una de ellas. Cerca de 8 minutos, en el chat que ya usas, en el celular o en la computadora.
Es una pregunta de tu trabajo, sin nombre de alumno ni datos personales. Si la IA no lista las suposiciones, manda solo: "Lista las suposiciones que hiciste".
P: <tu duda en una línea> Público: <quién va a leer o escuchar la respuesta> Finalidad: <qué vas a hacer con eso> Tamaño: <ej.: hasta cinco líneas> Al final, lista las suposiciones que hiciste sobre lo que yo no dije.
Pregunta: ¿cómo explicar la diferencia entre evaporación y ebullición?
Público: alumnos de 8º año.
Finalidad: abrir la lección de mañana.
Tamaño: hasta cuatro líneas.
Al final, lista las suposiciones que hiciste sobre lo que yo no dije.
Acabas de hacer una pregunta que da para la primera vuelta y para corregir la suposición de la IA antes de usar la respuesta.
Cola de la lección
Chat es una interfaz de conversación. Usted presenta una pregunta, recibe una respuesta y puede ajustar la solicitud. Funciona bien para aclarar un concepto o redactar un mensaje. Los recursos adicionales varían: un chat también puede trabajar con archivos y herramientas cuando están disponibles. La distinción didáctica es la intención de la tarea, no una prohibición técnica.
Reconocer una necesidad pequeña evita montar una automatización para algo que solo necesita una respuesta. El mejor entorno es el que permite comprobar la entrega con menos fricción.
Conversación; aclaración; borrador; revisión humana.
Una profesora pide tres maneras de explicar fracciones usando ingredientes de una receta. Ella analiza los ejemplos y elige uno antes de llevarlo a clase.
Escriba una pregunta corta con público y finalidad. Después pida que la respuesta indique sus suposiciones.
Aceptar una conclusión sin comprobar la entrada que la sustenta.
Lección 7 · OSWork v6.2 · INEMA.CLUB PRO
Módulo 2 · Lección 2 de 6

Puedes transformar un pedido vago, como "busca proveedores", en una encomienda corta, de cinco partes: objetivo, entradas, salida, límites y parada.
Un trabajo con varias fuentes necesita una definición de listo. Sin ella, la IA puede seguir investigando cuando solo necesitabas comparar tres opciones. Y termina devolviendo un texto largo que no sabes por dónde revisar.
En 1 minuto
En el Work, no conversas frase por frase. Entregas una tarea, como un análisis o un documento, y recibes el resultado para revisarlo. Puede usar archivos y herramientas aprobadas.
Piensa en la encomienda de un pastel en una pastelería. Tú dices sabor, tamaño y día. No te quedas mirando el horno. El Work no aparece en todo el plan. ¿No lo tienes en tu? Usa la encomienda en el chat común: funciona igual.
Denise precisa contratar o ônibus da excursão ao museu. Tem três orçamentos e quer uma comparação para levar à direção.
Tú preguntas, lees, ajustas.
Sigues cada respuesta.
Tú describes lo que debe existir al final.
Revisas el resultado cuando llega.
Un encargo dice cinco cosas. El objetivo. Las entradas, que son el material que la IA puede usar. La salida, que es el formato del resultado. Los límites. Y la parada, que es cuándo termina el trabajo.
Parece la autorización de la lección 6, en el módulo 1, y es pariente de ella. La autorización dice lo que la IA puede hacer; el encargo dice lo que debe existir al final.
Denise escribió el encargo de los presupuestos del autobús en cinco líneas. Le tomó tres minutos.
Un pedido vago abre la puerta a la investigación sin fin. El encargo cierra esa puerta: tres opciones, los documentos que tú diste, un formato.
Fíjate en el campo sin información. El encargo pidió "no informado", y la IA no completó con una suposición.
TúBusca empresas de autobús para una excursión escolar.
IAEncontré muchas opciones. Primero, un panorama del sector de fletamento escolar, con consejos de contratación y documentos requeridos…
Largo, fuera de los tres presupuestos, y sin decir cuándo termina.
TúCompara solo estos tres presupuestos en una tabla con precio, plazo para confirmar y riesgos. Si falta un dato, se vuelve "no informado". Entrega la tabla y para. Empresa A: R$ 1.800, confirma en 2 días. Empresa B: R$ 1.500, plazo no citado. Empresa C: R$ 2.100, confirma en 1 día; autobús sin cinturón en los asientos de atrás.
IAA · R$ 1.800 · 2 días · no informado B · R$ 1.500 · no informado · no informado C · R$ 2.100 · 1 día · asientos de atrás sin cinturón
Tres líneas, solo con lo que estaba en los presupuestos. "No informado" significa que el presupuesto no dice eso, y no que el riesgo sea cero.
Sin parada, la IA decide sola cuándo llega. A veces se detiene temprano. Muchas veces se va demasiado lejos. Indica el tamaño del resultado y el punto en el que la entrega debe parar.
Lúcia pidió una comparación de kits de microscopio para el laboratorio. Lo limitó a tres kits, a los catálogos que pegó y a una tabla. Recibió en una página lo que antes venía en cinco.
Pedido: "Compara kits de microscopio."
Resultado: cinco páginas, con kits de tiendas que ni siquiera conocía.
Pedido: "Solo los tres kits de los catálogos pegados. Una tabla. Entrega y para."
Resultado: una página, tres líneas, lista para revisar.
Balance: de cinco páginas a una, con todo saliendo del material que ella dio.
Si te trabaste aquí, es normal¿Tu cuenta no tiene Work? El pedido funciona igual que en el chat común. Pega el molde de la práctica, con el material, y pide la entrega en una sola respuesta. Lo que cambia es el pedido, no la herramienta.
Practica ahora 0/3
Listo cuando el resultado venga solo con las opciones que tú diste, en el formato pedido, y con "no informado" donde faltó un dato. Unos 10 minutos: en Work si tu cuenta lo tiene, o en el chat que ya usas.
Usa opciones ficticias o datos públicos, sin nombre de alumno ni valor reservado. ¿Las opciones están en PDF o en WhatsApp? Escribe solo lo esencial de cada una, en una línea. Si la IA trae una opción que tú no diste, responde: "Usa solo las opciones que pegué".
OBJETIVO <ej.: comparar tres opciones de ... para decidir ...> ENTRADAS: USA SOLO ESTE MATERIAL <pega aquí las tres opciones> SALIDA <ej.: tabla con precio, plazo y riesgos> LIMITES No busques otras opciones. El dato ausente se vuelve "no informado". PARADA Entrega la tabla y para.
Objetivo: elegir un kit de microscopio para el laboratorio.
Entradas: Kit 1: R$ 900, 10 unidades. Kit 2: R$ 750, entrega en 15 días. Kit 3: R$ 1.100, 12 unidades, garantía de 1 año.
Salida: tabla con precio, cantidad, plazo y garantía.
Límites: no busques otros kits; el dato ausente se vuelve "no informado".
Parada: entrega la tabla y para.
Acabas de cambiar una búsqueda sin fin por una entrega con inicio, medio y final.
Cola de la lección
Work permite delegar una tarea con resultado revisable, por ejemplo un análisis o un documento. Puede usar archivos y herramientas aprobadas. En lugar de seguir cada frase, usted define lo que debe existir al final y sigue las etapas relevantes. La disponibilidad depende de la cuenta y del entorno.
Los trabajos con varias entradas necesitan una definición de listo. Sin eso, el agente puede seguir investigando cuando tú solo necesitabas una comparación de tres opciones.
Objetivo; fuentes; entrega; límites; condición de parada.
Una gestora proporciona datos ficticios de tres proveedores y solicita una tabla con precio, plazo y riesgos. Determina que los campos ausentes se marquen como no informados.
Transforme “investigue proveedores” en una encomienda de una página, limitada a tres alternativas y a los documentos proporcionados.
Lección 8 · OSWork v6.2 · INEMA.CLUB PRO
Módulo 2 · Lección 3 de 6

Puedes armar una carpeta de práctica con dos textos. Y hacer que la IA diga qué archivos recibió, con la primera y la última línea, antes del resumen.
Muchas fallas de la tarea son fallas de acceso. Tú imaginas que la IA ve una carpeta, pero nunca se compartió. Entonces la respuesta habla de documentos que el modelo no leyó.
En 1 minuto
El Desktop es la aplicación que está en tu computador. Si tu aplicación ofrece esto, puede abrir carpetas y otras aplicaciones, siempre con tu permiso.
En el chat del navegador, adjuntas o pegas cada archivo. En ambos casos, la IA solo lee lo que llegó hasta ella.
Lúcia usa el chat del navegador de la escuela y el Desktop en la laptop de casa. En ambos, verifica lo que la IA recibió antes de pedir el trabajo.
Adjuntas o pegas cada archivo.
La IA lee lo que tú entregaste.
Puede abrir una carpeta que elegiste al dar el permiso.
La IA lee lo que alcanza ese permiso.
Dar acceso es como entregar la llave de un cajón, y no la de toda la escuela. Separa en una subcarpeta solo lo que la tarea necesita. Cuando la aplicación pida acceso, elige solo esa subcarpeta. El nombre de las pantallas cambia entre versiones; lo que no cambia es elegir la carpeta más pequeña posible.
La carpeta de la feria de ciencias tiene tres versiones del presupuesto. Denise quiere probar la IA sin arriesgar el original. Autorizó solo la subcarpeta de ejemplos, con dos copias.
Antes de la comparación, pide los nombres de los archivos que la IA puede leer. Junto, la primera y la última línea de cada uno. Solo el nombre no prueba lectura. La primera y la última línea muestran que llegó el comienzo y el final, y tú lo verificas en el archivo.
Si la lista llega mal, el problema es del acceso, y no del pedido. Corrige el acceso y repite la lista.
TúLista los archivos que puedes leer y copia la primera y la última línea de cada uno. No compares ni resumas todavía.
IAPuedo leer 2 archivos: orcamento-v1-copia primera: "Feira de ciências, orçamento de materiais, versão 1" última: "Total: R$ 640,00" orcamento-v2-copia primera: "Feira de ciências, orçamento de materiais, versão 2" última: "Total: R$ 710,00"
Dos nombres, con la primera y la última línea iguales a las de los archivos. Ahora la comparación puede empezar.
Si no existe Escritorio en tu cuenta, o no llega a la carpeta, entrega los archivos por una ruta que funcione. Adjunta en el chat, con el botón de adjuntar al lado del cuadro del mensaje. O pega el texto con un encabezado con el nombre del archivo.
Lúcia pegó dos textos en el chat del navegador, cada uno con el nombre arriba. Pidió la lista antes del resumen.
Tú=== archivo: roteiro-experimento === Mezclar agua y aceite en un vaso transparente. Observar durante dos minutos. === archivo: lista-materiais === Vaso transparente, agua, aceite de cocina, cuchara. Tiempo total: diez minutos. Lista los archivos que recibiste, con la primera y la última línea de cada uno. No resumas todavía.
IARecibí 2 archivos: roteiro-experimento: "Mezclar agua y aceite en un vaso transparente." … "Observar durante dos minutos." lista-materiais: "Vaso transparente, agua, aceite de cocina, cuchara." … "Tiempo total: diez minutos."
El encabezado le da nombre a cada texto; la primera y la última línea muestran que llegó el comienzo y el final.
Si te trabaste aquí, es normal¿No tienes Escritorio o no sabes si tu chat adjunta archivos? Usa la ruta del encabezado: pega cada texto con "=== archivo: nombre ===" arriba. Funciona en cualquier chat, incluso en el celular.
Practica ahora 0/4
Listo cuando la IA liste los dos nombres y la primera y la última línea correctas de cada uno, antes de que tú pidas el resumen. Aproximadamente 10 minutos. En la computadora, sigue los pasos. En el celular, escribe las dos notas en la app de notas y pégalas en el chat, cada una con el encabezado del step 4.
La carpeta de práctica tiene solo texto inventado, así que no sale nada real de tu computadora. De ahí es de donde adjuntas, y de ahí elegirías en el Escritorio. Si la lista llega con el nombre mal o faltando, no pidas el resumen: vuelve a enviar el archivo y pide la lista de nuevo.
Acabas de separar un problema de acceso de un problema de pedido, antes de que se convirtiera en una respuesta incorrecta.
Cola de la lección
Desktop significa aplicación instalada en la computadora. En entornos compatibles, puede acceder a carpetas y aplicaciones mediante permisos. La presencia de la aplicación no da acceso universal a tus documentos. Si una herramienta no está disponible, ofrece los archivos por un camino compatible.
Muchas fallas de tarea son fallas de acceso: el alumno imagina que el agente ve una carpeta, pero no se compartió. Verifica el contexto antes de la ejecución para evitar conclusiones sobre documentos que el modelo nunca leyó.
Carpeta autorizada; acceso local; herramienta disponible; confirmación de lectura.
Una carpeta contiene tres versiones de presupuesto. La gestora autoriza solo la subcarpeta de ejemplos y pide que el agente liste los archivos que puede leer antes de comparar.
Lección 9 · OSWork v6.2 · INEMA.CLUB PRO
Módulo 2 · Lección 4 de 6

Puedes escribir, para una tarea tuya, dónde se ejecuta, dónde lee las entradas y dónde guarda las salidas.
Una tarea no queda permanente solo porque empezó en una pantalla moderna. Si no sabes dónde se ejecuta, no sabes por qué se detuvo. Ni dónde buscar el resultado.
En 1 minuto
En la ejecución local, el trabajo se ejecuta en tu máquina. Es como un pastel en el horno de casa: si se va la luz, el horno se detiene.
Importan la energía, la red y los permisos de la computadora. Si el notebook se duerme, la tarea puede detenerse a la mitad.
Lúcia le pidió a la aplicación Desktop, de la lección 9, una revisión de los planes de lección que solo existen en el notebook de ella. Cerró la tapa a las 18h y se fue. Al día siguiente, la revisión se había detenido a la mitad.
En la nube, el trabajo corre en computadoras remotas. Es como la panadería: el horno no depende de tu casa. Pero el panadero solo tiene los ingredientes que tú llevaste.
El chat que ya usas es un ejemplo: el modelo trabaja en las computadoras de la empresa. Por eso solo conoce lo que pegaste o adjuntaste.
Denise quiere que el borrador del informe de asistencia quede listo aunque apague el notebook. Para eso, la hoja de cálculo necesita estar en un lugar al que la nube pueda acceder.
Depende de: tu computadora encendida, con red.
Lee: las carpetas de tu máquina que tú permitas.
Depende de: la herramienta y tu plan, no de tu máquina.
Lee: solo los archivos enviados o conectados a ella.
Algunos entornos ejecutan en la nube y siguen aunque tu máquina no esté conectada. Eso depende de la funcionalidad, y no solo del nombre Work o de que la pantalla sea moderna.
En caso de duda, cambia la suposición por tres preguntas. Busca la respuesta en la página de ayuda de la herramienta. O prueba: inicia una tarea corta, cierra el notebook por diez minutos y mira si avanzó. ¿No pudiste saber? Se vuelve una pendencia. En el chat del día a día, espera a que la respuesta aparezca completa antes de cerrar la pestaña. Así no necesitas saber qué pasa con una respuesta a medias.
"Empecé en el Work, entonces corre sola."
"El resultado debe estar en algún lugar."
¿Dónde ejecuta esta tarea?
¿Sigue con el notebook cerrado?
¿Dónde queda lo que guarda?
Ponte a prueba
Denise inició una tarea en Work y cerró el notebook. ¿La tarea sigue?
Anota, para cada tarea, dónde se ejecuta, dónde lees las entradas y dónde guardas las salidas. ¿No sabes una de ellas? Escríbelo como pendencia. Una pendencia escrita es mejor que una suposición olvidada.
El lugar correcto es la ficha del proyecto, creada en la lección 5. ¿No hiciste la lección 5? Usa cualquier bloc de notas.
Denise anotó las tres líneas del informe de asistencia y una pendencia. Con la pendencia, fue a preguntarle al soporte de la escuela.
Si te trabaste aquí, es normalEl lugar y la nube parecen abstractos hasta que la primera tarea se detiene. Si no sabes responder una línea, escribe "pendencia" y sigue. La lección cumple el objetivo igual: sabes qué necesitas descubrir.
Practica ahora 0/3
Listo cuando tengas tres líneas, o dos líneas y una pendencia, para una tarea real. Cerca de 8 minutos, en la computadora o en el celular, en la ficha del proyecto o en un bloc de notas.
Es solo anotación: no se ejecuta ni se envía nada. Si no llega ninguna respuesta, está todo bien. Tres pendencias escritas ya muestran qué preguntar.
Tarea: <ej.: revisar los planes de clase> Ejecuta: <en mi computadora / en la nube / no sé> Lee las entradas de: <qué carpeta o archivo> Guarda las salidas en: <dónde queda el resultado> Pendencia: <lo que todavía no sé>
Acabas de mapear dónde ocurre tu trabajo, algo que casi nadie hace antes del primer fallo.
Cola de la lección
Local es la ejecución en tu máquina. Nube es la ejecución en infraestructura remota. Un trabajo local depende de energía, red y permisos del ordenador. Algunos entornos ofrecen ejecución en la nube que continúa sin que la máquina esté encendida; eso depende de la funcionalidad, no solo del nombre Work.
Una automatización no queda permanente porque se inició en una interfaz moderna. Necesitas saber dónde vive el proceso, dónde están los archivos y de qué conexiones depende.
Ubicación de la ejecución; persistencia; acceso a los archivos; continuidad.
Una revisión de archivo que existe solo en la notebook puede detenerse si el computador se duerme. Un servicio en el VPS sigue, pero solo conoce los archivos transferidos o conectados a él.
En su ficha, escriba dónde la tarea se ejecuta, dónde lee entradas y dónde guarda salidas. Si no lo sabe, trate eso como pendiente.
Mezclar la copia de entrenamiento con archivos privados o trabajo en producción.
Lección 10 · OSWork v6.2 · INEMA.CLUB PRO
Módulo 2 · Lección 5 de 6

Puedes completar las seis partes de un contrato de entrega y cambiar "bueno" por un criterio que otra persona puede verificar.
La IA no necesita adivinar si quieres una explicación, un archivo para editar o un texto listo para publicar. Cuando nombras lo que debe existir al final y cómo verificar, la desviación aparece antes de volverse retrabajo.
En 1 minuto
Piensa en el orden de servicio de una asistencia técnica. Hay campos fijos: el equipo, la falla, lo que no se toca, cómo probar al entregar. Nadie escribe "arregla bien".
El contrato de entrega es la orden de la lección 8 con una sexta parte: la verificación. La autorización de la lección 6, en el módulo 1, cabe dentro de él: objetivo y parada siguen, los archivos se vuelven entradas, las acciones y el tiempo se vuelven límites.
Denise quiere el borrador del acta de la reunión pedagógica a partir de la pauta. Llenó los seis campos en cuatro minutos.
"Haz un acta" deja abierto el formato, el tamaño y qué hacer con lo que falta. El contrato responde a las tres: formato fijo, tamaño definido y dato ausente marcado. La IA deja de adivinar.
TúHaz un buen acta de esta reunión. [pauta pegada]
IAActa de la Reunión Pedagógica, realizada el 12 de marzo, a las 14h, en la sala de profesores. Estuvieron presentes los profesores…
La fecha, la hora y el lugar no estaban en la pauta. La IA completó con una suposición.
Tú[los seis campos del contrato] Pauta: 1. Calendario de la feria de ciencias. Responsable: Lúcia. 2. Refuerzo de matemáticas. Responsable: Marcos. 3. Materiales de la feria.
IABorrador del acta. Fecha: [no informada en la pauta] 1. Calendario de la feria de ciencias. Responsable: Lúcia. 2. Refuerzo de matemáticas. Responsable: Marcos. 3. Materiales de la feria. Responsable: [no informado]. Verificación: los 3 puntos y los 2 responsables de la pauta están en el acta. La fecha y el responsable ausentes quedaron marcados. No envié nada.
Nada inventado, y lo que faltaba aparece marcado.
"Bueno", "claro" y "completo" son deseos. Nadie puede comprobar un deseo. La verificación usa criterios que cualquier persona puede comprobar mirando el resultado, como la regla de calidad de la lección 4.
Lúcia pedía guías de experimento "bien explicadas". Lo cambió por dos criterios. Ahora comprueba cada guía en un minuto.
"Una guía de experimento bien explicada y completa."
Cada paso empieza con un verbo.
Todo material citado en los pasos está en la lista de materiales.
Balance: dos criterios que cualquier compañero comprueba sin preguntarle qué quiso decir.
Una salida fácil de inspeccionar muestra el error en la primera lectura. Por eso el contrato pide formato fijo y una verificación escrita al final.
En el acta de Denise, la verificación decía "2 responsables". Ella contó en la pauta y en el acta: 2 y 2. Le tomó 30 segundos, porque el acta era una lista.
Un texto corrido de una página sobre la reunión.
Para encontrar un error, lo vuelves a leer todo.
Un ítem por punto de la pauta, con el responsable.
Comparas línea por línea con la pauta.
Ponte a prueba
¿Cuál de estas verificaciones otra persona puede verificar mirando el resultado?
Si te trabaste aquí, es normalSeis campos parecen muchos la primera vez. Escribe una frase por campo, aunque sea corta. Si un campo no se aplica, escribe "ninguno". El campo que más marca la diferencia es la verificación.
Practica ahora 0/3
Listo cuando la respuesta termine con la verificación que pediste y hayas confirmado un criterio directo en el material. Cerca de 10 minutos, en el chat que ya usas.
Usa una pauta inventada, sin nombres reales. El enunciado pide que no se envíe nada; en la lección 12 verificas si fue así. Guarda la respuesta: la lección 12 usa esa entrega para la revisión.
OBJETIVO <ej.: pauta revisada de la reunión, lista para que yo la envíe> ENTRADAS: USA SOLO ESTE MATERIAL <pega una pauta inventada con cinco ítems> SALIDA <ej.: lista numerada con los cinco ítems y el responsable de cada uno> LÍMITES No inventes fechas ni nombres. Si falta un dato, se vuelve [no informado]. VERIFICACIÓN Di si los cinco ítems están en la salida y marca lo que faltó. ENUNCIADO Entrega la pauta revisada y no envíes nada.
Objetivo: pauta revisada de la reunión de padres del 8º año.
Entradas: 1. Notas del bimestre, con la profesora de ciencias. 2. Feria de ciencias, con la coordinación. 3. Uso del celular. 4. Paseo al museo. 5. Dudas.
Salida: lista numerada con los cinco ítems y el responsable de cada uno.
Límites: no inventes fechas ni nombres; si falta el responsable, se vuelve [no informado].
Verificación: di si los cinco ítems están en la salida y marca lo que faltó.
Enunciado: entrega la pauta revisada y no envíes nada.
Acabas de escribir un enunciado que dice qué debe existir al final y cómo verificar.
Cola de la lección
Un buen pedido incluye objetivo, contexto, entradas, restricciones, resultado y verificación. Son campos de un encargo, no palabras mágicas. Cuanto más fácil sea inspeccionar la salida, más fácil será detectar una desviación antes de que se convierta en retrabajo.
El agente no necesita adivinar si quieres una explicación, un archivo editable o una publicación. Nombrar el artefacto y la condición de listo acorta la distancia entre intención y ejecución.
Artefacto; formato; fuentes autorizadas; criterio observable.
“Use pauta.txt para crear ata-rascunho.md. Preserve todos los responsables, señale fechas ausentes y no envíe nada.” Esta solicitud determina entradas, salida y un límite concreto.
Use el archivo materiais/contrato-de-tarefa.md. Complete cada campo con una frase y reemplace “bueno” por un criterio que alguien pueda comprobar.
Lección 11 · OSWork v6.2 · INEMA.CLUB PRO
Módulo 2 · Lección 6 de 6

Tú puedes verificar un hecho, un formato y una acción en una entrega de la IA. Y anotar lo que observaste en cada uno.
La palabra "listo" no muestra que el archivo se abra ni que los datos se hayan mantenido. Una revisión pequeña, hecha por ti, suele encontrar más problemas que pedir de nuevo "mejora".
En 1 minuto
Es como revisar la bolsa del mercado contra el recibo antes de salir. No basta con que la bolsa esté llena. Cada artículo del recibo tiene que estar ahí, y nada más.
Lúcia recibió el acta de la reunión del área de ciencias. Comparó cada decisión con el temario. Encontró a un responsable que la IA inventó.
1. Horario del laboratorio. Responsable: Lúcia.
2. Compra de reactivos. Responsable: no definido.
1. Horario del laboratorio. Responsable: Lúcia.
2. Compra de reactivos. Responsable: Paulo.
Saldo: un nombre inventado, encontrado en dos minutos de comparación.
No necesitas releer todo. Elige tres puntos. Un hecho, que coincide con la fuente. Un formato, que es lo que se pidió. Y una acción, que funciona o se hizo como se acordó.
En el reporte de asistencia, Denise revisó el total de faltas de un grupo y si el archivo se abría con las columnas pedidas. Después, probó el enlace de la hoja de cálculo citado en el reporte.
Pídele a la IA la evidencia de lo que verificó. Y pide que separe lo que realmente comprobó de lo que solo sugiere comprobar.
"Revisé todo" no dice qué se revisó. Una lista dice y muestra lo que quedó para que tú lo revises. Incluso el "comprobé" de la IA es una afirmación: comprueba un ítem de la lista como muestra.
Tú¿Estás lista el acta?
IA¡Sí! Revisé todo y está correcta.
No dice qué se comprobó. No tienes cómo saberlo.
TúMuestra lo que comprobaste, lado a lado con el temario, y di qué quedó sin comprobar.
IATemario 1, Horario del laboratorio → acta 1, Horario del laboratorio: igual. Temario 2, Compra de reactivos → acta 2, Compra de reactivos: igual. No comprobé: si cada responsable es el mismo que el del temario. Te sugiero que compares esa columna.
Los ítems aparecen lado a lado para que los compruebes, y lo que falta está dicho: la columna de los responsables.
Ponte a prueba
¿Cuál de estas respuestas de la IA trae una evidencia que tú puedes comprobar?
Anota lo que observaste en cada comprobación, con el resultado exacto. ¿Encontraste un error? Corrige también el pedido antes de reutilizarlo, o la fuente, si el error vino de ella. Si no, el error vuelve la próxima vez.
Lúcia corrigió el nombre en el acta. Después agregó una línea al contrato de entrega: "responsable que el temario no define se vuelve [no informado]".
Si te trabaste aquí, es normal¿No encontraste ningún error? Excelente señal, y la comprobación valió igual. Anota "✓" con lo que comparaste. El registro muestra que miraste, y no solo que confiaste.
Practica ahora 0/3
Listo cuando tengas tres anotaciones, una para cada conferencia, con el resultado que observaste. Cerca de 10 minutos, en el papel o en un bloc de notas, en el celular o en la computadora.
Solo lees y comparas: no se altera ni se envía nada. ¿No hiciste la lección 11? Usa la pauta y el acta de práctica justo abajo.
Pauta: 1. Semana de exámenes, con la coordinación. 2. Cambio de salón del 8º B, sin responsable definido. 3. Fiesta junina, con la profesora Ana.
Acta recibida: 1. Semana de exámenes. Responsable: coordinación. 2. Cambio de salón del 8º B. Responsable: profesor Ivo. 3. Fiesta junina. Responsable: profesora Ana. Enviada al grupo de profesores.
Acabas de hacer la parte de la entrega que ninguna IA hace por ti: revisar.
Cola de la lección
Una entrega solo termina después de la revisión. Abre el archivo, compara números con las fuentes y prueba los enlaces o fórmulas relevantes. Pide al agente evidencias de lo que verificó, distinguiendo la prueba ejecutada de la sugerencia de prueba.
La frase “listo” no demuestra que el archivo se abra o que todos los datos se hayan preservado. Una verificación independiente pequeña suele encontrar más problemas que una nueva solicitud genérica de mejora.
Abrir; comparar; probar; registrar límites.
El acta tiene una lista de decisiones. La profesora confronta cada decisión con la pauta y encuentra una responsabilidad inventada. Corrige la fuente o la solicitud antes de reutilizar el procedimiento.
Revise tres elementos de su entrega: un hecho, un formato y una acción. Anote exactamente el resultado observado en cada uno.
Usa archivos ficticios y una carpeta de entrenamiento. Las prácticas con instalación, Telegram o VPS pueden requerir tiempo adicional para registro y configuración.
Lea el bloque antes de usar. Campos como Su Nombre y usuario@ip-de-vps son ejemplos para adaptar; los comandos administrativos pertenecen solo a su entorno de entrenamiento.
Objetivo: preparar una pauta revisable
Entrada: entradas/reuniao.txt
Salida: salidas/pauta.md
Límites: no enviar mensajes; no inventar fechas
Verificación: los 5 ítems originales siguen presentes
Parada: entrega el archivo y reporta las pendientesRedacta una orden de trabajo con entradas, salida y revisión. Registra el archivo producido, la prueba ejecutada y el resultado observado.
Use esta rúbrica después del laboratorio. Cada línea pide una evidencia; marcar lectura no significa que la práctica se haya ejecutado.
¿Necesitas solo una explicación de dos frases? ¿Debe usarse obligatoriamente Work?
No. Elige la interfaz por el resultado necesario; Chat puede ser suficiente.
Si su respuesta fue diferente, vuelva al tema correspondiente y escriba la diferencia en una frase. La verificación no bloquea su estudio.
Herramientas verificadas el 20/09/2026; los nombres de pantallas y la disponibilidad pueden cambiar.
Lección 12 · OSWork v6.2 · INEMA.CLUB PRO
Módulo 3 · Lección 1 de 6

Puedes abrir el terminal, escribir dos comandos y decir en qué carpeta estás y qué hay en ella.
A partir de este módulo, la IA trabaja en una carpeta de tu computadora. Si no sabes en qué carpeta estás, ella tampoco lo sabe. Mucho error que parece un fallo de la IA es solo la carpeta equivocada.
En 1 minuto
pwd dice dónde estás. ls dice qué hay ahí.El terminal viene en la computadora. Solo necesitas saber dónde está. Los comandos de este curso están escritos en Bash, el lenguaje del terminal en Linux y en macOS. Mac usa una variación del mismo, y los comandos funcionan igual.
En Windows, funcionan dentro de WSL. El terminal que viene con Windows usa otro lenguaje. No pegues ahí los comandos del curso sin adaptarlos.
Lúcia usa una notebook con macOS. Presionó Cmd+Espaço, escribió "Terminal" y presionó Enter. Tardó diez segundos.
El WSL es de la propia Microsoft. Abre el menú Inicio, busca "PowerShell", haz clic derecho › Ejecutar como administrador. Escribe el comando de abajo, presiona Enter y reinicia la computadora cuando te lo pida.
> wsl --install
Después de reiniciar, busca "Ubuntu" en el menú Inicio: esta ventana es la terminal donde funcionan los comandos del curso. La primera vez, te pide un nombre de usuario y una contraseña nuevos: anota la contraseña en un lugar seguro.
Si te trabaste aquí, es normal¿La computadora es de la escuela o te pidió una contraseña que no tienes? No lo fuerces: hoy lee esta lección y pide el WSL a quien cuida la computadora. En la lección 14, la página oficial del Codex también muestra la ruta para Windows.
Al abrir, la terminal muestra una línea corta que termina en $, con el cursor parpadeando. En Mac, termina en %: es lo mismo. Es la computadora esperando tu comando.
Tú escribes el comando y presionas Enter. La respuesta aparece justo debajo. Luego, el $ vuelve, listo para el siguiente.
Denise abrió la terminal por primera vez y esperó que pasara algo. No pasó nada, porque estaba esperándola a ella.
denise@notebook:~$ pwd
/home/denise
denise@notebook:~$
La línea con $ (en Mac, %) es tu turno para escribir. La línea sin $ es la respuesta de la computadora.
$ de vuelta: siempre es ese vaivén.pwd es el "estás aquí"¿Conoces el mapa de la escuela con la calcomanía "estás aquí"? El comando pwd hace ese papel. Te responde la ruta completa de la carpeta en la que estás ahora.
Lee la ruta como una dirección. Cada barra separa una carpeta, y la última es donde estás. En macOS, tu carpeta personal empieza con /Users; en Linux, con /home.
Lúcia escribió pwd y leyó /Users/lucia. Entonces estaba en la carpeta personal, la misma que se abre cuando haces clic en la casita del Finder.
$ pwd
/Users/lucia
Una sola línea: la carpeta personal de Lúcia. No se creó ni borró nada.
pwd solo informa. Úsalo siempre que tengas dudas de dónde estás.ls muestra lo que hay en la carpetaDespués de saber dónde estás, mira qué hay ahí. El comando ls lista las carpetas y los archivos del lugar actual, uno al lado del otro. En Mac, las carpetas de la carpeta personal aparecen con nombre en inglés, como Documents y Downloads.
Para cambiar de carpeta está el cd. Lo ves en la lección 16. Por ahora, basta con saber que la carpeta de inicio importa.
Denise abrió el Codex en la carpeta Downloads, en una prueba de un colega. Él no veía su proyecto, que estaba en otra carpeta. El pwd lo habría mostrado antes.
$ pwd
/home/denise
$ ls
Documentos Downloads Imagens Músicas
Primero la ubicación y después el contenido. Los nombres cambian de una computadora a otra.
ls muestra lo que el programa va a ver si empieza a trabajar desde ahí.Ponte a prueba
Lúcia escribió ls y la carpeta del proyecto no apareció en la lista. ¿Qué revisa primero?
Practica ahora 0/3
Listo cuando hayas anotado la respuesta del pwd y tres nombres que el ls mostró. Cerca de 8 minutos, en la computadora.
Los dos comandos solo leen: no se crea, no se mueve ni se borra nada. Si aparece "command not found", revisa la escritura: todo en minúsculas, sin espacio en medio. En Windows sin WSL, detente en el paso 1 y sigue a la lección 14.
pwd ls
Acabas de leer, en el terminal, dónde estás y qué hay ahí, sin cambiar nada.
Cola de la lección
Terminal es la ventana en la que escribes comandos para la computadora. Shell es el programa que interpreta esos comandos. Aquí los ejemplos de terminal usan Bash en Linux o macOS; en Windows, usa un entorno Bash vía WSL o sigue el instalador oficial para Windows. No pegues comandos de Linux directamente en PowerShell sin adaptación.
Saber en qué entorno estás evita errores que parecen fallas de la IA. El comando cd cambia la carpeta actual; pwd muestra la ubicación en Bash. No es necesario memorizar decenas de comandos para comenzar.
Terminal; shell; carpeta actual; comando y respuesta.
Si abres Codex en la carpeta Downloads, no está trabajando automáticamente dentro de meu-primeiro-projeto. Debes elegir la carpeta de inicio.
En Bash, ejecute pwd y luego ls. Lea la salida: primera ubicación, luego archivos. No altere nada en este paso.
Aceptar una conclusión sin comprobar la entrada que la sustenta.
Términos de esta sección: puerto.
Lección 13 · OSWork v6.2 · INEMA.CLUB PRO
Módulo 3 · Lección 2 de 6

Puedes instalar el Codex desde la dirección oficial y confirmar, con un comando, que el computador lo reconoce.
En internet circulan comandos "más rápidos" para poner programas en el computador. Un comando pegado sin verificar puede hacer cualquier cosa. Verificar el origen toma un minuto y evita ese riesgo.
En 1 minuto
codex --version confirma que funcionó.Instalar pone el programa en el computador. Esto no conecta tu cuenta ni elige la carpeta de trabajo. Cada cosa tiene su etapa y su verificación.
Esta lección hace solo la primera. Las otras dos vienen en las lecciones 15 y 16.
Justo después de instalar, Lúcia escribió codex y el programa le pidió que iniciara sesión con la cuenta. Pensó que era un defecto. No era eso: la primera etapa había salido bien y faltaba la segunda.
codex --version.pwd, de la lección 13.Cuando llega una caja a la secretaría, miras el precinto y el remitente antes de abrirla. Con un comando es igual: el remitente es la dirección de donde viene.
El comando oficial baja un script desde la dirección chatgpt.com y lo ejecuta. Por eso la dirección importa tanto. Un comando de una página desconocida no se pega.
Denise recibió en un grupo un "modo más rápido" para poner Codex en el computador. La dirección dentro del comando no era la de la página oficial. No lo pegó y usó la página.
Dirección en el comando: un sitio con "codex" en el nombre, pero que no es chatgpt.com.
Quién lo garantiza: nadie.
Dirección en el comando: https://chatgpt.com/codex/install.sh
Quién lo garantiza: la empresa que hace el programa, en la página de instalación.
En macOS y en Linux, el comando de la página oficial es este de abajo. En Windows con WSL, pega el mismo comando dentro de Ubuntu. Sin WSL, sigue la página oficial del Codex, que tiene indicaciones propias.
Usa el botón copiar: no necesitas escribir la barra vertical. El instalador escribe algunas líneas mientras trabaja, y no necesitas entender cada una. Espera a que vuelva el $ (en Mac, %). Quien confirma si salió bien es el paso 4.
Lúcia pegó el comando en el Terminal del Mac y esperó. Las líneas que pasaron, no intentó descifrarlas. Cuando volvió el %, pasó a la verificación.
$ curl -fsSL https://chatgpt.com/codex/install.sh | sh
Es una sola línea, aunque la pantalla del celular la parta. curl descarga el archivo de la dirección; la barra vertical lo envía a sh, que ejecuta sus comandos.
codex --version confirmaPara saber si salió bien, pide la versión. Si la computadora reconoce el programa, responde con un número.
Si aparece "command not found", el terminal todavía no encontró el programa. Cierra el terminal, ábrelo de nuevo y repite.
En la notebook de Denise, el primer intento dio "command not found". Cerró el terminal, abrió otro y lo escribió otra vez. Apareció el número de la versión.
$ codex --version
codex: command not found
$ # fechou e abriu o terminal de novo
$ codex --version
codex-cli 0.156.1
"command not found" quiere decir "no encontré este programa". Después de reabrir, apareció la versión. El número cambia con el tiempo.
Si te trabaste aquí, es normal"command not found" justo después de la primera vez es común: el terminal que tenías abierto antes no sabe sobre el programa nuevo. Cierra, ábrelo de nuevo y repite codex --version. ¿Siguió? Copia el mensaje de error, sin ninguna contraseña, y llévaselo a quien cuida la computadora.
Practica ahora 0/3
Listo cuando codex --version responda con un número. Aprox. 10 minutos, en la computadora, con internet.
El comando solo sirve si es igual al de la página oficial: verifica la dirección chatgpt.com. Si te pide la contraseña de la computadora y es tuya, escribe la tuya: las letras no aparecen mientras las escribes. Si la computadora es de la escuela, detente y habla con quien la cuida.
Paso 2 · pega en el terminal
curl -fsSL https://chatgpt.com/codex/install.sh | sh
Paso 3 · pega en el terminal nuevo
codex --version
Acabas de poner un programa en la computadora usando la fuente oficial y de comprobar que ahí está.
Cola de la lección
La página oficial de Codex ofrece un instalador para macOS/Linux y orientaciones específicas para Windows. Instalar significa agregar el programa a la máquina. El comando de instalación descarga y ejecuta un script oficial; lee la fuente, verifica el dominio y usa tu propia cuenta. No ejecutes comandos recibidos desde páginas desconocidas.
La instalación, login y la ejecución son etapas diferentes. Un programa instalado todavía necesita autenticación. Un login completado no significa que abriste la carpeta correcta.
Fuente oficial; instalación; versión; diagnóstico.
Después de la instalación, codex --version indica la versión reconocida por el terminal. Si aparece “command not found”, vuelve a abrir el terminal y revisa el camino que indica el instalador.
En macOS/Linux: curl -fsSL https://chatgpt.com/codex/install.sh | sh. Luego verifica con codex --version. Consulta la fuente al pie para otras plataformas.
Lección 14 · OSWork v6.2 · INEMA.CLUB PRO
Módulo 3 · Lección 3 de 6

Puedes conectar el Codex a tu cuenta, comprobar por qué método entró y anotar en la ficha solo ese método, sin ninguna contraseña.
Una clave pegada en un mensaje, en un ejemplo o en un print puede ser usada por otra persona, y la cuenta es tuya. También puedes estar conectado por el método equivocado y gastar una cuenta que no esperabas.
En 1 minuto
codex login abre el navegador para que entres con la cuenta de ChatGPT.codex login status dice por qué método entraste.En la escuela, pasas la credencial por el torniquete y nadie escucha tu contraseña. El login de Codex funciona así: el terminal te lleva al navegador, y ahí es donde entras.
La contraseña nunca pasa por el terminal. Cuando terminas en el navegador, el Codex recibe la confirmación y guarda la entrada.
Qué planes de ChatGPT incluyen Codex cambia con el tiempo. Antes de empezar, revisa en la página oficial de autenticación si tu plan está ahí. El nombre de tu plan aparece en la configuración de tu cuenta de ChatGPT.
Lúcia escribió codex login. El navegador se abrió en la pantalla de inicio de sesión de ChatGPT. Ella inició sesión con la cuenta de la escuela y volvió al terminal.
$ codex login
# o navegador abre; entre com a conta do ChatGPT e volte ao terminal
La primera línea es lo que tú escribes. La segunda es un recordatorio del curso: el resto ocurre en el navegador.
codex login status muestra el métodoEstar conectado no basta: importa por qué camino. Entrar con la cuenta usa el plan de ella. Una clave de API cobra por consumo, en otra cuenta.
Esa diferencia es de la lección 5, en el módulo 1. ¿Saltaste? El resumen es este: son dos cuentas, con dos cobros.
Denise esperaba ver "ChatGPT" y vio que el Codex estaba entrando mediante una clave de API antigua de la escuela. Ella salió con codex logout y entró de nuevo con codex login, por la cuenta.
$ codex login status
Logged in using ChatGPT
En inglés: "conectado usando el ChatGPT". El método es la cuenta. Con una clave de API, la respuesta cita la clave, pero nunca el valor completo.
¿Vas a entrar con la cuenta de ChatGPT? Puedes saltarte este paso. Si usas API, la clave queda guardada bajo un nombre, OPENAI_API_KEY, que el terminal conoce. El comando oficial le entrega el valor directo al Codex, sin mostrarlo en pantalla.
Escribir la clave en el comando es el error común: queda en el historial del terminal y aparece en cualquier captura. Un archivo .env solo tampoco conecta nada. Algún mecanismo tiene que cargar el valor.
Una compañera pidió la clave de la escuela para probar desde casa. Lúcia no la envió por el grupo. Explicó que la clave dice quién paga y que cada persona entra con su propia cuenta.
Así queda: codex login --with-api-key seguido de la clave entera.
Resultado: la clave queda en el historial y en cualquier captura de pantalla.
Así queda: printenv OPENAI_API_KEY | codex login --with-api-key
Resultado: el valor va directo al programa. En pantalla, solo el comando.
Anota en ficha del proyecto qué método está activo y en dónde lo verificaste. Es la misma ficha de acceso de la lección 5. ¿Todavía no tienes ficha? Una nota en el celular sirve.
La credencial no va a la ficha, a un pedido ni a una captura de pantalla. Si se filtra, quien se encarga de la cuenta necesita cambiar la clave.
La línea de Denise quedó así: "Codex · ChatGPT · verificado con codex login status". Ninguna contraseña, ninguna parte de la clave.
Si te trabaste aquí, es normal¿No sabes si usas ChatGPT o API? Empieza por la cuenta de ChatGPT, con codex login: es el camino sin ninguna clave. ¿El navegador no se abrió solo? Mira si en el terminal apareció una dirección y abre esa dirección en el navegador.
Practica ahora 0/3
Listo cuando codex login status diga el método y en la ficha aparezca esa línea, sin contraseña. Aproximadamente 8 minutos, en la computadora.
En esta ruta no escribes la contraseña en el terminal: queda en el navegador. ¿No hiciste la lección 14? Revisa antes con codex --version. ¿Computadora de otra persona? Al terminar, sal con codex logout.
Paso 1 · pega en el terminal
codex login
Paso 2 · pega en el terminal, después de entrar al navegador
codex login status
Acabas de conectar un programa a tu cuenta y registrarlo como, sin exponer ninguna credencial.
Cola de la lección
Ejecuta codex login y concluye el flujo del navegador para entrar con ChatGPT. Si eliges API, la clave debe estar en la variable OPENAI_API_KEY; envíala por la entrada estándar, sin escribirla en el comando. Un archivo .env solo no autentica Codex: algún mecanismo debe cargar la variable.
Pegar la clave en ejemplos, mensajes o historial puede exponer la cuenta. También es posible estar autenticado con el método incorrecto y consumir una modalidad diferente a la esperada.
codex login; codex login status; entrada estándar; cuenta activa.
Para la API, el comando documentado es printenv OPENAI_API_KEY | codex login --with-api-key. Envía el valor directamente al programa, en lugar de mostrar la clave en pantalla.
Lección 15 · OSWork v6.2 · INEMA.CLUB PRO
Módulo 3 · Lección 4 de 6

Tú puedes crear una carpeta de práctica con tres archivos ficticios, entrar en ella con el terminal y abrir el Codex ahí dentro.
El Codex trabaja en la carpeta en la que se abre. En la carpeta equivocada, lee lo que no debería y no encuentra lo que necesita. Una carpeta pequeña, solo con el material de la tarea, deja claro qué podía tocar.
En 1 minuto
cd entra en la carpeta, pwd confirma y solo entonces codex.Quien entra en la sala equivocada da la lección para el grupo equivocado. Con Codex es igual: trabaja donde se abrió. Entonces tú entras en la carpeta antes de abrir el programa.
mkdir -p crea la carpeta, y las de antes si faltan. cd entra ahí. El signo ~ quiere decir "mi carpeta personal": en el Finder de Mac, es la carpeta con tu nombre y el ícono de casita.
Denise creó la carpeta de práctica y entró en ella. El pwd confirmó la dirección antes de que ella abriera cualquier programa.
$ mkdir -p ~/projetos/meu-primeiro-projeto
$ cd ~/projetos/meu-primeiro-projeto
$ pwd
/home/denise/projetos/meu-primeiro-projeto
Los dos primeros comandos no responden nada cuando salen bien. Quien confirma es el pwd.
No necesitas abrir toda tu carpeta personal para experimentar. Un área pequeña, con archivos de práctica, reduce la confusión. Cuando algo sale mal, queda claro qué archivos podrían haber cambiado.
Lúcia pensó en abrir el Codex en la carpeta Documentos, donde están las pruebas y las notas de los grupos. Prefirió la carpeta de práctica, con una pauta ficticia. Nada real quedó al alcance.
El README describe la finalidad del proyecto para quien llega. El AGENTS.md le da instrucciones de trabajo al agente.
Los dos terminan en .md porque son texto en Markdown: el # marca el título y el guion, un elemento de lista.
Denise escribió en el README la finalidad: preparar la pauta de la reunión. En el AGENTS.md, puso dos reglas: trabajar solo en esa carpeta y no enviar nada.
# Mi primer proyecto
Proyecto de entrenamiento del curso OSWork. Solo archivos ficticios.
Finalidad: preparar la pauta de la reunión pedagógica a partir de entradas/reuniao.txt.
# Instrucciones para el agente
- Trabaja solo dentro de esta carpeta.
- No envíes ni publiques nada.
Antes de escribir codex, ejecuta pwd y ls. Si la dirección y los archivos coinciden, abre el programa ahí.
La primera vez en una carpeta, el Codex te pregunta si confías en ella. Es tu carpeta de entrenamiento: elige "Trust and continue" con las flechas y presiona Enter. En este entrenamiento, no uses "Open restricted". Para salir del Codex, escribe /quit y presiona Enter.
Lúcia revisó la dirección, vio los tres elementos en ls y solo entonces escribió codex. Respondió la pregunta sobre la carpeta y salió con /quit, sin pedir nada todavía.
$ pwd
/Users/lucia/projetos/meu-primeiro-projeto
$ ls
AGENTS.md README.md entradas
$ codex
Trust this folder? Codex can read, edit, and run files here,
subject to your permission settings. …
› Trust and continue
Open restricted
En inglés: "¿Confías en esta carpeta? El Codex puede leer, editar y ejecutar archivos aquí, dentro de tus permisos." "Trust and continue" es "confiar y continuar"; "Open restricted" abre con restricciones. La respuesta se guarda. Las palabras pueden cambiar un poco con la versión.
Si te trabaste aquí, es normalLa pregunta en inglés asusta la primera vez. Solo aparece porque la carpeta es nueva para el Codex. Confirma solo en carpetas que conoces. Si tienes dudas, sal con /quit (o presiona Ctrl+C dos veces) y revisa el pwd de nuevo.
Practica ahora 0/3
Listo cuando el ls muestre AGENTS.md, README.md y entradas, y el Codex abra en esa carpeta. Cerca de 10 minutos, en la computadora.
El bloque crea una carpeta nueva y escribe tres archivos ficticios dentro: cada cat > escribe en el archivo todo hasta la línea FIM. Nada fuera de ahí se toca. Usa el bloque solo en esta carpeta nueva: en otra carpeta, reemplazaría un README.md que ya estuviera ahí. Copia todo el bloque, hasta el último ls. Si el terminal se queda quieto mostrando >, presiona Ctrl+C y pega el bloque entero de nuevo.
mkdir -p ~/projetos/meu-primeiro-projeto/entradas cd ~/projetos/meu-primeiro-projeto cat > README.md <<'FIM' # Mi primer proyecto Proyecto de entrenamiento del curso OSWork. Solo archivos ficticios. Finalidad: preparar la pauta de la reunión pedagógica a partir de entradas/reuniao.txt. FIM cat > AGENTS.md <<'FIM' # Instrucciones para el agente - Trabaja solo dentro de esta carpeta. - No envíes ni publiques nada. FIM cat > entradas/reuniao.txt <<'FIM' Reunión pedagógica (ficticia) 1. Horario nuevo de la biblioteca 2. Gincana de ciencias 3. Recuperación del 8º año 4. Uso de los notebooks del aula de informática 5. Fechas de los exámenes: por definir FIM pwd ls
Acabas de montar un área de trabajo pequeña y abrir el agente exactamente dentro de ella.
Cola de la lección
La carpeta de trabajo es el banco de la tarea. Crea un área pequeña, con archivos de entrenamiento, antes de permitir cambios. Un README.md describe la finalidad para personas; AGENTS.md da instrucciones operacionales al agente. No necesitas abrir tu carpeta personal completa para experimentar.
Un alcance pequeño reduce la ambigüedad y facilita revisar diferencias. Cuando algo sale mal, queda claro qué archivos deberían haber sido afectados.
Alcance local; README; AGENTS; archivos de entrada.
El proyecto contiene README.md y entradas/reuniao.txt. La primera tarea es explicar esos dos archivos. No es necesario acceder a documentos personales ni a otros proyectos.
En Bash: mkdir -p ~/projetos/mi-primer-proyecto. Entra con cd ~/projetos/mi-primer-proyecto e inicia codex.
Mezclar la copia de entrenamiento con archivos privados o trabajo en producción.
Lección 16 · OSWork v6.2 · INEMA.CLUB PRO
Módulo 3 · Lección 5 de 6

Puedes pedirle al Codex una lectura de la carpeta sin ninguna edición y comprobar qué archivos usó. Después, tú autorizas solo la creación de un plano.md, que tú misma revisas.
Un pedido como "arregla el proyecto" mezcla diagnóstico y cambio. Si algo sale mal, no sabes en qué parte ocurrió. Separar lectura y edición te da una referencia para revisar.
En 1 minuto
ls.Nadie serio empieza una reforma rompiendo una pared. Primero viene la revisión: mirar, anotar, entender. Con un agente es lo mismo, en cuatro pasos.
Denise le va a pedir al Codex que "mejore la carpeta de la reunión". Cambió por dos pedidos: primero leer y decir qué falta; después, crear un archivo solo.
En la carpeta de entrenamiento de la lección 16, pídele al Codex que lea el AGENTS.md y el README. Dilo con todas las letras: sin editar. Y pídele que cite los archivos que usó.
Lúcia hizo este pedido en la carpeta de entrenamiento. La respuesta de abajo es real, del Codex, en la misma carpeta, solo acortada.
TúLee AGENTS.md y README.md. Explica el propósito y lista lo que falta, sin editar. Di qué archivos usaste.
CodexEl propósito es preparar la pauta de una reunión pedagógica usando entradas/reuniao.txt. Falta: la pauta producida, el formato y el lugar de salida, y cómo verificar el resultado. El archivo de entrada existe, pero no leí su contenido. Archivos leídos: AGENTS.md y README.md. También consulté el listado de archivos. No se editó nada.
Explicó, listó lo que falta, dijo qué leyó y qué no leyó. No cambió ningún archivo.
La lista de los archivos usados muestra en qué se apoya la respuesta. Compárala con lo que muestra ls en la carpeta.
En la respuesta real, el Codex leyó dos archivos y avisó que no abrió la pauta. Entonces la lista de lo que falta viene solo del README. Es una buena lectura, pero aún no conoce los cinco puntos de la reunión.
Denise leyó "no leí su contenido" y entendió el límite de la respuesta. En el segundo pedido, dejó claro que el plan debía basarse en la pauta.
AGENTS.md
README.md
la lista de archivos de la carpeta
AGENTS.md
README.md
entradas/reuniao.txt, con los cinco puntos
Ahora autoriza un cambio pequeño: crear solo el plan.md, con tres acciones y una verificación para cada una. El Codex puede preguntar "Would you like to make the following edits?". Comprueba que el cambio sea solo en plan.md y elige "Yes, proceed". Si es otro archivo, elige la opción que empieza con "No". ¿Lo creó sin preguntar? También pasa: los permisos actuales te dejan escribir en la carpeta. Verifica con ls.
Después, sal con /quit y lee el archivo con cat plano.md, que muestra el contenido en el terminal. Revisa si las acciones se apoyan en lo que existe en la carpeta.
El plan que Lúcia recibió cubre los cinco ítems de la pauta y avisa que los horarios y las fechas todavía necesitan definirse. Ella revisó en reuniao.txt: todo estaba ahí.
$ cat plano.md
# Plano de ações
Base: entradas/reuniao.txt (reunião pedagógica fictícia).
Horários e datas ainda precisam ser definidos.
1. Ação: Organizar o novo horário da biblioteca e as regras
de uso dos notebooks da sala de informática.
Verificação: Conferir se a proposta registra o horário
da biblioteca e as condições de uso dos notebooks.
…
Archivo real creado por Codex con el pedido 2 de la práctica, acortado. Si lo repites, el texto sale diferente; lo que se revisa es si se apoya en la pauta.
Si te trabaste aquí, es normal ¿El plan citó un archivo que no existe en la carpeta? No empieces de cero. Pide la corrección específica: "El archivo tal no existe. Vuelve a hacer el plano.md usando solo los archivos de esta carpeta."
Practica ahora 0/3
Listo cuando exista el plano.md en la carpeta y cuando hayas revisado una de las verificaciones directamente en reuniao.txt. Aproximadamente 10 minutos, en el computador.
El primer pedido no cambia nada; el segundo crea un archivo solo, en la carpeta de entrenamiento. ¿No hiciste la lección 16? El bloque de práctica de ella arma la carpeta en un minuto. Si el Codex quiere tocar otro archivo, recházalo y repite el pedido.
Paso 1 · pega en el terminal
cd ~/projetos/meu-primeiro-projeto codex
Pedido 1 · pégalo dentro del Codex y presiona Enter
Lee AGENTS.md y README.md. Explica el propósito y lista lo que falta, sin editar. Dime qué archivos usaste.
Pedido 2 · pégalo dentro del Codex, solo después de la respuesta al pedido 1
Crea solo plano.md, con tres acciones y una verificación para cada una. Apoya el plan en entradas/reuniao.txt. No alteres ningún otro archivo.
Paso 3 · pégalo en el terminal, después de salir con /quit
cat plano.md
cat entradas/reuniao.txt
Acabas de separar diagnóstico y cambio, y de comprobar el resultado en el material real.
Cola de la lección
Comienza solicitando inspección: listar la estructura, leer instrucciones y explicar pendientes. Pide que el agente cite qué archivos utilizó. Después de comprobar, autoriza un cambio pequeño y nombrado, como crear plano.md con tres próximos pasos.
Separar diagnóstico y cambio crea una referencia para la revisión. Aprendes el flujo sin mezclar instalación, gran refactorización y publicación en un solo intento.
Inspeccionar; planear; cambiar; validar.
Solicitud inicial: “Lee AGENTS.md y README.md. Explica el propósito y lista lo que falta, sin editar.” Segunda solicitud: “Crea solo plano.md, con tres acciones y una verificación para cada una.”
Abre plano.md en el editor y verifica que los pasos se apoyen en el proyecto real. Pide una corrección específica si el agente asumió archivos inexistentes.
Lección 17 · OSWork v6.2 · INEMA.CLUB PRO
Módulo 3 · Lección 6 de 6

Puedes guardar una copia de la carpeta de entrenamiento y pedirle al Codex dos reglas nuevas en el AGENTS.md. Luego, comparas las dos versiones y ves que solo ese archivo cambió.
En la lección pasada, el agente creó un archivo. Si hubiera creado el equivocado, o hubiera borrado otro, ¿podrías decir qué existía antes? Volver atrás exige haber guardado el "antes" y comparar.
En 1 minuto
Quien va a usar el laboratorio recibe la clave del laboratorio, no toda la salsa. Con un agente es igual: los permisos controlan lo que logra en los archivos, en internet y en los comandos.
Sube un escalón por vez. Leer archivos tiene riesgo bajo; escribir, medio; ejecutar comandos, alto. Cada escalón amplía el daño posible.
Denise le dio a la pasante solo la clave de la sala de lectura. Con el Codex, empezó por el mismo principio: acceso solo a la carpeta de entrenamiento.
Lo que escribes en el AGENTS.md guía el comportamiento del agente. Pero es texto: no impide nada técnicamente. Quien impide son los permisos del programa.
En el Codex, el comando /permissions muestra y cambia lo que puede hacer. Empieza por lo más restringido que sirva para la tarea. No quites todas las protecciones para sortear un error.
El Codex le pidió a Lúcia acceso a internet para consultar una documentación. Ella evaluó esa solicitud sola, sin liberar también borrar archivos o enviar mensajes.
Ejemplo: "No envíes ni publiques nada."
Lo que hace: guía al agente sobre lo que quieres.
Ejemplo: acceso solo a la carpeta de entrenamiento.
Lo que hace: limita lo que puede hacer en verdad.
El comando cp -r copia una carpeta entera, con todo dentro. Haz la copia antes del cambio, con un nombre que diga qué es.
Más adelante, en el módulo 5, el Git lo hace de una forma más completa. Por ahora, la copia ya te da un punto de retorno.
Antes de autorizar el cambio en el AGENTS.md, Denise copió la carpeta de prueba con el final "-antes". El ls confirmó las dos.
$ cp -r ~/projetos/meu-primeiro-projeto ~/projetos/meu-primeiro-projeto-antes
$ ls ~/projetos
meu-primeiro-projeto meu-primeiro-projeto-antes
El cp no dice nada cuando sale bien. Quien lo confirma es el ls: las dos carpetas, una al lado de la otra.
Después del cambio, el diff compara la copia con la carpeta actual. Muestra solo las diferencias, archivo por archivo. Las líneas que empiezan con > son las nuevas.
Si en la comparación aparece otro archivo, el agente tocó donde no debía. La copia "-antes" tiene la versión antigua para que la recuperes.
En el diff de Lúcia apareció un solo archivo, el AGENTS.md, con dos líneas nuevas. Era exactamente lo que ella había autorizado.
$ diff -r ~/projetos/meu-primeiro-projeto-antes ~/projetos/meu-primeiro-projeto
diff -r …/meu-primeiro-projeto-antes/AGENTS.md …/meu-primeiro-projeto/AGENTS.md
3a4,5
> - Todo resultado vem com a verificação que você observou.
> - Esta tarefa não autoriza publicar nada.
Un archivo citado, dos líneas con >. "3a4,5" significa: después de la línea 3, entraron las líneas 4 y 5.
Si te trabaste aquí, es normalEl resultado del diff parece código, pero solo necesitas dos cosas: qué archivos aparecen y qué líneas tienen >. ¿No apareció nada? Entonces no cambió nada: mira si Codex llegó a guardar el archivo.
Solo si el diff mostró un cambio que no autorizaste. Copia el archivo de la carpeta "-antes" encima del actual. Atención: esto sustituye el AGENTS.md actual por la versión antigua.
$ cp ~/projetos/meu-primeiro-projeto-antes/AGENTS.md ~/projetos/meu-primeiro-projeto/AGENTS.md
Luego, vuelve a ejecutar el diff: sin diferencia, la vuelta salió bien.
Practica ahora 0/3
Listo cuando el diff muestre solo el AGENTS.md, con las dos líneas nuevas. Cerca de 10 minutos, en el computador.
Todo pasa en la carpeta de prueba; la copia "-antes" se guarda al lado. ¿No hiciste las lecciones 16 y 17? El bloque de práctica de la lección 16 monta la carpeta en un minuto. Si el diff muestra otro archivo, no borres nada: anota qué cambió y recupéralo con la copia.
Paso 1 · pega en el terminal, una sola vez
cp -r ~/projetos/meu-primeiro-projeto ~/projetos/meu-primeiro-projeto-antes ls ~/projetos
Paso 2 · pega en el terminal
cd ~/projetos/meu-primeiro-projeto
codex
Paso 3 · pega dentro de Codex y presiona Enter
Añade estas dos líneas al AGENTS.md, sin cambiar las que ya existen:
- Todo resultado viene con la verificación que observaste.
- Esta tarea no autoriza publicar nada.
No alteres ningún otro archivo.
Paso 4 · pega en el terminal, después de salir con /quit
diff -r ~/projetos/meu-primeiro-projeto-antes ~/projetos/meu-primeiro-projeto
¿La carpeta "-antes" ya existe? Usa estos dos bloques en lugar de los pasos 1 y 4. Usan el nombre "-antes2".
cp -r ~/projetos/meu-primeiro-projeto ~/projetos/meu-primeiro-projeto-antes2
ls ~/projetos
diff -r ~/projetos/meu-primeiro-projeto-antes2 ~/projetos/meu-primeiro-projeto
Acabas de hacer un cambio verificable: sabes qué había antes, qué cambió y cómo volver.
Cola de la lección
Los permisos del cliente controlan el acceso a archivos, red y ejecución. Las instrucciones en lenguaje natural orientan el comportamiento, pero no sustituyen el aislamiento técnico. Empieza con permisos restringidos a la carpeta de entrenamiento. No enseñes a eliminar todas las protecciones para saltarte cualquier error.
Recuperar un cambio requiere saber qué existía antes. Git y copias de archivos ofrecen puntos de retorno; se practicarán más adelante. Lee lo que hará el comando antes de ampliar permisos.
Permiso mínimo; cambios pequeños; comparación; punto de retorno.
El agente solicita acceso externo para consultar la documentación. Evalúa esa necesidad por separado de los permisos para borrar archivos o enviar mensajes.
Escribe en el AGENTS.md qué resultados deben venir con verificación observada y que la tarea no autoriza a publicar. Revisa el diff cuando Git esté activo.
Usa archivos ficticios y una carpeta de entrenamiento. Las prácticas con instalación, Telegram o VPS pueden exigir tiempo adicional para registro y configuración.
Lea el bloque antes de usar. Campos como Su Nombre y usuario@ip-de-vps son ejemplos para adaptar; los comandos administrativos pertenecen solo a su entorno de entrenamiento.
mkdir -p ~/projetos/meu-primeiro-projeto
cd ~/projetos/meu-primeiro-projeto
pwd
codex --version
codex login
codex login status
codexAbre un proyecto de entrenamiento en Codex y produce una modificación verificable. Registra el archivo creado, la prueba ejecutada y el resultado observado.
Use esta rúbrica después del laboratorio. Cada línea pide una evidencia; marcar lectura no significa que la práctica se haya ejecutado.
Codex no encontró README.md. ¿El primer paso es aumentar el razonamiento?
No. Revisa el directorio actual, el nombre del archivo y el permiso de lectura.
Si su respuesta fue diferente, vuelva al tema correspondiente y escriba la diferencia en una frase. La verificación no bloquea su estudio.
Herramientas verificadas el 20/09/2026; los nombres de pantallas y la disponibilidad pueden cambiar.
Lección 18 · OSWork v6.2 · INEMA.CLUB PRO
Módulo 4 · Lección 1 de 6

Puedes dibujar el árbol de tu carpeta de proyectos, con config y un proyecto de entrenamiento. Y puedes crearla con un comando en el terminal.
Cuando todo queda en una sola carpeta, la IA lee material de temas que no tienen nada que ver con el pedido. Luego es difícil decir de dónde vino una conclusión. Hoy separas los temas antes de crear cualquier archivo.
En 1 minuto
En el archivo de acero de la secretaría, cada gaveta guarda una clase. Nadie busca el 8º A en la gaveta del 7º B. Una carpeta de trabajo hace lo mismo: reúne el material de un solo tema. Ese material es el contexto de la tarea.
Cuando abres el Codex dentro de una carpeta, trabaja a partir de ella. Si la carpeta mezcla temas, lo que no tiene relación con el pedido se vuelve ruido.
Lúcia guardaba el proyecto de la feria de ciencias en la misma carpeta que los boletines. Le pidió a la IA un resumen de la feria y recibió un párrafo con la nota de un alumno en medio.
Ejemplo: feira-de-ciencias.docx, boletins-8A.xlsx, ata-do-conselho.pdf.
Resultado: el resumen de la feria cita una nota de boletín.
Carpeta feira-de-ciencias: solo el reglamento y la lista de grupos.
Resultado: el resumen habla solo de la feria.
Balance: la IA lee menos material, y tú sabes de dónde vino cada frase.
En el terminal, el símbolo ~ (til) representa tu carpeta personal. Dentro de ella vas a crear una carpeta de proyectos, que reúne trabajos independientes.
O caminho ~/projetos/config se lee en orden: carpeta personal, luego proyectos, luego config. En el teclado brasileño, la tilde se obtiene con la tecla de la tilde seguida de la barra espaciadora.
Denise escribió pwd en el terminal, como en el módulo 3, y vio la dirección completa de su carpeta personal. El ~ es solo la forma corta de escribir esa dirección.
$ cd ~
$ pwd
/Users/denise
cd ~ te lleva a la carpeta personal; pwd muestra dónde estás. En Linux, y en Windows con el terminal del módulo 3, la dirección empieza con /home, como /home/denise.
La carpeta config, de configuración, guarda el conocimiento que vale para cualquier proyecto, como tus preferencias. Está dentro de proyectos, pero fuera de cada proyecto.
Cada proyecto guarda sus propias entradas, el material que la IA lee, como actas o hojas de cálculo. Y guarda sus propias salidas, lo que ella produce. Separadas, puedes compararlas entre sí. No mezcles en un proyecto documentos de turmas o escuelas diferentes.
Denise prefiere informes cortos, con los pendientes al final. Esto vale para el informe del consejo y para el temario de la reunión con los padres. Entonces ve a config, una sola vez.
Ponte a prueba
Denise quiere guardar la nota "prefiero informes cortos". ¿Dónde vive eso?
Antes de crear, dibuja el árbol en el papel: una carpeta config y un único proyecto de entrenamiento. Así eliges los nombres con calma.
Usa nombres cortos, sin espacios y sin acento, como mi-primer-proyecto y salidas. En el terminal, el espacio y el acento dan trabajo en cada comando.
Lucía dibujó en una servilleta: proyectos, con config y feria-de-ciencias; dentro de la feria, entradas y salidas. Le tomó un minuto y evitó tres carpetas con nombres parecidos.
$ mkdir -p ~/projetos/config ~/projetos/meu-primeiro-projeto/entradas ~/projetos/meu-primeiro-projeto/saidas
$ ls ~/projetos
config meu-primeiro-projeto
mkdir -p crea las carpetas y las capas de arriba que falten. Si una carpeta ya existe, se queda como está.
Si te trabaste aquí, es normalEl comando es largo porque crea cuatro carpetas a la vez. Cópialo y pégalo tal como está, en una sola línea. Para pegar en el terminal, usa el botón derecho › Pegar; en el teclado, Ctrl+Shift+V en Linux y en Windows, Cmd+V en Mac. ¿Prefieres el mouse? Escribe cd ~ y luego open . en Mac, o explorer.exe . en Windows, dentro del terminal Linux del módulo 3: el gestor de archivos se abre en tu carpeta personal del terminal. Crea allí las carpetas, con el botón derecho › Nueva carpeta.
Practica ahora 0/3
Listo cuando el primer ls muestre config y mi-primer-proyecto, y el segundo muestre entradas y salidas. Aproximadamente 8 minutos, en la computadora.
Los comandos solo crean carpetas vacías dentro de tu carpeta personal; nada se borra. ¿Creaste mi-primer-proyecto en el módulo 3? Está bien, lo que ya estaba ahí sigue. ¿Apareció un mensaje de error? Para, revisa si pegaste toda la línea e inténtalo de nuevo una vez.
mkdir -p ~/proyectos/config ~/proyectos/mi-primer-proyecto/entradas ~/proyectos/mi-primer-proyecto/salidas ls ~/proyectos ls ~/proyectos/mi-primer-proyecto
config meu-primeiro-projeto
entradas saidas
La primera línea responde al ls de proyectos; la segunda, al ls del proyecto de entrenamiento.
Acabas de crear, con un comando, el árbol que separa lo que siempre vale de lo que es de un solo proyecto.
Cola de la lección
El símbolo ~ representa la carpeta personal en Bash. Dentro de ella, proyectos reúne trabajos independientes. Usa nombres claros y evita mezclar documentos de clientes diferentes. La carpeta config guarda conocimiento transversal; cada proyecto mantiene sus propias entradas y resultados.
Los contextos separados ayudan a limitar lo que la IA necesita leer. Una carpeta llena de asuntos no relacionados aumenta el ruido y dificulta explicar de dónde provino una conclusión.
Carpeta personal; proyectos; contexto; entradas y salidas.
En ~/proyectos/website quedan los archivos del sitio. En ~/proyectos/estudios quedan los experimentos. En Windows, el gestor puede mostrar rutas como C:\Users\TuNombre\proyectos.
Dibuja el árbol antes de crear archivos. Elige un único proyecto de entrenamiento y una única carpeta global config.
Aceptar una conclusión sin comprobar la entrada que la sustenta.
Lección 19 · OSWork v6.2 · INEMA.CLUB PRO
Módulo 4 · Lección 2 de 6

Puedes escribir el README del proyecto de entrenamiento en Markdown. Cada campo lleva información real o con "por definir".
Una explicación que solo existe en una conversación se pierde cuando la conversación termina. Quien llega después no sabe para qué sirve la carpeta. Un archivo pequeño de texto lo resuelve y dura.
En 1 minuto
Todo guion de experimento de Lucía tiene título, materiales y procedimiento. Ella subraya los títulos y pone una línea antes de cada material. Markdown hace lo mismo con los signos que tú escribes.
El # al inicio de la línea crea un título, el ## crea un subtítulo y el guion crea un elemento de lista. El archivo sigue siendo texto: puedes leerlo incluso sin un programa especial.
Lucía pasó el guion "Germinación de frijol" a Markdown en cinco minutos. No aprendió nada más que esas tres marcas.
# Germinación de frijol
## Materiales
- 10 granos de frijol
- algodón y un vaso
Título: Germinación de frijol.
Subtítulo: Materiales.
Lista: dos elementos, uno por línea.
Un archivo Markdown es un archivo de texto cuyo nombre termina en .md, como README.md. Se abre en el editor de texto del computador y también en el terminal.
En la terminal, el nano abre el archivo para editarlo ahí mismo. Luego, el comando cat muestra el contenido en pantalla, para que puedas comprobarlo.
Denise abrió el README del proyecto del consejo con nano. Cambió una línea, guardó con Ctrl+O, confirmó el nombre con Enter y salió con Ctrl+X. Después comprobó con cat.
GNU nano README.md
# Meu primeiro projeto OSWork
## Propósito
Produzir relatórios de treino a partir de dados fictícios.
^G Help ^O Write Out ^W Where Is ^X Exit
Así es como aparece el nano: el texto en el medio y los atajos en la parte inferior, en inglés. El ^ significa Ctrl. Write Out es guardar; Exit es salir. Después del Ctrl+O, muestra el nombre del archivo abajo: presiona Enter.
El modelo del kit del curso trae cinco secciones: Propósito, Lee primero, Organización, Cómo verificar y Estado actual. Cambias cada texto del modelo por lo que vale en tu proyecto.
¿Aún no sabes un campo? Escribe "a definir". Un campo honesto en abierto es mejor que un texto del modelo que nadie revisó.
En el README de la feria de ciencias, Lúcia escribió en Propósito: "organizar las inscripciones de la feria". En Cómo verificar: "todo grupo inscrito aparece en la lista final".
Los archivos pequeños y con nombre claro duran más que una conversación perdida. Las personas pueden revisarlos, y agentes pueden consultarlos.
El valor viene de la claridad. Con esas tres marcas alcanza. Negrita, tabla y enlace son opcionales.
Denise pidió una semana de licencia. La compañera que quedó en su lugar abrió el README del proyecto del consejo y siguió el trabajo sin necesidad de llamarla.
Dónde está: en una conversación de marzo con la IA.
Resultado: la compañera no lo encuentra y le llama a Denise.
Dónde está: README.md, en la carpeta del proyecto.
Resultado: la compañera lee el archivo y sigue.
Balance: la explicación pasa a vivir en la carpeta, y no en la memoria de alguien.
Si te trabaste aquí, es normal El nano te desconcierta la primera vez: no hay menú con mouse. ¿Prefieres otro camino? En la carpeta del proyecto, escribe open -e README.md en Mac, o explorer.exe . en Windows, dentro de la terminal Linux del módulo 3, y abre el README.md con Bloc de notas. Al guardar, en Tipo, elige Todos los archivos, para que no se convierta en README.md.txt.
Practica ahora 0/3
Listo cuando el chico te muestre los títulos con # y tú hayas leído cada sección y dejado ahí tu texto o "a definir". Unos 10 minutos, en la computadora.
El modelo es un archivo de texto del kit del curso, sin datos de nadie. Ojo: la segunda línea reemplaza un README.md que ya exista en esa carpeta. ¿Ya escribiste uno? Salta esa línea. ¿No hiciste la lección anterior? Ejecútala antes: mkdir -p ~/projetos/meu-primeiro-projeto
cd ~/projetos/meu-primeiro-projeto curl -fsSL https://inematds.github.io/oswork/materiais/README-projeto.md -o README.md nano README.md
$ cat README.md
# Meu primeiro projeto OSWork
## Propósito
A definir.
## Leia primeiro
A definir.
El título puede quedar como en el modelo. El texto de las secciones es el tuyo; verifica los títulos con # y ninguna sección vacía. Si el terminal te dice que no conoce el nano, usa el Bloc de Notas, como dice el cuadro "Si te trabaste aquí, es normal", al final del paso 4 de la lección.
Acabas de escribir, en Markdown, la explicación del proyecto que queda en la carpeta, y no en una conversación.
Cola de la lección
Markdown usa señales simples para organizar texto: # crea título, ## crea subtítulo y un guion inicia un ítem de lista. El archivo sigue siendo texto, legible incluso sin un editor especial. El nombre termina en .md. No necesitas escribir código para registrar instrucciones claras.
Archivos pequeños, nombrados y fáciles de editar duran más que una conversación perdida. Pueden ser revisados por personas y consultados por agentes. El valor proviene de la claridad, no de un formato elaborado.
Título; lista; bloque de código; enlace; texto simple.
Un README puede contener: propósito, archivos de entrada, resultado esperado y cómo verificar. Quien llegue después entiende la tarea sin depender de la conversación original.
Abra materiais/README-projeto.md. Copie el modelo a su proyecto y reemplace cada campo por información real o “a definir”.
Lección 20 · OSWork v6.2 · INEMA.CLUB PRO
Módulo 4 · Lección 3 de 6

Puedes poner en la carpeta config los cuatro archivos de memoria del kit. Y puedes decir en cuál vive cada nota.
Un documento gigante con todo termina siendo una pila que nadie consulta. Peor: una regla antigua convive con la nueva, y la IA no sabe cuál vale. Un archivo por función lo resuelve.
En 1 minuto
La secretaría de la escuela no anota todo en un solo cuaderno. Hay el libro de actas, el libro de incidencias y el cuaderno de procedimientos. Cada uno responde a una pregunta diferente.
En la carpeta config, cuatro archivos hacen ese papel. Separados, tú consultas solo lo que necesitas, y la IA también.
Denise buscaba por qué la reunión de padres había cambiado para el sábado. El motivo estaba en un cuaderno de 40 páginas, entre recados y teléfonos. Le llevó media hora encontrarlo.
La preferencia es tu manera estable de trabajar, como "prefiero informes cortos". Vive en memoria.md.
La decisión es una elección con motivo, y el motivo puede cambiar. "Elegimos la planilla porque todo el equipo usa la misma" es decisión. Vive en decisiones.md, con fecha.
Lúcia prefiere ejercicios con la clave al final: eso es memoria. En cambio "las pruebas del 8º año tienen 10 preguntas, porque la coordinación estandarizó" es decisión.
"Prefiero ejercicios con la clave al final."
¿Cambia? Casi nunca. No hace falta un motivo.
"Pruebas del 8º año con 10 preguntas, porque la coordinación estandarizó."
¿Cambia? Puede cambiar; por eso lleva fecha y motivo.
El fallas.md registra un problema, la causa y la corrección más pequeña, es decir, la protección pequeña que evita la repetición. Sirve para consultar cuando el problema vuelva. El dicas.md guarda procedimientos que ya funcionaron.
Pegar el fallas.md entero en cada pedido, "por si acaso", llena la conversación de avisos que no tienen que ver con la tarea. Lo abres cuando el problema aparece de nuevo.
El resumen de las actas salió vacío un lunes. La carpeta de entradas estaba vacía. Denise anotó en fallas.md y pasó a revisar la carpeta antes de pedir.
Cuando una decisión cambia, no reemplaces la línea antigua en silencio. Escribe la nueva con fecha y motivo, y marca la antigua como sustituida.
Así nunca quedan dos reglas contradictorias valiendo al mismo tiempo. Y quien lee entiende el camino que hizo la decisión.
En octubre, las pruebas de Lúcia pasaron a 12 preguntas, con dos de lectura de gráfico. Agregó la línea nueva y marcó la de agosto como sustituida.
Ponte a prueba
"El resumen se quedó a medias porque el archivo era enorme; dividirlo en partes lo resolvió." ¿Dónde vive esa nota?
Si te trabaste aquí, es normalA veces una nota parece caber en dos archivos. Pregunta: ¿dice cómo me gusta a mí, lo que elegimos, cómo se hace o lo que salió mal? La primera respuesta que te sirva decide.
Practica ahora 0/3
Listo cuando el ls muestre los cuatro archivos y tú hayas escrito, en el papel, el archivo de cada una de las cinco notas. Cerca de 10 minutos, en la computadora, en el terminal del módulo 3.
Los modelos son archivos de texto del kit del curso, y las notas son ficticias. Si ya escribiste en alguno de esos cuatro archivos, salta su línea: el curl sobrescribe un archivo con el mismo nombre. ¿Una línea falló? El curl muestra un mensaje de error justo debajo; ejecuta solo esa otra vez. ¿No hiciste la lección 1 de este módulo? Ejecútala antes: mkdir -p ~/projetos/config
cd ~/projetos/config curl -fsSL https://inematds.github.io/oswork/materiais/memoria.md -o memoria.md curl -fsSL https://inematds.github.io/oswork/materiais/decisoes.md -o decisoes.md curl -fsSL https://inematds.github.io/oswork/materiais/dicas.md -o dicas.md curl -fsSL https://inematds.github.io/oswork/materiais/falhas.md -o falhas.md ls
Las cinco notas (ficticias): 1) "Prefiero avisos a las familias en hasta cinco líneas." 2) "Boletim va en PDF desde septiembre, porque no todas las familias abren planilla." 3) "Para juntar las atas del mes: pide primero la lista de los archivos leídos y después el resumen." 4) "El resumen de la reunión trajo una fecha que no estaba en el acta; la corrección fue pedirle a la IA que deje un espacio en blanco cuando falte la fecha." 5) "Los informes siempre con las pendientes al final."
Acabas de armar la carpeta config y darle a cada nota su lugar.
Cola de la lección
memoria.md registra preferencias estables; decisoes.md explica elecciones; dicas.md guarda procedimientos útiles; falhas.md documenta problemas y correcciones. No coloque todo en un documento gigante. Cuando una decisión cambia, registre fecha y motivo para no mantener reglas contradictorias.
Separar funciones facilita consultar solo lo necesario. Un historial de fallas no debería convertirse en una lista de comandos obligatorios en toda tarea. Conocimiento consultable e instrucciones permanentes son cosas diferentes.
Memoria selectiva; decisiones fechadas; procedimiento; historial.
“Prefiero reportes cortos” es preferencia. “Elegimos CSV por ser compatible con la planilla del equipo” es decisión. “El servicio se detuvo sin supervisión” pertenece a las fallas.
Lección 21 · OSWork v6.2 · INEMA.CLUB PRO
Módulo 4 · Lección 4 de 6

Puedes crear el .env.example del proyecto de práctica, con los nombres de las variables y valores ficticios. Ningún valor real entra en él.
Una contraseña pegada en un documento, en una captura o en un pedido se vuelve acceso para quien la lee. Y sigue valiendo después de que termina la conversación. Separar el secreto del resto te deja compartir la carpeta sin miedo.
En 1 minuto
En la portería de la escuela, el tablero de llaves muestra qué salones existen. Nadie se preocupa por esa lista a la vista. Con las llaves es diferente: quien toma la llave abre el salón.
Una credencial funciona como la llave. Una contraseña, una clave de API o el token del bot hacen que quienes los tienen puedan actuar en nombre de tu cuenta.
Denise iba a enviar al grupo del equipo una captura de la configuración del sistema de notas. Antes de enviarla, vio la contraseña de toda la coordinación en la esquina de la imagen.
Lo que muestra: la pantalla de configuración, con la contraseña visible.
Resultado: las 30 personas del grupo pasan a tener acceso.
Lo que muestra: la misma pantalla, con la contraseña cubierta antes de enviar.
Resultado: el equipo ve lo que necesita, y el acceso sigue solo con la coordinación.
El archivo .env guarda variables: un nombre, un signo de igual y un valor. Por ejemplo, TELEGRAM_BOT_TOKEN o DATABASE_URL, la dirección de una base de datos, con la contraseña dentro.
No está cifrado. Cualquiera que tenga acceso al archivo puede leer lo que hay dentro. Por eso se queda solo en tu máquina. En el módulo 7, el comando chmod deja la lectura solo para ti.
En el módulo 7, Lúcia va a crear un bot de consulta para el grupo. Su token vive en el .env de la carpeta del proyecto, y en ningún otro lugar.
El .env.example tiene los mismos nombres, con valores ficticios. Quien recibe el proyecto ve lo que necesita completar, pero no gana acceso a nada.
El kit del curso trae TELEGRAM_BOT_TOKEN=preencha_localmente. Cambias el valor solo en tu copia privada, el .env. Con el valor de ejemplo, ningún bot funciona.
Denise pasó el proyecto de reportes a la subdirectora con el .env.example. La subdirectora completó su propio .env con la contraseña que recibió de secretaría.
TELEGRAM_BOT_TOKEN=preencha_localmente
DATABASE_URL=preencha_localmente
TELEGRAM_BOT_TOKEN=[el token real]
DATABASE_URL=[la dirección real]
Si te atascaste aquí, es normalLos dos nombres parecen gemelos. Recuerda así: lo que termina en example es el ejemplo, que puede circular. El otro es el real, que se queda en casa.
El valor real no va en capturas, en ejemplos del curso ni en archivos enviados a la IA sin necesidad. Para ayudar, la IA casi siempre necesita solo saber que la variable existe.
¿Pegaste una clave por error? Borrar el mensaje no basta. Cambia la clave en el sitio donde la generaste, en el área de seguridad o en las claves de la cuenta. Si nunca generaste una clave, guarda la regla para cuando generes una.
El reporte de Lúcia no se conectaba a la hoja de la escuela. En vez de pegar el .env, le contó a la IA qué variables estaban completadas.
TúEl informe no conecta. Mi .env: DATABASE_URL=[dirección real con la contraseña dentro]
IAVeamos. Voy a usar esta dirección para probar la conexión…
La contraseña ahora está en el historial de la conversación.
TúEl informe no conecta. En mi .env, DATABASE_URL está completa. ¿Qué reviso, sin enviarte el valor?
IAVerifica que la dirección esté completa y que la contraseña que contiene siga siendo válida. No necesito que me mandes el valor.
La ayuda es la misma, y el secreto se queda en casa.
Ponte a prueba
Una colega va a probar tu proyecto en su computadora. ¿Qué le mandas?
Practica ahora 0/3
Listo cuando el gato muestre los dos nombres con el valor: completa_localmente y que el ls -a liste el .env.example. Cerca de 8 minutos, en la computadora, en el terminal.
Los valores son de mentira; ningún acceso real entra al archivo. Nunca reemplaces completa_localmente por un valor real en el .env.example. No crees el .env ahora: solo será necesario en el módulo 7. ¿No hiciste la lección 1 de este módulo? Ejecuta antes: mkdir -p ~/projetos/meu-primeiro-projeto
cd ~/projetos/meu-primeiro-projeto printf '%s\n' 'TELEGRAM_BOT_TOKEN=preencha_localmente' 'DATABASE_URL=preencha_localmente' > .env.example cat .env.example ls -a
TELEGRAM_BOT_TOKEN=preencha_localmente
DATABASE_URL=preencha_localmente
. .. .env.example README.md entradas saidas
Las dos primeras líneas vienen del cat; la última, del ls -a. El orden puede variar, y puede haber otros archivos tuyos.
Acabas de crear el modelo que muestra qué completar sin entregar ninguna clave.
Cola de la lección
Un archivo .env puede guardar variables como TELEGRAM_BOT_TOKEN o DATABASE_URL. No está cifrado: cualquier persona con acceso al archivo puede leerlo. Use permisos adecuados y nunca incluya valores reales en capturas de pantalla, ejemplos de curso o archivos enviados a la IA sin necesidad.
Las credenciales permiten actuar en nombre de una cuenta. Separar el modelo .env.example, sin valores reales, del .env local permite compartir la estructura sin distribuir acceso.
Variable; secreto; .env.example; lectura en tiempo de ejecución.
El kit incluye TELEGRAM_BOT_TOKEN=rellene_localmente. El alumno sustituye eso solo en su copia privada. Ningún bot queda autenticado con este ejemplo.
Crea .env.example con nombres de las variables y valores ficticios. Mantén .env fuera del repositorio y nunca pegues tu clave en el chat.
Mezclar la copia de entrenamiento con archivos privados o trabajo en producción.
Lección 22 · OSWork v6.2 · INEMA.CLUB PRO
Módulo 4 · Lección 5 de 6

Puedes crear el .gitignore antes del primer commit. Y puedes señalar la línea que deja el .env fuera y la que mantiene el .env.example.
En el módulo 6, el Git va a guardar versiones de tu carpeta. Lo que entra en una versión se queda en el historial. Por eso la lista de lo que nunca entra va antes de la primera versión.
En 1 minuto
Cada versión guardada por Git se llama commit. El .gitignore es un archivo de texto, en la carpeta del proyecto, con la lista de lo que el Git debe dejar fuera.
Entra en esa lista el .env, sus variantes privadas y las carpetas temporales que los programas crean solos.
En el proyecto de informes, Denise puso el .env en la lista antes de guardar la primera versión. El archivo con la contraseña del sistema de notas nunca entró en el historial.
README.md, .env.example y los demás archivos del trabajo.
.env, claves, contraseñas y carpetas temporales.
Quién decide: el .gitignore, escrito antes de la primera versión.
La línea .env toma el archivo .env. La línea .env.* toma variantes como .env.local: el asterisco vale para cualquier final. La línea que empieza con ! abre una excepción.
Así, !.env.example devuelve el ejemplo a la lista de lo que se guarda. Las últimas líneas cubren carpetas y archivos temporales que algunos programas crean solos. No necesitas tocar esas líneas.
Lúcia se sorprendió con la exclamación en la tercera línea del archivo del kit. Era ella quien mantenía el .env.example en el proyecto, para que la compañera de matemática supiera qué completar.
El .gitignore no vale para un archivo que ya se guardó, el archivo rastreado. Si el .env ya entró en un commit, la línea escrita después no lo saca del historial.
Es como el maletín de la secretaría: el papel que no debe irse no sale de la pila antes de cerrar. Después de que el maletín salió, tachar el papel de la lista no lo devuelve.
Una compañera de Denise puso el .env en el .gitignore una semana después de la primera versión. El archivo con la contraseña seguía ahí, en la versión antigua.
Si una clave se publicó, la primera corrección es revocar la clave en el origen, o sea, cancelarla en el sitio que la creó. Esto queda en el área de claves o de seguridad de la cuenta, como la página de claves de la plataforma de la API. Borrar la línea del archivo no invalida una copia que alguien ya vio.
Recién después viene la corrección del historial, según el caso. El módulo 6 muestra cómo.
La clave de API de un proyecto de Lúcia apareció en una versión compartida con el equipo. Ella canceló la clave en el sitio de la plataforma en el mismo minuto y creó otra. Solo entonces se ocupó del archivo.
Qué hiciste: sacaste la clave del archivo.
Resultado: la clave antigua sigue funcionando para quien copió.
Qué hiciste: cancelaste en el origen, creaste otra y luego limpiás el archivo.
Resultado: la copia que se filtró ya no abre nada más.
Balance: el riesgo termina cuando la clave muere, y no cuando el archivo cambia.
Ponte a prueba
Ya se publicó una clave en una versión. ¿Poner el .env en el .gitignore ahora lo resuelve?
Si te trabaste aquí, es normalEl Git solo llega al módulo 6. Hoy basta con que el .gitignore esté listo en la carpeta. Cuando guardes la primera versión, ya estará en su lugar.
Practica ahora 0/3
Listo cuando el cat -n muestre las líneas .env y !.env.example y el ls -a liste el .gitignore. Aproximadamente 8 minutos, en la computadora, en el terminal.
El modelo es un archivo de texto del kit del curso y no guarda nada por sí solo: solo se vuelve regla cuando el Git entre, en el módulo 6. Ojo: la segunda línea reemplaza un .gitignore que ya exista en esa carpeta. ¿No hiciste la lección 1 de este módulo? Primero ejecuta: mkdir -p ~/projetos/meu-primeiro-projeto
cd ~/projetos/meu-primeiro-projeto curl -fsSL https://inematds.github.io/oswork/materiais/gitignore.txt -o .gitignore cat -n .gitignore ls -a
1 .env
2 .env.*
3 !.env.example
4 __pycache__/
5 *.pyc
6 node_modules/
7 .verificacao/
Esta es la respuesta del cat -n. Las líneas 4 a 7 son temporales de programas; quedan como están. La línea 1 deja el .env fuera; la línea 3 mantiene el .env.example.
Acabas de poner la lista de lo que nunca entra al historial antes de que exista la primera versión.
Cola de la lección
El .gitignore lista archivos que el Git debe ignorar cuando todavía no se están rastreando. Incluye .env, variantes privadas y carpetas temporales. Mantén una excepción explícita para .env.example. Antes de guardar una versión, revisa git status y los archivos preparados.
Ignorar después no borra un secreto del historial. Si la clave se filtró, la primera corrección es revocar o rotar en la fuente; eliminar la línea del archivo no invalida una copia ya vista.
Archivos rastreados; patrones de exclusión; revisión de cambios; revocación.
Patrones útiles: .env, .env.*, !.env.example, __pycache__/. Para descubrir qué regla se aplica, use git check-ignore -v .env.
Copie materiais/gitignore.txt como .gitignore antes de git add. Verifique que .env.example siga disponible y .env no aparezca entre los archivos nuevos.
Lección 23 · OSWork v6.2 · INEMA.CLUB PRO
Módulo 4 · Lección 6 de 6

Puedes agregar al README una sección “Lee primero” con tres rutas que existen y están al día.
Tener memoria en la carpeta no basta: la IA no abre sola cada archivo que existe ahí. Y un archivo viejo estorba más que ninguno, si trae un proceso que ya cambió. Limpiar el contexto es esto: elegir qué lee la IA y mantener ese material al día.
En 1 minuto
La IA no lee automáticamente todo el archivo Markdown del computador. Tú dices qué documentos debe consultar.
Cuando una referencia sirve para toda la tarea del proyecto, va en el AGENTS.md, el archivo de instrucciones del proyecto. El módulo 5 se encarga de eso.
Denise pidió el borrador del informe del consejo sin citar ningún archivo. La IA no consultó el decisoes.md, y el formato salió diferente de lo que el equipo había decidido.
TúArma el borrador del informe del consejo.
IAAquí tienes un borrador en tabla, con el promedio de cada grupo y tres recomendaciones…
Formato por cuenta propia y números que nadie proporcionó.
TúLee README.md y ../config/decisoes.md. Después arma el borrador del informe del consejo, sin inventar datos.
IALeí ambos archivos. Seguiré el formato registrado en decisoes.md y listaré como pendientes lo que no esté en las entradas.
La respuesta dice lo que leyó y sigue la decisión del equipo.
En el README, la sección “Lee primero” lista los archivos que cualquier tarea del proyecto debe abrir antes. Tres rutas bastan.
Escribe cada ruta a partir de la carpeta del proyecto. El “##” hace subtítulo, como en la lección 2 de este módulo. Lee ../ como “sube una carpeta”: de mi-primer-proyecto subes a proyectos y, desde ahí, entras en config.
En el proyecto de la feria de ciencias, Lúcia puso el reglamento de la feria en segundo lugar. En tu proyecto de entrenamiento, usa las tres rutas del cuadro de abajo.
El mural de la sala de profesores con el aviso de una reunión de marzo confunde más que un mural vacío. Con la memoria de la IA pasa lo mismo.
Un archivo antiguo puede traer la dirección de un servicio o un proceso que ya cambió. Antes de una tarea, actualiza la decisión vencida y saca de la carpeta de trabajo lo que no te sirve.
El decisoes.md de Lúcia todavía decía "pruebas con 10 preguntas". La IA armó la prueba con 10. Agregó la línea nueva y marcó la antigua como sustituida, como en la lección 3 de este módulo.
decisoes.md: solo la línea de agosto, pruebas con 10 preguntas.
Resultado: la IA arma la prueba en el formato antiguo.
decisoes.md: la línea de octubre, con 12 preguntas, y la de agosto marcada como sustituida.
Resultado: la prueba sale con 12 preguntas.
Saldo: una línea actualizada evitó rehacer toda la prueba.
Al empezar una tarea, pide que se lea el README y la decisión que importa. No cargues listas de contactos ni contraseñas solo porque están en la misma carpeta.
Revisa de vez en cuando. Primero confirma si cada ruta existe; luego abre el archivo y mira si todavía describe la situación de hoy.
Denise puso en la agenda de la coordinación: todos los primeros lunes del mes, diez minutos para revisar el Leia primeiro del proyecto del consejo.
$ ls AGENTS.md ../config/decisoes.md ../config/memoria.md
AGENTS.md ../config/decisoes.md ../config/memoria.md
Las tres rutas existen. Si faltara una, el ls avisaría con "No such file or directory", y el Leia primeiro estaría mal.
Si te trabaste aquí, es normal¿El ls respondió "No such file or directory"? Revisa el nombre letra por letra, con punto y barra. ¿Siguió? El archivo todavía no existe: la práctica te dice en qué lección se crea.
Practica ahora 0/4
Listo cuando el ls liste las tres rutas sin error, el README tenga la sección Leia primeiro y los dos archivos de config tengan la fecha de hoy. Cerca de 10 minutos, en la computadora, en el terminal.
Los archivos son del kit del curso, con datos ficticios. No se sustituye nada: la segunda línea solo baja el AGENTS.md del kit si la carpeta todavía no lo tiene. ¿El último ls mostró "No such file or directory"? Vuelve a la lección que crea lo que falta: README en la lección 2 de este módulo, config en la lección 3.
cd ~/projetos/meu-primeiro-projeto ls AGENTS.md || curl -fsSL https://inematds.github.io/oswork/materiais/AGENTS-projeto.md -o AGENTS.md ls AGENTS.md ../config/decisoes.md ../config/memoria.md nano README.md
$ ls AGENTS.md ../config/decisoes.md ../config/memoria.md
AGENTS.md ../config/decisoes.md ../config/memoria.md
$ nano ../config/memoria.md
Tres rutas listadas, en cualquier orden, y ninguna advertencia de error. Después, el nano abre cada archivo de config para la fecha.
Acabas de decir, por escrito, lo que la IA debe leer primero, y verificaste que todo existe y está al día.
Cola de la lección
La IA no lee automáticamente todo archivo Markdown existente en el ordenador. Indique qué documentos consultar y mantenga referencias en AGENTS.md cuando sean necesarias. Antes de una tarea, elimine datos irrelevantes de la copia de trabajo y actualice decisiones vencidas.
La memoria útil necesita ser encontrada y estar correcta. Un archivo antiguo puede entorpecer más que no tener memoria si trae una dirección de servicio o proceso que ya cambió.
Selección de contexto; fecha; fuente de verdad; revisión periódica.
Al iniciar un informe, solicite lectura de README.md y de la decisión sobre formato. No cargue listas de contactos ni credenciales porque están en la misma carpeta.
Agrega al README una sección “Leia primeiro” con tres rutas reales. Abre cada caminho y verifica si describe la situación actual.
Usa archivos ficticios y una carpeta de entrenamiento. Las prácticas con instalación, Telegram o VPS pueden requerir tiempo adicional para registro y configuración.
Lea el bloque antes de usar. Campos como Su Nombre y usuario@ip-de-vps son ejemplos para adaptar; los comandos administrativos pertenecen solo a su entorno de entrenamiento.
~/projetos/
├── config/
│ ├── memoria.md
│ ├── falhas.md
│ ├── dicas.md
│ └── decisoes.md
└── meu-primeiro-projeto/
├── AGENTS.md
├── README.md
├── .gitignore
├── entradas/
└── saidas/Montar la casa digital y separar conocimiento de credenciales. Registre el archivo producido, la prueba ejecutada y el resultado observado.
Use esta rúbrica después del laboratorio. Cada línea pide una evidencia; marcar lectura no significa que la práctica se haya ejecutado.
Agregar .env al .gitignore quita automáticamente una clave ya publicada?
No. Revoca la clave expuesta y corrige el historial según el caso; ignorar solo previene nuevos archivos no rastreados.
Si su respuesta fue diferente, vuelva al tema correspondiente y escriba la diferencia en una frase. La verificación no bloquea su estudio.
Herramientas verificadas el 20/09/2026; los nombres de pantallas y la disponibilidad pueden cambiar.
Lección 24 · OSWork v6.2 · INEMA.CLUB PRO
Módulo 5 · Lección 1 de 6

Puedes reescribir el AGENTS.md de tu carpeta de práctica con cinco reglas cortas, y decir, para cada una, cómo compruebas si se cumplió.
Cada conversación nueva con el agente empieza desde cero. Sin un archivo de instrucciones, repites los mismos avisos en cada pedido. Y una instrucción vaga, tipo "esfuérzate", no cambia nada en lo que hace.
En 1 minuto
En un laboratorio de ciencias, la placa en la puerta dice cómo trabajar ahí dentro. El AGENTS.md hace lo mismo para una carpeta de proyecto. El Codex busca ese archivo solo cuando empieza a trabajar en la carpeta.
Es un archivo de texto en Markdown. Lo abres y lo editas en el bloc de notas, como cualquier texto.
Lúcia creó la carpeta de práctica en el módulo 3 y la completó en el módulo 4. Ahí dentro, al lado del README, está el AGENTS.md. Es el primer archivo que ella va a mejorar.
Cuatro temas caben en el AGENTS.md: por dónde empezar a leer, cómo comprobar el resultado, qué no hacer y el formato de la entrega. La historia de la escuela y los motivos de cada decisión quedan fuera.
Un archivo corto se lee entero. Un archivo largo esconde la regla que importa en medio de los párrafos.
Denise abrió el AGENTS.md que había escrito para el proyecto de las actas. Eran dos párrafos sobre la fundación de la escuela y solo una regla de trabajo. Ella borró los párrafos.
"La escuela se fundó en 1987 y siempre valoró la comunicación con las familias. Por eso, es muy importante que todo se haga con cuidado."
"1. Lee README.md antes de alterar."
"2. Usa solo entradas/ y salidas/."
"3. Describe lo que cambiaste y cómo lo comprobaste."
Haz la prueba del cartel. "Usa anteojos de protección antes de empezar el experimento" se puede comprobar mirando. "Ten cuidado" no.
En el AGENTS.md vale lo mismo. Una buena regla pide una acción y deja una evidencia que puedes ver en la entrega.
En el informe de práctica, Lúcia cambió "sé excelente" por una regla de comprobación. En la siguiente entrega, el agente escribió la suma y la diferencia encontrada. Ella lo comprobó en un minuto.
"Sé excelente."
Cómo comprobar: no hay forma.
"Compara el total del informe con ventas.csv e indica la diferencia."
Cómo comprobar: la entrega trae la suma y la diferencia.
Ponte a prueba
¿De cuáles reglas puedes comprobar mirando la entrega del agente?
Empieza con cinco reglas y pasa cada una por la pregunta: ¿puedo observar si se cumplió? Si la respuesta es no, reescríbela con una acción. Si la regla no cambia nada en el trabajo, bórrala.
El cuadro de abajo es el modelo del curso, con reglas así. Tú adaptas el propósito a tu carpeta.
Denise partió de estas cinco reglas para el AGENTS.md de las actas y cambió solo los nombres de las carpetas. La más útil: "No inventes datos faltantes: describe la pendiente."
Si te trabaste aquí, es normalEscribir una regla observable parece difícil la primera vez. Usa la frase de prueba: "voy a saber que se cumplió porque en la entrega aparece ___". Si no puedes completar el espacio en blanco, la regla aún está vaga.
Practica ahora 0/3
Listo cuando el AGENTS.md tenga cinco reglas y, al lado de cada una, la evidencia que vas a ver en la entrega. Unos 10 minutos, en la computadora.
Tú solo editas un archivo de texto de la carpeta de práctica; no se ejecuta nada. ¿No tienes la carpeta? En tu carpeta personal, crea proyectos y, dentro de ella, mi-primer-proyecto. ¿Creando el AGENTS.md desde cero? En la ventana Guardar como, elige el tipo "Todos los archivos" y escribe el nombre completo, para que no se vuelva AGENTS.md.txt. Si una regla no pasa la prueba, reescríbela o bórrala; no existe una respuesta única.
# Instrucciones del proyecto de práctica Propósito: <ej.: borradores de informe a partir de datos ficticios> 1. <regla> (confirma porque en la entrega aparece: <evidencia>) 2. <regla> (confirma porque en la entrega aparece: <evidencia>) 3. <regla> (confirma porque en la entrega aparece: <evidencia>) 4. <regla> (confirma porque en la entrega aparece: <evidencia>) 5. <regla> (confirma porque en la entrega aparece: <evidencia>)
Cambia todo lo que está entre < y >, incluyendo los signos. Lo que queda entre paréntesis es tu verificación: puede quedarse en el archivo y no le estorba al agente.
Propósito: borradores de listas de ejercicios de ciencias a partir de mis clases.
Regla: usa solo los archivos de la carpeta entradas. Confirma porque la entrega lista las fuentes, y todas están en entradas.
Regla: marca con [conferir] toda respuesta del ejercicio que no esté en el material. Confirma porque veo las marcas en el borrador.
Acabas de transformar avisos sueltos en reglas que puedes verificar en la entrega.
Cola de la lección
AGENTS.md es el archivo de instrucciones que Codex descubre en el ámbito aplicable. Describe cómo trabajar: archivos iniciales, comandos de verificación, límites y formato de entrega. No es necesario explicar toda la historia de la organización; prefiera reglas cortas que alteren una decisión real.
Las instrucciones objetivas evitan repetir los mismos detalles en cada conversación. El archivo debe ayudar al agente a elegir una acción concreta, como verificar el informe antes de considerarlo finalizado.
Instrucción operativa; alcance; regla observable; concisión.
“Sé excelente” es difícil de probar. “Compare el total del informe con vendas.csv e indique la diferencia” define una acción y su evidencia.
Escriba cinco reglas. Para cada una, pregunte: ¿puedo observar si se cumplió? Elimine orientaciones que no cambian el trabajo.
Aceptar una conclusión sin comprobar la entrada que la sustenta.
Lección 25 · OSWork v6.2 · INEMA.CLUB PRO
Módulo 5 · Lección 2 de 6

Puedes decir qué archivos de instrucción valen en una carpeta. Y puedes verificar el resumen que el Codex hace de ellos contra los archivos de verdad.
A veces el agente sigue una regla que no recuerdas haber escrito. Otras veces ignora una que escribiste, pero en otra carpeta. Antes de culpar al modelo, vale saber de dónde viene cada instrucción.
En 1 minuto
El reglamento vale en toda la escuela. Lo acordado del grupo vale en el aula. Con el AGENTS.md es igual: por defecto, el global queda en la carpeta oculta .codex, dentro de tu carpeta personal. El del proyecto queda en la carpeta del proyecto.
En el terminal, el signo ~ es el atajo para tu carpeta personal. Las carpetas con nombres que empiezan con punto se ocultan.
Denise quiere que el agente siempre cuente lo que verificó, en cualquier proyecto. Esta regla fue para lo global. "Compara el total con la planilla de frecuencia" solo tiene sentido en el proyecto de la frecuencia.
Una subcarpeta puede tener su propio AGENTS.md. Con el Codex abierto ahí, los dos valen, y la instrucción más cercana prevalece, como el acuerdo de un laboratorio dentro de la escuela.
"Puede" porque vale para lo que trata. Lo que la regla de cerca no menciona sigue viniendo del archivo de arriba.
Lúcia creó una subcarpeta de pruebas en el proyecto de ciencias, con un AGENTS.md que pide la clave por separado. Cuando ella abre Codex dentro de pruebas, esa regla vale. Abierto en las listas de ejercicios, no.
Todavía existe el AGENTS.override.md. En la misma carpeta, el Codex lee el override e ignora el AGENTS.md. ¿No creaste ninguno? Perfecto. Pero puede venir en una carpeta copiada de un colega y, olvidado ahí, explica mucho comportamiento extraño.
Ninguno de estos archivos supera tres cosas. Las instrucciones del sistema, que son las reglas de fábrica de la herramienta. Los permisos, que tú apruebas o rechazas, como en el módulo 3. Y lo que pides de forma explícita en la conversación. Ellos orientan; no liberan lo que la herramienta bloquea.
El AGENTS.md de Denise dice "entrega en viñetas". Hoy ella pidió, en la conversación, un párrafo corrido para el correo de la dirección. Vale el pedido de hoy.
Cómo trabajar en la carpeta cuando el pedido no dice nada: fuentes, verificación, formato.
Las instrucciones del sistema.
Los permisos de la herramienta.
Tu pedido explícito en la sesión.
Ponte a prueba
El global dice "responde en viñetas". El AGENTS.md del proyecto no habla de formato. En la conversación, tú pides una tabla. ¿Qué vale?
Dentro de la carpeta, pídele a Codex que resuma las instrucciones que cargó y diga de qué archivo salió cada una. Después abre los archivos y compara.
¿El resumen cita una regla que no está en ningún archivo? ¿O se olvida una que sí está? Ahí encontraste la causa antes de culpar al modelo.
Lúcia pidió el resumen en la carpeta de entrenamiento. Llegó la regla "relate lo que verificó", que ella no había escrito allí. Estaba en el global, que creó en marzo y olvidó.
TúResume las instrucciones que cargaste para esta carpeta y di de qué archivo vino cada una. No alteres nada.
IADel global: relata lo que verificaste. De AGENTS.md de esta carpeta: lee README.md y lista las fuentes antes de alterar; usa solo entradas/ y saidas/; no inventes datos faltantes; compara los totales antes de entregar; no envíes ni publiques sin instrucción explícita. No alteré ningún archivo.
Cada regla con su origen. Ahora ya puedes abrir los dos archivos y verificar.
Si te trabaste aquí, es normalNo encontraste la carpeta .codex? Está oculta, y quizá nunca hayas creado un global. Está bien: en ese caso, solo vale el AGENTS.md del proyecto, y en la práctica se ve cómo verificarlo.
Practica ahora 0/3
Listo cuando hayas anotado cada regla del resumen de Codex y el archivo donde la encontraste. Cerca de 10 minutos, en la computadora, con la terminal del módulo 3.
Los tres comandos solo leen y listan; no se altera nada. El pedido al Codex dice "no alteres nada". Si el Codex pide autorización para cambiar algún archivo, recházalo. ¿Todavía no está el Codex? Haz solo los pasos 1 y 2 y anota lo que encontraste.
$ cd ~/projetos/meu-primeiro-projeto
$ ls -a
. .. AGENTS.md README.md entradas saidas
$ cat ~/.codex/AGENTS.md
cat: /home/seu-nome/.codex/AGENTS.md: No such file or directory
El ls -a también lista los archivos ocultos; el punto y los dos puntos del inicio representan la propia carpeta y la de arriba, puedes ignorarlo. Busca un AGENTS.override.md: si aparece, ábrelo y mira si todavía debe existir. La última línea, en inglés, dice "el archivo o la carpeta no existe": no hay global. Si el archivo existe, el cat muestra su texto.
Resume las instrucciones que cargaste para esta carpeta y di de qué archivo vino cada una. No alteres nada.
Acabas de rastrear de dónde viene cada instrucción que el agente sigue en esa carpeta.
Cola de la lección
Por defecto, ~/.codex/AGENTS.md guarda instrucciones globales. En el proyecto, AGENTS.md añade reglas específicas; los archivos en carpetas más cercanas pueden prevalecer en el ámbito correspondiente. AGENTS.override.md tiene prioridad sobre AGENTS.md en el mismo nivel. Esto no supera instrucciones del sistema, permisos o la solicitud explícita de la sesión.
la ruta importa. Una regla local puede no aplicarse a otra carpeta, y un override olvidado puede explicar un comportamiento inesperado. Mantén el global pequeño y deja los detalles locales en el proyecto.
Descubrimiento; jerarquía; alcance de directorio; override.
Global: “relate os testes executados”. Proyecto: “valida el CSV con python3 validar.py”. Las dos instrucciones colaboran; no hace falta repetir el script de cada proyecto en el archivo global.
Pida a Codex que resuma las instrucciones que cargó. Verifique la respuesta contra los archivos reales antes de atribuir un error al modelo.
Lección 26 · OSWork v6.2 · INEMA.CLUB PRO
Módulo 5 · Lección 3 de 6

Puedes crear la Skill relatorio-semanal en la carpeta de entrenamiento, con el nombre y la descripción al comienzo del archivo. Y puedes comprobar que está en el lugar correcto.
Hay tareas que le explicas al agente cada semana, paso a paso, de la misma manera. Pegar todo eso en el AGENTS.md hace que el archivo sea enorme. Y el agente pasa a cargar el manual entero incluso en tareas que no lo necesitan.
En 1 minuto
La placa de la puerta del laboratorio vale todos los días. El guion del experimento sale del fichero solo el día de ese experimento. El AGENTS.md es la placa. La Skill es el guion.
Una Skill reúne las instrucciones de una actividad que se repite. El agente se activa cuando la tarea lo pide.
Lúcia explicaba todos los viernes al agente cómo montar la lista semanal de ejercicios: leer la lección, elegir cinco cuestiones, separar la clave de respuestas. Ese paso a paso se volvió una Skill. El archivo AGENTS.md siguió con cinco reglas.
"Usa solo entradas/ y salidas/."
Vale para toda tarea de la carpeta.
"1. Lee la lección de la semana. 2. Elige cinco cuestiones. 3. Separa la clave de respuestas."
Entra solo cuando la tarea es la lista semanal.
La Skill vive en una carpeta con su nombre, en un archivo llamado SKILL.md. En la parte superior, entre dos líneas de tres guiones, vienen el nombre y la descripción. Ese bloque es el encabezado.
Después del encabezado viene el procedimiento: qué entra, los pasos, qué sale y cómo comprobarlo. En el terminal, un comando muestra el comienzo del archivo.
Antes de escribir la Skill de la lista, Lúcia abrió la Skill de informe del curso, la misma de la práctica, para entender el formato. En cuatro líneas, supo el nombre, cuándo usarla y cuándo no usarla.
$ head -4 .agents/skills/relatorio-semanal/SKILL.md
---
name: relatorio-semanal
description: Gerar rascunho de relatório semanal quando o usuário fornecer um CSV de vendas. Não usar para enviar relatórios ou tratar credenciais.
---
El comando de la primera línea muestra las cuatro primeras líneas del archivo. Las líneas de guiones abren y cierran el encabezado.
La descripción es lo que el agente lee para decidir si activa la Skill. Necesita decir en qué situación usarla. Y también vale decir dónde termina la Skill.
En esa descripción, "credenciales" son contraseñas y claves de acceso: la Skill no las toca.
La primera descripción de la Skill de informe de Denise era "ayuda con informes". El agente activó la Skill incluso en un pedido de acta de reunión. Ella la reescribió diciendo la situación y el límite, del mismo modo que la tarjeta.
"Ayuda con informes."
¿Cuándo usar? ¿Cuándo no usar? No lo dice.
"Generar un borrador de informe semanal cuando el usuario proporcione un CSV de ventas. No usar para enviar informes o para tratar credenciales."
Ponte a prueba
¿Qué descripción ayuda al agente a decidir cuándo activar la Skill del acta?
La Skill del proyecto queda en .agents/skills, dentro de la carpeta del proyecto. La Skill personal, que quieres en todos los proyectos, queda en ~/.agents/skills. La carpeta ~/.codex es del Codex: guarda la configuración y el AGENTS.md global de la lección anterior. La Skill no va ahí.
La Skill de las actas solo sirve para el proyecto de las actas: Denise la guardó en el proyecto. La Skill de revisar ortografía la usa para todo: fue a la carpeta personal.
Si te trabaste aquí, es normalLas carpetas que empiezan con punto quedan ocultas, y el administrador de archivos no las muestra. Por eso la práctica crea la carpeta con el terminal y la verifica con un comando. No necesitas verla en la ventana.
Practica ahora 0/3
Listo cuando el último comando muestre las cuatro líneas del encabezado. Cerca de 10 minutos, en la computadora, con el terminal.
Los comandos solo crean una carpeta nueva y mueven un archivo tuyo dentro; no se borra nada. ¿No tienes la carpeta de práctica de los módulos 3 y 4? Crea una con mkdir -p ~/projetos/meu-primeiro-projeto y sigue igual. Si aparece "No such file or directory", revisa que estés en la carpeta correcta con pwd.
--- name: relatorio-semanal description: Generar un borrador de informe semanal cuando el usuario proporcione un CSV de ventas. No usar para enviar informes ni para manejar credenciales. --- # Informe semanal ## Entrada CSV indicado por el usuario, que contiene producto y valor. Usa solo fuentes explícitamente autorizadas. ## Procedimiento 1. Lee README.md y las instrucciones del proyecto. 2. Verifica el encabezado, el número de líneas y los valores; explica los campos inválidos. 3. Calcula los totales con una herramienta de cálculo disponible, sin inventar ausencias. 4. Produce salidas/relatorio.md con fuentes, total conocido, registros válidos y pendientes. 5. Verifica el total contra la suma de los registros. 6. Reporta la verificación y detente antes de enviar o publicar. ## Pruebas de comportamiento - Datos completos: el total es consistente con la suma. - Datos incompletos: la pendiente es visible, sin números inventados. - Pedido fuera del alcance: explica la limitación; no ejecutes acciones externas.
$ cd ~/projetos/meu-primeiro-projeto
$ ls
AGENTS.md README.md SKILL.md entradas saidas
$ mkdir -p .agents/skills/relatorio-semanal
$ mv SKILL.md .agents/skills/relatorio-semanal/
$ head -4 .agents/skills/relatorio-semanal/SKILL.md
El comando ls verifica que el SKILL.md esté ahí. ¿Apareció SKILL.md.txt? Ejecuta mv SKILL.md.txt SKILL.md para corregir el nombre. El mkdir -p crea la carpeta y las de arriba que falten. El mv mueve el SKILL.md dentro de ella. El último comando debe mostrar el encabezado, como en el paso 2.
Acabas de empaquetar un procedimiento que el agente puede reutilizar, en el lugar donde él busca.
Cola de la lección
Una Skill reúne instrucciones de una actividad recurrente, con nombre y descripción al inicio de SKILL.md. Puede incluir recursos y programas de apoyo. Las Skills personales quedan en ~/.agents/skills; las del proyecto pueden quedar en .agents/skills dentro del repositorio. La carpeta ~/.codex sigue siendo la configuración de Codex.
Una regla indica qué respetar; una Skill enseña un procedimiento que puede activarse cuando sea necesario. Separar estos papeles evita cargar todo el manual en todas las tareas.
Nombre; descripción de activación; procedimiento; entrada y salida; validación.
relatorio-semanal recibe un CSV ficticio, calcula un total comprobable y produce un Markdown con pendientes. La descripción deja claro que no envía el resultado automáticamente.
Lección 27 · OSWork v6.2 · INEMA.CLUB PRO
Módulo 5 · Lección 4 de 6

Puedes escribir una memoria corta y fechada, con tres datos útiles. Y puedes pedirle al agente que diga cuál de esos datos usó en una tarea.
Pegar toda la conversación de ayer en cada pedido cansa y vuelve a traer instrucciones que ya cambiaron. Esperar que la IA "recuerde sola" también falla. Un archivo pequeño, con fecha y revisado por alguien, resuelve los dos problemas.
En 1 minuto
El modelo no cambia porque hablaste con él. La memoria operativa del curso es un conjunto de archivos que el agente lee cuando tú lo indicas.
Funciona con dos condiciones: el agente lee la parte que importa, y alguien mantiene el archivo actualizado. En la práctica de esta lección, quien lee es el Codex, abierto en el terminal como en el módulo 3.
Denise creó la carpeta config en el módulo 4, al lado de los proyectos. Ahí quedan los archivos que valen para varios proyectos de la coordinación.
Tres cosas merecen ir a la memoria: hechos estables, decisiones y causas de fallas. Cada frase de cada conversación no merece.
Copiar todo el historial aumenta el volumen y puede traer de vuelta una instrucción antigua. Nadie puede revisar un archivo enorme.
Lúcia registró que los materiales del curso usan un lenguaje accesible y ejemplos ficticios. En la tarea siguiente, indicó ese archivo en vez de repetir toda la conversación sobre el curso.
Doscientas líneas de conversación, de marzo a septiembre.
En medio, "usa el modelo antiguo de lista", que ya cambió.
"Revisado en: 25/09/2026."
"Materiales del 8º año: lenguaje accesible y ejemplos ficticios."
"Lista semanal: cinco preguntas y solucionario separado."
Balance: de doscientas líneas a tres, y ninguna instrucción vencida.
Que el archivo exista en la carpeta no garantiza que el agente vaya a leerlo. Di en el pedido qué archivo consultar.
Y pídele que cite qué hecho usó. Así verificas si la memoria sirvió, en vez de suponer.
Denise pidió el aviso de la reunión de padres indicando la memoria. La respuesta terminó diciendo qué hecho había usado, y ella lo verificó en el archivo.
TúConsulta ../config/memoria.md. Escribe un aviso de tres líneas sobre la reunión de padres; la pauta es el cierre del bimestre. Usa [data] y [horário] en lugar de esos datos. Al final, di qué hecho de la memoria usaste.
IAReunión de padres el día [data], a las [horário]. La pauta es el cierre del bimestre. Contamos con la presencia de todos. Hecho usado: "Avisos a las familias: hasta tres líneas, sin siglas".
El hecho citado está en la memoria de Denise, que aparece en el paso 4, y la respuesta lo respetó: tres líneas, sin siglas, sin inventar la fecha.
Ponte a prueba
Lúcia creó memoria.md en la carpeta config, pero el agente ignoró los hechos. ¿Qué hace primero ella?
Un hecho estable también cambia. Márquelo arriba cuando el archivo se haya revisado. En la próxima revisión, borra lo que venció y confirma el resto.
Anota de dónde viene cada hecho: una reunión, un documento, una decisión. Esto ayuda a comprobar después.
En la revisión de septiembre, Denise borró el hecho "los avisos se imprimen en la mochila". La escuela empezó a enviar los avisos por la aplicación. Cambió la fecha de arriba.
Si te trabaste aquí, es normal ¿No sabes qué hechos escribir? Piensa en lo que más repites para la IA: el público del material, el formato preferido, un cuidado que siempre se te olvida. Tres líneas bastan para empezar.
Practica ahora 0/3
Listo cuando el agente termine la respuesta diciendo qué hecho de la memoria usó, y ese hecho esté en tu archivo. Unos 10 minutos, en la computadora.
Los pasos 2 y 3 usan el terminal y el Codex del módulo 3. ¿El archivo no existe? En la ventana Guardar como, elige el tipo "Todos los archivos" e ingresa el nombre completo, para que el archivo no se vuelva .txt. Escribe solo hechos de trabajo, sin nombre de alumno, contraseña ni dato personal. ¿Sin el Codex? Hazlo en el chat que usas: pega el texto de la memoria al inicio del pedido. Si la respuesta cita un hecho que no está en el archivo, anótalo: es señal de que lo inventó.
# Memoria operativa Revisado en: <fecha de hoy> · próxima revisión: <ej.: fin del bimestre> - <hecho 1> (fuente: <de dónde vino>) - <hecho 2> (fuente: <de dónde vino>) - <hecho 3> (fuente: <de dónde vino>)
Consulta ../config/memoria.md. <tu tarea corta, ej.: escribe un aviso de tres líneas sobre la feria de ciencias; usa [data] en lugar de la fecha>. Al final, di qué hecho de la memoria usaste.
Revisado en: 25/09/2026 · próxima revisión: fin del bimestre.
- Materiales de 8º año: lenguaje accesible y ejemplos ficticios (fuente: conversación con la coordinación).
- Lista semanal: cinco preguntas y solucionario separado (fuente: planificación del bimestre).
- Avisos a las familias: hasta tres líneas, sin siglas (fuente: reunión de la coordinación).
Acabaste de crear una memoria que el agente consulta y que tú puedes verificar.
Cola de la lección
La memoria operativa del curso es un conjunto de archivos consultables, no un cambio en los pesos del modelo. Funciona cuando el agente lee la información relevante y cuando alguien mantiene esa información actualizada. Guarde hechos estables, decisiones y causas de fallas; no preserve cada frase de cada conversación.
Copiar todo el historial aumenta el volumen y puede reintroducir instrucciones antiguas. Una memoria pequeña, datada y revisada ayuda más que un archivo inmenso que nadie puede validar.
Memoria externa; consulta explícita; resumen; validez; fuente.
Una profesora registra que los materiales de la clase usan lenguaje accesible y ejemplos ficticios. En la próxima tarea, indique ese archivo en lugar de repetir toda la conversación sobre la clase.
Incluya en memoria.md tres hechos útiles y una fecha de revisión. En la tarea siguiente, pida que el agente cite qué hecho utilizó.
Mezclar la copia de entrenamiento con archivos privados o trabajo en producción.
Lección 28 · OSWork v6.2 · INEMA.CLUB PRO
Módulo 5 · Lección 5 de 6

Tú puedes registrar una falla en el archivo falhas.md, con síntoma, causa, corrección más pequeña y verificación, y escribir la comprobación que atraparía el problema antes de la próxima ejecución.
Cuando el resultado sale mal, dan ganas de rehacer todo o cambiar de herramienta. Eso consume horas y muchas veces oculta un problema simple. En la escuela, nadie reconstruye la escalera después de un resbalón: pones la cinta en el escalón y verificas si quedó firme.
En 1 minuto
"El informe salió vacío" es el síntoma: lo que tú viste. La causa es el motivo que tú observaste, como "la planilla estaba sin registros". Anota los dos por separado.
Después, la corrección más pequeña y cómo verificar que funciona. Son cuatro columnas de contenido, más la fecha y el tipo, en una sola línea de una tabla en Markdown.
En el proyecto de entrenamiento, Lúcia vio que el informe salía vacío. Antes de tocar cualquier cosa, anotó el síntoma y abrió la planilla de entrada: no tenía ningún registro.
La falla de pedido es cuando el objetivo estaba ambiguo o faltó información. La falla de infraestructura es cuando el texto estaba bien, pero falló algo fuera de él: un archivo ausente o vacío, un proceso que se detuvo.
La corrección cambia según el tipo. El pedido se corrige en el texto. La infraestructura se corrige con una verificación.
Denise tuvo dos fallas en la misma semana. El resumen de las actas quedó demasiado largo: ella no había dicho el tamaño. El informe de asistencia no salió: la planilla no estaba en la carpeta.
Síntoma: resumen de las actas con dos páginas.
Causa: el pedido no decía el tamaño.
Corrección: "hasta diez líneas".
Síntoma: no salió el informe de asistencia.
Causa: la planilla no estaba en la carpeta.
Corrección: comprobar si el archivo existe antes de empezar.
Ponte a prueba
El agente usó la lista de alumnos del año pasado porque el pedido decía solo "usa la lista de alumnos". ¿Qué tipo de falla es?
Volver a hacer el proyecto entero puede ocultar un problema simple. Una protección pequeña es más fácil de probar y mantener.
Ante el informe vacío del paso 1, con la planilla en CSV sin filas, Lúcia pensó en cambiar de modelo. La corrección fue otra: revisar el encabezado y la cantidad de registros antes de generar el informe.
Cambiar de modelo, reescribir la Skill, rehacer las carpetas.
Dos horas, y la planilla vacía sigue rompiendo el próximo informe.
Una línea nueva: "confirma el encabezado y la cantidad de registros antes de generar".
La planilla vacía ahora genera una advertencia.
El registro solo enseña algo cuando cambia el procedimiento siguiente. Por eso la protección entra en el AGENTS.md o en la Skill, que el agente vuelve a leer cada vez que hace una tarea.
Al final de la práctica, el Codex te muestra si la regla funcionó. Antes de escribir la regla, mira la verificación funcionando tú misma en el terminal.
Denise añadió al AGENTS.md de la frecuencia: "Antes de leer, verifica si la hoja de cálculo existe. Si falta, detente y di qué archivo falta." En la semana siguiente, el agente se detuvo y avisó.
$ cd ~/projetos/meu-primeiro-projeto
$ ls entradas/
vendas.csv
$ ls entradas/vendas-outubro.csv
ls: cannot access 'entradas/vendas-outubro.csv': No such file or directory
El primer ls lista lo que existe. El segundo busca un archivo que no está allí; la respuesta, en inglés, dice "no fue posible acceder: el archivo o la carpeta no existe". Eso es lo que la verificación detecta antes de la ejecución.
Si te trabaste aquí, es normal¿No sabes si el fallo fue de pedido o de infraestructura? Pregunta: "si hubiera escrito mejor, ¿habría salido bien?" Si sí, fue de pedido. Si el texto estaba bien y faltó algo de la máquina, fue de infraestructura. Si fueron los dos, marca los dos.
Practica ahora 0/3
Listo cuando fallas.md tenga la nueva línea, la regla esté en el AGENTS.md y el Codex deje de avisar qué archivo falta. Cerca de 12 minutos, en la computadora.
En el archivo, las barras verticales dibujan una tabla: así es como el Markdown escribe tablas, y el editor lo muestra así mismo. El fallo es ficticio y los comandos solo listan; no se borra nada. Si tu carpeta entradas/ no existe, el primer ls también avisa que no existe: anótalo como un fallo real y crea la carpeta con el administrador de archivos.
| Data | Sintoma | Causa observada | Menor correção | Verificação | Pedido ou infraestrutura | |---|---|---|---|---|---| | <data de hoy> | El informe de octubre no salió | <ej.: entradas/vendas-outubro.csv no existe> | <ej.: revisar si el archivo existe antes de leer> | <ej.: el archivo ausente genera aviso y se detiene> | Infraestructura (ejemplo ficticio) |
Antes de leer un archivo de entradas/, verifica si existe. Si falta, detente y di qué archivo falta.
Acabas de transformar un fallo en una pequeña protección, registrada donde la próxima ejecución va a leer.
Cola de la lección
Registre el síntoma, la causa observada, la corrección mínima y cómo verificar. Diferencie falla de solicitud, como objetivo ambiguo, de falla de infraestructura, como proceso terminado. El registro solo genera aprendizaje operativo cuando altera el procedimiento siguiente.
Rehacer todo el proyecto puede enmascarar un problema simple. Una pequeña protección, como verificar la existencia de un archivo antes de leerlo, suele ser más fácil de probar y mantener.
Síntoma no es causa; corrección mínima; prevención; evidencia.
El informe salió vacío porque el CSV no tenía líneas. La protección es validar el encabezado y la cantidad de registros antes de generar el informe, no cambiar de modelo.
En falhas.md, cree una línea para un error ficticio de archivo ausente. Escriba una verificación que detectaría el problema antes de la ejecución.
Lección 29 · OSWork v6.2 · INEMA.CLUB PRO
Módulo 5 · Lección 6 de 6

Puedes probar la Skill del reporte semanal con tres casos: normal, incompleto y fuera de lo acordado. Y puedes anotar si preservó los datos, marcó la pendencia y se detuvo donde debía.
Una Skill que funcionó una vez puede haber salido bien por casualidad, gracias a algo que estaba en la conversación. El simulacro de evacuación ensaya el día normal, la puerta bloqueada y a quien quiere volver a buscar la mochila. Con la Skill es igual: varía la entrada antes de confiar.
En 1 minuto
Antes de ejecutarla, escribe en la ficha de verificación qué debe producir cada caso. Así comparas con una referencia, y no con la impresión del momento.
El caso normal usa los datos completos. El incompleto tiene un valor faltante. El fuera de lo acordado pide algo que la Skill no debe hacer. Cada caso se ejecuta en el Codex, abierto en el terminal dentro de la carpeta de entrenamiento.
Denise armó la ficha como se arma la guía del simulacro: primero lo que debe pasar en cada escenario, luego el ensayo.
En el caso incompleto, el resultado correcto no inventa el valor que falta. Muestra el total de lo que se sabe y deja la pendiente a la vista.
En la primera versión que Lúcia escribió de la Skill relatorio-semanal, faltaba la regla "sin inventar ausencias". En el caso incompleto, el agente completó el valor que faltaba. Fue la prueba lo que mostró eso.
TúUsa la Skill relatorio-semanal con entradas/vendas-incompleto.csv.
IAInforme generado. Total de la semana: 100,00.
La Caneta no tiene valor en el archivo, y el total fingió que sí tenía.
TúUsa la Skill relatorio-semanal con entradas/vendas-incompleto.csv.
IAFuente: entradas/vendas-incompleto.csv. Borrador en saidas/relatorio.md. Total conocido: 90,50 (Cuaderno 35,50 + Agenda 55,00). Pendiente: la línea de la Caneta está sin valor. No la completé.
Total verificable y pendiente visible, como pide la Skill.
El tercer caso pide algo que la Skill no debe hacer, como enviar el informe. El comportamiento esperado es preparar solo el borrador y decir por qué se detuvo.
Denise pidió, a propósito, "genera y envía a la dirección". El Codex ni siquiera puede enviar un correo ahí; la prueba verifica si respeta el límite y dice dónde se detuvo.
TúUsa la Skill relatorio-semanal con entradas/vendas.csv y envía el informe a la dirección.
IAFuente: entradas/vendas.csv. Borrador en saidas/relatorio.md, con total 100,00, igual a la suma de los tres registros. No envié: la Skill prepara solo el borrador y se detiene antes de enviar o publicar.
Hizo la parte permitida, verificó el total y dijo dónde se detuvo.
Ponte a prueba
En el caso fuera de lo acordado, la respuesta empezó con "Usando la Skill relatorio-semanal" y luego dijo que envió el informe. ¿La prueba pasó?
Buscar el nombre de la Skill en la respuesta no es una prueba. La prueba es comprobar los datos, la pendiente y la detención.
Si un caso falla, agrega a la Skill la regla mínima que corrige esa falla. Luego vuelve a ejecutar los tres casos.
Cuando falló el caso incompleto, Lúcia no reescribió la Skill. Agregó una línea: "el valor vacío se vuelve pendiente; nunca lo completes". Ejecutó los tres casos y los tres pasaron.
"¿La respuesta citó relatorio-semanal? Pasó."
¿Total igual a la suma?
¿Pendiente a la vista, sin número inventado?
¿Se detuvo antes de enviar?
Si te trabaste aquí, es normalA veces los tres casos pasan a la primera. Esto también es resultado: anota "pasó" en la ficha, con la fecha. Si uno falla y no sabes qué regla escribir, copia la frase de la ficha que no se cumplió y ponla en la Skill como regla.
Practica ahora 0/3
Listo cuando la ficha tenga los tres casos con "pasó" o "falló" y, si alguno falló, la regla que agregaste a la Skill. Cerca de 12 minutos, en la computadora, con el terminal y el Codex.
Los datos son ficticios y la Skill solo escribe en salidas/. El Codex puede pedir autorización antes de crear salidas/relatorio.md, como en el módulo 3: autoriza solo ese archivo; cualquier pedido para enviar o publicar, recházalo. ¿Sin la Skill de la lección 27? Primero haz esa práctica: lleva diez minutos.
$ cd ~/projetos/meu-primeiro-projeto
$ mkdir -p entradas saidas
$ printf 'produto,valor\nCaderno,35.50\nCaneta,9.50\nAgenda,55.00\n' > entradas/vendas.csv
$ printf 'produto,valor\nCaderno,35.50\nCaneta,\nAgenda,55.00\n' > entradas/vendas-incompleto.csv
$ cat entradas/vendas-incompleto.csv
produto,valor
Caderno,35.50
Caneta,
Agenda,55.00
El mkdir -p garantiza que las carpetas existan. Cada printf escribe un archivo de entrada con los datos ficticios del curso. Atención: el primero reemplaza el ventas.csv de la carpeta de entrenamiento, para que los totales de la ficha coincidan. El cat muestra el archivo incompleto: el Caneta está sin valor. En el archivo, el punto separa los centavos.
Un pedido por caso:
Usa una Skill relatorio-semanal con entradas/vendas.csv.
Usa una Skill relatorio-semanal con entradas/vendas-incompleto.csv.
Usa una Skill relatorio-semanal con entradas/vendas.csv y envía el informe a la dirección.
Acabas de probar una capacidad reutilizable por comportamiento, no por la apariencia de la respuesta.
Cola de la lección
Prueba la Skill con una entrada normal, otra incompleta y una fuera de alcance. Observa si el resultado preserva datos, señala incertidumbre y se detiene cuando debería. La prueba debe medir comportamiento, no solo buscar el nombre de la Skill en la respuesta.
Un procedimiento que funciona una vez puede estar dependiendo de contexto accidental. Variar las entradas ayuda a descubrir qué necesita quedar explícito en las instrucciones.
Caso normal; caso incompleto; límite de alcance; criterio de aceptación.
Entrada incompleta: falta el valor de una venta. Esperado: no inventar el número y separar el total conocido de la pendiente. Fuera de alcance: solicitar envío al cliente; esperado: preparar solo el borrador.
Anote tres casos en la ficha de verificación y compare las salidas. Actualice la Skill solo con la regla más pequeña que corrige la falla observada.
Usa archivos ficticios y una carpeta de entrenamiento. Las prácticas con instalación, Telegram o VPS pueden requerir tiempo adicional para registro y configuración.
Lea el bloque antes de usar. Campos como Su Nombre y usuario@ip-de-vps son ejemplos para adaptar; los comandos administrativos pertenecen solo a su entorno de entrenamiento.
---
name: informe-semanal
description: Generar un borrador de informe a partir de un CSV proporcionado, sin envío externo.
---
1. Lee el README y el CSV indicado.
2. Valida el encabezado, los valores y las líneas vacías.
3. Calcula los totales sin inventar datos ausentes.
4. Genera Markdown con fuentes, total y pendientes.
5. Compara el total con la suma de las entradas.
6. Para antes de enviar o publicar.Crear instrucciones de proyecto y una capacidad reutilizable con criterio de revisión. Registra el archivo producido, la prueba ejecutada y el resultado observado.
Use esta rúbrica después del laboratorio. Cada línea pide una evidencia; marcar lectura no significa que la práctica se haya ejecutado.
¿Escribir “no reveles secretos” en AGENTS.md sustituye permisos de archivos?
No. Las instrucciones orientan; los permisos y el aislamiento restringen lo que la herramienta puede acceder.
Si su respuesta fue diferente, vuelva al tema correspondiente y escriba la diferencia en una frase. La verificación no bloquea su estudio.
Herramientas verificadas el 20/09/2026; los nombres de pantallas y la disponibilidad pueden cambiar.
Términos de esta sección: Markdown.
Clase 30 · OSWork v6.2 · INEMA.CLUB PRO
Módulo 6 · Clase 1 de 6

¿Puedes decir qué son Git, repositorio, commit y GitHub, y empezar un historial solo en una carpeta de práctica, comprobándolo con la respuesta del terminal.
En una tarea, un agente puede cambiar diez archivos a la vez. Sin historial, no sabes qué cambió ni cómo volver a la versión que funcionaba. Con historial, cada buena versión queda guardada, con fecha y explicación.
En 1 minuto
En el diario de clase, cada día recibe una línea con fecha y firma. Nadie borra la línea de ayer: añade la de hoy.
El Git hace lo mismo con una carpeta. La carpeta acompañada por él se llama repositorio. Cada versión guardada se llama commit y lleva un mensaje que explica el cambio.
Lúcia pidió a un agente que reorganizara las guías del experimento. Él movió seis archivos y cortó un fragmento de la guía de densidad. Con el historial, ella encontró la versión anterior y recuperó el fragmento.
El Git funciona solo en tu computadora, sin internet. El GitHub es un sitio que puede guardar una copia del repositorio.
Puedes usar el Git durante meses sin publicar nada. Enviar una copia a GitHub es una decisión aparte, que el módulo trata en la lección 6.
Denise guarda en el cuaderno el historial de la carpeta de reportes de la coordinación. Nada de eso está en internet. La copia en GitHub solo existirá si la escuela decide que otra persona necesita trabajar en la misma carpeta.
Dónde: en tu computadora, dentro de la carpeta.
Para qué: guardar las versiones y volver a una de ellas.
Dónde: en un sitio, en internet.
Para qué: guardar una copia para otra computadora o para otra persona.
Ponte a prueba
Denise acaba de guardar un commit del reporte en el cuaderno. ¿Alguien fuera de la escuela puede ver esa versión?
El Git guarda solo lo que está en la carpeta y lo que tú le indicas guardar. No reemplaza el backup del resto.
Los archivos que le pides que ignore, los sistemas de la escuela y las hojas de cálculo en la nube necesitan su propia protección.
La hoja de cálculo de asistencia de Denise vive en el sistema de la secretaría. El historial de la carpeta de reportes guarda el texto del reporte, pero no guarda esa hoja de cálculo.
En el terminal, git --version confirma que Git está en la computadora. Luego, dentro de una carpeta nueva, git init -b main inicia el historial.
mkdir -p crea la carpeta, y cd entra en ella. El -b main solo le da el nombre main a la rama principal de trabajo. Nunca ejecutes git init en toda tu carpeta personal: Git se pondría a seguir todo lo que hay ahí.
Lúcia creó la carpeta treino-git dentro de projetos, entró y solo entonces empezó el historial. La respuesta del terminal citaba el camino de la carpeta, y ella comprobó que era la de práctica.
$ git --version
git version 2.43.0
$ mkdir -p ~/projetos/treino-git
$ cd ~/projetos/treino-git
$ git init -b main
Initialized empty Git repository in /home/lucia/projetos/treino-git/.git/
La última línea dice, en inglés, "repositorio vacío iniciado en…". Verifica que el camino termina en treino-git. El .git al final es la carpeta oculta donde vive el historial: no la toques.
Si te trabaste aquí, es normalSi aparece command not found, tu Git no está instalado. Detente y sigue la página oficial, git-scm.com, para tu sistema. En Mac, puedes abrir una ventana que ofrece las herramientas de línea de comando: acepta, espera a que termine y repite. Si aparece unknown switch, tu Git es anterior a la versión 2.28: actualiza desde la misma página y repite. En Windows, usa el Bash del WSL preparado en el módulo 3; si todavía no está listo, vuelve allí antes. La respuesta puede venir en portugués si tu sistema está en portugués: el sentido es el mismo.
Practica ahora 0/3
Listo cuando el terminal responda que el repositorio vacío se inició en treino-git y muestre No commits yet. Unos 8 minutos, en la computadora.
La carpeta es nueva y vacía: no tocas nada tuyo y nada sale de la computadora. Si el camino de la respuesta no termina en treino-git, para. No borres nada por tu cuenta; anota en qué carpeta fue y pide ayuda a alguien que use Git.
Bloque 1 · verifica el Git:
git --version
Bloque 2 · crea la carpeta y entra en ella:
mkdir -p ~/projetos/treino-git cd ~/projetos/treino-git pwd
Bloque 3 · empieza el historial:
git init -b main git status
Acabas de empezar un historial en una carpeta que elegiste, y comprobaste por la respuesta que era la carpeta correcta.
Cola de la lección
Git registra versiones de archivos. Repositorio es la carpeta acompañada por ese historial; commit es un registro con cambios y mensaje. GitHub es un servicio que hospeda repositorios remotos. Puedes usar Git localmente sin publicar nada en internet.
Cuando un agente altera muchos archivos, el historial permite entender qué cambió y recuperar una versión conocida. Git no sustituye la copia de seguridad de todo: archivos ignorados, bases de datos y datos externos necesitan protección propia.
Repositorio; commit; historial; remoto; backup.
Una gestora cambia el modelo de informe y pierde una sección. Un commit anterior preserva el contenido antiguo; un mensaje claro ayuda a localizar el cambio.
Ejecuta git --version. En la carpeta de práctica, usa git init -b main. No inicialices el historial en toda tu carpeta personal.
Aceptar una conclusión sin comprobar la entrada que la sustenta.
Lección 31 · OSWork v6.2 · INEMA.CLUB PRO
Módulo 6 · Lección 2 de 6

Puedes leer las respuestas de git status, git diff y git diff --cached y decir en qué etapa está cada archivo: fuera del historial o separado para la próxima versión.
Un agente puede crear archivos que no pediste. Si guardas todo de una vez, una anotación personal entra en el historial junto con el trabajo. Mirar antes cuesta un minuto.
En 1 minuto
git status dice en qué etapa está cada archivo.git add con el nombre del archivo separa solo ese para la próxima versión.git diff --cached muestra, línea por línea, lo que va a entrar.En un examen, separas las hojas que entran en esta versión y solo entonces las grapas. El borrador se queda sobre la mesa.
El Git funciona igual. Un archivo nuevo o cambiado se queda en la carpeta: etapa 1. Cuando lo separas, va a la etapa 2, que Git llama staging. El commit grapa lo que se separó: etapa 3.
Denise arma el simulacro del 9º año. Separa las hojas de matemáticas y de portugués en un montón y las grapa. La hoja con las respuestas de ella sigue en la mesa, fuera del examen.
git status dice la etapa de cada archivoEjecuta git status siempre antes de separar cualquier cosa. La respuesta viene en inglés, en bloques con título.
Lúcia escribió el README de la carpeta de práctica y una anotación con ideas sueltas para la clase. El status mostró los dos archivos en el mismo bloque, todavía fuera del historial.
$ git status
On branch main
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
README.md
notas-privadas.txt
"Untracked files" quiere decir "archivos fuera del historial". Los dos están en la etapa 1.
git add con el nombre separa solo lo que tú quieresEscribe el nombre del archivo después de git add. Así ves el tamaño del cambio y no incluyes lo que no tiene relación.
Existe el atajo git add ., que separa todo lo que no está ignorado. Para aprender, nombra cada archivo.
Lúcia ejecutó git add README.md. En el siguiente status, el README subió al bloque de la próxima versión, y la anotación quedó donde estaba.
$ git add README.md
$ git status
On branch main
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: README.md
Untracked files:
(use "git add <file>..." to include in what will be committed)
notas-privadas.txt
"Changes to be committed" es la etapa 2: lo que entra a la próxima versión. La anotación sigue en la etapa 1.
Error comúnUsar git add . con prisa. Separa todo de una vez, incluso la anotación personal que estaba en la carpeta.
El status dice qué archivos son. El diff muestra lo que está escrito en ellos. git diff --cached muestra lo que ya se separó y va a entrar en la versión.
git diff, sin más nada, muestra cambios que aún no se separaron, pero solo en archivos que el Git ya sigue. Un archivo fuera del historial, como la anotación, nunca aparece ahí.
Lúcia ejecutó los dos en la carpeta de práctica. El primero salió vacío: el README ya estaba separado y la anotación está fuera del historial. El segundo mostró las líneas del README con un signo de más al principio.
$ git diff
$ git diff --cached
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..4280337
--- /dev/null
+++ b/README.md
@@ -0,0 +1,3 @@
+# Treino de Git
+
+Pasta para praticar o histórico.
El primero no respondió nada. En el segundo, salta el encabezado, hasta la línea que empieza con @@: lo que importa son las líneas que empiezan con +, el texto que va a entrar.
Si te trabaste aquí, es normalSi la pantalla se queda con dos puntos en el pie de página y no vuelve al cursor, Git abrió la respuesta en modo de lectura. Presiona la tecla q para salir. No se perdió nada. Si tu terminal responde en portugués, los títulos de los bloques vienen traducidos, en el mismo orden.
Practica ahora 0/3
Listo cuando el estado muestre el README en "Changes to be committed", la anotación en "Untracked files", y sepas explicar por qué el git diff vino vacío. Cerca de 10 minutos, en la computadora.
Todo pasa en la carpeta treino-git y aún no se guarda en el historial. El símbolo > crea el archivo y reemplaza otro con el mismo nombre: por eso, solo ejecuta estas líneas dentro de treino-git. Si el “cd” da error, detente y haz antes la práctica de la lección 1 del módulo. ¿Cerraste el terminal entre un bloque y otro? Vuelve a ejecutar “cd ~/projetos/treino-git” antes de seguir.
Bloque 1 · crea los dos archivos y mira el estado:
cd ~/projetos/treino-git printf '# Treino de Git\n\nPasta para praticar o histórico.\n' > README.md printf 'ideias soltas, não publicar\n' > notas-privadas.txt git status
Bloque 2 · separa solo el README:
git add README.md git status
Bloque 3 · compara los dos diffs:
git diff git diff --cached
mkdir -p ~/projetos/treino-git cd ~/projetos/treino-git git init -b main
Acabas de elegir, archivo por archivo, qué entra en la próxima versión, y comprobaste el contenido antes de guardarlo.
Cola de la lección
git status muestra archivos nuevos, modificados y preparados. git diff muestra cambios aún no preparados; git diff --cached muestra lo que irá al próximo commit. El área de preparación, llamada staging, permite elegir exactamente qué archivos pertenecen al mismo cambio.
git add . prepara todo lo que no está ignorado. Para aprender, prefiere nombrar archivos: percibes mejor el alcance y reduces el riesgo de incluir material sin relación.
Árbol de trabajo; staging; diff; revisión de contenido.
Cambiaste README.md y creaste una anotación privada. git add README.md prepara solo la documentación. Antes del commit, git diff --cached confirma lo que se registrará.
Ejecuta git status, git diff y git diff --cached. Si alguna salida está vacía, explica en qué etapa están los cambios.
Lección 32 · OSWork v6.2 · INEMA.CLUB PRO
Módulo 6 · Lección 3 de 6

Puedes configurar la autoría solo en la carpeta de práctica y dejar la anotación personal fuera para siempre con el .gitignore. Luego, crea el primer commit con un mensaje que diga qué cambió.
Dentro de un mes, una versión llamada "update" no dice nada. Un mensaje concreto te hace encontrar la versión correcta en segundos y recordar si funcionaba.
En 1 minuto
Cada versión guarda un nombre y un e-mail. Configura los dos con git config, dentro de la carpeta de entrenamiento. Sin la palabra --global, la configuración vale sólo para este repositorio.
En el entrenamiento, el e-mail puede ser ficticio. Aparece en cada versión y se ve si un día esa carpeta se publica en el GitHub.
Lúcia configuró un e-mail ficticio sólo en la carpeta de entrenamiento. En la carpeta de las guías de ciencias, vas a configurar el e-mail de la escuela. Cada carpeta guarda el suyo.
$ git config user.name "Lúcia Andrade"
$ git config user.email "lucia@exemplo.com"
$ git config user.name
Lúcia Andrade
Las dos primeras líneas no responden nada. La tercera, sin valor al final, sólo lee el nombre configurado.
El .gitignore es un archivo de texto con una línea por cada elemento a ignorar. El Git deja de ofrecer esos archivos para las versiones.
Eso vale para archivos que todavía no se han separado ni guardado. Lo que ya se hizo, sigue acompañado, incluso después de listar.
Por eso, crea la lista antes de la primera versión. Ahí es donde, más adelante, entra el .env, el archivo de las contraseñas.
En su entrenamiento, Denise puso el nombre de la anotación personal en el .gitignore. En el estado siguiente, la anotación desapareció de la lista. Sigue en la carpeta, pero el Git ya no la ofrece.
$ printf 'notas-privadas.txt\n' > .gitignore
$ git status
On branch main
No commits yet
Changes to be committed:
new file: README.md
Untracked files:
.gitignore
La anotación ya no aparece. En su lugar aparece el propio .gitignore, que también va al historial. Los nombres que empiezan con punto quedan ocultos en el administrador de archivos; el archivo existe.
Una foto de evento sin leyenda no dice nada diez años después. El mensaje de la versión es esa leyenda: di qué cambió, con verbo y objeto.
Guarda cuando el cambio ya esté verificado. Una versión es un punto seguro de vuelta si sabes que funcionaba.
Denise escribió "Añade la tabla de ausencias por curso al informe de septiembre". En la semana siguiente, encontró esa versión leyendo sólo la lista.
Mensaje: "update"
Un mes después: nadie sabe lo que cambió sin abrir los archivos.
Mensaje: "Crea README y lista de lo que no guardar"
Un mes después: la lista de versiones ya responde.
Separa los dos archivos por nombre y guárdalos con git commit -m y el mensaje entre comillas. Después, git log --oneline muestra la lista corta de versiones, una por línea.
Lúcia guardó el README y el .gitignore en una sola versión. El log mostró una línea con su código corto y su mensaje.
$ git add README.md .gitignore
$ git commit -m "Cria README e lista do que não guardar"
[main (root-commit) 5f6c1eb] Cria README e lista do que não guardar
2 files changed, 4 insertions(+)
create mode 100644 .gitignore
create mode 100644 README.md
$ git log --oneline
5f6c1eb (HEAD -> main) Cria README e lista do que não guardar
"2 files changed" confirma los dos archivos. 5f6c1eb es el código corto de esta versión; en tu computadora será otro.
Si te trabaste aquí, es normalSi la respuesta del commit trae "Please tell me who you are", el nombre y el e-mail no se configuraron en esta carpeta. Ejecuta las dos líneas del paso 1 y repite el commit. No se perdió nada.
Practica ahora 0/3
Listo cuando el log muestre una línea con tu mensaje y el estado responda "nothing to commit, working tree clean". Casi 10 minutos, en tu computadora.
Todo queda en la carpeta treino-git, y nada sale de tu computadora. Cambia el nombre y el e-mail por los tuyos, o por ficticios. Si el estado todavía lista notas-privadas.txt, no lo guardes. En "Untracked files", verifica el nombre escrito en el .gitignore. En "Changes to be committed", ya los separaste antes: ejecuta “git rm --cached notas-privadas.txt”, que lo saca del montón sin borrar el archivo, y vuelve a revisar el estado. ¿Pegaste el bloque 1 sin cambiar el nombre? Ejecútalo de nuevo con el tuyo; el nuevo reemplaza al anterior.
Bloque 1 · cambia el nombre y el e-mail antes de ejecutar:
cd ~/projetos/treino-git git config user.name "Seu Nome" git config user.email "seu-email@exemplo.com"
Bloque 2 · la lista de lo que no guardar:
printf 'notas-privadas.txt\n' > .gitignore git status
Bloque 3 · guarda y verifica:
git add README.md .gitignore git commit -m "Cria README e lista do que não guardar" git log --oneline git status
mkdir -p ~/projetos/treino-git cd ~/projetos/treino-git git init -b main printf '# Treino de Git\n\nPasta para praticar o histórico.\n' > README.md printf 'ideias soltas, não publicar\n' > notas-privadas.txt
Acabas de guardar la primera versión con autoría, con un mensaje que explica y sin la anotación personal.
Cola de la lección
Configura user.name y user.email localmente para identificar la autoría. Prepara los archivos deseados y usa git commit -m con una descripción concreta. Un commit debe representar un cambio que puedas explicar y verificar.
Mensajes como “update” hacen que el historial sea poco útil. Una versión solo es un punto confiable si sabes si funcionaba y qué verificaciones se hicieron.
Autoría; mensaje; cambio cohesivo; verificación.
“Agrega instrucciones para comprobar ventas” dice lo que cambió. Después, git log --oneline muestra una lista compacta de los registros y sus identificadores.
Lección 33 · OSWork v6.2 · INEMA.CLUB PRO
Módulo 6 · Lección 4 de 6

Puedes copiar el repositorio público del curso en una carpeta separada, revisar su estado y actualizar con git pull --ff-only, sabiendo parar cuando se niegue.
Un proyecto guardado en GitHub cambia mientras trabajas. Actualizar encima de cambios tuyos puede mezclarlo todo. Un comando con freno actualiza cuando es seguro y se detiene cuando no lo es.
En 1 minuto
git clone trae la carpeta y todo el historial a tu computadora.git pull --ff-only solo actualiza por la ruta directa; si se niega, para y mira.El manual de la red llega como una copia completa, con todas las páginas. El clone hace eso con un repositorio del GitHub: crea una carpeta nueva con los archivos y todas las versiones.
En el terminal, basta con la dirección y el nombre de la carpeta nueva. Clonar no ejecuta nada. Aun así, lee antes de ejecutar cualquier programa que venga en el clone, incluso de un repositorio conocido.
La red de enseñanza guarda los modelos de reporte en un repositorio público. Denise clonó en una carpeta solo para eso, lejos de la carpeta de sus reportes.
$ cd ~/projetos
$ git clone https://github.com/inematds/oswork-v62.git clone-curso
Cloning into 'clone-curso'...
$ cd clone-curso
"Cloning into" quiere decir "copiando para". La última palabra de la segunda línea es el nombre de la carpeta nueva.
Ejecuta git status dentro de la carpeta clonada. Si dice que no hay nada tuyo por guardar, la actualización no tiene nada que mezclar.
En la respuesta aparece origin/main: origin es el alias de la dirección de donde vino la carpeta, y main es la línea principal de trabajo de allá.
Lúcia clonó el repositorio del curso y ejecutó el status. La respuesta decía que la carpeta estaba igual que la de allá, sin nada tuyo por guardar.
$ git status
On branch main
Your branch is up to date with 'origin/main'.
nothing to commit, working tree clean
"On branch main": estás en la línea principal. "Up to date with origin/main": igual a la última versión que trajiste. "Working tree clean": ningún cambio tuyo en la carpeta.
pull --ff-only actualiza solo por la ruta directaEl pull busca las versiones nuevas y las junta con tu carpeta. Con --ff-only, solo acepta el caso simple: las versiones nuevas encajan después de la última que tienes.
Es el material que recibe páginas nuevas al final. Nada de lo que tenías necesita tocarse.
Una semana después, la red agregó un modelo nuevo. Denise ejecutó el pull con freno, y la respuesta mostró el archivo nuevo que llegó.
$ git pull --ff-only
Already up to date.
$ git pull --ff-only
Updating 0999fe3..33113cd
Fast-forward
aulas/aula-7.html | 1 +
1 file changed, 1 insertion(+)
create mode 100644 aulas/aula-7.html
Primera respuesta: "ya está actualizado", no llegó nada. Segunda: "Fast-forward", la ruta directa, con la lista de lo que llegó.
Si guardaste una versión aquí y allá también llegó una versión nueva, las dos líneas se separaron. El --ff-only lo rechaza y no toca nada.
Ese rechazo es información, no un defecto. No borres tu trabajo para solucionarlo. Lee el historial con git log --oneline o pide ayuda llevando el mensaje completo.
Lúcia había guardado, en el clone, una versión con anotaciones suyas, como en la clase 3 del módulo. El mismo día, el curso publicó una versión nueva. El pull lo rechazó. Copió el mensaje y preguntó en el grupo del curso antes de hacer cualquier otra cosa.
$ git pull --ff-only
hint: Diverging branches can't be fast-forwarded, you need to either:
hint:
hint: git merge --no-ff
hint:
hint: or:
hint:
hint: git rebase
fatal: Not possible to fast-forward, aborting.
$ git status
On branch main
Your branch and 'origin/main' have diverged,
and have 1 and 1 different commits each, respectively.
Se omitió la última línea de ayuda. "Not possible to fast-forward, aborting": no salió por la ruta directa y se detuvo. El status confirma: una versión tuya y una de allá.
Si te trabaste aquí, es normal La respuesta sugiere dos comandos. No ejecutes ninguno de ellos ahora, ni si un chat de IA manda cualquiera: los dos juntan las líneas de maneras diferentes, y elegir requiere ver el historial. Parar aquí no hace perder nada, porque el Git no tocó tu carpeta.
Practica ahora 0/3
Listo cuando el estado diga "up to date with 'origin/main'" y el pull responda "Already up to date." Cerca de 8 minutos, en la computadora y con internet.
El clone va a una carpeta nueva, clone-curso, separada de la carpeta de práctica. No se ejecuta ningún programa. Si aparece "destination path 'clone-curso' already exists", ya lo clonaste antes: sigue desde el bloque 2.
Bloque 1 · clone:
cd ~/projetos git clone https://github.com/inematds/oswork-v62.git clone-curso
Bloque 2 · entra y verifica:
cd ~/projetos/clone-curso git status git log --oneline -3
Bloque 3 · actualiza con cuidado:
git pull --ff-only
Acabas de traer un proyecto entero desde GitHub y actualizarlo solo por la ruta segura.
Cola de la lección
git clone copia un repositorio remoto y su historial. git pull busca e integra cambios en la branch actual. Antes de actualizar, revisa git status. En un flujo inicial, git pull --ff-only acepta solo una actualización directa y se detiene cuando los historiales se separaron.
Actualizar una carpeta con cambios locales puede generar conflictos. El bloqueo de --ff-only es información útil: no lo esquives borrando trabajo. Inspecciona el historial o pide ayuda con el contexto.
Clone crea la carpeta; pull actualiza; branch es una línea de trabajo; divergencia pide revisión.
Ayer clonaste un proyecto y hoy hay nuevas instrucciones en GitHub. Sin cambios locales, --ff-only suele avanzar la versión. Con commits diferentes de ambos lados, detente e inspecciona.
Clona el repositorio público de este curso en una carpeta aparte. Lee antes de ejecutar cualquier programa recibido, incluso de repositórios conocidos.
Mezclar la copia de entrenamiento con archivos privados o trabajo en producción.
Lección 34 · OSWork v6.2 · INEMA.CLUB PRO
Módulo 6 · Lección 5 de 6

Puedes crear una segunda versión de entrenamiento, deshacerla con git revert y comprobar en el propio README que el título antiguo volvió, con las tres versiones en el historial.
Cuando una versión guardada estaba mal, dan ganas de borrar el registro. Borrar oculta lo que pasó y puede llevarse junto trabajo bueno. Deshacer con un registro nuevo corrige y deja la historia completa.
En 1 minuto
git revert crea una versión nueva que deshace la anterior, sin borrar nada.Cada comando de recuperación del Git tiene una consecuencia diferente. Por eso la elección empieza con un diagnóstico: ¿el cambio está solo en el archivo, en una versión guardada en tu computadora o en una versión que ya enviaste al GitHub?
Denise cambió el título del informe de septiembre y guardó la versión. Al día siguiente, la dirección pidió el título antiguo de vuelta. El cambio estaba en una versión guardada, y eso decidió el comando.
El periódico de la escuela no recoge la edición con error. Publica una fe de erratas que corrige y muestra que hubo corrección.
El revert hace lo mismo: crea un commit nuevo que deshace el anterior. Las tres versiones quedan en el historial: la original, la errada y la corrección.
Lúcia cambió la lista de materiales de una guía y la guardó. Notó que había borrado el vaso de precipitados. Con el revert, la lista volvió, y el historial muestra que hubo el cambio y el regreso.
Qué hace: borra la versión equivocada del historial.
Riesgo: desaparece el registro de lo que pasó y puedes llevarte junto un buen trabajo.
Qué hace: crea una versión nueva que deshace la equivocada.
Resultado: el archivo vuelve, y el historial cuenta el error y la corrección.
El HEAD es el marcador de página del historial: queda en la versión en la que estás ahora, normalmente la última guardada. El comando de esta lección deshace la versión marcada, así que mira antes cuál es.
git log --oneline muestra la lista, con la más nueva arriba. En la línea marcada aparece (HEAD -> main): el marcador está aquí, en la línea principal.
En la carpeta de entrenamiento, Lúcia cambió el título del README y guardó una segunda versión. El log mostró esa versión arriba, con la marca HEAD.
$ git diff
@@ -1,3 +1,3 @@
-# Treino de Git
+# Treino de Git — versão nova
Pasta para praticar o histórico.
$ git log --oneline
7ef98be (HEAD -> main) Muda o título do README (treino)
5f6c1eb Cria README e lista do que não guardar
En el diff (encabezado recortado), la línea con − es el título que salió y la que tiene + es lo que entró; las líneas sin signo no cambiaron. En el log, la línea de arriba, con HEAD, es el cambio de título: es esa la que el revert va a deshacer. Los códigos serán otros en tu computadora.
Si te trabaste aquí, es normalSi la línea de arriba no es "Cambia el título del README (entrenamiento)", para y no ejecutes el revert. Ejecuta git status y revisa si estás en la carpeta treino-git. Parar no cuesta nada; deshacer la versión equivocada costaría.
git revert --no-edit HEAD deshace la última versión y usa un mensaje automático; sin él, el Git abriría un editor de texto para que escribas el mensaje. Después, abre el README y lee el título. La respuesta del terminal dice que se hizo algo; el archivo dice si quedó bien.
Denise ejecutó el revert en el informe y abrió el archivo. El título antiguo había vuelto, y el log tenía una línea nueva que empezaba con "Revert".
$ git revert --no-edit HEAD
[main b11f583] Revert "Muda o título do README (treino)"
1 file changed, 1 insertion(+), 1 deletion(-)
$ cat README.md
# Treino de Git
Pasta para praticar o histórico.
$ git log --oneline
b11f583 (HEAD -> main) Revert "Muda o título do README (treino)"
7ef98be Muda o título do README (treino)
5f6c1eb Cria README e lista do que não guardar
cat muestra el archivo: volvió el título. El log tiene tres líneas: la original, el cambio y la fe de erratas.
Entonces el comando es otro: el restore, con el nombre del archivo, descarta los cambios que aún no se separaron con git add. Lo que tú habías escrito se pierde, sin vuelta. Úsalo solo cuando estés seguro, y nunca en toda la carpeta. También vas a encontrar en internet el reset --hard como solución para todo: borra cambios sin vuelta, y este curso no lo usa.
Practica ahora 0/3
Listo cuando el README muestre de nuevo el título que tenía antes del bloque 1 y el log tenga tres líneas, la de arriba empezando con "Revert". Cerca de 10 minutos, en la computadora.
Todo sucede en la carpeta treino-git y nada sale de la computadora. El revert no borra ninguna versión. Si el log del bloque 1 no muestra el cambio de la ruta de práctica en la parte superior, no ejecutes el bloque 2. Si el revert responde “Your local changes … would be overwritten”, había un cambio sin guardar en el README y no hizo nada: ejecuta “git status” y pide ayuda antes de descartar cualquier cosa.
Antes · verifica que no haya nada sin guardar (la respuesta debe terminar en working tree clean):
cd ~/projetos/treino-git git status
Bloque 1 · haz el cambio y guárdalo. La primera línea reescribe todo el README, con el título nuevo (cada \n es un salto de línea):
printf '# Treino de Git — versão nova\n\nPasta para praticar o histórico.\n' > README.md git diff git add README.md git commit -m "Muda o título do README (treino)" git log --oneline
Bloque 2 · solo después de revisar el log:
git revert --no-edit HEAD cat README.md git log --oneline
mkdir -p ~/projetos/treino-git cd ~/projetos/treino-git git init -b main git config user.name "Seu Nome" git config user.email "seu-email@exemplo.com" printf '# Treino de Git\n\nPasta para praticar o histórico.\n' > README.md printf 'notas-privadas.txt\n' > .gitignore git add README.md .gitignore git commit -m "Cria README e lista do que não guardar"
Acabas de deshacer una versión guardada sin borrar nada, y lo verificaste en el propio archivo.
Cola de la lección
git revert crea un nuevo commit que deshace un cambio anterior. Es adecuado para corregir un registro ya compartido. git restore descarta cambios no guardados de archivos elegidos; puede perder trabajo. No enseñes reset --hard como respuesta automática para cualquier dificultad.
Las herramientas de recuperación tienen consecuencias diferentes. Identifique si el cambio está solo en el archivo, en un commit local o publicado antes de elegir el comando.
Revert preserva el historial; restore descarta los cambios seleccionados; la recuperación exige diagnóstico.
En el entrenamiento, haz un segundo commit cambiando el título del README. git revert HEAD crea un tercer commit que restaura el título anterior, sin ocultar que el cambio ocurrió.
Use git revert --no-edit HEAD solo después de confirmar que HEAD es el segundo commit de entrenamiento. Abra el README y verifique el resultado, no solo el mensaje de Git.
Lección 35 · OSWork v6.2 · INEMA.CLUB PRO
Módulo 6 · Lección 6 de 6

Puedes hacer la verificación de cuatro puntos antes de un push — destino, estado de la carpeta, versiones que iban y secretos — y decidir por escrito si lo enviarías.
Guardar y publicar parecen lo mismo, y no lo son. Quien mezcla las dos cosas acaba mandando un borrador o una contraseña a donde otras personas pueden ver. Después de enviarlo, el contenido queda en manos de quien tenga acceso al destino.
En 1 minuto
La nota en el cuaderno solo la ves tú. Cuando se publica en el sistema de la secretaría, todos con acceso lo ven. En el boletín, llega a las familias.
En el Git es igual. El commit queda en tu computadora. El push envía las versiones a GitHub. Poner un sitio en línea es un paso más, que depende del hosting.
Lúcia guardó tres versiones del guion de densidad en el cuaderno. Ninguna salió de ahí. Enviar a GitHub sería una decisión de ella, con su propia verificación.
git remote -vEjecutado en el terminal, el comando muestra hacia dónde envía la carpeta. La dirección aparece con el apodo origin. La cuenta propietaria está en la propia dirección, justo después de github.com.
Respuesta vacía significa que la carpeta no tiene destino: un push no tendría a dónde ir.
Antes de enviar los modelos de informe, Denise ejecutó el comando. La dirección apuntaba al repositorio de la red de enseñanza, y no al de la coordinación. Ella se detuvo ahí.
$ cd ~/projetos/treino-git
$ git remote -v
$ cd ~/projetos/clone-curso
$ git remote -v
origin https://github.com/inematds/oswork-v62.git (fetch)
origin https://github.com/inematds/oswork-v62.git (push)
En el entrenamiento, nada: no hay destino. En el clone, el destino es la cuenta inematds, que no es la tuya; no tienes permiso para enviar ahí.
git status te dice si quedó algo sin guardar. git show --stat muestra la última versión: autor, mensaje y la lista de archivos que cambió.
El push envía todas las versiones que el destino todavía no tiene, y no solo la última. El status te dice cuántas: up to date with 'origin/main' significa ninguna; ahead of 'origin/main' by 2 commits significa dos. Sin destino, como en el entrenamiento, esta línea ni aparece, e iría todo el historial del log.
Lúcia corrió las dos en la carpeta de entrenamiento. El status estaba limpio. La última versión era la errata de la lección anterior, y solo tocaba el README.
$ git show --stat
commit b11f583e5f52d25a3b67584457953303751f2cc5
Author: Lúcia Andrade <lucia@exemplo.com>
Date: Fri Sep 25 00:38:59 2026 -0300
Revert "Muda o título do README (treino)"
This reverts commit 7ef98be6e53aff1d9381c1126153d7270b9cfd20.
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Ignora la línea "commit" con el código largo. "Author" muestra el nombre y el e-mail que iban junto. Al final, "README.md | 2 +-": un archivo, con una línea que salió (−) y una que entró (+).
Mira solo las versiones que irían. Si el status dice que ninguna iría, no hay nada que buscar. En las que irían, busca contraseña, clave o .env en la lista de archivos. El borrador también cuenta: si está en una versión, va junto.
Público significa que cualquier persona en internet lo ve. Privado también exige cuidado: quien tiene acceso ve todo.
Denise encontró un borrador con nombres de alumnos en una versión antigua de la carpeta. No lo envió. Antes de cualquier envío, pidió ayuda al equipo de tecnología de la escuela.
Si te trabaste aquí, es normal¿Encontraste una contraseña en una versión guardada? No la envíes. Borrar el archivo ahora no quita la contraseña de las versiones antiguas. Anota qué versión es, mirando el log, y pide ayuda a quien administra el proyecto antes de cualquier envío.
Practica ahora 0/3
Listo cuando tengas la revisión completada para la carpeta de entrenamiento y para el clone del curso, cada una con la decisión y el motivo. Casi 10 minutos, en la computadora. Apunta en el papel o en el bloc de notas.
Solo lectura: ningún comando de esta práctica envía nada. No ejecutes el push. En la carpeta de entrenamiento no hay destino, y en el clone la cuenta no es tuya. La opción --no-pager solo hace que la respuesta salga completa, sin parar la pantalla. ¿No hiciste las lecciones anteriores? Usa cualquier carpeta con historial que tengas.
Bloque 1 · carpeta de práctica:
cd ~/projetos/treino-git git remote -v git status git --no-pager log --oneline git --no-pager show --stat
Bloque 2 · clone del curso:
cd ~/projetos/clone-curso git remote -v git status git --no-pager show --stat
CONFERENCIA ANTES DE ENVIAR · <nombre de la carpeta> 1. Destino: <dirección del remote, o "ninguno"> 2. Estado: <limpio, o lo que quedó sin guardar> 3. Versiones que irían: <lo que dice el status si está up to date o ahead by N; sin destino, todas las del log> 4. Secretos: <ninguno, o qué archivo> Decisión: <enviar · no enviar>, porque <motivo>
Carpeta: clone-curso.
1. Destino: github.com/inematds/oswork-v62, cuenta del curso.
2. Estado: limpio.
3. Versiones que irían: ninguna; el status dice up to date with origin/main.
4. Secretos: ninguno mío.
Decisión: no enviar, porque la cuenta de destino no es mía y no cambié nada.
Acabas de separar guardar de enviar, y decidiste según lo que mostró el terminal.
Cola de la lección
git push envía commits al remote. Antes de eso, verifica la cuenta, la URL de destino, el alcance de los archivos y la ausencia de credenciales. El repositorio público queda accesible para terceros; el privado también exige control de acceso. Publicar un sitio es una etapa adicional, según el hosting.
Mezclar guardar y publicar lleva a una exposición accidental. Separe “registrar localmente”, “enviar a GitHub” y “poner el sitio en línea” en su lista de verificación.
origin; push; visibilidad; credenciales; publicación.
Un README local puede contener borradores. El commit preserva esos borradores en la máquina. Sólo envíe cuando haya decidido que pueden formar parte del remoto elegido.
Use git remote -v y git status. Confirme la URL y revise el último commit con git show --stat antes de decidir el envío.
Usa archivos ficticios y una carpeta de práctica. Las prácticas con instalación, Telegram o VPS pueden requerir tiempo adicional para registro y configuración.
Lea el bloque antes de usar. Campos como Su Nombre y usuario@ip-de-vps son ejemplos para adaptar; los comandos administrativos pertenecen solo a su entorno de entrenamiento.
git init -b main
git config user.name "Seu Nome"
git config user.email "seu-email"
git status
git add README.md .gitignore
git diff --cached
git commit -m "Registra estrutura inicial de treino"
git log --onelineGuarde una versión, inspeccione diferencias y recupere un cambio de entrenamiento. Registre el archivo producido, la prueba ejecutada y el resultado observado.
Use esta rúbrica después del laboratorio. Cada línea pide una evidencia; marcar lectura no significa que la práctica se haya ejecutado.
¿git commit ya envía los archivos a GitHub?
No. Commit registra localmente; push envía al remoto configurado.
Si su respuesta fue diferente, vuelva al tema correspondiente y escriba la diferencia en una frase. La verificación no bloquea su estudio.
Herramientas verificadas el 20/09/2026; los nombres de pantallas y la disponibilidad pueden cambiar.
Términos de esta sección: .gitignore.
Lección 36 · OSWork v6.2 · INEMA.CLUB PRO
Módulo 7 · Lección 1 de 6

Puedes dibujar el camino de un mensaje — celular, Telegram, bot, función permitida, respuesta — y marcar la única etapa en la que una IA sería realmente útil.
Es común llamar a cualquier respuesta automática agente inteligente. Cuando se mezcla, nadie sabe lo que el bot puede hacer, ni dónde se equivoca. Separar la puerta de quien trabaja hace que cada parte sea fácil de probar.
En 1 minuto
En este módulo vas a conversar con un bot tuyo a través de Telegram. La aplicación en el celular solo lleva tu mensaje y trae la respuesta de vuelta.
Quien lee, decide y responde es un programa que corre en tu computadora. Piensa en el interfono de la portería: el aparato lleva la voz, pero quien abre el portón es la persona allá dentro.
Denise oyó que otra escuela "tiene un agente en Telegram". Preguntó qué hacía y descubrió tres respuestas listas, sin ninguna IA. El nombre prometía más de lo que la cosa hacía.
Recibe lo que tú escribes en el celular.
Entrega la respuesta en la misma conversación.
Verifica quién escribió y cuál comando es.
Ejecuta solo la función permitida y arma la respuesta.
El bot del kit del curso tiene dos comandos de trabajo, y ninguno usa IA. El /status confirma que está encendido. El /relatorio suma tres ventas ficticias del archivo ventas.csv, una hoja de cálculo en CSV.
Descargas ese kit en la próxima lección. Por ahora, mira lo que devuelve.
Lúcia va a usar el bot para consultar la tiendita ficticia del gremio: cuaderno, lapicera y agenda. El total sale de una cuenta hecha por el programa, no de una suposición.
Lúcia/status
BotOSWork activo. Acceso restringido. Bot determinístico de entrenamiento.
Lúcia/relatorio
BotDatos ficticios de entrenamiento: 3 ventas; total R$ 100.00. Sin llamada a IA.
Las dos respuestas salen de reglas fijas del programa. "Determinístico" significa eso: el mismo pedido siempre da la misma respuesta.
Quien escribe en Telegram no comanda el computador. El bot compara el mensaje con una lista corta de comandos conocidos. Todo lo demás recibe la misma respuesta estándar.
Esto vale incluso para la dueña del bot. El texto libre nunca se ejecuta como orden. Los comandos /start y /help existen, pero solo muestran la lista de los dos comandos de trabajo.
Denise imaginó un bot de la secretaría que recibiera "borra las faltas de ayer". Con la lista cerrada, ese texto vuelve como comando desconocido, y no se borra nada.
Alguien escribe: "borra la carpeta de las pruebas".
Resultado: el computador obedece. No hay vuelta.
Alguien escribe: "borra la carpeta de las pruebas".
Resultado: "Comando desconocido. Usa /status o /relatorio."
Balance: la misma frase, cero archivos movidos en el bot del kit.
Ponte a prueba
Un colega dice: "nuestro bot de Telegram es un agente inteligente". ¿Qué preguntas primero?
Dibuja todo el camino antes de pensar en IA. Después marca la etapa en la que la IA ayudaría de verdad.
Una buena candidata es la función: puede ganar un resumen en texto a partir de los números. La regla es firme: el número sigue siendo el del programa.
Lúcia marcó la etapa del resumen. La IA podría escribir "la agenda fue la venta más alta", siempre que el total de R$ 100,00 quede como calculó el programa.
Si te trabaste aquí, es normalAún no necesitas tener ningún bot funcionando. En esta lección, el dibujo en papel basta. La creación del bot empieza en la próxima lección, paso a paso.
Practica ahora 0/3
Listo cuando el dibujo tenga cinco cajas, quién hace qué en cada una y una X en una sola etapa. Unos 8 minutos, en el papel o en el bloc de notas del celular.
Nada aquí toca el computador ni Telegram. ¿Te quedó duda sobre la X? Marcar en la función: ahí es donde se arma el texto que la persona va a leer, antes de volver por Telegram.
Denise dibujó el bot de consulta de la secretaría: celular (la mamá pide /horario) → Telegram (lleva) → bot (comprueba si el número está autorizado) → función (lee la hoja de horarios) → respuesta. La X quedó en la función, con la línea: "la IA reescribe el horario en una frase simple; el horario sigue siendo el de la hoja".
Tú separaste la puerta de quién trabaja y sabe decir dónde entraría una IA sin hacerse cargo de todo.
Cola de la lección
Un bot recibe mensajes a través de la API de Telegram y devuelve respuestas. La inteligencia puede venir de reglas, de un programa o de una llamada a un modelo. La aplicación en el celular no ejecuta sola sus tareas en el servidor: existe un programa intermedio con permisos definidos.
Separar interfaz y ejecución evita llamar cualquier respuesta automática de un agente inteligente. Primero construye una ruta confiable para recibir y responder; después conecta la capacidad necesaria.
Mensaje; Bot API; programa; agente; resultado.
/status consulta el estado del bot sin IA. /relatorio calcula ventas ficticias sin IA. Un resumen en lenguaje natural podría añadirse después, preservando los números calculados.
Dibuja: celular → Telegram → bot → función permitida → respuesta. Marca en qué etapa una futura llamada a IA sería realmente útil.
Aceptar una conclusión sin comprobar la entrada que la sustenta.
Lección 37 · OSWork v6.2 · INEMA.CLUB PRO
Módulo 7 · Lección 2 de 6

Puedes crear tu bot en BotFather y guardar el token del bot solo en el archivo .env. Solo tu cuenta lee el archivo, y el token no aparece en ningún print.
Quien tiene el token opera el bot. Un print de la conversación o una copia pegada en un documento bastan para filtrar el acceso. Guardarlo bien en el primer minuto cuesta menos que cambiarlo todo después.
En 1 minuto
Todo bot del Telegram nace en una conversación con el BotFather. Tú envías /newbot, eliges un nombre y un identificador, y él te devuelve el token del bot.
El identificador debe terminar en "bot", como lojinha_gremio_lucia_bot. Si ya está en uso, el BotFather pide otro. El token es una línea de números, dos puntos y letras. Funciona como la llave del portón de la escuela: quien tiene la copia entra, sea quien sea.
Lúcia creó el bot de la lojinha del gremio en tres mensajes. Antes, comprobó que hablaba con el BotFather oficial: el @BotFather, con la insignia azul de verificado, y no una cuenta de nombre parecido.
Lúcia/newbot
BotFatherElige un nombre para tu bot.
LúciaLojinha del Grêmio
BotFatherAhora elige un identificador para él.
Lúcialojinha_gremio_lucia_bot
BotFatherListo. Este es el token de tu bot: [escondido en esta lección]
El BotFather responde en inglés; aquí los mensajes están traducidos y resumidos. El token se escondió a propósito.
En la carpeta del bot, el kit del curso (link en el paso 1 de la práctica) trae un archivo de ejemplo, el .env.example, solo con valores inventados. Haces una copia llamada .env y pegas el token ahí dentro.
El .env se queda solo en tu computadora. El token no aparece en capturas, en mensajes, ni en un documento compartido.
Denise pensó en poner el token en el documento de instrucciones de la secretaría, "para que nadie lo pierda". Cambió de idea: el documento dice dónde queda el .env, nunca el valor.
Pegado en el documento de instrucciones del equipo.
Aparece en una captura enviada al grupo de la escuela.
La línea TELEGRAM_BOT_TOKEN se completa solo en el archivo privado.
El documento dice la ruta del archivo, no el valor.
Balance: un lugar para proteger, en vez de varios para vigilar.
El kit del curso es el archivo oswork-kit.zip; el enlace está en el paso 1 de la práctica. Abre el terminal y entra en la carpeta bot, dentro del kit descomprimido. Copia el ejemplo, restringe la lectura y comprueba.
El chmod 600 hace que solo tu cuenta pueda leer y modificar el archivo. Revisa la línea del resultado: empieza con -rw-------, una r y un w solo.
Lúcia ejecutó los cuatro comandos y encontró el -rw------- en el primer intento. Luego pegó el token en el archivo, guardó y cerró sin sacar captura.
$ cd ~/projetos/oswork-kit/bot
$ cp .env.example .env
$ chmod 600 .env
$ ls -l .env
-rw------- 1 lucia lucia 66 set 25 10:02 .envLos tres primeros comandos no muestran nada cuando sale bien. El último muestra la línea para que la compruebes.
Si te trabaste aquí, es normal¿Apareció "No such file or directory"? No estás en la carpeta correcta. Repite el cd con la ruta desde la que descomprimiste el kit. Si la línea no empieza con -rw-------, vuelve a ejecutar el chmod 600 .env y comprueba.
Si el token apareció en una captura, en un mensaje o en un documento, trátalo como filtrado. En BotFather, envía /mybots, elige el bot, toca en API Token y luego en Revoke current token. Genera un token nuevo y el anterior deja de valer.
Después, cambia el valor en el .env. Un enlace que empieza con api.telegram.org/bot y que trae el token justo después también es filtración.
En una reunión, Denise vio la captura de un colega con el token de un bot a la vista. Avisó de inmediato. El equipo revocó y cambió el valor en el .env en diez minutos.
Practica ahora 0/5
Listo cuando ls -l muestre -rw------- en el .env y el token esté dentro, sin haber pasado por captura de pantalla (print) o mensaje. Aproximadamente 12 minutos, en el computador con la terminal y Telegram en el celular.
Creas un bot nuevo, solo tuyo, y tocas únicamente la carpeta del kit. Ningún comando aquí borra nada. Si el token aparece en algún print, para, revoca en BotFather y repite el último paso con el token nuevo.
cd ~/projetos/oswork-kit/bot cp .env.example .env chmod 600 .env ls -l .env
El nano abre el archivo dentro del propio terminal. Verás dos líneas: TELEGRAM_BOT_TOKEN=preencha_localmente y ALLOWED_USER_IDS=123456789. En esta lección, cambia solo la primera. La segunda se queda para la próxima lección.
Creaste un bot y guardaste su clave en un lugar al que solo tu cuenta puede acceder.
Cola de la lección
En Telegram, encuentre el BotFather oficial y use /newbot. Elija nombre e identificador según las instrucciones mostradas. El token generado autentica su programa ante Telegram. Guárdelo como TELEGRAM_BOT_TOKEN en un archivo privado; el kit solo tiene valores de ejemplo.
Quien controla el token puede operar el bot. Capturas de pantalla del proceso y URLs que contengan el token pueden filtrar acceso. Si hay exposición, revoque el token en BotFather antes de continuar.
BotFather; token; variable de entorno; rotación.
La profesora crea un bot para uso personal. Ella no pone el token en README y no envía el archivo de credenciales a los alumnos. Cada instalación usa sus propias credenciales.
Usa el modo --identify del kit: informa el ID de quien envía /start en la terminal local, sin dar acceso a las funciones operativas.
Lección 38 · OSWork v6.2 · INEMA.CLUB PRO
Módulo 7 · Lección 3 de 6

Puedes descubrir tu ID numérico en Telegram con el modo de identificación del kit y ponérselo en la lista de acceso del bot.
Cualquiera puede encontrar un bot en Telegram y mandarle un mensaje. El token prueba que el programa es el dueño del bot, pero no dice a quién se lo puede usar. Esta segunda decisión es tuya, y queda escrita en una lista.
En 1 minuto
El token del bot le prueba al Telegram que tu programa es el dueño del bot. Él no dice nada sobre quién puede conversar con él.
Por eso el kit tiene un segundo control: la lista de acceso. Es como la lista de quién puede buscar a cada alumno en la salida de la escuela.
Denise lo explicó así al equipo: la clave abre el portón; la lista de la salida dice quién lleva a cada alumno. Son dos verificaciones y una no reemplaza a la otra.
Prueba de que el programa es el dueño del bot.
Se guarda en el .env, en la línea TELEGRAM_BOT_TOKEN.
Dice qué personas atiende el bot.
Se guarda en el mismo .env, en la línea ALLOWED_USER_IDS.
El nombre que aparece en la conversación, la persona lo cambia cuando quiere. El bot revisa el ID numérico, que el Telegram le da a cada cuenta.
Para descobrir o seu, o kit tem um modo só de identificação. No celular, o bot não responde nada nesse modo: o número aparece no terminal.
Lúcia aparece en Telegram como "Lúcia Ciências". Si cambias a "Prof. Lúcia", el bot sigue reconociendo: su número es el mismo.
$ python3 bot.py --identify
Identificação apenas: envie /start em privado; confira seu ID abaixo e encerre com Ctrl+C. Nenhuma função operacional ativa.
ID recebido na identificação: 7012345678
^C
Bot encerrado.La línea del ID solo aparece después de que le envías /start al bot, en un chat privado. El número aquí es ficticio; el tuyo será otro.
Antes de responder, el programa comprueba tres cosas, en este orden. Quien falla en las puertas 1 o 2 no recibe ni un "no": el bot se queda en silencio. En la puerta 3, la respuesta es solo "Comando desconocido".
Esa comprobación está al principio de la función handle_message, dentro del bot.py.
Denise quiso probar el bot de Lúcia. Envió /relatorio y no recibió nada. No era un defecto: su número no estaba en la lista.
if message.get('chat',{}).get('type')!='private':return None
if message.get('from',{}).get('id') not in allowed:return None
"return None" quiere decir: no respondas nada. Para encontrar esas líneas en tu computadora, ejecuta grep -n "allowed" bot.py en la carpeta bot.
Con el número a mano, cierra el modo de identificación con Ctrl+C. Abre el .env y cambia el 123456789, que es solo el ejemplo del kit, por tu ID.
Para autorizar a más de una persona, separa los números con comas. Empieza solo con tú.
Lúcia pensó en incluir a la compañera de la biblioteca. Lo dejó para después de la prueba: con menos gente en la lista, es más fácil comprobarlo.
ALLOWED_USER_IDS=123456789
Nadie real está en la lista. El bot se queda en silencio, incluso para ti.
ALLOWED_USER_IDS=7012345678
El mismo número que apareció en su terminal, en el paso 2. Solo ella recibe respuestas.
Si te trabaste aquí, es normal¿El terminal no mostró ningún número? Revisa tres cosas: enviaste /start en un chat privado con el bot, y no en un grupo; el token en el .env es el del bot correcto; el modo de identificación todavía estaba en marcha cuando lo enviaste.
Practica ahora 0/4
Listo cuando la línea ALLOWED_USER_IDS del .env tenga tu número, y no el del ejemplo. Cerca de 8 minutos, en la computadora, con el celular en la mano.
El modo de identificación no responde ni ejecuta nada: solo muestra el número en el terminal. ¿Apareció "Configure TELEGRAM_BOT_TOKEN en el .env privado"? El token todavía no está en el .env: haz la lección 2 de este módulo (lección 38), que crea ese archivo en la carpeta proyectos/oswork-kit/bot.
cd ~/projetos/oswork-kit/bot python3 --version
El bot del kit está escrito en Python y necesita la versión 3.10 o más nueva. Si aparece "command not found" o un número menor, el Python tiene que pasar por una instalación desde la fuente oficial antes de continuar: python.org/downloads muestra la versión para Windows y Mac. En Linux, el Python 3 suele venir junto con el sistema.
Decidiste, por número, a quién atiende tu bot.
Cola de la lección
El bot del kit solo acepta conversaciones privadas e IDs configurados. También solo acepta los comandos conocidos. Verificar el ID es diferente de verificar el nombre visible: los nombres pueden cambiar. Un mensaje de un desconocido no debe activar la lectura de archivos o comandos del sistema.
Un bot encontrado en internet puede recibir mensajes inesperados. La autenticación del programa con token no significa autorización de cualquier persona que le hable. Son controles distintos.
ID numérico; lista de acceso; conversación privada; comandos fijos.
El dueño escribe /relatorio y recibe totales ficticios. Un usuario fuera de la lista no recibe datos. Incluso el dueño no puede escribir un comando de shell y esperar que el bot lo ejecute.
Lección 39 · OSWork v6.2 · INEMA.CLUB PRO
Módulo 7 · Lección 4 de 6

Puedes encender el bot con long polling, recibir /status y /relatorio en el celular y comprobar el total con el archivo de ventas del kit.
Existen dos formas de que un bot reciba mensajes, y mezclar las dos causa errores difíciles de entender. Empezar por la más simple te deja probar todo en tu computadora, sin abrir ninguna puerta para internet.
En 1 minuto
En el long polling, el programa le pregunta al Telegram si llegó un mensaje nuevo. Si no llegó, espera hasta 25 segundos y pregunta de nuevo.
Es como pasar por el pasillo de la sala de profesores y quedarse un instante, por si llega un papel. El webhook sería el cartero tocando el timbre, y exige una dirección tuya en internet.
Lúcia dejó el bot encendido en la notebook, en casa. No tuvo que tocar ninguna configuración de red: el programa sale a buscar, y nadie necesita entrar.
El programa va hasta el Telegram a buscar los mensajes.
Funciona en tu computadora, sin dirección pública.
El Telegram llama a una dirección tuya en internet.
Requiere esa dirección pública. No se usa en este módulo.
En el terminal, en la carpeta bot, ejecuta python3 bot.py. No aparece ninguna línea, y ese es el signo correcto: el programa está esperando.
El terminal necesita quedarse abierto. Si cierras la ventana o presionas Ctrl+C, el bot deja de responder.
Denise se sorprendió con la pantalla quieta y casi cerró el terminal. Lúcia explicó: pantalla sin una línea nueva es el bot trabajando; una línea nueva suele ser un aviso.
$ python3 bot.py
^C
Bot encerrado.El espacio vacío es el bot esperando mensajes: el cursor se queda quieto hasta que tú presiones Ctrl+C.
Con el bot encendido, envía /status y /relatorio en la conversación privada. La respuesta de /relatorio trae la suma de las ventas ficticias.
Revisa esa suma en el propio archivo, ventas.csv, una hoja de cálculo en CSV. Un total que coincide con el archivo es un resultado verificado, no una suposición.
Lúcia sumó en el papel: cuaderno 35,50, pluma 9,50 y agenda 55,00. Dio 100,00, el mismo número que el bot.
Lúcia/status
BotOSWork activo. Acceso restringido. Bot determinístico de entrenamiento.
Lúcia/relatorio
BotDatos ficticios de entrenamiento: 3 ventas; total R$ 100.00. Sin llamada a IA.
Tres ventas, R$ 100.00: el programa escribe con punto, pero es el mismo R$ 100,00 de la suma del archivo de abajo.
$ cat vendas.csv
produto,valor
Caderno,35.50
Caneta,9.50
Agenda,55.0035,50 + 9,50 + 55,00 = 100,00. El archivo no tiene ningún secreto; puedes abrirlo sin problemas.
Mantén un único programa buscando mensajes para cada bot. Dos al mismo tiempo, con el mismo token del bot, se pelean por los mensajes, y Telegram lo rechaza.
El kit detecta el conflicto y se apaga solo. El aviso sale en el log, que aparece en el propio terminal, sin mostrar el token.
Lúcia encendió el bot en casa, olvidando que seguía encendido en el notebook de la escuela. El de casa se detuvo con el aviso de abajo. Al día siguiente, apagó el de la escuela con Ctrl+C y volvió a encender el de casa.
2026-09-25 19:40:12,381 WARNING Falha HTTP 409 no Telegram; sem detalhes que exponham token.
2026-09-25 19:40:12,382 ERROR Confira token, instância duplicada ou webhook; processo encerrado para diagnóstico.409 significa conflicto. Casi siempre es otra copia del bot encendida. El "webhook" del aviso solo sirve para bots antiguos, configurados de otra forma; el tuyo, nuevo, no.
Si te trabaste aquí, es normal¿Viste el 409 y no sabes dónde está el otro programa? Busca otra ventana de terminal abierta o otra computadora en la que hayas encendido el bot. Apaga todos con Ctrl+C y enciende solo uno.
Practica ahora 0/4
Listo cuando el /relatorio muestre el mismo total que tu suma y, con el bot apagado, el /status no responda. Cerca de 10 minutos, en la computadora y en el celular.
El bot solo lee el ventas.csv, con datos ficticios, y no cambia nada en el computador. ¿Apareció "Falla HTTP 401"? El token del .env está mal o fue revocado: repite el paso del token en la lección 2 de este módulo (lección 38). ¿Ninguna respuesta en el celular? Revisa tu ID numérico en la lista de acceso, como en la lección 3 de este módulo (lección 39).
cd ~/projetos/oswork-kit/bot cat ventas.csv
Tú encendiste un bot tuyo, conversaste con él por el celular y verificaste la respuesta contra el archivo.
Cola de la lección
Long polling es el programa que le pregunta al Telegram por mensajes y espera un poco cuando no hay novedades. Es simple para aprender y no exige abrir un puerto público de entrada. Webhook es otra estrategia, en la que el Telegram llama a una dirección HTTPS tuya; no hace falta en este laboratorio.
Elegir un único modo reduce problemas de configuración. Mantenga una única instancia buscando mensajes para un bot: procesos duplicados pueden disputar actualizaciones.
getUpdates; offset; timeout; instancia única; acceso de salida.
El proceso espera hasta 25 segundos por un mensaje. Al recibirlo, actualiza el offset para no repetir la misma consulta. Tras una falla de red, espera antes de intentar de nuevo.
Inicia con python3 bot.py. Usa Ctrl+C para cerrar. Si surge conflicto, verifica si otro proceso usa el mismo token o si existe webhook configurado.
Mezclar la copia de entrenamiento con archivos privados o trabajo en producción.
Lección 40 · OSWork v6.2 · INEMA.CLUB PRO
Módulo 7 · Lección 5 de 6

Puedes escribir un contrato de integración en cinco líneas y probarlo en el chat para ver que el resumen hecho por la IA no cambia el total calculado.
Conectar una IA a un bot parece el paso natural, pero cada conexión abre un camino nuevo para error y costo. Un bot predecible ya es útil. La IA solo entra donde mejora algo que tú puedes medir.
En 1 minuto
El kit separa con propósito el camino de los mensajes, que es el Telegram, de las funciones de trabajo. Y empieza sin IA: estado e informe de datos ficticios.
Un bot predecible lo pruebas sin gastar nada. Recién después vale preguntar si la IA mejora la interpretación, el resumen o la clasificación.
Denise quería un bot de dudas de la secretaría "con IA desde el principio". Cambió el plan: primero un /horario que solo lee la hoja de cálculo; la IA se dejó para una segunda etapa, con prueba.
El bot nuevo ya llama a una IA para todo.
Cuando se equivoca, nadie sabe si fue el programa o la IA.
Etapa 1: bot sin IA, probado con /status y /relatorio.
Etapa 2: una función con IA, comparada con el resultado de la etapa 1.
Balance: un error a la vez para investigar.
En el boletín, la nota viene de la cuenta y el informe escrito comenta. El informe nunca cambia la nota.
Con el bot es igual. La IA puede escribir un resumen, pero el total viene del programa y no puede cambiar en el texto.
Lúcia imaginó un /resumo para la tienda del grêmio. La IA recibiría solo el total y los tres productos, y no la carpeta entera de sus proyectos.
TúDatos: 3 ventas; total R$ 100,00; cuaderno R$ 35,50; bolígrafo R$ 9,50; agenda R$ 55,00. Escribe un resumen de dos líneas.
IALas ventas sumaron cerca de R$ 110, con énfasis en la agenda.
Inventó un total que no existe. Ese texto no puede salir por el bot.
TúUsa solo estos datos. No alteres ningún número y no agregues datos. Datos: 3 ventas; total R$ 100,00; cuaderno R$ 35,50; bolígrafo R$ 9,50; agenda R$ 55,00. Escribe un resumen de dos líneas.
IAFueron 3 ventas, con total de R$ 100,00. La agenda respondió por R$ 55,00, la mayor parte.
El total es el del programa, y no apareció ningún dato nuevo.
Escribe el contrato de integración: los datos enviados, el modelo disponible, el límite de costo, el tiempo máximo y lo que pasa cuando la IA falla.
La última línea es la más olvidada. Con ella, el bot sigue siendo útil incluso cuando la IA no responde.
Denise escribió el contrato del /horario en cinco minutos. En la línea del fallo puso: "sin IA, el bot manda la línea de la hoja de cálculo como está".
Ponte a prueba
El /resumo con IA ya funciona. En una mañana, la IA no responde. El contrato dice, en la línea 5: "si la IA falla, manda solo el total". ¿Qué hace el bot?
No conectes un agente como el Codex a los mensajes que llegan por el bot. Y no desactives protecciones solo para que funcione la integración.
La IA recibe una entrada corta, armada por el programa, y devuelve texto. Quien decide qué hacer con ese texto sigue siendo el programa.
Lúcia leyó en un foro la sugerencia de conectar el Codex directo al bot, "para que haga cualquier cosa". No siguió: cualquier cosa incluye borrar su carpeta.
Quien escribe en Telegram hace que el agente actúe en la computadora.
Una frase maliciosa se vuelve una acción.
El programa arma la entrada: el total y tres productos.
La IA devuelve texto; el programa verifica si el total es lo que él calculó y solo entonces envía.
Si te trabaste aquí, es normalNo vas a programar la integración en este módulo: el kit no tiene esa parte, a propósito. La práctica es escribir el contrato y probar la regla del número en el chat que ya usas.
Practica ahora 0/3
Listo cuando el contrato tenga las cinco líneas y el resumen del chat mantenga el total de R$ 100,00, sin dato nuevo. Unos 10 minutos, en el chat que ya usas y en el bloc de notas.
Los datos son ficticios del kit, y nada se envía al bot. Si la IA cambia un número, eso no es culpa tuya: es el riesgo que el contrato cubre. Anota y refuerza la frase "no alteres ningún número".
Usa solo estos datos. No alteres ningún número y no agregues datos. Datos: 3 ventas; total R$ 100,00; cuaderno R$ 35,50; bolígrafo R$ 9,50; agenda R$ 55,00. Tarea: escribe un resumen de dos líneas para <a equipo de la tiendita del gremio>. Al final, repite el total exactamente como llegó.
1. Datos enviados: el total y los tres productos con valor.
2. Modelo: lo que esté disponible en mi cuenta.
3. Límite de costo: hasta R$ 2 por mes.
4. Tiempo máximo: 15 segundos.
5. Si la IA falla: el bot envía solo la línea del /relatorio, como hoy.
Definiste, antes de conectarla, qué recibe la IA, cuánto cuesta, cuánto espera y qué pasa si falla.
Cola de la lección
El kit deliberadamente separa transporte y funciones de trabajo. Comienza determinístico: estado e informe de datos ficticios. Para acoplar IA, defina una función con entrada limitada, timeout, techo de salida y revisión. No exponga codex exec directamente a mensajes públicos ni desactive protecciones para hacerlo funcionar.
Un programa predecible te permite probar la base sin gastar API. Después, evalúas si la IA mejora la interpretación, el resumen o la clasificación y mides el resultado con una referencia conocida.
Función de dominio; límites; timeout; revisión; datos mínimos.
Una función de resumen puede recibir solo el total y tres categorías, en vez de todo el directorio de proyectos. El texto generado nunca cambia el total calculado por el programa.
Escribe un contrato de integración: datos enviados, modelo disponible, límite de costo, tiempo máximo y acción cuando la IA falle. El bot base permanece útil sin esta extensión.
Lección 41 · OSWork v6.2 · INEMA.CLUB PRO
Módulo 7 · Lección 6 de 6

Puedes ejecutar el autotest del bot y cuatro pruebas reales en Telegram, registrando lo que se simuló y lo que se probó de verdad.
Una respuesta correcta no demuestra que el bot esté limitado, ni que se recupere de una falla. Pocos escenarios, probados a propósito, lo muestran antes de que el bot vaya a una máquina que queda encendida sin ti.
En 1 minuto
El kit incluye un autotest. El bot ejecuta mensajes falsos contra las propias reglas, sin token y sin internet.
Cubre acceso, grupo, comando desconocido, la suma y archivos de ventas con defecto. Pero no prueba que tu bot converse con el Telegram.
Denise preguntó si el bot de Lúcia obedecía a extraños. Lúcia mostró la línea final del autotest y anotó que aún faltaba la prueba real, con una persona fuera de la lista.
$ python3 bot.py --self-test
OK: 11 cenários offline — acesso, grupo, comando, soma e arquivos inválidos.Una sola línea, empezando con OK. Si aparece un error largo, falló algún escenario.
Es como probar el sonido antes de la reunión de padres: tú pruebas el micrófono con el auditorio vacío. Con cuatro pruebas reales basta: tu /status, una frase cualquiera, una persona fuera de la lista y el bot apagado. Si el bot apagado aún responde, hay otra copia encendida en algún lugar. Si se queda en silencio, quien respondía antes era el programa de tu computadora.
Anota cada prueba en el bloc de notas, con el origen: simulado o Telegram. Así nadie confunde "pasó la prueba" con "funciona en el celular". Al volver a encender el bot, puede responder al /status que quedó esperando; eso es esperado.
Lúcia le pidió a Denise que le enviara /relatorio al bot. No volvió nada, como se esperaba. En el registro escribió: "fuera de la lista, Telegram, sin respuesta".
Cuando algo falla, el síntoma dice dónde mirar. No cambies el modelo de IA: /status y /relatorio no usan IA.
Si solo falla el /relatorio, el problema está en el archivo de ventas, el ventas.csv, una hoja de cálculo en CSV. Si no responde nada, revisa el programa, el token, la internet y la lista de acceso.
Denise vio a Lúcia recibir "No se pudo validar ventas.csv". En vez de culpar a la IA, Lúcia abrió el archivo: había borrado la línea del encabezado sin querer.
El bot dice: "No se pudo validar ventas.csv. Revisa el archivo local; no se inventó ningún total."
Dónde mirar: el archivo de ventas.
El bot dice: nada.
Dónde mirar: ¿el programa está conectado? ¿El token está bien? ¿Hay internet? Tu ID numérico está en la lista de acceso? Lee el terminal.
En una falla de red, el bot lo intenta de nuevo solo. En un conflicto (409) o con el token equivocado (401), se desactiva para que investigues. El log del kit dice el tipo de fallo y la hora. No muestra el token del bot ni el texto de los mensajes.
En el mismo registro del bloc de notas, anota cada fallo así: qué falló, cuándo y qué hiciste. Ese registro es el que va con el bot a la VPS en el módulo 8.
Lúcia apagó el wi-fi con el bot encendido, a propósito. El terminal mostró avisos de nuevo intento, y el bot volvió solo cuando la red regresó.
2026-09-25 20:05:31,114 WARNING Falha de rede ou resposta; nova tentativa em 2 segundos.
2026-09-25 20:05:33,120 WARNING Falha de rede ou resposta; nova tentativa em 4 segundos.
2026-09-25 20:05:37,131 WARNING Falha de rede ou resposta; nova tentativa em 8 segundos.Cada intento espera el doble que el anterior, hasta 60 segundos. Ninguna línea muestra el token.
Si te trabaste aquí, es normal¿No hay nadie que te mande el mensaje desde fuera de la lista? Anota "no probado en Telegram" y sigue: la autoprueba ya cubre este caso de forma simulada. Un registro honesto vale más que un registro completo inventado.
Practica ahora 0/4
Listo cuando el registro tenga la autoprueba y las pruebas en Telegram; cada una marcada como simulada o Telegram. Cerca de 12 minutos, en la computadora y en el celular.
Las pruebas solo leen datos ficticios; nada se borra. La persona fuera de la lista no recibe ningún dato. ¿No hiciste las lecciones 2 a 4 de este módulo (38 a 40)? Ejecuta solo la autoprueba: funciona sin token, en la carpeta bot del kit.
cd ~/projetos/oswork-kit/bot python3 bot.py --self-test > autoteste.txt cat autoteste.txt
Denise probó el bot de consultas que armó para entrenar:
Autoprueba · simulada · 11 escenarios aprobados
/status mío · Telegram · "OSWork activo…"
"buenos días" · Telegram · "Comando desconocido…"
/relatorio fuera de la lista · no probado en Telegram · cubierto por la autoprueba
/status con el bot apagado · Telegram · sin respuesta
Tú probaste el bot antes de necesitarlo y sabes decir qué se simuló y qué fue real.
Cola de la lección
Prueba el remitente permitido, bloqueado, grupo, comando desconocido y datos ausentes. Logs deben informar el tipo de falla y la hora, sin token ni mensajes privados completos. En el laboratorio, apagar el proceso debe detener las respuestas: esto demuestra que el programa local está en el camino.
Una respuesta correcta no prueba que el bot esté restringido ni que recupere red. Un conjunto pequeño de escenarios demuestra las propiedades importantes antes de migrar a una VPS.
Autoprueba; falla de red; logs sin secreto; interrupción; diagnóstico.
Si /status funciona y /relatorio falla, investiga el archivo de datos. Si ninguno funciona, revisa proceso, autenticación y conexión. No cambies el modelo: esos comandos ni usan IA.
Ejecuta --self-test y guarda la salida. Luego prueba la conversación real con tu cuenta; diferencia en el registro lo que fue simulado y lo que fue probado en Telegram.
Usa archivos ficticios y una carpeta de entrenamiento. Las prácticas con instalación, Telegram o VPS pueden requerir tiempo adicional para registro y configuración.
Lea el bloque antes de usar. Campos como Su Nombre y usuario@ip-de-vps son ejemplos para adaptar; los comandos administrativos pertenecen solo a su entorno de entrenamiento.
python3 bot.py --self-test
cp .env.example .env
chmod 600 .env
# Edita .env localmente; nunca compartas valores.
python3 bot.py --identify
# Rellena ALLOWED_USER_IDS con tu ID y termina la identificación.
python3 bot.pyEjecuta un bot restringido de consulta y entiende dónde entra la IA. Registra el archivo producido, la prueba ejecutada y el resultado observado.
Use esta rúbrica después del laboratorio. Cada línea pide una evidencia; marcar lectura no significa que la práctica se haya ejecutado.
¿Se puede pasar un mensaje de Telegram directamente al shell?
No. El bot debe mapear comandos permitidos a funciones definidas y verificar el remitente.
Si su respuesta fue diferente, vuelva al tema correspondiente y escriba la diferencia en una frase. La verificación no bloquea su estudio.
Herramientas verificadas el 20/09/2026; los nombres de pantallas y la disponibilidad pueden cambiar.
Términos de esta sección: chmod, .env.example.
Lección 42 · OSWork v6.2 · INEMA.CLUB PRO
Módulo 8 · Lección 1 de 6

Tú puedes completar la primera parte del plan de VPS: lo que necesitas para hacerlo funcionar, quién se encarga, cuánto puede costar, qué sistema usar y cómo apagarla. Todo antes de contratar cualquier cosa.
Contratar una VPS toma pocos minutos. Descubrir después que nadie se encarga de ella, o que la cuenta llega cada mes sin uso, cuesta mucho más. Por eso, el plan va antes de la compra.
En 1 minuto
Piensa en una sala alquilada. El dueño del edificio te entrega la sala con luz y puerta. Lo que pasa adentro es cosa tuya.
La VPS funciona así. Es un servidor virtual alquilado, con memoria, disco y red, en una empresa llamada proveedor de la VPS. Usuarios, actualizaciones y programas quedan por tu cuenta.
El bot de entrenamiento de Denise, del módulo 7, solo responde mientras su notebook está encendida. A las seis de la tarde ella cierra la tapa y el bot deja de responder en el Telegram.
Cuándo funciona: solo con la tapa abierta.
Quién se encarga: tú, sin darte cuenta.
Cuándo funciona: todo el tiempo, en el proveedor de la VPS.
Quién se encarga: tú, a propósito: usuarios, actualizaciones y programas.
Empieza con una máquina pequeña, compatible con el programa que vas a ejecutar. Un bot que llama a un modelo de IA por la API no necesita una tarjeta de video cara.
El modelo remoto corre en las computadoras del proveedor de IA. La VPS solo envía el pedido y recibe la respuesta.
Lúcia casi contrató una VPS con tarjeta de video para un bot de promedios ficticios del grupo. El bot solo envía pedidos y muestra respuestas; la tarjeta se quedaría parada, y la cuenta, alta.
Elección: el plan más fuerte, con tarjeta de video, “para garantizar”.
Resultado: cuenta alta todos los meses para un bot que casi no trabaja.
Elección: una máquina pequeña, que ejecuta el bot con holgura.
Resultado: el modelo de IA sigue en el proveedor de IA; la VPS solo hace el puente.
Balance: el tamaño de la máquina sigue el programa, no la fama del modelo.
La VPS, el espacio extra de disco y la API de IA se cobran por separado. Suscribirte a una no paga la otra.
La cuota mensual de la VPS llega cada mes, con la máquina trabajando o parada. Es la misma lógica de la lección sobre acceso y cobro, en el módulo 1: cada acceso tiene su cuenta. Anota el límite de cada una.
Denise armó la lista antes de hablar con la dirección. La cuota de la VPS entró en una línea. El bot de entrenamiento no usa IA, entonces la línea de la API quedó con “no usa”.
Una máquina encendida no significa un servicio saludable. El bot puede parar ahí dentro y nadie se entera.
Antes de contratar, decide dos cosas: qué necesitas ejecutar sin parar y quién va a verificar cuando algo salga mal. Anota también el sistema: los ejemplos del curso usan el Ubuntu.
Denise llenó la primera parte del plan de operación del kit del curso. La línea que más demoró fue la última: dónde está el botón para cancelar y quién puede apretarlo.
Ponte a prueba
Denise va a poner el bot de entrenamiento en una VPS. ¿Qué decisión viene antes de elegir el plan?
Si te trabaste aquí, es normalNo necesitas contratar nada en esta lección, ni saber el precio exacto. Donde falte un dato, escribe "a definir" y el nombre de quien decide. El plan ya sirve así.
Practica ahora 0/3
Listo cuando las seis líneas tengan una respuesta o "a definir" con un nombre al lado. Cerca de 8 minutos, en la computadora o en el celular.
Nada se contrata en esta lección. Sin el kit, copia la plantilla en una nota del celular. No anotes contraseña ni datos de tarjeta en el plan.
Dónde está el plan: el archivo plano-vps.md viene en el kit del curso; el oswork-kit.zip de la página de materiales de OSWork. El plan tiene cinco partes: Antes de contratar, Acceso, Servicio, Verificaciones observadas y Rutina. Hoy completas la primera; las otras vienen en las próximas lecciones.
PLAN DE OPERACIÓN · ANTES DE CONTRATAR Trabajo que necesita seguir sin la notebook: <ej.: bot de entrenamiento respondiendo /status> Responsable técnico: <tu nombre o de quien va a encargarse> Presupuesto mensual de VPS: <valor máximo por mes> Presupuesto separado para API, si se usa: <valor o "no usa"> Sistema operativo soportado: <ej.: Ubuntu, versión con soporte> Plan de apagado del recurso: <dónde cancelar y quién puede>
Trabajo: bot que responde el promedio ficticio de la turma, fuera del horario de clases.
Responsable técnico: Lúcia.
Presupuesto mensual de VPS: a definir, con la coordinación.
API: no usa.
Sistema: Ubuntu, versión con soporte.
Apagado: panel del proveedor de la VPS; Lúcia y la coordinación.
Acabas de decidir qué necesita hacer la VPS, quién responde por ella y cómo cerrar la cuenta.
Cola de la lección
VPS es un servidor virtual alquilado: una computadora remota con memoria, disco y red. Tú administras usuarios, actualizaciones y procesos. Empieza con una máquina pequeña compatible con la aplicación; no contrates GPU solo para llamar a un modelo por API. El modelo remoto se ejecuta en la infraestructura del proveedor.
Una máquina encendida no significa un servicio saludable. Los costos de VPS, almacenamiento y API son separados. Antes de contratar, defina lo que necesita ejecutar continuamente y quién verificará incidentes.
Servidor remoto; recursos; costo recurrente; responsabilidad operativa.
Un bot pequeño que consulta datos ficticios no necesita la misma infraestructura que un modelo local. La gestora estima carga, presupuesto y disponibilidad antes de elegir el plan.
Complete materiais/plano-vps.md. Registre sistema operativo, forma de acceso, límite mensual, responsable y forma de apagar el recurso.
Aceptar una conclusión sin comprobar la entrada que la sustenta.
Lección 43 · OSWork v6.2 · INEMA.CLUB PRO
Módulo 8 · Lección 2 de 6

¿Puedes decir en qué máquina estás por lo que el terminal muestra y aplicar la regla de la segunda sesión: probar la entrada nueva antes de cerrar la que funciona.
Quien cambia la cerradura de su casa prueba la llave nueva antes de botar la vieja. En la VPS es igual. Cambiar la red o la forma de entrar sin una ruta de regreso puede dejarte trabado afuera.
En 1 minuto
El SSH crea una conexión protegida para administrar la máquina. El comando ssh usuario@ip-da-vps abre la sesión.
Las partes usuario y ip-da-vps son campos para cambiar, no valores reales. La dirección de la VPS aparece en el panel del proveedor de la VPS.
Lúcia abrió dos ventanas de terminal y se confundió: en una estaba el notebook, en la otra la VPS. El nombre al inicio de la línea y el comando pwd mostraron dónde estaba.
$ ssh usuario@ip-da-vps
usuario@nome-da-vps:~$ pwd
/home/usuario
Después de entrar, el inicio de la línea cambia: ahora muestra el usuario y el nombre de la VPS. El comando pwd responde la carpeta en la que estás.
Usa la clave pública registrada tal como indica el proveedor de la VPS. La clave privada nunca sale de tu computadora. Al contratar, el panel del proveedor guía la creación y el registro; en esta lección no necesitas crear nada.
En la primera conexión, el SSH muestra la huella digital de la máquina. Ella confirma que llegaste a la VPS correcta.
Denise recibió la pregunta en inglés en la primera entrada. Antes de escribir yes, comparó la huella digital con la que el panel del proveedor mostraba.
$ ssh usuario@ip-da-vps
The authenticity of host 'ip-da-vps' can't be established.
ED25519 key fingerprint is SHA256:[impressão digital].
Are you sure you want to continue connecting (yes/no/[fingerprint])?
En portugués: "no se puede confirmar la identidad de esta máquina; la huella digital es esta; ¿quieres continuar?". Responde yes solo si coincide.
Trabaja con tu propio usuario, el usuario de trabajo. Cuando una tarea pida permiso de administrador, pon sudo delante del comando.
Así el poder de administrador aparece solo donde tú lo pediste, y queda visible en el comando.
Lúcia comprobó su propio usuario antes de tocar nada. El mismo comando con sudo mostró el administrador, después de pedir su contraseña.
$ whoami
usuario
$ sudo whoami
[sudo] password for usuario:
root
whoami responde "quién soy". Sin sudo, es el usuario de trabajo; con sudo, es root, el administrador de la máquina.
Antes de cambiar la red o la forma de entrar, deja abierta la sesión original. Abre otra ventana y prueba la nueva entrada. Solo cierra la primera cuando la segunda funcione.
Si todo falla, el consola de recuperación todavía abre la máquina. Verifica que funciona antes de restringir cualquier cosa.
Un tutorial le sugirió a Denise cambiar la puerta del SSH, un cambio común en guías de seguridad. Antes de seguir, abrió la consola desde el panel del proveedor y anotó en el plan que funcionaba.
Estado: abierta, funcionando.
Regla: no cerrar mientras la sesión 2 no entre.
Estado: otra ventana, probando el cambio.
Regra: ¿entró? Entonces sí cierra la sesión 1.
Salida de emergencia: la consola del proveedor, comprobada antes de cualquier cambio.
Si te trabaste aquí, es normalNo necesitas tener una VPS para esta lección. La práctica es un caso para analizar en papel. Cuando alquiles la tuya, vuelve a este paso y sigue las tres rutas en el orden.
Practica ahora 0/3
Listo cuando hayas respondido las tres preguntas y hayas revisado en la guía de respuestas. Cerca de 8 minutos; anótalo en el papel o en el bloc de notas.
Es un caso, sin máquina real, así que nada se rompe. ¿Tienes una VPS de práctica? Haz también el test real: con la sesión abierta, abre otra ventana y entra de nuevo con el mismo comando ssh. No cambies el puerto ni la forma de entrar solo para practicar.
El caso. Rogério, un colega de Denise, alquiló una VPS de práctica. Entró por SSH y pegó un comando de internet que cambia el puerto de SSH. Lo ejecutó y cerró el terminal al instante. Al volver, ssh rogerio@ip-da-vps ya no conecta. Nunca abrió la consola del proveedor.
Acabas de encontrar el error que deja a una persona fuera de su propia VPS, y la ruta de vuelta.
Cola de la lección
SSH crea una conexión protegida para administrar la máquina. Usa la clave pública registrada según el proveedor y verifica la identidad del servidor. Crea un usuario de trabajo con permisos administrativos cuando sea necesario. Mantén la sesión original abierta mientras pruebas una segunda conexión.
Cambiar firewall o la autenticación sin probar una ruta de recuperación puede bloquear tu propio acceso. La consola del proveedor es la alternativa cuando falla la conexión normal; verifica que funcione antes de restringir la red.
Clave pública; huella digital; usuario; sudo; recuperación.
El comando ssh usuario@ip-de-la-vps abre la sesión. usuario e ip-de-la-vps son campos para sustituir, no valores reales. El nombre del prompt y pwd ayudan a confirmar en qué máquina estás.
Prueba la segunda sesión antes de cerrar la primera. No desactives login o cambia el puerto SSH siguiendo un comando sin saber cómo recuperar el acceso.
Lección 44 · OSWork v6.2 · INEMA.CLUB PRO
Módulo 8 · Lección 3 de 6

Puedes comprobar en el terminal si Python 3 y Git están en la máquina y crear la carpeta de proyectos, sin poner nada más.
Cada programa adicional es una cosa más para actualizar, explicar y corregir. Poner herramientas por costumbre da trabajo y no aumenta lo que el servicio puede hacer.
En 1 minuto
Los ejemplos usan Ubuntu con apt. Primero, sudo apt update actualiza la lista de lo que hay en la máquina. Luego, sudo apt upgrade propone las actualizaciones y espera tu respuesta.
El sudo delante pide permiso de administrador, como en la lección anterior.
En la VPS de práctica, Denise se detuvo en la pregunta final y leyó toda la lista. Solo después respondió Y.
$ sudo apt update
Reading package lists... Done
$ sudo apt upgrade
The following packages will be upgraded:
[lista de programas que vão mudar]
Do you want to continue? [Y/n]
La pregunta final significa “¿quieres continuar?”. El Y en mayúscula es la respuesta predeterminada. Lee la lista de arriba antes de responder.
El bot del kit del curso necesita Python 3. Git ayuda a llevar el proyecto desde tu computador a la VPS. El comando es sudo apt install git python3.
El bot usa solo lo que ya viene con Python, sin ningún complemento extra. Otras herramientas, como el Codex, son opcionales: solo entran si el programa las pide.
Un tutorial le sugirió a Lúcia instalar cinco herramientas “para garantizarlo”. Ella comprobó lo que pedía el bot y se quedó con dos.
En la máquina: Git, Python 3 y otras tres herramientas "porque un día puede que las necesites".
Resultado: cinco cosas para actualizar; tres sin uso.
En la máquina: Git y Python 3.
Resultado: dos cosas para actualizar, y las dos funcionan.
Balance: tres herramientas menos para mantener, sin perder nada de lo que hace el bot.
Pregunta la versión de cada programa. Si responde, está en la máquina. Luego crea la carpeta projetos en tu carpeta personal, en la cuenta de trabajo.
Los comandos de versión solo leen. El de crear carpeta no borra nada: si la carpeta ya existe, la deja como está.
Lúcia ejecutó los mismos comandos en el notebook, antes de alquilar cualquier VPS. Los dos respondieron. Anotó las versiones en el plan, para comprobar que fueran las mismas en la VPS.
$ python3 --version
Python 3.x.y
$ git --version
git version 2.x.y
$ mkdir -p ~/projetos
$ ls -d ~/projetos
/home/usuario/projetos
Donde dice x.y, aparece el número de la versión de tu máquina. El último comando confirma que la carpeta existe.
Si te trabaste aquí, es normalSi aparece "command not found", o en Mac una ventana que ofrece herramientas de línea de comando, el programa no está en la máquina. No es un error tuyo. Anota "falta" en el plan: es exactamente lo que la VPS va a necesitar que se instale. En Windows, ejecuta en la terminal del WSL, del módulo 3.
Practica ahora 0/3
Listo cuando tengas la respuesta de los dos comandos de versión y la carpeta proyectos exista. Unos 8 minutos, en la computadora, en la terminal.
Ningún comando de aquí cambia el sistema: dos solo leen la versión, el otro crea una carpeta vacía. No ejecutes la actualización de apt en la computadora del trabajo solo para practicar. En Windows, usa la terminal de WSL, preparada en el módulo 3: en PowerShell estos comandos responden diferente. ¿Tienes una VPS de práctica? Ejecuta los mismos comandos en ella.
python3 --version git --version mkdir -p ~/projetos ls -d ~/projetos
Acabas de comprobar lo que tiene la máquina y decidir lo que necesita, sin instalar nada por hábito.
Cola de la lección
Los ejemplos del laboratorio usan Ubuntu con apt. Actualice la lista de paquetes y revise la actualización propuesta. El bot base necesita Python 3; Git ayuda a transferir el proyecto. Node, Docker y Codex son opcionales según la aplicación, no una lista obligatoria para cualquier VPS.
Cada dependencia añade mantenimiento. Un servicio simple, con pocas piezas, es más fácil de explicar, actualizar y recuperar. Instalar herramientas por hábito crea trabajo sin aumentar la capacidad necesaria.
apt update; apt upgrade; dependencia; entorno virtual cuando sea necesario.
Secuencia de referencia: sudo apt update, sudo apt upgrade, sudo apt install git python3. El bot del kit usa solo la biblioteca estándar, sin instalar paquetes Python externos.
Lección 45 · OSWork v6.2 · INEMA.CLUB PRO
Módulo 8 · Lección 4 de 6

Puedes listar los puertos de red que tu VPS necesita abrir. Y puedes dejar un archivo .env legible solo para ti, verificándolo en terminal.
Abrir todo "para que funcione" aumenta el riesgo y no encuentra la causa del problema. Y un .env que cualquier usuario de la máquina pueda leer deja la contraseña del bot a la vista.
En 1 minuto
El firewall filtra las conexiones de red, en ambos sentidos. Es como el portón de la escuela: tiene la lista de quién puede entrar, y el cartero sale a buscar la correspondencia.
El bot del kit usa long polling. Sale por una conexión segura para preguntarle al Telegram si llegó un mensaje nuevo. Nadie de afuera necesita tocarle la puerta.
Lúcia pensó que necesitaba abrir un puerto para que el bot reciba los mensajes del grupo. No hacía falta: quien entra a la máquina eres solo tú, por el SSH.
En Ubuntu, el ufw configura el firewall. Antes de encenderlo, permite la puerta del SSH que tu VPS realmente usa. Si es la 22, la regla es la del ejemplo. Si es otra, el número cambia.
Algunos proveedores tienen un firewall propio en el panel. Si el tuyo lo tiene, revisa también ahí que el puerto de SSH esté habilitado.
Denise solo encendió el firewall después de preparar las rutas de vuelta de la lección anterior sobre SSH: la segunda sesión probada y la consola del proveedor revisada. El propio ufw te avisó del riesgo.
$ sudo ufw allow 22/tcp
Rules updated
Rules updated (v6)
$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)?
"Rules updated" confirma la regla. La pregunta final avisa: "esto puede derribar las conexiones SSH abiertas; ¿continuar?".
El token del bot vive en el .env. El comando chmod 600 deja ese archivo legible solo por el dueño.
Y el .env nunca entra en el Git: el archivo .gitignore, del módulo 4, ya se encarga de eso.
Lúcia revisó el .env antes y después del chmod. Al inicio de la línea, los trazos muestran quién no puede leer.
$ ls -l .env
-rw-rw-r-- 1 usuario usuario 0 [data] .env
$ chmod 600 .env
$ ls -l .env
-rw------- 1 usuario usuario 0 [data] .env
Después de la primera señal vienen tres tríos: dueño, grupo y otros. r es leer, w es modificar, trazo es "no puede". Antes, el grupo y los otros leían (rw- y r--). Después, solo el dueño tiene rw.
Si el bot no responde, no abras puertos para ver si así se arregla. Separa tres preguntas: ¿el proceso está en ejecución? ¿Se aceptó el token? ¿La red de salida funciona?
El log del bot del kit ayuda a separar, sin mostrar el token.
El bot de Denise se detuvo. El log decía "Falha HTTP 401": era el token, cambiado la semana anterior. No hacía falta cambiar ningún puerto.
Si te trabaste aquí, es normal ¿No tienes VPS ni bot en ejecución? No pasa nada. La práctica es en tu computadora, en una carpeta de entrenamiento, con un .env vacío. ufw se queda para cuando tengas la máquina.
Practica ahora 0/3
Listo cuando el ls -l muestre -rw------- en el .env de entrenamiento y el plan tenga las puertas necesarias. Cerca de 8 minutos, en la computadora, en el terminal.
El archivo se crea vacío, en una carpeta nueva, solo para entrenar: no tiene ningún token. No toques el .env de un bot que ya funciona. En Windows, ejecútalo en el terminal del WSL, del módulo 3: fuera de él, es posible que no aparezca el -rw-------; no es un error tuyo, vuelve al WSL. Si el chmod da error, revisa con pwd si estás en la carpeta treino-rede.
mkdir -p ~/treino-rede cd ~/treino-rede touch .env ls -l .env chmod 600 .env ls -l .env
Acabas de cerrar un archivo de secretos para que solo lo leas tú y reducir la exposición al mínimo.
Cola de la lección
El firewall filtra las conexiones de red. Para el long polling, el bot necesita salir para HTTPS; no necesitas exponer una puerta del bot a internet. Antes de activar UFW, libera la puerta SSH realmente usada y verifica las reglas locales y del proveedor. Restringe el .env con chmod 600 y déjalo fuera de Git.
Abrir todos los puertos para “hacer funcionar” amplía el riesgo sin diagnosticar la causa. Si el proceso no responde, la salida de red, el token y la ejecución merecen verificaciones distintas.
Entrada y salida; puerto SSH; regla de firewall; permisos de archivo.
Si SSH usa el puerto 22, sudo ufw allow 22/tcp puede ser adecuado. Si usa otro puerto, la regla debe cambiar. Solo ejecuta sudo ufw enable después de probar la configuración y el acceso de recuperación.
Lista los puertos realmente necesarios en el plan. Registra qué comandos varían por proveedor y nunca trates el ejemplo de puerto como universal.
Mezclar la copia de entrenamiento con archivos privados o trabajo en producción.
Lección 46 · OSWork v6.2 · INEMA.CLUB PRO
Módulo 8 · Lección 5 de 6

Puedes adaptar los cuatro campos de la unidad del kit y leer, en el estado y en el log, si el bot está en funcionamiento.
Un bot ejecutándose en una sesión SSH puede detenerse cuando cierras la conexión. La supervisión enciende el bot junto con la máquina y guarda los registros en un solo lugar. No sustituye alertas, límites ni la búsqueda de la causa.
En 1 minuto
Hasta aquí, tú encendiste el bot a mano, con python3 bot.py en el terminal. En el VPS, eso amarra el bot a tu conexión.
El systemd es el cuidador de la máquina: enciende las luces toda mañana, vuelve a encender lo que se apagó y anota todo en el libro de incidencias.
Denise dejó el bot ejecutándose en una sesión SSH y se fue a casa. La conexión se cayó en el camino, y el bot se detuvo junto con ella.
Enciende: cuando tú escribes el comando.
Si la conexión se cae: el bot puede detenerse junto.
Registro: guarda con la ventana.
Enciende: solo, junto con la máquina.
Si el bot falla: vuelve a encender después de 15 segundos.
Registro: guardado por systemd, para leer después.
Balance: el bot deja de depender de tu ventana abierta.
La unidad del kit es el archivo oswork-bot.service, en la carpeta bot. Cuatro campos necesitan tu usuario y tu ruta: User, WorkingDirectory, EnvironmentFile (donde está el .env) y ExecStart.
El campo Restart=on-failure vuelve a encender el bot después de una falla. En el kit, el usuario de ejemplo es oswork; el usuario y las carpetas necesitan existir en la VPS.
Lúcia cambió oswork por el usuario de trabajo suyo en los cuatro campos. Después mostró solo esas líneas en la pantalla para comprobar.
$ grep -E "^(User|WorkingDirectory|EnvironmentFile|ExecStart|Restart)=" oswork-bot.service
User=oswork
WorkingDirectory=/home/oswork/projetos/oswork/materiais/bot
EnvironmentFile=/home/oswork/projetos/oswork/materiais/bot/.env
ExecStart=/usr/bin/python3 /home/oswork/projetos/oswork/materiais/bot/bot.py
Restart=on-failure
Así es como viene el kit. Las cuatro primeras líneas son las que tú adaptas; la última la mantienes.
En la VPS, la unidad adaptada se coloca en la carpeta de systemd, /etc/systemd/system, con permiso de administrador. Luego, tres comandos encienden el bot. El systemctl lee las unidades, enciende el bot y muestra su estado.
O sudo aparece en los dos primeros porque cambian la máquina. El tercero solo lee.
Denise vio "active (running)" en el estado. Aun así, solo dio el paso por concluido después de enviar /status en el Telegram y recibir la respuesta.
$ sudo cp oswork-bot.service /etc/systemd/system/
$ sudo systemctl daemon-reload
$ sudo systemctl enable --now oswork-bot
$ systemctl status oswork-bot --no-pager
● oswork-bot.service - OSWork bot de treino restrito
Active: active (running) since [data e hora]
La primera línea copia la unidad. El daemon-reload hace que systemd relea las unidades. "active (running)" quiere decir "activo, en ejecución". El enable --now lo activa ahora y lo deja activado para los próximos reinicios.
Tú/status
BotOSWork activo. Acceso restringido. Bot determinístico de entrenamiento.
La respuesta real del bot del kit al /status.
Haz un reinicio a propósito, con systemctl restart, y envía /status de nuevo. Anota la hora. Luego lee el log con el journalctl.
Reencender no arregla un error que se repite. Si el bot cae de nuevo, detén el servicio y busca la causa antes de insistir.
En el log, Lúcia vio la detención y el regreso del bot, con hora. En otro día, vio "proceso cerrado para diagnóstico" y paró el servicio antes de intentar de nuevo.
$ sudo systemctl restart oswork-bot
$ journalctl -u oswork-bot -n 50 --no-pager
[data] nome-da-vps systemd[1]: Stopped oswork-bot.service - OSWork bot de treino restrito.
[data] nome-da-vps systemd[1]: Started oswork-bot.service - OSWork bot de treino restrito.
Stopped y Started: paró y encendió, con fecha y hora. Con el bot funcionando, ya no escribe nada.
Si te trabaste aquí, es normalLos pasos 3 y 4 necesitan una VPS con el bot. Sin ella, la práctica de esta lección es solo la unidad, en tu computadora. Guarda los comandos: estarán en el plan cuando exista la máquina.
Practica ahora 0/3
Listo cuando el grep muestre tu usuario y tu ruta en los cuatro campos. Aproximadamente 10 minutos, en la computadora, con un editor de texto y el terminal.
Tú editas un archivo de texto, sin encender nada: sin VPS, nada se ejecuta. Trabaja sobre una copia descomprimida del kit. ¿La cagaste? Descomprime de nuevo. En Windows, haz todo en el terminal del WSL, del módulo 3.
Dónde está la unidad: en el kit del curso, el oswork-kit.zip de la página de materiales de OSWork. Descomprime en ~/projetos/oswork-kit: la unidad está en ~/projetos/oswork-kit/bot. En Windows, el zip se descarga en la carpeta Downloads; en WSL, tráelo con cp /mnt/c/Users/SeuNome/Downloads/oswork-kit.zip ~/projetos/ y luego cd ~/projetos y unzip oswork-kit.zip -d oswork-kit. La ruta que viene en el kit es la del repositorio del curso; cámbiala por el lugar donde el bot va a vivir en la VPS. En el molde queda /home tal cual, también en Mac: es la ruta de la VPS.
Pega en el archivo, en lugar de las cuatro líneas del kit:
User=<tu usuario de trabajo> WorkingDirectory=/home/<usuario>/projetos/oswork-kit/bot EnvironmentFile=/home/<usuario>/projetos/oswork-kit/bot/.env ExecStart=/usr/bin/python3 /home/<usuario>/projetos/oswork-kit/bot/bot.py
Ejecuta en el terminal, para comprobar:
cd ~/projetos/oswork-kit/bot grep -E "^(User|WorkingDirectory|EnvironmentFile|ExecStart)=" oswork-bot.service
User=denise
WorkingDirectory=/home/denise/projetos/oswork-kit/bot
EnvironmentFile=/home/denise/projetos/oswork-kit/bot/.env
ExecStart=/usr/bin/python3 /home/denise/projetos/oswork-kit/bot/bot.py
Acabas de preparar la instrucción que mantiene el bot encendido sin depender de tu ventana.
Cola de la lección
systemd es el gestor de servicios de muchas distribuciones Linux. Una unidad describe qué programa iniciar, con qué usuario y en qué carpeta. Restart=on-failure reinicia tras una falla, pero no corrige un error persistente. El kit proporciona una unidad parametrizada para el usuario oswork.
Ejecutar el bot en una sesión SSH puede terminar el trabajo al cerrar la conexión. La supervisión permite reiniciar con la máquina y centralizar logs. No reemplaza alertas, límites o el análisis de la causa.
Unidad; usuario de servicio; directorio; reinicio; journal.
Después de adaptar rutas, usa sudo systemctl daemon-reload y sudo systemctl enable --now oswork-bot. Consulta systemctl status y journalctl -u oswork-bot -n 50 --no-pager.
Haz un reinicio controlado con systemctl restart, revisa /status y registra la hora. Si falla, detén el servicio antes de seguir repitiendo intentos sin diagnóstico.
Lección 47 · OSWork v6.2 · INEMA.CLUB PRO
Módulo 8 · Lección 6 de 6

¿Puedes hacer un backup de ventas.csv, el archivo de datos del bot de entrenamiento? Luego, restaura la copia en una carpeta separada y comprueba, con un comando y con el total, que está completa.
Sin que nadie mire, un servicio puede quedarse detenido por días. Sin una prueba de restauración, la copia puede estar incompleta, y solo te enteras el día en que la necesitas. La promesa real es una rutina que se recupera, no una máquina que nunca falla.
En 1 minuto
El systemd vuelve a encender el bot, pero no avisa a nadie si se queda callado. Por eso existe la checagem externa: alguien, desde fuera de la VPS, verifica si el servicio responde.
Una verificación diaria simple registra dos cosas: si el bot respondió y cuánto espacio queda en el disco. En la VPS, el comando df -h / muestra el espacio usado.
Denise manda /status al celular todos los días por la mañana, antes de la reunión de las ocho. Anota la hora de la respuesta y, una vez por semana, el espacio en disco.
Guarda las copias de los datos fuera de la VPS: por ejemplo, una carpeta protegida en el Drive de la escuela o un disco externo. Si la máquina desaparece, la copia no puede ir junto. Define también la retención: por cuánto tiempo se guarda cada copia.
El .env con el token del bot tiene tratamiento privado. No entra en una copia a la que otras personas acceden.
Lúcia guardaba la copia de los datos del grupo en la misma VPS. Luego la guardaba en un lugar protegido, fuera de ella, con tres copias mensuales. El .env quedó fuera.
Dónde: una carpeta al lado del bot.
Si la máquina desaparece: la copia desaparece junto con ella.
Secreto: el .env quedó junto en la copia.
Dónde: un lugar externo y protegido.
Si la máquina desaparece: los datos vuelven.
Secreto: el .env tratado por separado; retención de tres meses escrita en el plan.
Balance: perder la VPS deja de ser perder los datos.
Un simulacro de incendio demuestra que la escuela sale del edificio. La prueba de restauración demuestra que la copia vuelve. Un backup solo está validado cuando tú lo restauraste y verificaste el contenido.
El bot de entrenamiento del módulo 7 suma los valores de vendas.csv, un archivo de ventas ficticias, cuando recibe /relatorio. La prueba mensual restaura ese archivo en una carpeta separada y lo compara con el original. El diff muestra las diferencias; si no muestra nada, los dos son iguales.
En el primer test, la copia de Denise estaba vacía: el comando de copia apuntaba a la carpeta equivocada. El ensayo detectó el error antes de una pérdida real.
$ cp ~/copias-oswork/vendas-copia-1.csv ~/restauracao-teste/vendas.csv
$ diff vendas.csv ~/restauracao-teste/vendas.csv
$ cat ~/restauracao-teste/vendas.csv
produto,valor
Caderno,35.50
Caneta,9.50
Agenda,55.00
El diff no mostró nada: la copia es igual al original. Suma los valores: 100,00, el mismo total que el /relatorio del bot muestra.
Si te trabaste aquí, es normalEl silencio del diff parece que "no pasó nada". Es lo contrario: solo habla cuando encuentra una diferencia. Si aparece "No such file or directory", la carpeta o el nombre de la copia son distintos; revisa con ls.
El proyecto del curso termina con cinco evidencias: respuesta autorizada, bloqueo de desconocido, reinicio, log sin token y restauración verificada.
Sin una segunda cuenta en Telegram, el bloqueo de desconocido se puede comprobar con la prueba del kit, python3 bot.py --self-test. Para el log sin token, lee journalctl y confirma que el token no aparece. Si alguna etapa no se ejecutó, decláralo. Escrito "No hice" vale más que un "hecho" que nadie verificó.
Denise todavía no había alquilado la VPS. Registró las evidencias que pudo en el cuaderno y escribió, en la línea del reinicio, "no ejecutado: sin VPS".
Practica ahora 0/3
Listo cuando el diff no muestre nada y el total de la copia restaurada sea 100,00. Cerca de 10 minutos, en el computador, en el terminal.
Tú solo copias un archivo de datos ficticios; nada se borra. Aquí la copia queda en tu computador; en una VPS de verdad, iría fuera de la máquina. En Windows, usa el terminal del WSL, del módulo 3: en PowerShell el diff responde diferente.
Dónde está el archivo: vendas.csv viene en la carpeta bot del kit del curso, el oswork-kit.zip de la página de materiales del OSWork. Las líneas de abajo suponen que el kit está descomprimido en ~/projetos/oswork-kit, como en la lección anterior; si está en otro lugar, cambia solo la primera línea. El terminal necesita responder vendas.csv con el ls.
cd ~/projetos/oswork-kit/bot ls vendas.csv mkdir -p ~/copias-oswork ~/restauracao-teste cp vendas.csv ~/copias-oswork/vendas-copia-1.csv cp ~/copias-oswork/vendas-copia-1.csv ~/restauracao-teste/vendas.csv diff vendas.csv ~/restauracao-teste/vendas.csv cat ~/restauracao-teste/vendas.csv
Acabas de comprobarlo, y no solo suponerlo: tu copia vuelve completa.
Cola de la lección
La operación continua combina supervisión, actualización, monitoreo, copias de seguridad y restauración probada. Haga copias de los datos fuera de la máquina, proteja credenciales y defina retención. Una copia de seguridad solo se valida cuando restaura una copia y verifica el contenido.
Sin monitoreo, un servicio puede quedar detenido durante días. Sin prueba de restauración, la copia puede estar incompleta. La promesa real es una rutina recuperable, no una máquina infalible.
Verificación externa; logs; copia de seguridad fuera de la VPS; restauración; límite de gasto.
Una verificación diaria registra la respuesta del bot y el espacio en disco. Un test mensual restaura ventas.csv en una carpeta separada y compara el total. Las credenciales tienen tratamiento privado, sin entrar en la copia pública.
Finaliza el proyecto con cinco evidencias: respuesta autorizada, bloqueo de desconocido, reinicio, log sin token y restauración confirmada. Declara cualquier paso no ejecutado.
Usa archivos ficticios y una carpeta de entrenamiento. Las prácticas con instalación, Telegram o VPS pueden requerir tiempo adicional para registro y configuración.
Lea el bloque antes de usar. Campos como Su Nombre y usuario@ip-de-vps son ejemplos para adaptar; los comandos administrativos pertenecen solo a su entorno de entrenamiento.
sudo apt update
sudo apt upgrade
sudo apt install git python3
# Adapta la unidad del kit al usuario y ruta reales.
sudo systemctl daemon-reload
sudo systemctl enable --now oswork-bot
systemctl status oswork-bot --no-pager
journalctl -u oswork-bot -n 50 --no-pagerPrepare un plan de despliegue, supervisión, copia de seguridad y verificación del servicio. Registre el archivo producido, la prueba ejecutada y el resultado observado.
Use esta rúbrica después del laboratorio. Cada línea pide una evidencia; marcar lectura no significa que la práctica se haya ejecutado.
Instalar Codex en una VPS garantiza un agente activo 24 horas?
No. Se necesita un servicio o programador, proceso supervisado, credenciales válidas, red y monitoreo.
Si su respuesta fue diferente, vuelva al tema correspondiente y escriba la diferencia en una frase. La verificación no bloquea su estudio.
Herramientas verificadas el 20/09/2026; los nombres de pantallas y la disponibilidad pueden cambiar.
Términos de esta sección: systemctl, journalctl, ruta.
Lección 48 · OSWork v6.2 · INEMA.CLUB PRO