TIPS 13 · CONTESTO

Quando la chat diventa troppo lunga

Il prompt di riassunto, il file delle decisioni e i comandi per ripartire puliti: così una chat lunga non ti fa perdere quello che avevi deciso con Claude.

Cos'è e perché conta

Ti sarà capitato: lavori da ore nella stessa chat con Claude Code e a un certo punto qualcosa scivola. Rifà una scelta che avevate già scartato, dimentica una regola che gli avevi dato all'inizio, ti ripropone un tentativo che non funzionava.

Il motivo è la finestra di contesto, la memoria di lavoro di Claude. Dentro c'è tutto: i tuoi messaggi, le risposte, i file letti, l'output dei comandi, il CLAUDE.md. Quando si avvicina al limite, Claude Code fa spazio da solo: prima toglie i risultati vecchi dei comandi, poi riassume la conversazione. Le tue richieste e il codice importante restano. Le istruzioni dettagliate date all'inizio possono sparire.

E c'è anche il consumo: a ogni messaggio Claude Code rimanda al modello tutta la conversazione. Più la chat è lunga, più ti costa ogni domanda, anche quella di una riga.

Quello che faccio io: quando finisco un pezzo, faccio riassumere a Claude dove siamo, faccio scrivere le decisioni in un file del progetto e riparto da una chat pulita. Le cose importanti stanno nel file, non nella conversazione.

1. Il prompt di riassunto

Quando finisci un pezzo di lavoro (una schermata, un collegamento, una correzione) e prima di passare al successivo, scrivi questo:

Il prompt
Riassumi dove siamo in cinque punti: cosa abbiamo deciso, cosa è fatto, cosa manca, i problemi ancora aperti, i file che abbiamo toccato. Poi aggiorna DECISIONI.md con le decisioni nuove. Niente codice nel riassunto.

I cinque punti ti danno una fotografia completa del lavoro, non solo dell'ultima cosa fatta. «I file che abbiamo toccato» ti serve se qualcosa si rompe dopo: sai dove guardare. «Niente codice nel riassunto» perché il codice è già nei file: qui ti serve capire a che punto sei, non rileggere cento righe.

Quel riassunto leggilo tu. Se c'è una decisione che non ricordi di aver preso, o un problema aperto che ti era sfuggito, chiedi adesso, finché la chat è ancora lì.

2. Il file delle decisioni

Nella cartella del progetto crea un file DECISIONI.md. Corto, una riga per decisione, con il perché. Il mio è fatto così:

Il file
# Decisioni
## Login
- Solo con email, niente social (meno cose da mantenere)
## Profilo
- Una foto sola, nome visibile a tutti
## Da non toccare
- Il database vero: si prova solo su quello di prova
## Domande aperte
- Notifiche sì o no?

Le sezioni sono le parti dell'app, più due che uso sempre. «Da non toccare» è la lista di quello che Claude non deve cambiare senza chiedere: il database vero, i pagamenti, quello che per te è delicato. «Domande aperte» tiene le cose non ancora decise, così Claude non sceglie al posto tuo e te le ritrovi davanti quando è il momento.

Il perché è la parte che conta. Tra una settimana una scelta senza motivo sembra un errore, e Claude rischia di «sistemarla». Con il motivo scritto accanto, sa perché è così.

E tienilo corto. Tra poco lo faremo caricare a ogni sessione, e tutto quello che c'è dentro occupa memoria ogni volta. Niente verbali: una riga per decisione. Quando una domanda aperta si chiude, la sposti nella sezione giusta. Quando una decisione cambia, riscrivi la riga invece di aggiungerne un'altra.

3. Ripartire pulito

Con il riassunto fatto e il file aggiornato, in Claude Code hai due strade.

/clear: una chat nuova

/clear apre una conversazione nuova, vuota. I file del progetto non li tocca, e la chat di prima non sparisce: se ti serve la riapri con /resume. Nella chat nuova scrivi:

Il prompt
Leggi DECISIONI.md e riparti da lì: il prossimo pezzo è [quello che manca].

Al posto delle parentesi quadre metti il prossimo pezzo in una frase, tipo «la pagina del profilo, solo la parte della foto». Se hai il riassunto di prima, il punto «cosa manca» te lo dice già. Così la chat nuova parte solo con quello che serve.

/compact: stessa chat, più leggera

/compact riassume la conversazione e libera spazio senza chiuderla. Gli puoi dare le istruzioni per il riassunto, scritte dopo il comando. Io gli dico cosa tenere e cosa buttare:

La riga
/compact tieni le decisioni, cosa è fatto e cosa manca; lascia perdere i tentativi falliti

Anche il riassunto automatico, quello che Claude Code fa da solo quando la memoria è quasi piena, funziona così. La differenza è chi sceglie: lì decide Claude Code cosa è importante, con le istruzioni scegli tu.

