4 4
5# Risolvere i problemi di un mod5# Risolvere i problemi di un mod
6 6
7> Scopri perché un mod Claude Code non fa nulla: abbina il sintomo o il messaggio alla sua causa, cerca i messaggi di rifiuto e leggi il debug log.7> Scopri perché un mod di Claude Code non fa nulla: associa il sintomo o il messaggio alla sua causa, cerca i messaggi di rifiuto e leggi il log di debug.
8 8
9Quando il modulo di un mod o uno dei suoi hooks fallisce, Claude Code lo salta e la sessione continua, quindi un mod rotto può sembrare uno che non fa nulla. Inizia controllando cosa Claude Code ha letto dal tuo mod e dove segnala un problema, quindi trova il sintomo o il messaggio che hai.9Quando il modulo di un mod o uno dei suoi hook non funziona, Claude Code lo salta e la sessione continua, quindi un mod difettoso può sembrare un mod che non fa nulla. Inizia verificando cosa Claude Code ha letto dal tuo mod e dove segnala un problema, poi cerca il sintomo o il messaggio che hai riscontrato.
10 10
11<h2 id="find-out-why-a-mod-does-nothing">11<h2 id="find-out-why-a-mod-does-nothing">
12 Scopri perché un mod non fa nulla12 Scopri perché un mod non fa nulla
13</h2>13</h2>
14 14
15Quando un mod non fa nulla, due controlli trovano il motivo: cosa Claude Code legge dai file del mod e la riga che scrive quando salta qualcosa. Per il primo, nella tua shell esegui [`claude plugin validate`](/docs/it/plugins/mods/create#check-what-claude-code-reads-from-your-mod) con la directory del mod, come in `claude plugin validate ./first-mod`. Cattura un evento scritto male, un manifest errato e un modulo che Claude Code non riesce a leggere, senza avviare una sessione.15Quando un mod non fa nulla, controlla cosa legge Claude Code dai file del mod e la riga che scrive quando salta qualcosa. Per il primo punto, nella tua shell esegui [`claude plugin validate`](/docs/it/plugins/mods/create#check-what-claude-code-reads-from-your-mod) con la directory del mod, come in `claude plugin validate ./first-mod`. Individua un evento scritto in modo errato, un manifest non valido e un modulo che Claude Code non riesce a leggere, senza avviare una sessione.
16 16
17Quando un modulo non si carica, un hook viene saltato o un altro mod rifiuta il tuo, Claude Code scrive una riga che nomina il tuo mod. Dove leggi quella riga dipende dalla sessione:17Quando un modulo non viene caricato, un hook viene saltato o un altro mod rifiuta il tuo, Claude Code scrive una riga che nomina il tuo mod. Dove leggi quella riga dipende dalla sessione:
18 18
19* **Una sessione che ricarica a caldo una directory di plugin**: una riga attenuata nella trascrizione. È una sessione interattiva che hai avviato con `--plugin-dir`, oppure una in cui hai [abilitato il ricaricamento a caldo](/docs/it/plugins/mods/create#ask-claude-for-a-mod) per i mod che Claude ha scritto.19* **Una sessione che ricarica a caldo una directory di plugin**: una riga attenuata nella trascrizione. Si tratta di una sessione interattiva che hai avviato con `--plugin-dir`, oppure di una in cui hai [abilitato il ricaricamento a caldo](/docs/it/plugins/mods/create#ask-claude-for-a-mod) per i mod scritti da Claude.
20* **Qualsiasi altra sessione interattiva, come una che esegue un mod che hai installato da un marketplace**: il [debug log](#read-the-debug-log) solo. Per ottenerne uno, avvia la sessione con `claude --debug`.20* **Qualsiasi altra sessione interattiva, come una che esegue un mod installato da un marketplace**: solo il [log di debug](#read-the-debug-log). Per ottenerlo, avvia la sessione con `claude --debug`.
21* **Un'esecuzione `claude -p` con `--plugin-dir`**: stderr, nel formato di output di testo predefinito. Un rifiuto da parte di un altro mod va al debug log solo.21* **Un'esecuzione di `claude -p` con `--plugin-dir`**: stderr, nel formato di output di testo predefinito. Un rifiuto da parte di un altro mod finisce solo nel log di debug.
22 22
23<h2 id="check-whether-mods-can-load">23<h2 id="check-whether-mods-can-load">
24 Controlla se i mod possono caricarsi24 Verificare se i mod possono essere caricati
25</h2>25</h2>
26 26
27Per verificare se la tua configurazione consente ai mod di caricarsi affatto, senza installarne uno, esegui `claude plugin test` nella tua shell, da una directory che non contiene un mod. Non hai bisogno di una sessione. Il messaggio che stampa ti dice lo stato:27Per verificare se la tua configurazione consente in generale il caricamento dei mod, senza installarne uno, esegui `claude plugin test` nella tua shell, da una directory che non contiene un mod. Non ti serve una sessione. Il messaggio che viene stampato ti indica lo stato:
28 28
29| Il messaggio include | Cosa significa |29| Il messaggio include | Cosa significa |
30| :- | :- |30| :- | :- |
31| `no hooks module to load` | I mod possono caricarsi. Il comando non ha trovato alcun mod da testare in questa directory. |31| `no hooks module to load` | I mod possono essere caricati. Il comando non ha trovato alcun mod da testare in questa directory. |
32| `hooks modules are turned off here` | Un'impostazione sta tenendo i tuoi mod fuori: `disableAllHooks` nelle tue impostazioni, oppure la politica della tua organizzazione |32| `hooks modules are turned off here` | Un'impostazione sta bloccando i tuoi mod: `disableAllHooks` nelle tue impostazioni oppure la policy della tua organizzazione |
33| `hooks modules are turned off in this process` | Anthropic ha disattivato i mod installati da remoto. Nessuna impostazione sulla tua macchina li riattiva. |33| `hooks modules are turned off in this process` | Anthropic ha disattivato da remoto i mod installati. Nessuna impostazione sulla tua macchina li riattiva. |
34 34
35Un'organizzazione può anche impostare `allowManagedModsOnly` per consentire solo i suoi mod, che questo comando non segnala. In quel caso un mod che installi non si carica e [un messaggio spiega perché](/docs/it/plugins/mods/troubleshoot#messages-from-the-built-in-guard).35Un'organizzazione può anche impostare `allowManagedModsOnly` per consentire solo i propri mod, cosa che questo comando non segnala. In tal caso un mod che installi non viene caricato e [un messaggio ne spiega il motivo](/docs/it/plugins/mods/troubleshoot#messages-from-the-built-in-guard).
36 36
37<h2 id="the-mod-doesn’t-load">37<h2 id="the-mod-doesn’t-load">
38 Il mod non si carica38 Il mod non si carica
39</h2>39</h2>
40 40
41Nulla di ciò che il mod aggiunge appare: nessun comando, nessun disegno e nessun cambiamento nel comportamento.41Non compare nulla di ciò che il mod aggiunge: nessun comando, nessun elemento disegnato e nessun cambiamento di comportamento.
42 42
43<h3 id="your-version-is-older-than-2-1-287">43<h3 id="your-version-is-older-than-2-1-287">
44 La tua versione è più vecchia di 2.1.28744 La tua versione è precedente alla 2.1.287
45</h3>45</h3>
46 46
47`claude --version` stampa una versione più vecchia di 2.1.287. La tua versione è precedente ai mod attivi per impostazione predefinita.47`claude --version` stampa una versione precedente alla 2.1.287. La tua versione è anteriore all'attivazione predefinita dei mod.
48 48
49[Aggiorna Claude Code](/docs/it/setup#update-claude-code).49[Aggiorna Claude Code](/docs/it/setup#update-claude-code).
50 50
52 La riga `mods active` non nomina il mod52 La riga `mods active` non nomina il mod
53</h3>53</h3>
54 54
55Nulla di ciò che il mod aggiunge appare e la [`riga mods active`](/docs/it/plugins/mods/overview#see-which-mods-a-session-loaded) in `/plugin` non lo nomina. Il modulo hooks non si è caricato. Quando Claude Code lo ha rifiutato, il debug log ha una riga che inizia con `hooks module`, il nome del mod e `not loaded:`, come in `hooks module first-mod@inline not loaded: disableAllHooks in managed settings` per un mod caricato con `--plugin-dir`.55Non compare nulla di ciò che il mod aggiunge, e la [riga `mods active`](/docs/it/plugins/mods/overview#see-which-mods-a-session-loaded) in `/plugin` non lo nomina. Il modulo degli hook non è stato caricato. Quando Claude Code lo ha rifiutato, il log di debug contiene una riga che inizia con `hooks module`, il nome del mod e `not loaded:`, come in `hooks module first-mod@inline not loaded: disableAllHooks in managed settings` per un mod caricato con `--plugin-dir`.
56 56
57Leggi il motivo dopo i due punti. La sezione [refusal messages](#refusal-messages) elenca ognuno. Se il log non ha tale riga, esamina le altre voci in questo gruppo.57Leggi il motivo dopo i due punti. La sezione [messaggi di rifiuto](#refusal-messages) li elenca tutti. Se il log non contiene una riga del genere, verifica le altre voci di questo gruppo.
58
59Alcune impostazioni bloccano un mod e lasciano funzionante il resto del suo plugin. [Attivare o disattivare i mod](/docs/it/plugins/mods/overview#turn-mods-on-or-off) le elenca.
58 60
59<h3 id="a-claude-p-run-prints-hooks-module-not-loaded">61<h3 id="a-claude-p-run-prints-hooks-module-not-loaded">
60 Un'esecuzione `claude -p` stampa `hooks module not loaded`62 Un'esecuzione di `claude -p` stampa `hooks module not loaded`
61</h3>63</h3>
62 64
63La riga inizia con il nome del mod e va a stderr. Il modulo hooks è stato rifiutato. Un'esecuzione non interattiva non ha trascrizione, quindi il messaggio va a stderr.65La riga inizia con il nome del mod e viene scritta su stderr. Il modulo degli hook è stato rifiutato. Un'esecuzione non interattiva non ha una trascrizione, quindi il messaggio viene scritto su stderr.
64 66
65Leggi il motivo dopo i due punti. La sezione [refusal messages](#refusal-messages) elenca ognuno.67Leggi il motivo dopo i due punti. La sezione [messaggi di rifiuto](#refusal-messages) li elenca tutti.
66 68
67<h3 id="refusal-messages">69<h3 id="refusal-messages">
68 Refusal messages70 Messaggi di rifiuto
69</h3>71</h3>
70 72
71Ognuno di questi segue `hooks module`, il nome del mod e `not loaded:` nel debug log.73Ciascuno di questi segue `hooks module`, il nome del mod e `not loaded:` nel log di debug.
72 74
73| Il messaggio inizia con | Cosa significa |75| Il messaggio inizia con | Cosa significa |
74| :- | :- |76| :- | :- |
75| `hooks modules are turned off for installed plugins in this process` | Anthropic ha disattivato i mod installati da remoto. Nessuna impostazione sulla tua macchina li riattiva. |77| `hooks modules are turned off for installed plugins in this process` | Anthropic ha disattivato da remoto i mod installati. Nessuna impostazione sul tuo computer li riattiva. |
76| `disableAllHooks in managed settings` | La tua organizzazione ha disattivato gli hooks dai plugin installati |78| `disableAllHooks in managed settings` | La tua organizzazione ha disattivato gli hook dei plugin installati |
77| `only managed plugins and built-in plugins run` | `allowManagedHooksOnly` è impostato, oppure `disableAllHooks` è impostato in un file di impostazioni diverso dalle impostazioni gestite |79| `only managed plugins and built-in plugins run` | È impostato `allowManagedHooksOnly`, oppure `disableAllHooks` è impostato in un file di impostazioni diverso dalle impostazioni gestite |
78| `installed plugins that are not managed load no hooks module in this mode (--bare)` | Hai avviato Claude Code con `--bare` |80| `installed plugins that are not managed load no hooks module in this mode (--bare)` | Hai avviato Claude Code con `--bare` |
79| `another plugin of that name loads first` | Due plugin condividono un nome. Viene utilizzato quello gestito o quello caricato per primo. |81| `another plugin of that name loads first` | Due plugin hanno lo stesso nome. Viene usato quello gestito, oppure quello caricato per primo. |
80 82
81<h3 id="messages-from-the-built-in-guard">83<h3 id="messages-from-the-built-in-guard">
82 Messages from the built-in guard84 Messaggi della protezione integrata
83</h3>85</h3>
84 86
85Su una macchina con impostazioni gestite, o per un utente connesso con un piano Team o Enterprise, la [built-in guard](/docs/it/plugins/mods/admin#know-what-happens-by-default) può rifiutare un mod o una delle sue risposte. Ogni messaggio nomina l'opzione che l'amministratore della tua organizzazione imposta per modificare la regola.87Su un computer con impostazioni gestite, o per un utente che ha effettuato l'accesso con un piano Team o Enterprise, la [protezione integrata](/docs/it/plugins/mods/admin#know-what-happens-by-default) può rifiutare un mod o una delle sue risposte. Ogni messaggio nomina l'opzione che l'amministratore della tua organizzazione imposta per modificare la regola.
86 88
87| Il messaggio contiene | Cosa significa | Dove appare |89| Il messaggio contiene | Cosa significa | Dove appare |
88| :- | :- | :- |90| :- | :- | :- |
89| `mods are limited to your organization's by policy (allowManagedModsOnly)` | La tua organizzazione consente solo [i suoi mod](/docs/it/plugins/mods/admin#install-your-organizations-mods), quindi il tuo non è stato caricato | Il debug log e la trascrizione in una [sessione che ricarica a caldo una directory di plugin](#find-out-why-a-mod-does-nothing) |91| `mods are limited to your organization's by policy (allowManagedModsOnly)` | La tua organizzazione consente solo [i propri mod](/docs/it/plugins/mods/admin#install-your-organizations-mods), quindi il tuo non è stato caricato | Il log di debug e la trascrizione in una [sessione che ricarica a caldo una directory di plugin](#find-out-why-a-mod-does-nothing) |
90| `tried to lift a deny rule in your settings` | Il [`tool.check`](/docs/it/plugins/mods/reference#tools) hook del tuo mod ha approvato una chiamata che una regola `deny` rifiuta. La chiamata rimane negata. | La trascrizione e il debug log, una volta per ogni mod in una sessione. In un'esecuzione `claude -p`, il debug log solo. |92| `tried to lift a deny rule in your settings` | L'hook [`tool.check`](/docs/it/plugins/mods/reference#tools) del tuo mod ha approvato una chiamata che una regola `deny` rifiuta. La chiamata resta negata. | La trascrizione e il log di debug, una volta per ogni mod in una sessione. In un'esecuzione di `claude -p`, solo il log di debug. |
91| `the deny rules in your settings could not be checked for this call, so it is refused` | La guard ha fallito durante il controllo di una chiamata che un mod ha approvato, quindi ha rifiutato la chiamata | Il motivo che Claude legge per la chiamata negata |93| `the deny rules in your settings could not be checked for this call, so it is refused` | La protezione non è riuscita a completare la verifica di una chiamata approvata da un mod, quindi ha rifiutato la chiamata | Il motivo che Claude legge per la chiamata negata |
92 94
93<h3 id="validate-passes-and-lists-no-hooks-line">95<h3 id="validate-passes-and-lists-no-hooks-line">
94 `validate` passa e non elenca alcuna riga `hooks`96 `validate` ha esito positivo e non elenca alcuna riga `hooks`
95</h3>97</h3>
96 98
97`hooks/hooks.json` non ha una chiave `modules`, oppure la chiave è scritta male.99`hooks/hooks.json` non ha una chiave `modules`, oppure la chiave è scritta in modo errato.
98 100
99Aggiungi `"modules": ["./register.js"]`.101Aggiungi `"modules": ["./register.js"]`.
100 102
102 `hooks module did not load`104 `hooks module did not load`
103</h3>105</h3>
104 106
105La riga inizia con il nome del mod, quindi `hooks module did not load:` e un motivo, che fornisce il file e la riga quando il problema è nel tuo codice. Claude Code non ha potuto caricare il modulo, ad esempio perché il suo codice di livello superiore ha lanciato un'eccezione.107La riga inizia con il nome del mod, seguito da `hooks module did not load:` e da un motivo, che indica il file e la riga quando il problema è nel tuo codice. Claude Code non è riuscito a caricare il modulo, ad esempio perché il suo codice di primo livello ha generato un'eccezione.
106 108
107Correggi l'errore che il motivo nomina.109Correggi l'errore indicato dal motivo.
108 110
109<h3 id="options-do-not-fit-plugin-json-userconfig">111<h3 id="options-do-not-fit-plugin-json-userconfig">
110 `options do not fit plugin.json userConfig`112 `options do not fit plugin.json userConfig`
111</h3>113</h3>
112 114
113La riga inizia con il nome del mod, quindi `hooks module did not load: options do not fit plugin.json userConfig:` e un motivo. Un'opzione non si adatta al suo campo [`userConfig`](/docs/it/plugins/components#user-configuration), come un numero superiore al `max` del campo, oppure un campo obbligatorio non ha valore.115La riga inizia con il nome del mod, seguito da `hooks module did not load: options do not fit plugin.json userConfig:` e da un motivo. Un'opzione non supera la validazione rispetto al suo campo [`userConfig`](/docs/it/plugins/components#user-configuration), ad esempio un numero superiore al `max` del campo, oppure un campo obbligatorio non ha un valore.
114 116
115Imposta o modifica il valore. La fine della riga nomina la sua voce `pluginConfigs` in `settings.json`.117Imposta o modifica il valore. La fine della riga indica la relativa voce `pluginConfigs` in `settings.json`.
116 118
117<h3 id="no-mod-loads-in-a-directory-you-opened-for-the-first-time">119<h3 id="no-mod-loads-in-a-directory-you-opened-for-the-first-time">
118 Nessun mod si carica in una directory che hai aperto per la prima volta120 Nessun mod si carica in una directory aperta per la prima volta
119</h3>121</h3>
120 122
121Non hai risposto al prompt di fiducia per la directory.123Non hai risposto alla richiesta di attendibilità per la directory.
122 124
123Avvia una sessione interattiva in quella directory con `claude` e accetta il prompt di fiducia che apre.125Avvia una sessione interattiva in quella directory con `claude` e accetta la richiesta di attendibilità con cui si apre.
124 126
125<h3 id="no-installed-plugin-loads-at-all">127<h3 id="no-installed-plugin-loads-at-all">
126 Nessun plugin installato si carica affatto128 Nessun plugin installato si carica
127</h3>129</h3>
128 130
129Hai avviato Claude Code con `--safe-mode`.131Hai avviato Claude Code con `--safe-mode`.
130 132
131Avvia senza il flag.133Avvialo senza il flag.
132 134
133<h2 id="a-hook-is-skipped-or-a-mod-is-unloaded">135<h2 id="a-hook-is-skipped-or-a-mod-is-unloaded">
134 Un hook viene saltato o un mod viene scaricato136 Un hook viene saltato o un mod viene scaricato
135</h2>137</h2>
136 138
137Il mod si è caricato e poi Claude Code ha saltato uno dei suoi hooks o lo ha scaricato.139Il mod è stato caricato, e poi Claude Code ha saltato uno dei suoi hook o lo ha scaricato.
138 140
139<h3 id="hook-skipped">141<h3 id="hook-skipped">
140 `hook skipped`142 `hook skipped`
141</h3>143</h3>
142 144
143La riga nomina il mod e l'evento, quindi dice `hook skipped:` e un motivo, come in `first-mod: tool.call hook skipped: threw Error: boom`. Un hook ha lanciato un'eccezione, ha superato il suo [limite di tempo di 10 secondi](/docs/it/plugins/mods/reference#limits), oppure ha restituito un risultato di forma sbagliata. La riga appare una volta per ogni evento e tipo di errore fino al ricaricamento del mod.145La riga indica il mod e l'evento, poi riporta `hook skipped:` e un motivo, come in `first-mod: tool.call hook skipped: threw Error: boom`. Un hook ha generato un'eccezione, ha superato il suo [limite di tempo](/docs/it/plugins/mods/reference#limits) o ha restituito un risultato con una struttura errata. La riga compare una volta per ogni evento e tipo di errore finché il mod non viene ricaricato.
144 146
145Correggi l'errore. Il debug log ha una riga per ogni occorrenza.147Correggi l'errore. Il log di debug contiene una riga per ogni occorrenza.
146 148
147<h3 id="no-command-run-hook-answered-it">149<h3 id="no-command-run-hook-answered-it">
148 `no command.run hook answered it`150 `no command.run hook answered it`
149</h3>151</h3>
150 152
151Esegui un comando che il tuo mod ha aggiunto e la risposta nomina il mod e il comando, come in `first-mod registered /tally but no command.run hook answered it`, quindi ti dice di aggiungere un hook. Claude Code stampa quella risposta quando il comando raggiunge la fine della catena senza una risposta, il che accade in due casi:153Esegui un comando aggiunto dal tuo mod e la risposta indica il mod e il comando, come in `first-mod registered /tally but no command.run hook answered it`, poi ti dice di aggiungere un hook. Claude Code stampa questa risposta quando il comando raggiunge la fine della catena senza una risposta, cosa che accade in due casi:
152 154
153* **Nessun hook ha risposto al comando**: il modulo non ha un hook `command.run`, il [filtro](/docs/it/plugins/mods/events#filter-which-events-a-hook-handles) dell'hook nomina un comando diverso, oppure l'hook ha restituito `next(e)`155* **Nessun hook ha risposto al comando**: il modulo non ha un hook `command.run`, il [filtro](/docs/it/plugins/mods/events#filter-which-events-a-hook-handles) dell'hook indica un comando diverso, oppure l'hook ha restituito `next(e)`
154* **Claude Code ha saltato l'hook**: [`hook skipped`](#hook-skipped) elenca i motivi. Passare `focus: false` a [`$.ui.open`](/docs/it/plugins/mods/interface#open-a-pane-at-the-right-time) è un modo per arrivarci.156* **Claude Code ha saltato l'hook**: [`hook skipped`](#hook-skipped) elenca i motivi. Passare `focus: false` a [`$.ui.open`](/docs/it/plugins/mods/interface#open-a-pane-at-the-right-time) è uno dei modi in cui si arriva a questa situazione.
155 157
156Se il modulo ha già l'hook che la risposta descrive, cerca una riga `hook skipped` che nomini `command.run`, che fornisce il motivo. Un [test](/docs/it/plugins/mods/test) che esegue il comando fallisce con lo stesso motivo.158Se il modulo ha già l'hook descritto dalla risposta, cerca una riga `hook skipped` che indichi `command.run`, la quale riporta il motivo. Un [test](/docs/it/plugins/mods/test) che esegue il comando fallisce con lo stesso motivo.
157 159
158<h3 id="it-crashed-the-hooks-worker">160<h3 id="it-crashed-the-hooks-worker">
159 `it crashed the hooks worker`161 `it crashed the hooks worker`
160</h3>162</h3>
161 163
162La riga inizia con il nome del mod, come in `first-mod was unloaded: it crashed the hooks worker`. I mod installati condividono un thread di lavoro. Il worker ha smesso di rispondere o si è bloccato e Claude Code ha tracciato che ciò è dovuto a questo mod e lo ha scaricato. Un hook che blocca il thread, come un ciclo che non attende mai, è una causa.164La riga inizia con il nome del mod, come in `first-mod was unloaded: it crashed the hooks worker`. I mod installati condividono un unico worker thread. Il worker ha smesso di rispondere o si è arrestato in modo anomalo, e Claude Code ne ha attribuito la causa a questo mod e lo ha scaricato. Un hook che blocca il thread, come un ciclo che non esegue mai un await, è una delle possibili cause.
163 165
164Correggi l'hook.166Correggi l'hook.
165 167
167 `mods that run in the hooks worker are off for this session`169 `mods that run in the hooks worker are off for this session`
168</h3>170</h3>
169 171
170La riga legge `hooks: mods that run in the hooks worker are off for this session: it crashed 3 times`. Il worker si è fermato tre volte e Claude Code non ha potuto tracciare gli arresti a un mod, quindi ha scaricato ogni mod che non è built-in, inclusi i mod che la tua organizzazione installa. Questa riga raggiunge la trascrizione in ogni sessione interattiva.172La riga riporta `hooks: mods that run in the hooks worker are off for this session: it crashed 3 times`. Il worker si è fermato tre volte e Claude Code non è riuscito ad attribuire gli arresti a un singolo mod, quindi ha scaricato tutti i mod non integrati, compresi quelli installati dalla tua organizzazione. Questa riga compare nella trascrizione in ogni sessione interattiva.
171 173
172Esegui `/reload-plugins` per caricarli di nuovo.174Esegui `/reload-plugins` per caricarli di nuovo.
173 175
174<h2 id="a-tool-call-is-denied">176<h2 id="a-tool-call-is-denied">
175 Una chiamata di strumento viene negata177 Una chiamata a uno strumento viene negata
176</h2>178</h2>
177 179
178Il mod si è caricato e i suoi hooks vengono eseguiti e una chiamata di strumento che ha toccato viene rifiutata.180Il mod è stato caricato e i suoi hook vengono eseguiti, ma una chiamata a uno strumento su cui ha agito viene rifiutata.
179 181
180<h3 id="a-hook-changed-this-call’s-input-after-the-model-wrote-it">182<h3 id="a-hook-changed-this-call’s-input-after-the-model-wrote-it">
181 `a hook changed this call's input after the model wrote it`183 `a hook changed this call's input after the model wrote it`
182</h3>184</h3>
183 185
184In modalità auto, una chiamata di strumento negata fornisce questo motivo. Un hook ha modificato l'input della chiamata di strumento dopo che il [classificatore lato server](/docs/it/permission-modes#server-side-classifier-review) lo ha esaminato, quindi quella revisione non copre ciò che verrebbe eseguito. L'hook può essere il [`tool.call`](/docs/it/plugins/mods/reference#tools) o il [`turn.step`](/docs/it/plugins/mods/reference#turns) hook del mod, oppure un hook di impostazioni [`PreToolUse`](/docs/it/hooks#pretooluse). Il messaggio non dice quale.186In modalità auto, una chiamata a uno strumento negata riporta questo motivo. Un hook ha modificato l'input della chiamata allo strumento dopo che il [classificatore lato server](/docs/it/permission-modes#server-side-classifier-review) l'aveva esaminata, quindi quella revisione non copre ciò che verrebbe eseguito. L'hook può essere un hook [`tool.call`](/docs/it/plugins/mods/reference#tools) o [`turn.step`](/docs/it/plugins/mods/reference#turns) di un mod, oppure un hook delle impostazioni [`PreToolUse`](/docs/it/hooks#pretooluse). Il messaggio non indica quale.
185 187
186Il messaggio dice a Claude di emettere la chiamata ancora una volta come registrata. Se viene negata anche quella, l'hook cambia l'input ogni volta, quindi disattiva il mod o l'hook, oppure esci dalla modalità auto e approva la chiamata tu stesso.188Il messaggio dice a Claude di effettuare la chiamata ancora una volta così come è stata registrata. Se anche quella viene negata, l'hook modifica l'input ogni volta, quindi disattiva il mod o l'hook, oppure esci dalla modalità auto e approva tu stesso la chiamata.
187 189
188<h3 id="a-message-about-the-deny-rules-in-your-settings">190<h3 id="a-message-about-the-deny-rules-in-your-settings">
189 Un messaggio sulle regole di negazione nelle tue impostazioni191 Un messaggio sulle regole di negazione nelle tue impostazioni
190</h3>192</h3>
191 193
192`tried to lift a deny rule in your settings` e `the deny rules in your settings could not be checked for this call, so it is refused` provengono entrambi dalla built-in guard.194`tried to lift a deny rule in your settings` e `the deny rules in your settings could not be checked for this call, so it is refused` provengono entrambi dalla protezione integrata.
193 195
194Cercali in [Messages from the built-in guard](#messages-from-the-built-in-guard).196Cercali in [Messaggi dalla protezione integrata](#messages-from-the-built-in-guard).
195 197
196<h2 id="a-drawing-doesn’t-appear-or-respond">198<h2 id="a-drawing-doesn’t-appear-or-respond">
197 Un disegno non appare o non risponde199 Un disegno non appare o non risponde
198</h2>200</h2>
199 201
200Il mod si è caricato e il tuo riquadro, banda o controlli non si comportano come ti aspetti.202Il mod è stato caricato, ma il suo riquadro, la sua banda o i suoi controlli non si comportano come ti aspetti.
201 203
202<h3 id="a-pane-or-band-is-empty-or-shows-claude-code’s-usual-content">204<h3 id="a-pane-or-band-is-empty-or-shows-claude-code’s-usual-content">
203 Un riquadro o una banda è vuoto o mostra il solito contenuto di Claude Code205 Un riquadro o una banda è vuota o mostra il contenuto abituale di Claude Code
204</h3>206</h3>
205 207
206L'[albero](/docs/it/plugins/mods/interface#build-a-tree-from-elements) che il tuo hook ha restituito non ha convalidato. Con `--plugin-dir`, la trascrizione dice `ui.render (Pane) refused:` con il motivo, come in `first-mod: ui.render (Pane) refused: Box prop "flexDirection" must be one of row, column, row-reverse, column-reverse; the engine drew its own`. Il debug log ha `a hook returned a tree that does not validate` con lo stesso motivo.208L'[albero](/docs/it/plugins/mods/interface#build-a-tree-from-elements) restituito dal tuo hook non ha superato la convalida. Con `--plugin-dir`, la trascrizione riporta `ui.render (Pane) refused:` seguito dal motivo, come in `first-mod: ui.render (Pane) refused: Box prop "flexDirection" must be one of row, column, row-reverse, column-reverse; the engine drew its own`. Il log di debug contiene `a hook returned a tree that does not validate` con lo stesso motivo.
207 209
208Leggi il motivo su quella riga. Le cause comuni sono una prop che l'elemento non accetta e un elemento che l'app non ha.210Leggi il motivo su quella riga. Le cause comuni sono una prop che l'elemento non accetta e un elemento che l'app non possiede.
209 211
210<h3 id="ui-open-runs-and-no-pane-appears">212<h3 id="$-ui-open-runs-and-no-pane-appears">
211 `$.ui.open` viene eseguito e nessun riquadro appare213 `$.ui.open` viene eseguito e nessun riquadro appare
212</h3>214</h3>
213 215
214La chiamata non è venuta da qualcosa che l'utente ha fatto e il terminale è più stretto di 144 colonne.216La chiamata non è partita da un'azione dell'utente e il terminale è più stretto della [larghezza richiesta da quel riquadro](/docs/it/plugins/mods/interface#when-a-pane-waits-for-a-wider-terminal).
215 217
216Apri il riquadro da un comando o un pulsante, oppure controlla il risultato `isPlaced` della chiamata. Vedi [Open a pane at the right time](/docs/it/plugins/mods/interface#open-a-pane-at-the-right-time).218Apri il riquadro da un comando o da un pulsante, oppure controlla il risultato `isPlaced` della chiamata. Consulta [Aprire un riquadro al momento giusto](/docs/it/plugins/mods/interface#open-a-pane-at-the-right-time).
217 219
218<h3 id="hotkeys-do-nothing">220<h3 id="hotkeys-do-nothing">
219 I tasti di scelta rapida non fanno nulla221 I tasti di scelta rapida non fanno nulla
221 223
222Il tuo riquadro non ha il focus della tastiera.224Il tuo riquadro non ha il focus della tastiera.
223 225
224Premi Ctrl+X quindi Tab, oppure fai clic sul riquadro. Aprilo con `focus: true` da un comando.226Premi Ctrl+X e poi Tab, oppure fai clic sul riquadro. Aprilo con `focus: true` da un comando.
225 227
226<h3 id="a-drawing-works-in-the-terminal-and-not-in-the-desktop-app">228<h3 id="a-drawing-works-in-the-terminal-and-not-in-the-desktop-app">
227 Un disegno funziona nel terminale e non nell'app Desktop229 Un disegno funziona nel terminale ma non nell'app Desktop
228</h3>230</h3>
229 231
230Il sito o l'elemento non è disponibile lì.232Il punto di rendering o l'elemento non è disponibile lì.
231 233
232Controlla le [render sites](/docs/it/plugins/mods/reference#render-sites) e le tabelle [elements](/docs/it/plugins/mods/reference#elements).234Controlla le tabelle dei [punti di rendering](/docs/it/plugins/mods/reference#render-sites) e degli [elementi](/docs/it/plugins/mods/reference#elements).
233 235
234<h2 id="an-edit-or-a-value-is-lost">236<h2 id="an-edit-or-a-value-is-lost">
235 Una modifica o un valore viene perso237 Una modifica o un valore va perso
236</h2>238</h2>
237 239
238Il mod viene eseguito e una modifica che hai fatto o un valore che ha mantenuto non è lì.240Il mod viene eseguito, ma una modifica che hai apportato o un valore che ha mantenuto non è presente.
239 241
240<h3 id="your-edits-don’t-take-effect">242<h3 id="your-edits-don’t-take-effect">
241 Le tue modifiche non hanno effetto243 Le tue modifiche non hanno effetto
242</h3>244</h3>
243 245
244Stai modificando un plugin che hai installato. Claude Code esegue la copia memorizzata nella cache per la versione installata.246Stai modificando un plugin che hai installato. Claude Code esegue la copia nella cache per la versione installata.
245 247
246Sviluppa con `--plugin-dir` puntato alla tua copia di lavoro, come in `claude --plugin-dir ./first-mod`, che ricarica quando salvi.248Sviluppa con `--plugin-dir` puntato alla tua copia di lavoro, come in `claude --plugin-dir ./first-mod`, che si ricarica quando salvi.
247 249
248<h3 id="a-value-resets-when-the-module-reloads">250<h3 id="a-value-resets-when-the-module-reloads">
249 Un valore si ripristina quando il modulo si ricarica251 Un valore si reimposta quando il modulo si ricarica
250</h3>252</h3>
251 253
252Le variabili a livello di modulo vengono reinizializzate ad ogni ricaricamento.254Le variabili a livello di modulo vengono reinizializzate a ogni ricaricamento.
253 255
254[Mantieni il valore in `$.state` o `$.store`](/docs/it/plugins/mods/interface#keep-state).256[Mantieni il valore in `$.state` o `$.store`](/docs/it/plugins/mods/interface#keep-state).
255 257
256<h3 id="a-value-resets-after-/clear-/resume-or-/branch">258<h3 id="a-value-resets-after-/clear-/resume-or-/branch">
257 Un valore si ripristina dopo `/clear`, `/resume` o `/branch`259 Un valore si reimposta dopo `/clear`, `/resume` o `/branch`
258</h3>260</h3>
259 261
260Un valore si ripristina, oppure un valore salvato viene sostituito dal suo valore predefinito. Ognuno di questi comandi ripristina `$.state` ai suoi valori predefiniti e `session.start` non si attiva di nuovo.262Un valore si reimposta, oppure un valore salvato viene sostituito dal suo valore predefinito. Ciascuno di questi comandi reimposta `$.state` ai valori predefiniti e `session.start` non viene attivato di nuovo.
261 263
262[Carica il valore salvato di nuovo](/docs/it/plugins/mods/interface#load-a-saved-value-again-after-clear) in un hook `classic.SessionStart`.264[Carica di nuovo il valore salvato](/docs/it/plugins/mods/interface#load-a-saved-value-again-after-clear) in un hook `classic.SessionStart`.
263 265
264<h2 id="read-the-debug-log">266<h2 id="read-the-debug-log">
265 Read the debug log267 Leggere il log di debug
266</h2>268</h2>
267 269
268Il debug log ha una riga per ogni modulo che Claude Code carica o rifiuta, ogni hook che fallisce e ogni risultato che rifiuta, quindi è dove guardare quando la trascrizione non mostra nulla. Per scriverne uno, nella tua shell avvia Claude Code con `--debug`, oppure con `--debug-file <path>` per scegliere dove va:270Il log di debug contiene una riga per ogni modulo che Claude Code carica o rifiuta, per ogni hook che fallisce e per ogni risultato che rifiuta, quindi è il posto in cui guardare quando la trascrizione non mostra nulla. Per scriverne uno, nella tua shell avvia Claude Code con `--debug`, oppure con `--debug-file <path>` per scegliere dove salvarlo:
269 271
270```bash theme={null}272```bash theme={null}
271claude --debug-file ./mod-debug.log --plugin-dir ./first-mod273claude --debug-file ./mod-debug.log --plugin-dir ./first-mod
277tail -f ./mod-debug.log | grep first-mod279tail -f ./mod-debug.log | grep first-mod
278```280```
279 281
280Un mod che si è caricato ha una riga che lo nomina ed elenca gli eventi che aggancia. Un mod caricato con `--plugin-dir` appare sotto il suo nome seguito da `@inline`:282Un mod che è stato caricato ha una riga che lo nomina ed elenca gli eventi che gestisce. Un mod caricato con `--plugin-dir` compare con il suo nome seguito da `@inline`:
281 283
282```text theme={null}284```text theme={null}
283hooks module first-mod@inline loaded (worker, environment 2, tier user); events: session.start,tool.call,command.run,ui.render285hooks module first-mod@inline loaded (worker, environment 2, tier user); events: session.start,tool.call,command.run,ui.render
284```286```
285 287
286Un disegno che non ha convalidato conta come un risultato rifiutato e ottiene una riga anche. Per scrivere le tue righe nel log, chiama [`$.ui.log`](/docs/it/plugins/mods/api#show-something-without-starting-a-turn) con un secondo argomento, come in `$.ui.log('message', { to: 'debug' })`. Senza il secondo argomento, `$.ui.log` aggiunge una riga attenuata alla trascrizione.288Anche un disegno che non ha superato la validazione conta come risultato rifiutato e ottiene una riga. Per scrivere le tue righe nel log, chiama [`$.ui.log`](/docs/it/plugins/mods/api#show-something-without-starting-a-turn) con un secondo argomento, come in `$.ui.log('message', { to: 'debug' })`. Senza il secondo argomento, `$.ui.log` aggiunge una riga attenuata alla trascrizione.
287 289
288Mentre modifichi un mod caricato con `--plugin-dir`, la trascrizione mostra una riga per ogni ricaricamento che nomina il mod ed elenca i suoi hooks. Se un salvataggio interrompe il modulo, la riga dice `reload failed, the previous version stays loaded:` con il motivo e l'ultima versione funzionante continua a essere eseguita.290Mentre modifichi un mod caricato con `--plugin-dir`, la trascrizione mostra una riga per ogni ricaricamento che nomina il mod ed elenca i suoi hook. Se un salvataggio rompe il modulo, la riga riporta `reload failed, the previous version stays loaded:` con il motivo, e l'ultima versione funzionante continua a essere eseguita.
289 291
290<h2 id="next-steps">292<h2 id="next-steps">
291 Next steps293 Passaggi successivi
292</h2>294</h2>
293 295
294* [Test a mod](/docs/it/plugins/mods/test): cattura i problemi prima che raggiungano una sessione296* [Testa un mod](/docs/it/plugins/mods/test): individua i problemi prima che raggiungano una sessione
295* [Troubleshoot plugins](/docs/it/plugins/troubleshooting): problemi con l'installazione e il caricamento di un plugin che non sono specifici dei mod297* [Risoluzione dei problemi dei plugin](/docs/it/plugins/troubleshooting): problemi di installazione e caricamento di un plugin che non sono specifici dei mod