Cambia tema

Come usare LazyCodex con Codex: memoria di progetto, pianificazione e verifica

Easton editorial illustration: charcoal CODEX terminal with a small orange harness ring, four-stage circular workflow labeled MEMORY, PLAN, BUILD, VERIFY
4
Comandi principali
$init-deep, $ulw-plan, $start-work, $ulw-loop
5
Gate basati su prove
rilettura del piano, verifica automatica, QA manuale, QA avversaria, pulizia
500 / 100
Limite di iterazioni del ciclo
500 in modalità ultrawork e 100 in modalità normale

"La documentazione ufficiale di LazyCodex descrive i quattro comandi principali, il posizionamento Codex Light, lo stato Boulder, i cinque gate basati su prove e i limiti di iterazione di ulw-loop."

Modifichi una funzionalità che attraversa più di dieci file. Codex dichiara di avere “finito”, ti fidi e, dopo il rilascio, scopri che manca la gestione di un percorso di errore. È un problema comune nelle codebase complesse: ogni nuova conversazione deve ricostruire il contesto del progetto e il modello riferisce ciò che ha cambiato senza indicare necessariamente la logica periferica che potrebbe aver trascurato.

LazyCodex raccoglie in un agent harness leggero le capacità di OmO (oh-my-openagent) adatte a Codex. Si concentra su memoria di progetto, pianificazione del lavoro e un ciclo chiuso di accettazione basato su prove. Vedremo come $init-deep, $ulw-plan, $start-work e $ulw-loop collaborano, come gli AGENTS.md gerarchici danno contesto a un repository grande e quali pratiche di ingegneria restano utili anche senza installare lo strumento.

Che cos’è LazyCodex: la distribuzione leggera di OmO per Codex

LazyCodex si può paragonare al rapporto tra LazyVim e Neovim: le capacità principali provengono da oh-my-openagent (OmO), mentre LazyCodex distribuisce in un ambiente esistente le parti compatibili con il sistema di plugin di Codex. Il progetto è open source su GitHub con licenza MIT. A luglio 2026, la documentazione ufficiale lo definisce l’edizione Codex Light di OmO, non un port completo di OmO Ultimate.

Differenze principali tra Codex da solo e LazyCodex

DimensioneCodex da soloLazyCodex (Codex Light)
Memoria di progettoIl contesto dipende soprattutto dalle istruzioni correnti del repository e dalla sessione; manca un flusso pronto per l’inizializzazione profonda$init-deep genera AGENTS.md gerarchici e fornisce indicazioni locali alle directory complesse
Criterio di completamentoLa verifica attiva dei casi limite dipende dalla descrizione del compito e dalle abitudini di esecuzione del momentoI cinque gate basati su prove di $start-work e la verifica oracle di $ulw-loop rendono espliciti i criteri
Disciplina del processoSi può modificare direttamente; l’utente deve imporre da sé la pianificazione prima dell’esecuzione$ulw-plan pianifica soltanto, $start-work esegue il piano e $ulw-loop chiude il ciclo delle prove
PersistenzaConserva il contesto mediante le sessioni Codex e i file del progetto.omo/boulder.json salva lo stato di esecuzione del piano e uno Stop hook può far proseguire il lavoro incompleto
Livello degli strumentiUsa skills, MCP e capacità parallele attualmente disponibili in CodexInstalla anche rules, hooks, skills, LSP, ricerca AST e configurazione del routing dei modelli di OmO

Questo harness non modifica le capacità fondamentali del modello Codex. Standardizza il modo di usarlo: prima crea memoria di progetto, poi pianifica ed esegue, infine accetta il risultato in base alle prove. Tuttavia, l’orchestrazione completa degli agent specializzati e gli strumenti team_* di OmO Ultimate non fanno parte di Codex Light. I compiti paralleli di LazyCodex dipendono dalla superficie subagent o team disponibile nella versione corrente di Codex.

Installazione: una riga npx, senza installazione globale

Il percorso ufficiale principale di LazyCodex usa sempre npx; non serve npm i -g:

# Installazione standard
npx lazycodex-ai install

# Comando equivalente (pacchetto OmO e piattaforma Codex specificati)
npx --yes --package oh-my-openagent omo install --platform=codex

