AIDive

Ho Cancellato Un CLAUDE.md Di 177 Righe: Ecco Cosa Si Rompe

Di AIDive · Pubblicato il

Agent di coding

Cancellato, misurato, una regola rotta

Cancellare un CLAUDE.md significa rimuovere il file di istruzioni che Claude Code legge all'inizio di ogni conversazione. Boris Cherny, il creatore di Claude Code, ha detto sul palco di cancellarlo ogni sei mesi. Ventidue video lo hanno ripetuto in sette settimane. Nessuno ha aperto un repository.

Questo articolo fa quello che i video non hanno fatto: prende un'app vera con un CLAUDE.md di 177 righe, tre skill, quattro comandi e un hook, esegue cinque task quotidiani con il file e senza, e conta. Quarantaquattro run dopo, esattamente una regola si è rotta. Il file è costato token su ogni task, mai la stessa quantità, e una delle sue righe nessuno riusciva a seguirla.

La clip, testuale, e le due frasi che non sono sue

La clip viene dal talk di Boris Cherny alla YC Startup School, registrato il giorno dopo l'uscita di Opus 5. Le sue parole: ogni sei mesi, cancella il tuo CLAUDE.md, cancella le tue skill, cancella i tuoi hook. Guarda cosa fa il modello, potrebbe sorprenderti. Per Opus 5, dice, Anthropic consiglia davvero di provarlo: il modello potrebbe non aver più bisogno di tutte quelle istruzioni.

Trenta secondi prima arriva l'avvertimento che nessuno cita. Anthropic non cancella l'intera code base. Ne cancella molta, e lo chiama ablation. La trascrizione scritta riporta oggi quella frase per intero. L'ottanta percento del system prompt di Claude Code è andato così: cancellare tutto, riportarlo indietro riga per riga, misurare ogni riga.

Due frasi che i video di reazione gli mettono in bocca non sono nel talk. "Contesto, obiettivi e una definizione di completamento" non compare da nessuna parte; il più vicino che dice è task, guardrail, criteri di uscita. "Sessantaquattro agenti che riscrivono Bun" non è nemmeno il suo numero: è di Jarred Sumner, nel post su Bun. Cherny parla di undici giorni e, quando gli chiedono un conteggio, indovina migliaia.

Ventidue video in sette settimane hanno citato la clip. Nessuno ha eseguito il test. Quindi questo fa ciò che lui ha davvero descritto: cancellare, riportare indietro un pezzo alla volta, misurare.

Lo strumento: ablation, non cancellazione

Un'ablation rimuove un pezzo alla volta di una configurazione e ne misura l'effetto, invece di cancellare tutto e indovinare. Il CLAUDE.md viene letto all'inizio di ogni conversazione e di nuovo a ogni turno; le skill si caricano solo quando vengono invocate. Questa differenza è ciò che è stato misurato.

Anthropic fornisce l'interruttore per cancellarlo: un semplice flag, la stessa variabile che Cherny nomina sul palco. Il repository è un'app vera, mia: 177 righe di istruzioni, tre skill, quattro comandi e un hook che scatta a ogni ricerca.

Dimensione Valore
Task quotidiani 5 (nuovo componente, modifica, refactor, cambio dello store, domanda di architettura)
Configurazioni 5 (completa, senza file, senza skill, senza hook, niente)
Modello uno, fissato
Ambiente cartella di configurazione vuota, clone nuovo prima di ogni run
Run 44
Costo $39

Ogni run è stato valutato allo stesso modo, sullo stesso clone, da uno script anziché a mano. Cosa conta come rotto: le regole del repository stesso (import, tipi, design token, traduzioni) più typecheck e lint.

L'unico strumento costruito per questo tipo di ablation, Caliper, ablata skill e server MCP ma non tocca mai il file; lo scambio del CLAUDE.md è stato fatto a mano. I limiti, dichiarati una volta: un repository, un modello, due run per cella, nessuna trascrizione. Il primo risultato ha dato il tono: il task di refactor è tornato identico, sessantaquattro centesimi con il file e sessantatré senza.

Cosa si è rotto: una regola, sui file nuovi

La regola che si è rotta è una regola di internazionalizzazione, nelle parole stesse del file: aggiungi sempre sia l'inglese sia il francese, non hardcodare mai una stringa che l'utente vede. Nel task del nuovo componente, con il file, tutte e quattro le run hanno scritto il file di traduzione. Senza, tre run su quattro hanno hardcodato il titolo. Stesso task, stesso repository, stesso modello, stesso prompt.

Nuovo componente Ha scritto il file di traduzione
Con CLAUDE.md 4 su 4
Senza CLAUDE.md 1 su 4

Il task di modifica racconta l'altra metà. Ogni configurazione l'ha eseguito correttamente, anche senza niente, perché i vicini lo insegnano: ogni componente accanto a quello modificato ha già un file di traduzione. Tutto il resto ha retto in tutte le quarantaquattro run: l'alias di import, type invece di interface, i design token, il pattern dello store. Il codice mostra queste cose, il file le ripete.

Uno studio di ETH Zurich ha misurato la stessa cosa su 138 issue reali. La sua conclusione: i context file non migliorano il successo e costano circa il venti percento in più, e il modello segue davvero le istruzioni. Un'avvertenza: una run senza il file ha comunque scritto il file di traduzione. La regola non è impossibile senza il file, è inaffidabile. Una regola si è rotta, quella che il codice non riusciva a insegnare. E la run che ha saltato quel lavoro è stata anche la più economica.

Quanto è costato il file, task per task

Il costo in token di un CLAUDE.md è la differenza di token letti tra una run con il file e la stessa run senza.

