Recientemente, al interactuar con agentes de IA para programación como OpenCode, me encontré repetidamente con la palabra clave TODO. Inicialmente, mi mente hispanohablante me llevó a pensar que significaba "todo" en el sentido de "todo completo" o "todo el proyecto", lo cual generó cierta confusión. Sin embargo, pronto descubrí que su significado es mucho más específico y tiene raíces profundas en las convenciones del desarrollo de software.
1. El Misterio de "TODO" en OpenCode
Mi primera interacción con TODO en OpenCode fue a través de un placeholder en el campo de entrada, que decía: "Ask anything... Fix a TODO in the codebase". Esto me hizo pensar que el agente me estaba invitando a "arreglar todo" el código, lo cual me parecía una tarea abrumadora y poco específica. Fue entonces cuando investigué el verdadero significado.
La clave reside en que TODO no es una palabra en español, sino una abreviatura del inglés "to do", que se traduce como "por hacer" o "pendiente". Esta revelación fue un pequeño "momento de ajá" que cambió completamente mi percepción de cómo los desarrolladores y ahora los agentes de IA gestionan las tareas.
2. "TODO" en el Desarrollo de Software: Una Convención Histórica
En el mundo de la programación, TODO se ha utilizado durante décadas como una convención estándar para marcar trabajo pendiente dentro del código fuente. Es una nota que un desarrollador deja para sí mismo o para otros miembros del equipo, indicando que una sección específica requiere implementación, mejora o revisión futura.
Estos comentarios no tienen ningún efecto en la ejecución del programa; son puramente informativos. Aquí algunos ejemplos comunes:
# TODO: Agregar validación de usuarios
// TODO: Optimizar esta función
Otras Convenciones Similares
Además de TODO, existen otras palabras clave que se han estandarizado para marcar diferentes tipos de notas en el código. Estas son algunas de las más comunes, escritas en mayúsculas y sin espacio para facilitar su detección:
FIXME: Indica que hay un problema conocido en el código que debe corregirse. Proviene de "Fix Me" (arréglame).HACK: Señala una solución temporal, poco elegante o un atajo que podría necesitar una refactorización futura.NOTE: Para notas importantes o explicaciones adicionales.XXX: Una advertencia sobre código potencialmente problemático, delicado o que requiere atención especial.
3. Cómo los Agentes de IA Utilizan "TODO": Más Allá del Comentario
Con la llegada de los agentes de IA para programación, la convención TODO ha evolucionado y se ha adoptado en nuevos contextos:
Tareas Pendientes Internas del Agente
Algunos agentes de IA, como OpenCode, utilizan una lista interna de TODO para planificar los pasos necesarios para completar una solicitud. Esta lista es una representación de las tareas que el agente se propone realizar antes de entregar una solución.
TODO
- Leer el archivo config.json
- Buscar errores
- Generar el parche
En este escenario, no es una instrucción para el usuario, sino una ventana al proceso de pensamiento y planificación del agente.
Paneles de Planificación en Agentes Modernos
Los agentes más avanzados pueden incluso mostrar un panel o sección dedicada a TODO, donde mantienen una lista de tareas pendientes para no perder el contexto durante trabajos complejos o largos. Si en OpenCode veo algo como:
TODO
☐ Analizar el proyecto
☐ Modificar archivo X
☐ Ejecutar pruebas
☐ Confirmar cambios
Esto significa que el agente está planificando su trabajo y marcará cada paso a medida que lo complete. Es una forma de transparencia sobre su progreso.
4. Desentrañando el Mensaje de OpenCode
Volviendo al placeholder inicial de OpenCode: "Ask anything... Fix a TODO in the codebase", ahora su significado es cristalino. No me está pidiendo que arregle "todo" en el sentido de "todo el código", sino que me invita a pedirle que resuelva una tarea pendiente marcada con TODO en mi proyecto. Es decir, si mi código contiene comentarios como:
# TODO: Validar los datos de entrada
// TODO: Eliminar código duplicado
/* TODO: Añadir pruebas unitarias */
OpenCode me ofrece la capacidad de pedirle que aborde y resuelva esas tareas específicas.
5. Otras Abreviaturas Comunes en Programación
El caso de TODO no es único. Muchas abreviaturas y nombres de archivos comunes en programación tienen orígenes igualmente sencillos, aunque a veces pasen desapercibidos:
TODO: *To Do* (por hacer)FIXME: *Fix Me* (arréglame)README: *Read Me* (léeme)CHANGELOG: *Change Log* (registro de cambios)LICENSE: Licencia del proyectoENV: *Environment* (entorno)CFG / CONFIG: *Configuration* (configuración)
Entender estas convenciones no solo clarifica el lenguaje de la programación, sino que también facilita la interacción con herramientas y agentes de IA que las han adoptado.
6. Explorando Comandos y Tips en OpenCode
Además de la aclaración sobre TODO, también me interesó saber cómo interactuar más eficazmente con OpenCode y dónde encontrar su documentación o lista de comandos. Un tip recurrente que veía era: "Tip: Run /connect to add an AI provider and start coding".
Este mensaje me indicaba que para empezar a programar con OpenCode, necesitaba configurar un AI provider, que es el servicio que proporciona el modelo de lenguaje subyacente (como OpenAI, Anthropic, Google Gemini, OpenRouter, Ollama o LM Studio). El comando /connect abre un asistente para configurar la API key, URL, y el modelo deseado.
Cómo Encontrar Comandos y Ayuda
Para descubrir todos los comandos disponibles en OpenCode (o en la mayoría de agentes de IA), las opciones más comunes son:
- Escribir
/en el prompt: Muchos agentes despliegan una lista de comandos disponibles. - Ejecutar
/helpo/?: Si el agente lo soporta, mostrará una guía de uso. - Consultar la documentación oficial: Es la fuente más completa para comandos y ejemplos.
Sobre los Tips Rotatorios
Los mensajes de "Tip" que aparecen aleatoriamente en OpenCode suelen estar definidos en archivos específicos dentro del repositorio del proyecto (por ejemplo, tips.ts, tips.json, constants.ts, etc.). No hay una forma directa de verlos todos dentro de la aplicación, pero si el proyecto es de código abierto, se pueden localizar en su código fuente.
La historia detrás de la nota
Es curioso cómo una simple abreviatura puede generar tanta confusión hasta que alguien te explica su origen. Este pequeño descubrimiento me recordó que, a menudo, las cosas más "técnicas" tienen las explicaciones más sencillas y lógicas, solo hay que preguntar.