Passa al contenuto principale

Audit del budget di contesto: /skill-doctor, limiti di output e i sei numeri che riempiono la finestra

Intermedio

Un progetto Claude Code accumula debito di contesto come un laptop accumula schede del browser. Ogni skill che installi aggiunge una riga a un elenco che Claude rilegge a ogni turno. Ogni subagente aggiunge una descrizione. Ogni paragrafo di CLAUDE.md che hai scritto a marzo viene caricato a settembre, che il task ne abbia bisogno o no. E ogni npm test scarica fino a 30.000 caratteri nella conversazione. Niente di tutto questo è visibile finché la sessione non inizia a dimenticare le istruzioni o la fattura smette di corrispondere al lavoro.

Gestione del contesto copre i due comandi che usi sul momento, /clear e /compact. Questa pagina è l'audit che esegui una volta per progetto: sei punti in cui Claude Code spende contesto prima che tu scriva qualcosa o tra un turno e l'altro, l'impostazione che governa ciascuno e il valore predefinito. Tutto ciò che trovi qui è nella documentazione ufficiale di settembre 2026, e la maggior parte delle manopole è più recente del folklore che le circonda.

What you'll learn
  • Misurare prima di tagliare: leggere /context, l'attribuzione di /usage e la stima dell'elenco di /doctor per sistemare prima la voce più pesante
  • Sfoltire l'elenco delle skill con /skill-doctor (v2.1.252+) e i quattro stati di skillOverrides, conoscendo il budget dell'1% della finestra a cui l'elenco è limitato
  • Limitare ciò che un comando di shell o un task in background restituisce inline (30.000 e 32.000 caratteri di default) con bashOutputMaxChars e taskOutputMaxChars
  • Smettere di pagare CLAUDE.md in ogni subagente con omitClaudeMd (v2.1.271+) e tenere le descrizioni dei subagenti sotto la soglia di avviso dei 15.000 token
  • Impostare di proposito la finestra di auto-compattazione (/autocompact, autoCompactWindow) e capire il budget di 25.000 token che decide quali skill invocate sopravvivono alla compattazione
  • Limitare l'effort a livello di flotta con maxEffortLevel quando la vera fattura sono i token di thinking, non il contesto

Cosa c'è nella finestra prima che tu scriva​

Due fatti rendono questo diagramma azionabile. Tutto ciò che sta nel riquadro di sinistra viene pagato a ogni richiesta, perché Claude Code invia l'intera conversazione a ogni turno e solo lo sconto per la lettura dalla cache lo attenua. E il riquadro di destra è dove un singolo comando verboso può aggiungere in un solo passaggio più di tutto il riquadro di sinistra. L'audit qui sotto procede da sinistra a destra.

L'audit​

Guided walkthrough1 of 9
  1. Esegui /context per una ripartizione in tempo reale per categoria con suggerimenti di ottimizzazione, inclusi quali file CLAUDE.md e di auto-memoria sono stati caricati. Su un piano Pro, Max, Team o Enterprise, /usage attribuisce l'uso recente a skill, subagenti, plugin e singoli server MCP in percentuale, e segnala i comportamenti (contesto lungo, cache miss) che pesano per il 10% o più. /doctor stima il costo in contesto dell'elenco delle skill e i suoi maggiori contributori. Annota le tre voci più pesanti prima di cambiare qualsiasi cosa.

Un blocco di impostazioni da incollare​

Limiti di contesto locali al progetto (.claude/settings.local.json)

{
"bashOutputMaxChars": 12000,
"taskOutputMaxChars": 12000,
"skillOverrides": {
  "legacy-migration-notes": "name-only",
  "deploy-prod": "user-invocable-only",
  "old-design-system": "off"
},
"autoCompactWindow": 500000,
"maxEffortLevel": "high"
}

Leggilo dall'alto in basso come decisioni, non come default. I due limiti di output presuppongono un test runner loquace; riportali verso i default di 30.000 / 32.000 se Claude inizia ad aprire il file di output salvato a ogni esecuzione. I tre override mantengono le skill raggiungibili senza pagare le loro descrizioni. La finestra di compattazione è una scelta esplicita per un modello con contesto da 1M in cui preferisci compattare a metà piuttosto che al punto tarato sul modello. Il limite di effort è l'unica riga qui che cambia la qualità dell'output, quindi impostalo per ultimo e solo dopo che /usage mostra i token di thinking come voce dominante.