# Modalità completamente automatica (non interattiva, con permessi autonomi espliciti)
npx lazycodex-ai install --no-tui --codex-autonomous

# Controllo dopo l’installazione
npx lazycodex-ai doctor

L’installer scrive nella cache dei plugin di Codex e nelle configurazioni collegate. L’installazione interattiva standard chiede se configurare i permessi autonomi. Poiché --codex-autonomous modifica tale configurazione, abilitalo soltanto dopo aver compreso i confini di sicurezza del computer. Dopo l’installazione o un aggiornamento, devi inoltre approvare gli hook di OmO nella revisione di avvio di Codex e aprire una nuova sessione per caricare il plugin.

Dopo l’installazione, ricorda innanzitutto quattro comandi:

  1. $init-deep: generare AGENTS.md gerarchici
  2. $ulw-plan: trasformare i requisiti in un piano completo nelle decisioni e in attesa di approvazione
  3. $start-work: eseguire il piano e salvare il progresso persistente
  4. $ulw-loop: continuare a eseguire e verificare un singolo compito

Per controllare prima il contenuto installato, esegui npx lazycodex-ai doctor oppure consulta il README ufficiale di LazyCodex e la documentazione ufficiale.

Memoria di progetto: creare AGENTS.md gerarchici con $init-deep

Il problema tipico di un repository grande è che una singola conversazione non basta a spiegare tutto il progetto. Con centinaia di file e molti moduli, un agent che apre una nuova sessione deve esplorare di nuovo l’insieme oppure rischia di modificare il punto sbagliato senza vincoli locali.

$init-deep crea dei “punti di riferimento” per il repository. Il comando:

  1. attraversa il repository e legge i file che determinano il suo reale modo di funzionare
  2. genera AGENTS.md gerarchici nella root e nelle sottodirectory complesse
  3. colloca le istruzioni locali il più vicino possibile al codice interessato
  4. permette agli agent successivi di leggere le regole applicabili prima di modificare i file

La gerarchia è importante perché le indicazioni locali devono stare accanto al codice che ne ha bisogno, non tutte dentro un enorme file nella root. Quando entra in un modulo, l’agent vede direttamente le regole della directory e non deve estrarle da una documentazione generale gigantesca.

L’approccio non coincide con l’architettura di memoria a lungo termine illustrata in Progettare un sistema di memoria per agent: AGENTS.md assomiglia più a un contesto di progetto versionato che a ricordi di conversazione recuperati automaticamente. Entrambi, però, valorizzano gerarchia, contesto locale e persistenza. Il ruolo è simile anche a CLAUDE.md in Controllare Claude con un file di configurazione: far leggere le regole all’IA prima di intervenire.

Gli AGENTS.md generati sono normali file Markdown e richiedono una revisione umana. Dopo una ristrutturazione della codebase, un cambio di responsabilità di una directory o un aggiornamento dei comandi, esegui di nuovo $init-deep oppure mantieni i file manualmente. Il contenuto generato non è una fonte di verità corretta per sempre.

Quattro comandi per memoria, pianificazione, esecuzione e verifica

Il flusso principale di LazyCodex si divide in quattro fasi: inizializzare la memoria di progetto, pianificare, eseguire e verificare. Per un compito di sviluppo reale, gli ultimi tre comandi formano il ciclo pianificazione–esecuzione–verifica.

$ulw-plan: produrre soltanto un piano da approvare

$ulw-plan "what to build"

Questo comando pianifica, ma non scrive codice del prodotto. Il processo:

  1. chiarisce i requisiti tramite un colloquio, senza trasformare direttamente una frase vaga in una specifica di implementazione
  2. esplora la codebase e distribuisce le ricerche indipendenti tra subagent paralleli
  3. analizza la distanza tra lo stato attuale e l’obiettivo
  4. scrive il piano in plans/<slug>.md, includendo riferimenti, criteri di accettazione, strategia di QA e confini dei commit
  5. imposta status: awaiting-approval e attende l’approvazione

Il vincolo principale è non modificare il prodotto durante la pianificazione. Prima si chiariscono ambito e criteri di accettazione, poi il piano passa alla fase di esecuzione. Suddividere il lavoro con i Subagent presenta un’idea simile, ma LazyCodex la incorpora nel flusso del piano.

