AI Development

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

Luca Di Domenico

· 2 min di lettura

Infografica che confronta i due system prompt di Claude Code: Opus 5 riceve quello corto (~11K) quasi senza regole anti-verbosità, Sonnet 5 quello lungo (~29K), con la soluzione CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT=0 per forzare il preset lungo

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 GistCensimento 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 — GitHubRepository 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.

Luca Di Domenico LogoRaccontami il tuo progetto
Claude CodeOpus 5System PromptContext Engineering
Opus 5 verboso in Claude Code: colpa del system prompt corto | Luca Di Domenico