Cómo usar LazyCodex con Codex: memoria del proyecto, planificación y verificación

"La documentación oficial de LazyCodex describe los cuatro comandos principales, la posición de Codex Light, el estado Boulder, las cinco puertas de evidencia y los límites de iteración de ulw-loop."
Cambias una función que afecta a más de una decena de archivos. Codex informa que ha «terminado», confías en el resultado y, después del despliegue, descubres que falta el manejo de una rama de error. Es un problema habitual en bases de código complejas: cada conversación nueva debe volver a entender el proyecto, y el modelo suele contar qué modificó sin señalar de forma activa qué lógica periférica pudo omitir.
LazyCodex empaqueta como un agent harness ligero las capacidades de OmO (oh-my-openagent) que encajan con Codex. Se centra en memoria del proyecto, planificación del trabajo y un ciclo de aceptación respaldado por evidencia. A continuación se explica cómo colaboran $init-deep, $ulw-plan, $start-work y $ulw-loop, cómo los AGENTS.md jerárquicos aportan contexto a un repositorio grande y qué ideas de ingeniería sirven incluso sin instalar la herramienta.
Qué es LazyCodex: la distribución ligera de OmO para Codex
LazyCodex puede compararse con LazyVim respecto a Neovim: las capacidades principales provienen de oh-my-openagent (OmO), mientras que LazyCodex distribuye en un entorno existente las partes compatibles con el sistema de plugins de Codex. El proyecto es de código abierto en GitHub y usa la licencia MIT. En julio de 2026, la documentación oficial lo denomina edición Codex Light de OmO, no un port completo de OmO Ultimate.
Diferencias principales entre Codex directo y LazyCodex
| Dimensión | Codex directo | LazyCodex (Codex Light) |
|---|---|---|
| Memoria del proyecto | El contexto depende sobre todo de las instrucciones actuales del repositorio y de la sesión; no hay un flujo listo para una inicialización profunda | $init-deep genera AGENTS.md jerárquicos y aporta indicaciones locales a los directorios complejos |
| Criterio de finalización | La validación activa de límites depende de la descripción de la tarea y de los hábitos de ejecución actuales | Las cinco puertas de evidencia de $start-work y la verificación oracle de $ulw-loop vuelven explícitos los criterios |
| Disciplina de proceso | Se puede editar directamente; el usuario debe imponer por su cuenta la planificación previa | $ulw-plan solo planifica, $start-work ejecuta el plan y $ulw-loop cierra el ciclo de evidencia |
| Persistencia | Depende de las sesiones de Codex y de los archivos del proyecto para conservar el contexto | .omo/boulder.json guarda el estado de ejecución del plan y un Stop hook puede seguir impulsando el trabajo incompleto |
| Capa de herramientas | Usa los skills, MCP y capacidades paralelas que Codex ofrezca en ese momento | Instala además rules, hooks, skills, LSP, búsqueda AST y configuración de enrutamiento de modelos de OmO |
Este harness no cambia la capacidad principal del modelo Codex. Normaliza cómo se usa: primero crea memoria del proyecto, luego planifica y ejecuta, y finalmente acepta el trabajo según la evidencia. Sin embargo, la orquestación completa de agentes especializados y las herramientas team_* de OmO Ultimate no forman parte de Codex Light. La ejecución paralela de LazyCodex depende de la superficie de subagents o teams disponible en la versión actual de Codex.
Instalación: una línea con npx, sin instalación global
La ruta oficial principal de LazyCodex usa siempre npx; no requiere npm i -g:
# Instalación estándar
npx lazycodex-ai install
# Comando equivalente (paquete OmO y plataforma Codex explícitos)
npx --yes --package oh-my-openagent omo install --platform=codex
# Modo totalmente automático (sin interacción y con permisos autónomos explícitos)
npx lazycodex-ai install --no-tui --codex-autonomous
# Comprobación después de instalar
npx lazycodex-ai doctor
El instalador escribe en la caché de plugins de Codex y en la configuración relacionada. La instalación interactiva estándar pregunta si debe configurar permisos autónomos. Como --codex-autonomous cambia esa configuración, actívalo solo si entiendes los límites de seguridad del equipo. Después de instalar o actualizar, también debes aprobar los hooks de OmO durante la revisión de inicio de Codex y abrir una nueva sesión para cargar el plugin.
Después de la instalación, recuerda primero cuatro comandos:
$init-deep: generar AGENTS.md jerárquicos$ulw-plan: convertir los requisitos en un plan completo en decisiones y pendiente de aprobación$start-work: ejecutar el plan y guardar el progreso persistente$ulw-loop: continuar una tarea única hasta que la evidencia sea validada
Si prefieres comprobar antes el contenido instalado, ejecuta npx lazycodex-ai doctor o consulta el README oficial de LazyCodex y la documentación oficial.
Memoria del proyecto: crear AGENTS.md jerárquicos con $init-deep
El problema típico de un repositorio grande es que una sola conversación no basta para explicar todo el proyecto. Si hay cientos de archivos y muchos módulos, al abrir una sesión nueva el agente debe explorarlo otra vez o corre el riesgo de editar en el lugar equivocado por falta de restricciones locales.
$init-deep crea «puntos de referencia» para el repositorio. El comando:
- recorre el repositorio y lee los archivos que determinan cómo se trabaja realmente
- genera AGENTS.md jerárquicos en la raíz y en subdirectorios complejos
- coloca las instrucciones locales lo más cerca posible del código afectado
- permite que los agentes posteriores lean las reglas de su ámbito antes de editar
La jerarquía importa porque las indicaciones locales deben estar junto al código que las necesita y no todas dentro de un enorme archivo raíz. Cuando un agente entra en un módulo, ve directamente las reglas del directorio sin tener que extraerlas de una documentación general gigantesca.
Este enfoque no es idéntico a la arquitectura de memoria a largo plazo de Diseño de un sistema de memoria para agentes: AGENTS.md se parece más a contexto versionado del proyecto que a recuerdos de conversación recuperados automáticamente. Aun así, ambos destacan jerarquía, contexto local y persistencia. También se parece al papel de CLAUDE.md en Controlar Claude con un archivo de configuración: hacer que la IA lea las reglas antes de tocar el código.
Los AGENTS.md generados son archivos Markdown normales y deben revisarse manualmente. Si se refactoriza el repositorio, cambia la función de un directorio o se actualizan los comandos, vuelve a ejecutar $init-deep o mantenlos a mano. El contenido generado no es una fuente de verdad correcta para siempre.
Cuatro comandos para memoria, planificación, ejecución y verificación
El flujo principal de LazyCodex se divide en cuatro partes: inicializar la memoria del proyecto, planificar, ejecutar y verificar. Para una tarea de desarrollo concreta, los tres últimos comandos forman el ciclo planificación–ejecución–verificación.
$ulw-plan: solo produce un plan para aprobar
$ulw-plan "what to build"
Este comando planifica, pero no escribe código del producto. El proceso:
- aclara los requisitos mediante una entrevista, sin tratar una frase ambigua como especificación de implementación
- explora la base de código y reparte búsquedas independientes entre subagents paralelos
- analiza la brecha entre el estado actual y el objetivo
- escribe el plan en
plans/<slug>.mdcon referencias, criterios de aceptación, estrategia de QA y límites de commits - marca
status: awaiting-approvaly espera la aprobación
La restricción clave es que la fase de planificación no realiza cambios en el producto. Primero se aclaran alcance y criterios; después el plan pasa a la ejecución. Dividir tareas con Subagents presenta una idea parecida, pero LazyCodex la integra en el flujo del plan.
$start-work: ejecutar el plan con estado persistente
$start-work [plan-name] [--worktree <absolute-path>]
Este comando ejecuta un plan aprobado hasta completar todas las casillas de nivel superior. Sus características principales:
- Estado Boulder persistente:
.omo/boulder.jsonmantiene el progreso entre turnos y sesiones - Stop hook: si el plan sigue incompleto, vuelve a inyectar la siguiente ronda de trabajo
- Subagents paralelos: las subtareas independientes pueden distribuirse; el paralelismo exacto depende de la superficie actual de Codex
- TDD estricto y cinco puertas de evidencia: releer el plan, validación automática, QA manual, QA adversarial y limpieza
- Registro de progreso: conserva la ejecución y el estado de las casillas
Al completar todo, aparece ORCHESTRATION COMPLETE. Esa señal significa que el flujo declara terminadas todas las casillas y puertas de evidencia. Aun así, debes revisar las pruebas reales, la QA manual y la evidencia de los cambios en lugar de confiar solo en una línea de estado.
$ulw-loop: verificar de forma continua una tarea única
$ulw-loop "task" [--completion-promise=TEXT] [--strategy=reset|continue]
Este comando sirve para una tarea única cuyo alcance ya está claro, pero que debe continuar hasta que la evidencia supere la verificación. No sustituye una planificación completa; si la tarea es ambigua, primero usa $ulw-plan.
- Límite de iteraciones: hasta 500 en modo ultrawork y hasta 100 en modo normal
- Estrategia:
resetreinicia el contexto del bucle en cada vuelta;continueconserva el estado actual - Completion promise: define la evidencia que debe recopilarse, las validaciones obligatorias y cómo tratar información ausente
- Condición de parada: el oracle decide con la evidencia si se ha cumplido la promesa de finalización
La cantidad de iteraciones no garantiza calidad. Si el estándar de finalización es ambiguo, el bucle solo repetirá con mayor rapidez un juicio ambiguo. Lo importante es escribir en la completion promise las pruebas, las condiciones límite, la QA manual y el tratamiento de fallos.
Por qué la aceptación importa en una base de código compleja
El riesgo típico de una base de código compleja es que un cambio atraviese más de una decena de archivos y funcione en la ruta principal, pero deje sin actualizar una rama de error, un llamador, la configuración o la documentación. No es solo una limitación del modelo: faltan evidencias explícitas en la definición de terminado.
Situaciones en las que el modelo suele omitir bordes:
| Tipo de cambio | Lugares que se omiten con facilidad |
|---|---|
| Cambio en el flujo principal | Ramas de error como fallo de red, validación de parámetros o permisos insuficientes |
| Nueva interfaz | Llamadores y dobles de prueba que todavía usan la firma anterior |
| Refactorización de módulo | Pruebas, configuración, documentación y artefactos generados |
| Eliminación de función | Puntos de entrada dependientes, analítica, registros y capas de compatibilidad de migración |
El valor añadido de LazyCodex no consiste en garantizar que «nunca se omita nada», sino en fijar las comprobaciones dentro del flujo. Las cinco puertas de evidencia exigen releer el plan, ejecutar validación automática, realizar QA manual, buscar fallos de forma adversarial y limpiar residuos. $ulw-loop mantiene una tarea hasta que se cumple la evidencia acordada. «El modelo dice que ha terminado» se convierte en «la evidencia definida previamente determina el final».
Las puertas de evidencia aún necesitan las fuentes de verdad del proyecto y buenos criterios de aceptación. Un cambio de firma requiere localizar todos los llamadores; eliminar una función exige buscar puntos de entrada dependientes; un cambio de UI necesita interacción real y no solo pruebas unitarias. El harness aporta disciplina de proceso, pero no conoce automáticamente los riesgos del negocio.
Agentes especializados de OmO y capa de skills de LazyCodex
LazyCodex procede de OmO, pero sus alcances deben distinguirse. OmO Ultimate ofrece la orquestación completa de agentes especializados; Codex Light solo incluye los componentes adaptables al sistema de plugins de Codex y utiliza la propia superficie de agentes de Codex.
Agentes especializados: la orquestación completa pertenece a OmO Ultimate
| Agente | Responsabilidad | Límite de LazyCodex Light |
|---|---|---|
| Sisyphus | Orquesta la ejecución y la verificación | La configuración del rol puede estar visible, pero Light no incluye la orquestación completa de agentes de OmO Ultimate |
| Hephaestus | Ejecuta tareas y modifica archivos | Las tareas independientes dependen de las capacidades de subagent disponibles en Codex |
| Oracle | Decide el final según la evidencia | $ulw-loop conserva el hábito de verificación con evidencia, pero no todos los recursos de orquestación de Ultimate |
| Librarian | Registra y recupera contexto | La memoria del proyecto se implementa principalmente con $init-deep y AGENTS.md jerárquicos |
Por tanto, Team Mode, el equipo completo de agentes especializados y las herramientas team_* de OmO Ultimate no deben contarse como capacidades integradas de LazyCodex Light. La posibilidad real de crear miembros del equipo en paralelo también depende de las funciones que ofrezca la aplicación o CLI de Codex actual.
Capa de skills: trasladar decisiones especializadas a flujos reutilizables
LazyCodex instala un conjunto de skills y componentes. La documentación oficial actual incluye como ejemplos:
| Skill o componente | Uso |
|---|---|
| review-work | Revisar el resultado de la implementación por varios canales |
| remove-ai-slops | Eliminar rastros de IA estereotipados sin cambiar el comportamiento |
| frontend | Restricciones para diseño frontend e implementación de UI |
| LSP | Diagnósticos, definiciones, referencias y operaciones por símbolo |
| AST-grep | Buscar y reescribir código según su estructura sintáctica |
| rules / comment-checker | Cargar reglas del proyecto y revisar la calidad de los comentarios |
| git-bash | Aportar herramientas compatibles en entornos que requieren semántica Bash |
Se parece al diseño de La función Skill de Claude: los comandos dirigen el proceso y los skills contienen el juicio de cada dominio. La lista exacta puede cambiar con las versiones; después de instalar, consulta el estado real en el menú $ de Codex o en la salida de doctor.
Enrutamiento de modelos: asignar razonamiento según el riesgo
LazyCodex configura el enrutamiento de modelos para que distintos roles o tareas usen un modelo y nivel de reasoning apropiados. Su objetivo no es garantizar ahorro de tokens; de hecho, la documentación oficial advierte que LazyCodex dedica suficientes recursos de modelo y contexto a planificación, ejecución y verificación.
Principios de uso más sólidos:
- Usar una intensidad de razonamiento media para tareas diarias
- Aumentarla cuando el costo del fallo sea alto o la tarea necesite revisión
- Reservar el nivel máximo para trabajos realmente pesados
- Acotar y dividir las tareas largas para no saturar un thread con demasiado contexto
Los nombres concretos de los modelos y las matrices de enrutamiento cambian. La configuración vigente durante la instalación es la fuente válida. No copies a un proceso duradero un modelo mencionado en un README de un momento concreto ni equipares «enrutamiento multimodelo» con «ahorro garantizado de cuota».
Cuatro ideas de ingeniería que sirven sin instalar LazyCodex
Aunque no instales LazyCodex, cuatro ideas se pueden trasladar a otros flujos con agentes.
Idea 1: escribir archivos de contexto jerárquicos para repositorios grandes
Los AGENTS.md generados con $init-deep son, en esencia, contexto versionado y jerárquico para un repositorio grande. Puedes copiar el principio:
- Escribir instrucciones locales para directorios complejos en lugar de acumular todas las reglas en la raíz
- Hacer que el agente vea las reglas aplicables al entrar en un directorio
- Actualizar las instrucciones cuando cambien la estructura o el proceso
- Revisar el contenido generado para impedir que una explicación obsoleta sea una nueva fuente de errores
La forma mínima es un AGENTS.md raíz y unos pocos AGENTS.md en subdirectorios clave. Controlar Claude con un archivo de configuración muestra un enfoque similar.
Idea 2: separar planificación y ejecución
Haz que el agente escriba primero un plan completo en decisiones con alcance, dependencias, criterios de aceptación, QA y límites de commits; ejecútalo solo después de aprobarlo. Lo importante no es usar exactamente plans/*.md, sino evitar que la fase de planificación empiece a cambiar el producto a escondidas.
Idea 3: vincular la finalización a evidencias
Prepara una lista de comprobación para cambios multifichero: busca llamadores cuando cambie una interfaz, puntos de entrada al eliminar una función, realiza interacción real en cambios de UI y comprueba el rollback en migraciones de datos. «Terminado» debe depender de pruebas concretas, QA manual y evidencia de bordes, no de un resumen.
Idea 4: asignar modelo y contexto según el riesgo
Una consulta sencilla no necesita la máxima intensidad de razonamiento. Los cambios de arquitectura, las migraciones y las puertas de publicación requieren mayor capacidad y revisión. Además, las tareas largas deben dividirse activamente; ampliar el token budget no basta.
Forma mínima que puedes copiar
Si no quieres instalar todo el harness, conserva al menos dos clases de archivo versionable:
- una lista de planificación con decisiones, pasos, criterios de aceptación y puntos abiertos
- varios AGENTS.md jerárquicos con reglas del repositorio y de sus directorios
Añade para cada tipo de cambio los comandos de validación y una lista de QA manual. Con eso ya cubres las ideas centrales de LazyCodex que se trasladan con mayor facilidad.
Para quién sirve LazyCodex y para quién no
LazyCodex añade hooks, archivos de estado, skills y restricciones de flujo. No todos los proyectos necesitan esa capa. La siguiente tabla ayuda a decidir.
Evaluación de escenarios
| Dimensión | Conviene LazyCodex | Codex directo es más sencillo |
|---|---|---|
| Tamaño del repositorio | Repositorio grande, muchas reglas por directorio y cambios frecuentes entre archivos | Repositorio pequeño o proyecto de un archivo |
| Complejidad de tarea | Tarea larga que requiere planificación, ejecución y verificación | Cambio pequeño puntual o script sencillo |
| Problema de contexto | Las sesiones nuevas deben volver a explorar directorios y reglas | Una sesión es suficiente y ya existe un AGENTS.md claro |
| Necesidad de aceptación | Es fácil omitir ramas de error; hacen falta puertas de evidencia y QA manual | Las condiciones de finalización son simples y baratas de comprobar |
| Necesidad de proceso | Se busca aprobar el plan primero y persistir el estado de ejecución | Se prefiere editar de inmediato, sin una capa de estado adicional |
| Aceptación de permisos | Se pueden revisar hooks, MCP y ajustes de permisos autónomos | No se quieren plugins adicionales ni cambios en la configuración de Codex |
Evaluar el beneficio
Cuanto mayor sea el repositorio, más larga la tarea y más compleja la aceptación, más valor pueden aportar las restricciones de LazyCodex. Los casos típicos incluyen refactorizaciones multifichero, trabajo que atraviesa sesiones y cambios de alto riesgo que combinan pruebas automáticas con QA manual.
El costo también es explícito: debes mantener contexto jerárquico, entender hooks y permisos, aceptar archivos de estado como .omo/boulder.json y revisar los planes y resultados de verificación que produce el harness. No es un seguro automático contra omisiones.
Escenarios poco adecuados
- Cambio pequeño puntual: modificar una función, un campo o un fragmento de texto
- Script sencillo: trabajo concentrado en uno o dos archivos con condición de finalización clara
- Proceso existente maduro: el repositorio ya tiene AGENTS.md fiable, plantillas de plan, CI y puertas de aceptación manual
- Rechazo de configuración adicional: no se desea que plugins, hooks, MCP o permisos autónomos cambien el entorno actual de Codex
Si aún dudas, no instales primero todo el conjunto. Añade manualmente un AGENTS.md jerárquico y una lista de evidencias. Cuando confirmes que el proyecto sufre pérdida de contexto entre sesiones, problemas al separar plan y ejecución o aceptación débil, evalúa LazyCodex.
Conclusión
Al usar Codex en una base de código compleja, lo difícil no suele ser generar código, sino ayudar a que una nueva sesión entienda rápido las reglas locales y demostrar que un cambio multifichero no dejó fuera ningún límite importante. LazyCodex combina $init-deep, aprobación de planes, estado Boulder y puertas de evidencia en un flujo Codex Light.
Lo valioso no son tanto los nombres Sisyphus o Boulder, sino tres mejoras de ingeniería verificables: el contexto queda escrito en archivos jerárquicos, planificación y ejecución tienen un límite claro, y la finalización se vincula a pruebas y QA manual. Al mismo tiempo, LazyCodex no equivale a OmO Ultimate; la orquestación completa de agentes y Team Mode no se pueden atribuir directamente a Light.
Como siguiente paso, ejecuta npx lazycodex-ai doctor, usa $init-deep para dar contexto a un repositorio grande real y elige una tarea multifichero con alcance claro. Recorre el ciclo completo con $ulw-plan, $start-work y $ulw-loop. Compara omisiones, relectura del contexto y costo de aceptación con el uso directo de Codex; así sabrás si el harness encaja con tu proyecto.
Completar con LazyCodex un ciclo de planificación, ejecución y verificación
Empieza por la instalación y la memoria del proyecto, aprueba el plan y da por terminada la ejecución solo cuando la evidencia supere las comprobaciones.
- 1
Step 1: Instalar y ejecutar doctor
Instala la edición Codex Light con npx lazycodex-ai install y después ejecuta npx lazycodex-ai doctor para revisar plugins, hooks, MCP y configuración. - 2
Step 2: Inicializar la memoria del proyecto
Ejecuta $init-deep en el repositorio, revisa los AGENTS.md creados en la raíz y en los directorios y elimina instrucciones obsoletas o incorrectas. - 3
Step 3: Generar y aprobar el plan
Para un trabajo cuyos límites no estén claros, ejecuta $ulw-plan para explorar el código y redactar un plan completo en decisiones. Apruébalo después de confirmar el alcance, los criterios de aceptación y los límites de los commits. - 4
Step 4: Ejecutar el plan
Usa $start-work para ejecutar el plan aprobado, sigue el progreso persistente en .omo/boulder.json y completa cada casilla de nivel superior. - 5
Step 5: Verificar con evidencia
Usa $ulw-loop cuando necesites un ciclo continuo e incluye pruebas, QA manual y comprobaciones de límites en la completion promise. Considera la tarea terminada solo después de que la evidencia sea válida.
FAQ
¿Qué es LazyCodex y en qué se diferencia de usar Codex directamente?
¿Cómo se instala y se comprueba LazyCodex?
¿Cuándo se usan $init-deep, $ulw-plan, $start-work y $ulw-loop?
¿Para qué sirven los AGENTS.md que genera $init-deep?
¿Para qué proyectos conviene LazyCodex?
16 min de lectura · Publicado el: 28 jul 2026 · Actualizado el: 30 jul 2026
Caja de herramientas de AI Agents
Si llegaste desde búsqueda, lo más rápido es ir al artículo anterior o siguiente de esta misma serie.
Anterior
Continuum: qué revisar al elegir un agent runtime compatible con OpenAI
Usa ShyftLabs Continuum como guía para elegir un agent runtime: orquestación, enrutamiento de modelos, memoria, herramientas MCP, ejecución duradera, observabilidad y gobernanza de despliegue.
Parte 1 de 5
Siguiente
guizang-social-card-skill: generar tarjetas sociales con Claude Code
Gu?a pr?ctica para usar guizang-social-card-skill en Claude Code o Codex: instalaci?n, tama?os de lienzo, renderizado, validaci?n, licencias de recursos y riesgos de AGPL-3.0.
Parte 3 de 5



Comentarios
Inicia sesión con GitHub para dejar un comentario