$start-work: eseguire il piano con stato persistente

$start-work [plan-name] [--worktree <absolute-path>]

Questo comando esegue un piano approvato finché tutte le checkbox di primo livello non sono completate. Le funzioni principali includono:

  1. Stato Boulder persistente: .omo/boulder.json conserva il progresso tra turn e session
  2. Stop hook: se il piano è incompleto, reinietta il round di lavoro successivo
  3. Subagent paralleli: le attività indipendenti possono essere distribuite; il parallelismo effettivo dipende dalla superficie Codex corrente
  4. TDD rigoroso e cinque gate basati su prove: rilettura del piano, verifica automatica, QA manuale, QA avversaria e pulizia
  5. Registro di progresso: salva l’esecuzione e lo stato delle checkbox

Al completamento viene stampato ORCHESTRATION COMPLETE. Questo segnale indica che il flusso dichiara completate tutte le checkbox e i gate basati su prove. Bisogna comunque esaminare i test reali, la QA manuale e le prove delle modifiche invece di fidarsi di una sola riga di stato.

$ulw-loop: verificare continuamente un singolo compito

$ulw-loop "task" [--completion-promise=TEXT] [--strategy=reset|continue]

Questo comando è adatto a un singolo compito dall’ambito già chiaro, ma che deve proseguire fino alla verifica delle prove. Non sostituisce una pianificazione completa; per un’attività vaga, esegui prima $ulw-plan.

  • Limite di iterazioni: al massimo 500 in modalità ultrawork e 100 in modalità normale
  • Strategia: reset reimposta ogni volta il contesto del ciclo, mentre continue prosegue dallo stato esistente
  • Completion promise: specifica le prove da raccogliere, le verifiche obbligatorie e la gestione delle informazioni mancanti
  • Condizione di arresto: oracle decide, in base alle prove, se la promessa di completamento è soddisfatta

Il numero di iterazioni non garantisce la qualità. Se il criterio di completamento è vago, il ciclo ripete più rapidamente un giudizio vago. Occorre inserire nella completion promise test, condizioni limite, QA manuale e gestione dei fallimenti.

Perché l’accettazione conta in una codebase complessa

Il rischio tipico di una codebase complessa è che una modifica attraversi più di dieci file, funzioni nel percorso principale, ma lasci senza aggiornamento un ramo di errore, un chiamante, la configurazione o la documentazione. Non è soltanto un limite del modello: nella definizione di completamento mancano prove esplicite.

Situazioni in cui il modello tende a trascurare i bordi:

Tipo di modificaPunti facili da trascurare
Flusso principale modificatoRami di errore come guasto di rete, validazione dei parametri o permessi insufficienti
Nuova interfacciaChiamanti e test double che usano ancora la vecchia firma
Modulo rifattorizzatoTest, configurazione, documentazione e artefatti generati
Funzionalità rimossaPunti di ingresso dipendenti, analytics, log e livello di compatibilità della migrazione

Il valore aggiunto di LazyCodex non consiste nel garantire che “nulla venga mai dimenticato”, ma nel fissare le verifiche nel flusso di lavoro. I cinque gate basati su prove richiedono di rileggere il piano, eseguire verifiche automatiche, svolgere QA manuale, cercare errori in modo avversario e ripulire i residui. $ulw-loop mantiene attivo un singolo compito finché le prove concordate non sono soddisfatte. “Il modello dice di aver finito” diventa “le prove definite prima stabiliscono il completamento”.

I gate richiedono ancora le fonti di verità del progetto e buoni criteri di accettazione. Un cambio di firma impone di cercare tutti i chiamanti; la rimozione di una funzione richiede di trovare i punti di ingresso dipendenti; una modifica della UI richiede interazione reale, non soltanto unit test. Il harness fornisce disciplina di processo, ma non conosce automaticamente i rischi aziendali.

Agent specializzati di OmO e livello skills di LazyCodex

LazyCodex deriva da OmO, ma gli ambiti devono restare distinti. OmO Ultimate offre l’orchestrazione completa degli agent specializzati; Codex Light contiene solo i componenti adattabili al sistema di plugin di Codex e usa la superficie agent propria di Codex.

