Cambiar tema

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

Easton editorial illustration: charcoal CODEX terminal with a small orange harness ring, four-stage circular workflow labeled MEMORY, PLAN, BUILD, VERIFY
4
Comandos principales
$init-deep, $ulw-plan, $start-work, $ulw-loop
5
Puertas de evidencia
relectura del plan, validación automática, QA manual, QA adversarial, limpieza
500 / 100
Límite de iteraciones del bucle
500 en modo ultrawork y 100 en modo normal

"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ónCodex directoLazyCodex (Codex Light)
Memoria del proyectoEl 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ónLa validación activa de límites depende de la descripción de la tarea y de los hábitos de ejecución actualesLas cinco puertas de evidencia de $start-work y la verificación oracle de $ulw-loop vuelven explícitos los criterios
Disciplina de procesoSe 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
PersistenciaDepende 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 herramientasUsa los skills, MCP y capacidades paralelas que Codex ofrezca en ese momentoInstala 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:

  1. $init-deep: generar AGENTS.md jerárquicos
  2. $ulw-plan: convertir los requisitos en un plan completo en decisiones y pendiente de aprobación
  3. $start-work: ejecutar el plan y guardar el progreso persistente
  4. $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:

  1. recorre el repositorio y lee los archivos que determinan cómo se trabaja realmente
  2. genera AGENTS.md jerárquicos en la raíz y en subdirectorios complejos
  3. coloca las instrucciones locales lo más cerca posible del código afectado
  4. 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:

  1. aclara los requisitos mediante una entrevista, sin tratar una frase ambigua como especificación de implementación
  2. explora la base de código y reparte búsquedas independientes entre subagents paralelos
  3. analiza la brecha entre el estado actual y el objetivo
  4. escribe el plan en plans/<slug>.md con referencias, criterios de aceptación, estrategia de QA y límites de commits
  5. marca status: awaiting-approval y 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:

  1. Estado Boulder persistente: .omo/boulder.json mantiene el progreso entre turnos y sesiones
  2. Stop hook: si el plan sigue incompleto, vuelve a inyectar la siguiente ronda de trabajo
  3. Subagents paralelos: las subtareas independientes pueden distribuirse; el paralelismo exacto depende de la superficie actual de Codex
  4. TDD estricto y cinco puertas de evidencia: releer el plan, validación automática, QA manual, QA adversarial y limpieza
  5. 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: reset reinicia el contexto del bucle en cada vuelta; continue conserva 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 cambioLugares que se omiten con facilidad
Cambio en el flujo principalRamas de error como fallo de red, validación de parámetros o permisos insuficientes
Nueva interfazLlamadores y dobles de prueba que todavía usan la firma anterior
Refactorización de móduloPruebas, configuración, documentación y artefactos generados
Eliminación de funciónPuntos 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

AgenteResponsabilidadLímite de LazyCodex Light
SisyphusOrquesta la ejecución y la verificaciónLa configuración del rol puede estar visible, pero Light no incluye la orquestación completa de agentes de OmO Ultimate
HephaestusEjecuta tareas y modifica archivosLas tareas independientes dependen de las capacidades de subagent disponibles en Codex
OracleDecide 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
LibrarianRegistra y recupera contextoLa 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 componenteUso
review-workRevisar el resultado de la implementación por varios canales
remove-ai-slopsEliminar rastros de IA estereotipados sin cambiar el comportamiento
frontendRestricciones para diseño frontend e implementación de UI
LSPDiagnósticos, definiciones, referencias y operaciones por símbolo
AST-grepBuscar y reescribir código según su estructura sintáctica
rules / comment-checkerCargar reglas del proyecto y revisar la calidad de los comentarios
git-bashAportar 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:

  1. una lista de planificación con decisiones, pasos, criterios de aceptación y puntos abiertos
  2. 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ónConviene LazyCodexCodex directo es más sencillo
Tamaño del repositorioRepositorio grande, muchas reglas por directorio y cambios frecuentes entre archivosRepositorio pequeño o proyecto de un archivo
Complejidad de tareaTarea larga que requiere planificación, ejecución y verificaciónCambio pequeño puntual o script sencillo
Problema de contextoLas sesiones nuevas deben volver a explorar directorios y reglasUna sesión es suficiente y ya existe un AGENTS.md claro
Necesidad de aceptaciónEs fácil omitir ramas de error; hacen falta puertas de evidencia y QA manualLas condiciones de finalización son simples y baratas de comprobar
Necesidad de procesoSe busca aprobar el plan primero y persistir el estado de ejecuciónSe prefiere editar de inmediato, sin una capa de estado adicional
Aceptación de permisosSe pueden revisar hooks, MCP y ajustes de permisos autónomosNo 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. 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. 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. 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. 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. 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?
LazyCodex es la distribución ligera de OmO para Codex. No sustituye el modelo Codex, sino que añade al entorno memoria jerárquica del proyecto, comandos de planificación y ejecución, hooks, skills, enrutamiento de modelos y hábitos de aceptación basados en evidencia.
¿Cómo se instala y se comprueba LazyCodex?
El comando principal es npx lazycodex-ai install. Para un modo autónomo no interactivo se usan --no-tui --codex-autonomous. Después ejecuta npx lazycodex-ai doctor y, en una nueva sesión de Codex, revisa el menú $ y las aprobaciones de los hooks.
¿Cuándo se usan $init-deep, $ulw-plan, $start-work y $ulw-loop?
$init-deep genera archivos AGENTS.md jerárquicos. Si los requisitos siguen ambiguos, $ulw-plan produce un plan que debe aprobarse. Una vez aprobado, $start-work lo ejecuta. $ulw-loop sirve para una tarea única que debe continuar hasta validar la evidencia.
¿Para qué sirven los AGENTS.md que genera $init-deep?
Distribuyen las reglas del repositorio y las instrucciones locales de los directorios complejos en distintos niveles de contexto. Así, una sesión posterior de Codex lee las indicaciones pertinentes antes de editar. El contenido generado debe revisarse y actualizarse cuando cambien la estructura o las reglas.
¿Para qué proyectos conviene LazyCodex?
Encaja mejor en repositorios grandes, tareas largas que abarcan varios archivos y trabajos con aprobación de planes y aceptación estricta. Para un cambio en un solo archivo, un script puntual o una tarea sin estado persistente, Codex directo suele ser más sencillo.

16 min de lectura · Publicado el: 28 jul 2026 · Actualizado el: 30 jul 2026

Comentarios

Inicia sesión con GitHub para dejar un comentario

Easton BlogEaston Blog