Task Meno token letti senza il file
Nuovo componente 61%
Modifica 15%
Refactor 5%
Cambio dello store 4%
Domanda di architettura 14%
Sulle dieci run 32% di token, 22% di denaro

Trentadue percento è il numero che ogni video metterebbe nel titolo, ed è quello sbagliato. Il risparmio più grande è la run che non ha scritto il file di traduzione: più economica perché ha fatto meno. Dove l'output era identico, il file è costato dal quattro al quattordici percento. Questo è il suo prezzo reale, e il venti percento dello studio sta esattamente tra questi due numeri.

Il meccanismo pesa circa 1.800 token, letti di nuovo a ogni turno. Skill, hook e knowledge graph non hanno prodotto nulla di misurabile, presenti o assenti. Il rumore è più grande della maggior parte di questo: lo stesso task con lo stesso file è costato $2,11 in una run e $1,33 nell'altra. Due run hanno toccato il limite di turni, una con il file e una senza. Quindi il file costa un po' ovunque e si guadagna il suo posto una volta, a meno che non menta anche.

Le righe che mentivano

Una riga che mente è un'istruzione che il modello non può seguire o che non cambia nulla. La riga anticipata all'inizio: importare il tema dall'alias design-tokens. L'alias non esiste: la configurazione TypeScript mappa un solo prefisso, e la cartella dei token non ha alcun file theme. Ogni run, con il file o senza, ha fatto quello che fanno i vicini, la stessa riga di import quarantaquattro volte.

Il file ha ottantadue righe di panoramica sull'architettura. Stessa domanda, sei risposte: tutte e sei hanno trovato gli stessi nove file, dal backend allo schermo, nello stesso ordine, con la panoramica e senza. Un blocco punta a un knowledge graph che il clone non ha; con il graph presente, la domanda è costata lo stesso.

Misura Valore
Regola di dimensione di Anthropic sotto le 200 righe
Questo file 177 righe
File mediano nel dataset reporails di 30k repository 50 elementi, 12 direttive
Righe direttive in questo file 24 su 177

La posizione decide quale delle due regole in conflitto vince, e il modello non lo dice mai, circa novanta punti nel test di un fornitore. La panoramica potrebbe aiutare un task non eseguito qui: un solo probe, una sola risposta. Tre tipi di righe, dunque: quella che si è guadagnata il posto, quelle che il codice insegna, quelle che mentono.

Tieni, sposta, cancella: la lista breve

Tre pile, e la misura dietro ciascuna.

Pila Cosa ci va Misura
Tieni La regola che il codice non può mostrare 6 righe che hanno salvato 4 run
Sposta La panoramica sull'architettura e i comandi 107 righe senza guadagno misurato
Cancella Le righe che mentono, e le righe che l'albero già mostra 44 run identiche

Tieni ciò su cui il modello ha sbagliato due volte: è lo stesso criterio di Anthropic per il file. Sposta la panoramica e i comandi in un albero di file caricati quando servono; il post di luglio di Anthropic chiama il repository centrale un mito. Gli hook restano: un gate non scade quando il modello migliora. Taglia la prosa che ha superato, tieni il gate.

Il file dopo: circa settanta righe, più le sei che se lo sono guadagnato. È il metodo di Cherny, letto per intero: cancella, riportalo indietro riga per riga, misura. Un repository, un modello, due run per cella; le tue pile saranno diverse, il metodo no. Cancellare è costato una regola e ha risparmiato poco. Trovare le righe che mentivano è stata la vittoria.

Fonti

Domande frequenti

Bisogna cancellare il CLAUDE.md come ha detto Boris Cherny?
Non alla cieca. Il talk di Cherny descrive un'ablation: cancella il file, riportalo indietro riga per riga e misura ogni riga. Su un file reale di 177 righe, cancellarlo ha rotto una regola in 44 run e ha risparmiato poco; la vittoria è stata trovare le righe che mentono.
Cosa si rompe quando cancelli un CLAUDE.md?
Su questo repository, una regola: aggiungi sempre sia l'inglese sia il francese. Senza il file, tre run su quattro hanno hardcodato un titolo nel task del nuovo componente. Ogni altra regola ha retto perché il codice vicino la mostra già.
Quanti token costa un CLAUDE.md?
Circa 1.800 token letti di nuovo a ogni turno. Task per task erano dal 4% al 61% di token in meno letti senza il file; dove l'output era identico il file costava dal 4% al 14%, che combacia con il 20% medio dello studio di ETH Zurich.
Cosa dovrebbe rimanere in un CLAUDE.md?
Le regole che il codice non può mostrare, che è anche il criterio di Anthropic: tieni ciò su cui il modello ha sbagliato due volte. Sposta panoramiche ed elenchi di comandi in file caricati quando servono, cancella le istruzioni che puntano a cose che non esistono, e tieni gli hook, perché un gate non scade quando il modello migliora.
I context file come CLAUDE.md o AGENTS.md migliorano gli agenti di coding?
Lo studio di ETH Zurich su 138 issue reali ha trovato che i context file non migliorano il successo del task e aumentano il costo di inferenza di oltre il 20% in media, anche se il modello segue davvero le istruzioni. Questa misurazione su un repository è rientrata nello stesso intervallo.
Cos'è un'ablation in termini di Claude Code?
Rimuovere un pezzo della configurazione alla volta, con il modello fissato e un clone nuovo per ogni run, misurandone l'effetto. Anthropic l'ha usata per tagliare l'80% del system prompt di Claude Code; qui è stata eseguita su cinque configurazioni: completa, senza file, senza skill, senza hook, niente.

Video correlati