Agent specializzati: orchestrazione completa in OmO Ultimate

Nome dell’agentResponsabilitàLimite di LazyCodex Light
SisyphusOrchestra esecuzione e verificaLa configurazione del ruolo può essere visibile, ma Light non fornisce l’orchestrazione completa degli agent di OmO Ultimate
HephaestusEsegue compiti e modifica fileI compiti indipendenti sono gestiti dalle capacità subagent disponibili nel Codex corrente
OracleStabilisce il completamento in base alle prove$ulw-loop conserva l’abitudine della verifica basata su prove, ma non include tutti gli strumenti di orchestrazione di Ultimate
LibrarianRegistra e recupera il contestoLa memoria di progetto viene realizzata soprattutto tramite $init-deep e AGENTS.md gerarchici

Team Mode, il team completo di agent specializzati e gli strumenti team_* di OmO Ultimate non possono quindi essere conteggiati tra le capacità integrate di LazyCodex Light. La possibilità reale di creare membri del team in parallelo dipende anche dalle funzioni offerte dalla Codex App o CLI corrente.

Livello skills: spostare le decisioni specialistiche in flussi riutilizzabili

LazyCodex installa una serie di skills e componenti. La documentazione ufficiale attuale elenca, tra gli esempi:

Skill o componenteUso
review-workRiesaminare l’implementazione tramite più canali
remove-ai-slopsEliminare tracce stereotipate di IA senza cambiare il comportamento
frontendVincoli per design frontend e implementazione della UI
LSPDiagnostica, definizioni, riferimenti e operazioni sui simboli
AST-grepCercare e riscrivere codice in base alla struttura sintattica
rules / comment-checkerCaricare regole del progetto e verificare la qualità dei commenti
git-bashFornire strumenti compatibili agli ambienti che richiedono semantica Bash

L’idea ricorda La funzione Skill di Claude: i comandi governano il processo, mentre le skills contengono le decisioni di dominio. L’elenco esatto può variare tra le versioni; dopo l’installazione, controlla lo stato corrente nel menu $ di Codex o nell’output di doctor.

Routing dei modelli: assegnare risorse di ragionamento in base al rischio

LazyCodex configura il routing dei modelli affinché ruoli o compiti diversi usino un modello e un livello di reasoning adeguati. Lo scopo non è garantire un risparmio di token. La documentazione ufficiale segnala invece che LazyCodex dedica risorse di modello e contesto sufficienti a pianificazione, esecuzione e verifica.

Principi d’uso più robusti:

  • Usare un’intensità di ragionamento media per le attività quotidiane
  • Aumentarla quando il costo di un errore è alto o serve una revisione
  • Riservare il livello massimo ai compiti davvero pesanti
  • Delimitare e dividere i compiti lunghi per evitare che un thread sia schiacciato da troppo contesto

I nomi concreti dei modelli e le matrici di routing cambiano. Fa fede la configurazione corrente durante l’installazione. Non inserire in un processo duraturo un modello citato in un README di un momento specifico e non equiparare il routing multi-modello a un risparmio garantito di quota.

Quattro idee di ingegneria riutilizzabili senza installare LazyCodex

Anche senza LazyCodex, quattro idee possono essere trasferite ad altri flussi con agent.

Idea 1: scrivere file di contesto gerarchici per repository grandi

Gli AGENTS.md generati da $init-deep sono, in sostanza, contesto versionato e gerarchico per un repository grande. Puoi applicare direttamente il principio:

  • Scrivere istruzioni locali per le directory complesse invece di accumulare tutte le regole nella root
  • Fare in modo che l’agent veda le regole applicabili quando entra in una directory
  • Aggiornare le istruzioni quando struttura o processo cambiano
  • Rivedere il contenuto generato perché una descrizione obsoleta non diventi una nuova fonte di errore

La forma minima è un AGENTS.md nella root e pochi AGENTS.md nelle sottodirectory importanti. Controllare Claude con un file di configurazione mostra una pratica simile.

Idea 2: separare pianificazione ed esecuzione