Quale dei due

Io uso /clear quando ho finito un pezzo o passo a un lavoro che non c'entra: riparte dal file, so cosa contiene, e non costa niente. Uso /compact quando sono a metà di un pezzo e mi serve ancora il filo della conversazione. Ricorda che /compact non è gratis: per riassumere deve rileggere tutta la chat, quindi su una chat enorme è una richiesta grossa.

/context: quanto è piena

Se vuoi vedere quanto è piena la memoria, /context te la mostra: una griglia colorata con quello che occupa spazio, dal CLAUDE.md ai file letti. Io lo guardo quando Claude comincia a perdere pezzi, prima di decidere se ripartire.

4. Farglielo leggere ogni volta

Il CLAUDE.md è il file di istruzioni del progetto, quello che Claude Code carica all'inizio di ogni sessione. Se non ce l'hai, crealo nella cartella principale del progetto, oppure fallo preparare con /init. Poi aggiungi questa riga:

La riga
@DECISIONI.md

Con la @ davanti il file viene caricato insieme al CLAUDE.md, anche dopo un /clear. E dopo una compattazione Claude Code rilegge dal disco il CLAUDE.md principale del progetto, quindi le decisioni tornano anche lì. Il percorso parte dalla cartella del CLAUDE.md: se i due file stanno vicini, basta il nome.

Sotto aggiungi:

La riga
Quando prendiamo una decisione importante, scrivila in DECISIONI.md.

Così il file cresce mentre lavori, non solo quando te ne ricordi. Il prompt di riassunto a fine pezzo resta il controllo: lì vedi se manca qualcosa. E il «Leggi DECISIONI.md» dopo un /clear diventa quasi superfluo, ma io lo scrivo lo stesso: dice a Claude da dove ripartire.

Una cosa da sapere: con la @, DECISIONI.md entra in ogni sessione, anche quando non serve. Per questo deve restare corto. Lo stesso vale per il CLAUDE.md: la documentazione consiglia di tenerlo sotto le 200 righe.

In più: le istruzioni per il riassunto automatico

Se vuoi che anche il riassunto automatico tenga le cose giuste, nel CLAUDE.md puoi scrivere una sezione con le istruzioni per la compattazione. Claude Code ne tiene conto quando riassume:

Lo schema
# Compact instructions
Quando riassumi la conversazione, tieni le decisioni, cosa è fatto e cosa manca; lascia perdere i tentativi falliti.

La regola: chat corte, file lunghi. La chat la butti, il file resta.

Gli errori più comuni

  • Aspettare che la chat si riempia da sola: il riassunto automatico sceglie lui cosa tenere. A fine pezzo fai tu il riassunto e riparti.
  • Fare /clear senza aver aggiornato DECISIONI.md: quello che avete deciso resta solo nella chat vecchia. Prima il prompt di riassunto, poi /clear.
  • Scrivere le decisioni senza il perché: dopo una settimana sembrano errori e Claude rischia di «correggerle». Aggiungi il motivo tra parentesi.
  • Far crescere DECISIONI.md come un diario: con la @ entra in ogni sessione e occupa memoria. Una riga per decisione, e quando una cambia riscrivi quella riga.
  • Usare /compact per cambiare lavoro: ti porti dietro un riassunto che non serve e paghi la rilettura. Quando cambi argomento, /clear.

Checklist

  • DECISIONI.md è nella cartella del progetto
  • Ogni decisione ha il suo perché
  • Il CLAUDE.md contiene la riga @DECISIONI.md
  • A fine pezzo uso il prompt di riassunto
  • Prima di /clear il file è aggiornato
  • /clear quando cambio lavoro, /compact solo a metà di un pezzo

Domande frequenti

Come capisco che è il momento di ripartire?

Quando finisci un pezzo o passi a un lavoro che non c'entra. Oppure quando Claude comincia a perdere pezzi: rifà una scelta già scartata o dimentica una regola. Se vuoi vedere i numeri, /context ti dice quanto è piena la memoria.

Con /clear perdo la chat di prima?

No. /clear apre una conversazione nuova, ma quella di prima la ritrovi con /resume. I file del progetto, DECISIONI.md compreso, restano come sono.

Che differenza c'è tra DECISIONI.md e il CLAUDE.md?

Il CLAUDE.md tiene le regole che valgono sempre, tipo come si lanciano i test o cosa non fare mai. DECISIONI.md tiene le scelte su questo progetto e le domande aperte, e cambia spesso. Separati, aggiorni le decisioni senza toccare le regole.

Devo chiamarlo per forza DECISIONI.md?

No, il nome lo scegli tu. Basta che sia lo stesso nella riga con la @, nei prompt e nel file.

← Tutte le guide