Opus 5 troppo verboso in Claude Code? Riceve il system prompt corto: come forzare il preset lungo con una env var
Opus 5 in Claude Code riceve un system prompt corto, senza regole anti-verbosità. Con CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT=0 forzi il preset lungo di Sonnet 5.

Luca Di Domenico
· 2 min di lettura

In breve
Claude Code usa due system prompt completamente diversi a seconda del modello: Opus 5 riceve la versione corta (circa 11.000 caratteri), Sonnet 5 quella lunga (circa 29.000), dove vivono quasi tutte le regole anti-verbosità. Per questo Opus 5 riempie il codice di commenti e genera file .md non richiesti. La soluzione: impostare CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT=0 nella sezione env di ~/.claude/settings.json per forzare il preset lungo, con le regole anti-verbosità, anche su Opus 5.
🧹 Opus 5 ti riempie il codice di commenti inutili, genera file .md che non hai chiesto e ti risponde con muri di testo lunghi due pagine? Quasi tutti danno la colpa al modello. La causa è un’altra.
Due system prompt, un flag legato al modello
Claude Code non usa un unico system prompt con piccole differenze per modello. Ne usa due, completamente diversi, e quale dei due ricevi lo decide un flag interno legato al modello.
Opus 5 riceve la versione corta (circa 11.000 caratteri). Sonnet 5 riceve quella lunga (circa 29.000). E le regole che tengono a bada la verbosità vivono quasi tutte nella versione lunga.
La policy dei commenti che riceve Opus 5
Tradotto: a Opus 5 nessuno sta chiedendo di essere sintetico. Sulla policy dei commenti riceve una riga soltanto:
“Scrivi codice che si legga come quello attorno: stessa densità di commenti, naming e stile.”
La versione lunga è invece esplicita: nessun commento quando il perché è ovvio, niente docstring di più paragrafi, e nessun documento di pianificazione o analisi a meno che tu non lo chieda.
La soluzione: CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT=0
💡 La buona notizia: puoi forzare la versione lunga anche su Opus 5. Una riga in ~/.claude/settings.json:
"env": { "CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT": "0" }
Cosa significano i valori:
1) 0 → forza il preset lungo, quello con le regole anti-verbosità. È questo che ti serve.
2) 1 → forza il preset corto (su Opus 5 non cambia nulla: ce l’ha già di default).
Il comportamento della variabile è documentato nel censimento delle variabili d’ambiente estratte dalla CLI di Claude Code (v2.1.202): un valore truthy forza il system prompt semplice, un valore “disable” lo disattiva.
Togliere la causa, invece di mettere una toppa
Prima di aggiungere skill, hook o dieci righe al tuo CLAUDE.md per domare la verbosità, prova a cambiare preset: così togli la causa, invece di applicare una toppa sopra il sintomo.
Avere meno istruzioni scritte a mano non è sempre meglio. A volte basta attivare quelle che il tuo strumento contiene già.
Tu come tieni sintetico Opus 5: con questa env var, con le regole nel CLAUDE.md, o con un comando tipo /talk-normal?
Fonti
- Claude Code CLI Environment Variables — GitHub Gist — Censimento delle variabili d’ambiente estratte dalla CLI di Claude Code v2.1.202, consultato ad agosto 2026: un valore truthy di CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT forza il system prompt semplice, un valore “disable” lo disattiva
- Piebald-AI/claude-code-system-prompts — GitHub — Repository che cataloga tutte le parti del system prompt di Claude Code, aggiornata a ogni versione della CLI; consultata ad agosto 2026 per la struttura e le regole contenute nel prompt
Vuoi capire cosa significa per il tuo prodotto?
Se stai costruendo software con l'AI e vuoi un confronto su come stai lavorando, raccontami il tuo progetto.