Chiedi prima all’agent un piano completo nelle decisioni con ambito, dipendenze, criteri di accettazione, QA e confini dei commit; eseguilo solo dopo l’approvazione. Non è indispensabile usare plans/*.md: il punto è impedire che la pianificazione inizi di nascosto a modificare il prodotto.

Idea 3: legare il completamento alle prove

Prepara una checklist per le modifiche su più file: cercare i chiamanti quando cambia un’interfaccia, i punti di ingresso quando si rimuove una funzione, interagire realmente con la UI e controllare il rollback delle migrazioni dati. “Completato” deve dipendere da test specifici, QA manuale e prove sui casi limite, non da un riepilogo.

Idea 4: assegnare modello e contesto in base al rischio

Una semplice richiesta non richiede il livello massimo di ragionamento. Modifiche architetturali, migrazioni e gate di pubblicazione richiedono ragionamento più forte e revisione. Inoltre, i compiti lunghi vanno suddivisi attivamente: aumentare soltanto il token budget non basta.

Forma minima da adottare

Se non vuoi installare l’intero harness, conserva almeno due tipi di file versionabili:

  1. una checklist di pianificazione con decisioni, passaggi, criteri di accettazione e punti aperti
  2. AGENTS.md gerarchici con regole del repository e delle directory

Aggiungi i comandi di verifica e una lista di QA manuale adatti a ogni tipo di modifica. In questo modo copri già le idee centrali di LazyCodex più facili da trasferire.

Per chi è adatto LazyCodex e per chi non lo è

LazyCodex aggiunge hooks, file di stato, skills e vincoli di flusso. Non tutti i progetti hanno bisogno di questo livello. La tabella aiuta a decidere.

Valutazione degli scenari

DimensioneLazyCodex è adattoCodex da solo è più semplice
Dimensione del repositoryRepository grande, molte regole di directory e frequenti cambi su più fileRepository piccolo o progetto con un solo file
Complessità del compitoCompito lungo che richiede pianificazione, esecuzione e verificaPiccola modifica occasionale o script semplice
Problema di contestoLe nuove sessioni devono spesso riesplorare directory e regoleUna sessione è sufficiente ed esiste già un AGENTS.md chiaro
Esigenza di accettazioneÈ facile trascurare rami di errore; servono gate basati su prove e QA manualeLe condizioni di completamento sono semplici ed economiche da verificare
Esigenza di processoIl piano deve essere approvato prima e lo stato di esecuzione deve persistereSi preferisce modificare subito, senza uno strato di stato aggiuntivo
Accettazione dei permessiÈ possibile esaminare hooks, MCP e impostazioni dei permessi autonomiNon si vogliono plugin aggiuntivi né modifiche alla configurazione di Codex

Valutare il beneficio

Più il repository è grande, il compito lungo e l’accettazione complessa, più è probabile che i vincoli di LazyCodex offrano valore. I casi tipici includono refactoring su più file, lavori che attraversano diverse session e modifiche ad alto rischio che richiedono test automatici e QA manuale.

Il costo è altrettanto esplicito: bisogna mantenere il contesto gerarchico, capire hooks e permessi, accettare file di stato come .omo/boulder.json e rivedere i piani e i risultati di verifica prodotti dal harness. Non è un’assicurazione automatica contro le omissioni.

Scenari poco adatti

  • Piccola modifica occasionale: cambiare una funzione, un campo o un testo
  • Script semplice: lavoro concentrato in uno o due file con una condizione di completamento chiara
  • Processo esistente maturo: il repository dispone già di AGENTS.md affidabili, modelli di piano, CI e gate di accettazione manuale
  • Rifiuto di configurazioni aggiuntive: non si desidera che plugin, hooks, MCP o permessi autonomi cambino l’ambiente Codex corrente

In caso di dubbio, non installare subito l’intero insieme. Aggiungi manualmente un AGENTS.md gerarchico e una checklist delle prove. Dopo aver confermato che il progetto soffre davvero per perdita di contesto tra sessioni, scarsa separazione tra piano ed esecuzione o accettazione debole, valuta LazyCodex.

Conclusione

In una codebase complessa, la difficoltà nell’uso di Codex spesso non è generare codice, ma consentire a una nuova sessione di capire rapidamente le regole locali e dimostrare che una modifica su più file non ha trascurato confini importanti. LazyCodex combina $init-deep, approvazione dei piani, stato Boulder e gate basati su prove in un flusso Codex Light.

Il valore non sta soprattutto nei nomi Sisyphus o Boulder, ma in tre miglioramenti di ingegneria verificabili: il contesto viene scritto in file gerarchici, pianificazione ed esecuzione hanno un confine chiaro e il completamento dipende da test e QA manuale. Allo stesso tempo, LazyCodex non equivale a OmO Ultimate; orchestrazione completa degli agent e Team Mode non possono essere attribuiti direttamente a Light.

Come passo successivo, esegui npx lazycodex-ai doctor, usa $init-deep per creare contesto in un vero repository grande e scegli un compito ben delimitato su più file. Completa il ciclo con $ulw-plan, $start-work e $ulw-loop. Confronta omissioni, rilettura del contesto e costo di accettazione con l’uso diretto di Codex: così saprai se il harness è adatto al progetto.

Completare con LazyCodex un ciclo di pianificazione, esecuzione e verifica

Parti dall’installazione e dalla memoria di progetto, approva il piano e termina l’esecuzione solo dopo che le prove hanno superato la verifica.

  1. 1

    Step 1: Installare ed eseguire doctor

    Installa l’edizione Codex Light con npx lazycodex-ai install, quindi esegui npx lazycodex-ai doctor per controllare plugin, hooks, MCP e configurazione.
  2. 2

    Step 2: Inizializzare la memoria di progetto

    Esegui $init-deep nel repository, rivedi gli AGENTS.md generati nella root e nelle directory ed elimina le istruzioni obsolete o inesatte.
  3. 3

    Step 3: Generare e approvare il piano

    Per un lavoro dai confini incerti, esegui $ulw-plan per esplorare il codice e scrivere un piano completo nelle decisioni. Approvalo solo dopo aver verificato ambito, criteri di accettazione e confini dei commit.
  4. 4

    Step 4: Eseguire il piano

    Usa $start-work per eseguire il piano approvato, segui il progresso persistente in .omo/boulder.json e completa ogni checkbox di primo livello.
  5. 5

    Step 5: Verificare con le prove

    Usa $ulw-loop quando serve un ciclo continuo e inserisci test, QA manuale e controlli dei confini nella completion promise. Considera il lavoro finito soltanto quando le prove sono state approvate.

FAQ

Che cos’è LazyCodex e in cosa differisce dall’uso diretto di Codex?
LazyCodex è la distribuzione leggera di OmO per Codex. Non sostituisce il modello Codex, ma aggiunge all’ambiente memoria di progetto gerarchica, comandi di pianificazione ed esecuzione, hooks, skills, routing dei modelli e un metodo di accettazione basato su prove.
Come si installa e si controlla LazyCodex?
Il comando principale è npx lazycodex-ai install. La modalità autonoma non interattiva usa --no-tui --codex-autonomous. Esegui poi npx lazycodex-ai doctor e, in una nuova sessione Codex, controlla il menu $ e le approvazioni degli hook.
Quando si usano $init-deep, $ulw-plan, $start-work e $ulw-loop?
$init-deep genera AGENTS.md gerarchici. Se i requisiti restano vaghi, $ulw-plan produce un piano da approvare. Dopo l’approvazione, $start-work lo esegue. $ulw-loop serve per un singolo compito che deve continuare fino alla verifica delle prove.
A cosa servono gli AGENTS.md creati da $init-deep?
Distribuiscono le regole del repository e le istruzioni locali delle directory complesse in livelli di contesto. Le sessioni Codex successive leggono così i riferimenti pertinenti prima di modificare i file. Il contenuto generato richiede revisione umana e aggiornamenti dopo cambiamenti di struttura o regole.
Per quali progetti è adatto LazyCodex?
È più adatto a repository grandi, compiti lunghi su più file e lavori che richiedono approvazione del piano e accettazione rigorosa. Per una piccola modifica a un file, uno script occasionale o un compito senza stato persistente, Codex da solo è in genere più semplice.

16 min di lettura · Pubblicato il: 28 lug 2026 · Aggiornato il: 30 lug 2026

Commenti

Accedi con GitHub per lasciare un commento

Easton BlogEaston Blog