Subagente che non carica CLAUDE.md (.claude/agents/repo-auditor.md)

---
name: repo-auditor
description: Audits a repository for dead code and unused exports. Use for read-only sweeps.
tools: Read, Grep, Glob, Bash
model: sonnet
omitClaudeMd: true
---
You are a read-only auditor. Everything you need is in the delegation prompt.
Report findings as a table of path, symbol, and evidence. Do not edit files.

Esegui il report delle skill in una sessione headless

claude -p "/skill-doctor"

Errori comuni​

Watch out
  • Cancellare le skill invece di comprimerle. name-only mantiene una skill invocabile a costo di elenco quasi nullo; off la rimuove anche dal menu /. La maggior parte delle skill 'inutilizzate' dovrebbe diventare name-only, non sparire.
  • Alzare bashOutputMaxChars al tetto di 128.000 perché un log di build ha traboccato. Questo rende ogni comando futuro fino a 4× più costoso inline. Filtra invece il log con un hook PreToolUse (grep per FAIL, head -100); la documentazione sui costi mostra l'hook esatto.
  • Impostare autoCompactWindow sopra il contesto del modello. Claude Code lo limita silenziosamente alla finestra, quindi l'impostazione sembra applicata e non fa nulla.
  • Presumere che un subagente sia economico perché il suo contesto è separato. Il suo avvio include comunque ogni livello di CLAUDE.md e uno snapshot di git, a meno che non sia Explore, Plan o imposti omitClaudeMd.
  • Leggere /skill-doctor via Remote Control da un telefono. Restituisce 'Skill usage reports are not available on this connection.' Eseguilo nel terminale in cui vive la sessione.
  • Aspettarsi che una skill invocata sopravviva a /compact. Solo le invocazioni più recenti rientrano nel budget di ri-attacco di 25.000 token, a 5.000 token ciascuna. Re-invoca quelle che ti servono ancora.

Verifica rapida​

Check yourself

0/6
  1. Cosa riporta /skill-doctor, e cosa lascia fuori di proposito?
  2. L'elenco delle skill ha superato il suo budget. Cosa succede?
  3. Un npm test riuscito stampa 80.000 caratteri. Con le impostazioni predefinite, cosa riceve Claude?
  4. Quali subagenti saltano i tuoi file CLAUDE.md senza alcuna configurazione?
  5. Hai invocato sei skill in una sessione lunga e /compact è appena stato eseguito. Quali sopravvivono?
  6. maxEffortLevel è impostato a 'medium' nelle impostazioni gestite e a 'high' nelle tue impostazioni utente. Cosa gira?
Premi Invio o Spazio per girare la carta. Usa le frecce sinistra e destra per spostarti tra le carte.Termine mostrato.
1 / 10
Key takeaways
  • Misura prima: /context per la ripartizione in tempo reale, /usage per l'attribuzione per skill, subagente, plugin e server MCP, /doctor per la stima dell'elenco.
  • L'elenco delle skill è una tassa per turno limitata all'1% della finestra. /skill-doctor ti dice cosa comprimere; name-only mantiene una skill utilizzabile a costo quasi nullo.
  • L'output degli strumenti è il modo più rapido per far saltare una finestra: ~30.000 caratteri inline per comando riuscito, 32.000 per task in background. Limita con bashOutputMaxChars / taskOutputMaxChars, o filtra con un hook.
  • I subagenti non sono gratis all'avvio: ogni livello di CLAUDE.md più git status, a meno che non siano Explore, Plan o usino omitClaudeMd. Tieni le descrizioni personalizzate sotto i 15.000 token combinati.
  • La compattazione mantiene solo le skill invocate più di recente (5.000 ciascuna, 25.000 in totale). Imposta autoCompactWindow deliberatamente e re-invoca ciò che deve sopravvivere.
  • Quando i token di thinking dominano la fattura, maxEffortLevel limita l'effort a livello di flotta; vince l'ambito più basso e vale su ogni provider.

Fonti e approfondimenti​

Prossimi passi​

  • Gestione del contesto — /clear vs /compact sul momento, una volta finito l'audit
  • Skill — scrivere skill che si meritano la loro riga nell'elenco
  • Subagenti — progettare il prompt di delega in modo che omitClaudeMd sia sicuro