622 const m = p.slice(base.length).match(/^\/([a-z]{2}(?:-[A-Z]{2})?)\//);622 const m = p.slice(base.length).match(/^\/([a-z]{2}(?:-[A-Z]{2})?)\//);
623 const locale = m ? m[1] : 'en';623 const locale = m ? m[1] : 'en';
624 return href => {624 return href => {
625 if (!href || href[0] !== '/' || href[1] === '/') return href;625 if (!href) return undefined;
626 if (href[0] === '#' || href.startsWith('https://')) return href;
627 if (!(/^\/[A-Za-z0-9]/).test(href)) return undefined;
626 return base + (href.startsWith('/en/') ? '/' + locale + href.slice(3) : href);628 return base + (href.startsWith('/en/') ? '/' + locale + href.slice(3) : href);
627 };629 };
628 }, []);630 }, []);
671 const assemble = p => p.prompt.replace(/\{(\w+)\}/g, (_, k) => fillOf(p, k) || p.slots && p.slots[k] || k);673 const assemble = p => p.prompt.replace(/\{(\w+)\}/g, (_, k) => fillOf(p, k) || p.slots && p.slots[k] || k);
672 const preview = p => p.prompt.replace(/\{(\w+)\}/g, (_, k) => p.slots && p.slots[k] || k);674 const preview = p => p.prompt.replace(/\{(\w+)\}/g, (_, k) => p.slots && p.slots[k] || k);
673 const bodyText = p => preview(p) + ' ' + p.teaches.replace(/\[([^\]]+)\]\([^)]+\)/g, '$1') + ' ' + (p.next || '');675 const bodyText = p => preview(p) + ' ' + p.teaches.replace(/\[([^\]]+)\]\([^)]+\)/g, '$1') + ' ' + (p.next || '');
674 const widthFor = s => (s || '').length + 3 + 'ch';676 const WIDE_RE = /[\u1100-\u115F\u2E80-\uA4CF\uAC00-\uD7A3\uF900-\uFAFF\uFE30-\uFE4F\uFF00-\uFF60\uFFE0-\uFFE6]/g;
677 const widthFor = s => {
678 const t = typeof s === 'string' ? s : '';
679 return t.length + (t.match(WIDE_RE) || []).length + 3 + 'ch';
680 };
675 const ql = q.trim().toLowerCase();681 const ql = q.trim().toLowerCase();
676 const toggleTag = k => {682 const toggleTag = k => {
677 setStart(false);683 setStart(false);
1097export const text = {1103export const text = {
1098 "get-oriented-in-a": {1104 "get-oriented-in-a": {
1099 title: "Orientarsi in un nuovo repository",1105 title: "Orientarsi in un nuovo repository",
1100 teaches: "Descrivete quello che volete sapere, non quali file leggere. Claude esplora il progetto autonomamente e restituisce un riepilogo di come si incastra.",1106 teaches: "Descrivi quello che vuoi sapere, non quali file leggere. Claude esplora il progetto in autonomia e restituisce un riepilogo di come si incastrano le sue parti.",
1101 next: "Eseguite `/init` per configurare `CLAUDE.md` in modo che Claude lo ricordi ogni sessione"1107 next: "Esegui `/init` per configurare `CLAUDE.md` in modo che Claude lo ricordi in ogni sessione",
1108 prompt: "dammi una panoramica di questo codebase: architettura, directory principali e come si collegano le varie parti"
1102 },1109 },
1103 "explain-unfamiliar-code": {1110 "explain-unfamiliar-code": {
1104 title: "Spiegare codice non familiare",1111 title: "Spiegare codice non familiare",
1105 teaches: "Nominate il file e dite in quale formato volete la risposta. Sostituite la pagina HTML con un diagramma, punti elenco, o quello che si adatta al vostro modo di imparare.",1112 teaches: "Indica il file e di' in quale formato vuoi la risposta. Sostituisci la pagina HTML con un diagramma, un elenco puntato o qualunque cosa si adatti al tuo modo di imparare.",
1106 next: "Impostate uno stile di output in modo che Claude spieghi sempre nel vostro formato preferito"1113 next: "Imposta uno stile di output in modo che Claude spieghi sempre nel tuo formato preferito",
1114 prompt: "spiega cosa fa {path} e come i dati lo attraversano. scrivilo come {format}",
1115 slots: {
1116 path: "src/scheduler/queue.ts",
1117 format: "una pagina HTML con un diagramma, poi aprila nel mio browser"
1118 }
1107 },1119 },
1108 "find-where-something-happens": {1120 "find-where-something-happens": {
1109 title: "Trovare dove accade qualcosa",1121 title: "Trovare dove accade qualcosa",
1110 teaches: "Cercate per comportamento invece che per nome file. La ricerca funziona anche quando non sapete come si chiama il file o in quale directory si trova."1122 teaches: "Cerca per comportamento invece che per nome file. La ricerca funziona anche quando non sai come si chiama il file o in quale directory si trova.",
1123 prompt: "dove {behavior}?",
1124 slots: {
1125 behavior: "convalidiamo i tipi di file caricati"
1126 }
1111 },1127 },
1112 "see-what-depends-on": {1128 "see-what-depends-on": {
1113 title: "Controllare cosa si rompe prima di eliminare",1129 title: "Controllare cosa si rompe prima di eliminare",
1114 teaches: "Chiedete prima di rimuovere qualcosa. L'elenco dei chiamanti e degli effetti a valle vi dice se state guardando una pulizia di una riga o un cambiamento che dovete coordinare."1130 teaches: "Chiedi prima di rimuovere qualcosa. L'elenco dei chiamanti e degli effetti a valle ti dice se si tratta di una pulizia di una riga o di una modifica che devi coordinare.",
1131 prompt: "cosa si romperebbe se eliminassi {target}?",
1132 slots: {
1133 target: "l'helper retryWithBackoff"
1134 }
1115 },1135 },
1116 "trace-how-code-evolved": {1136 "trace-how-code-evolved": {
1117 title: "Tracciare come il codice si è evoluto",1137 title: "Tracciare come si è evoluto il codice",
1118 teaches: "Puntate alla cronologia dei commit quando la domanda è il perché, non il cosa. Claude legge il log e il blame per qualsiasi sistema di controllo versione utilizzate e spiega le decisioni dietro l'implementazione attuale."1138 teaches: "Fai riferimento alla cronologia dei commit quando la domanda è il perché, non il cosa. Claude legge il log e il blame di qualsiasi sistema di controllo versione tu usi e spiega le decisioni dietro l'implementazione attuale.",
1139 prompt: "esamina la cronologia dei commit di {path} e riassumi come si è evoluto e perché",
1140 slots: {
1141 path: "internal/auth/session.go"
1142 }
1119 },1143 },
1120 "scope-a-change-before": {1144 "scope-a-change-before": {
1121 title: "Definire l'ambito di un cambiamento prima di iniziare",1145 title: "Definire la portata di una modifica prima di iniziare",
1122 teaches: "Dimensionate il lavoro prima di impegnarvi in una roadmap. L'elenco dei file vi dice se state guardando un componente o un cambiamento trasversale."1146 teaches: "Valuta la dimensione del lavoro prima di inserirlo in una roadmap. L'elenco dei file ti dice se si tratta di un solo componente o di una modifica trasversale.",
1147 prompt: "quali file dovrei toccare per {change}?",
1148 slots: {
1149 change: "aggiungere un interruttore per la modalità scura nelle impostazioni"
1150 }
1123 },1151 },
1124 "ask-the-codebase-a": {1152 "ask-the-codebase-a": {
1125 title: "Fare una domanda di prodotto alla codebase",1153 title: "Fare una domanda di prodotto al codebase",
1126 teaches: "Dichiarate il vostro ruolo in modo che la risposta sia al livello giusto. Claude spiega cosa il prodotto effettivamente fa dal codice sorgente, senza che voi abbiate bisogno di leggerlo.",1154 teaches: "Dichiara il tuo ruolo in modo che la risposta sia al livello giusto. Claude spiega cosa fa effettivamente il prodotto partendo dal codice sorgente, senza che tu debba leggerlo.",
1127 next: "Impostate uno stile di output in modo che Claude sempre presenti le risposte a questo livello"1155 next: "Imposta uno stile di output in modo che Claude formuli sempre le risposte a questo livello",
1156 prompt: "sono un {role}. spiegami passo passo cosa succede quando un utente {action}, dall'interfaccia fino al risultato",
1157 slots: {
1158 role: "PM",
1159 action: "clicca su Esporta in PDF"
1160 }
1128 },1161 },
1129 "plan-a-multi-file": {1162 "plan-a-multi-file": {
1130 title: "Pianificare un cambiamento multi-file prima di toccare il codice",1163 title: "Pianificare una modifica su più file prima di toccare il codice",
1131 teaches: "Aggiungere \"non modificare ancora\" separa l'esplorazione dai cambiamenti, così vedete l'approccio prima che qualsiasi codice si muova. Per rendere plan-first il default su ogni prompt, premete Shift+Tab per [plan mode](/docs/it/permission-modes#analyze-before-you-edit-with-plan-mode)."1164 teaches: "Aggiungere \"non modificare ancora\" separa l'esplorazione dalle modifiche, così vedi l'approccio prima che il codice venga toccato. Per rendere la pianificazione preventiva il comportamento predefinito per ogni prompt, premi Shift+Tab per attivare il [plan mode](/docs/it/permission-modes#analyze-before-you-edit-with-plan-mode).",
1165 prompt: "pianifica come fare il refactoring del {target} per {goal}. elenca i file che modificheresti, ma non modificare ancora nulla",
1166 slots: {
1167 target: "modulo dei pagamenti",
1168 goal: "supportare più valute"
1169 }
1132 },1170 },
1133 "draft-a-spec-by": {1171 "draft-a-spec-by": {
1134 title: "Bozza di una specifica tramite intervista",1172 title: "Scrivere una specifica tramite intervista",
1135 teaches: "Chiedete di essere intervistati invece di scrivere la specifica voi stessi. Claude vi pone domande strutturate finché i requisiti non sono completi, quindi scrive il risultato in un file.",1173 teaches: "Chiedi di essere intervistato invece di scrivere tu la specifica. Claude ti pone domande strutturate finché i requisiti non sono completi, poi scrive il risultato in un file.",
1136 next: "Salvate le vostre domande di intervista come una skill `/spec` in modo che ogni specifica inizi allo stesso modo"1174 next: "Salva le tue domande di intervista come skill `/spec` in modo che ogni specifica inizi allo stesso modo",
1175 prompt: "voglio creare {feature}. intervistami su implementazione, UX, casi limite e compromessi finché non avremo coperto tutto, poi scrivi la specifica in SPEC.md",
1176 slots: {
1177 feature: "rate limit per workspace"
1178 }
1137 },1179 },
1138 "turn-a-meeting-into": {1180 "turn-a-meeting-into": {
1139 title: "Trasformare una riunione in ticket",1181 title: "Trasformare una riunione in ticket",
1140 teaches: "Saltate il passaggio della trascrizione. Claude estrae gli elementi d'azione dall'input non strutturato e li scrive direttamente nel vostro tracker tramite [MCP](/docs/it/mcp), così rivedete i ticket, non la trascrizione.",1182 teaches: "Salta il passaggio della trascrizione. Claude estrae le azioni da intraprendere dall'input non strutturato e le scrive direttamente nel tuo tracker tramite [MCP](/docs/it/mcp), così rivedi i ticket, non la trascrizione.",
1141 next: "Salvate questo come una skill `/tickets`"1183 next: "Salva questo come skill `/tickets`",
1184 prompt: "leggi {input} e scrivi le azioni da intraprendere, poi crea un ticket {tracker} per ciascuna con i criteri di accettazione",
1185 slots: {
1186 input: "@meeting-notes.md",
1187 tracker: "Linear"
1188 }
1142 },1189 },
1143 "map-edge-cases-before": {1190 "map-edge-cases-before": {
1144 title: "Mappare i casi limite prima di costruire",1191 title: "Mappare i casi limite prima di sviluppare",
1145 teaches: "Chiedete cosa manca, non cosa c'è. Claude elenca gli stati di errore, gli stati vuoti e i casi limite che un design happy-path tende a saltare."1192 teaches: "Chiedi cosa manca, non cosa c'è. Claude elenca gli stati di errore, gli stati vuoti e i casi limite che un design pensato solo per il caso ideale tende a trascurare.",
1193 prompt: "elenca gli stati di errore, gli stati vuoti e i casi limite per {feature} che il design deve coprire",
1194 slots: {
1195 feature: "il flusso di caricamento dei file"
1196 }
1146 },1197 },
1147 "turn-a-mockup-into": {1198 "turn-a-mockup-into": {
1148 title: "Trasformare un mockup in un prototipo funzionante",1199 title: "Trasformare un mockup in un prototipo funzionante",
1149 teaches: "Un prototipo cliccabile risponde a domande che un mockup statico non può. Consegnate il codice funzionante all'ingegneria invece di spiegare le interazioni in un documento."1200 teaches: "Un prototipo cliccabile risponde a domande a cui un mockup statico non può rispondere. Consegna il codice funzionante al team di engineering invece di spiegare le interazioni in un documento.",
1201 prompt: "ecco un mockup. crea un prototipo funzionante in cui posso navigare cliccando, rispettando il layout e gli stati mostrati"
1150 },1202 },
1151 "implement-from-a-screenshot": {1203 "implement-from-a-screenshot": {
1152 title: "Implementare da uno screenshot e auto-verificare",1204 title: "Implementare da uno screenshot e autoverificare",
1153 teaches: "Questo dà a Claude un ciclo di verifica: renderizza, confronta con l'immagine sorgente, e itera senza che voi indichiate ogni lacuna.",1205 teaches: "Questo dà a Claude un ciclo di verifica: esegue il rendering, confronta il risultato con l'immagine sorgente e itera senza che tu debba segnalare ogni differenza.",
1154 next: "Utilizzate `/goal` per mantenere Claude iterando finché gli screenshot non corrispondono"1206 next: "Usa `/goal` per far continuare Claude a iterare finché gli screenshot non corrispondono",
1207 prompt: "implementa questo design, poi fai uno screenshot del risultato, confrontalo con l'originale e correggi eventuali differenze"
1155 },1208 },
1156 "follow-an-existing-pattern": {1209 "follow-an-existing-pattern": {
1157 title: "Seguire un modello esistente",1210 title: "Seguire uno schema esistente",
1158 teaches: "Puntate al codice che vi piace già. Senza un riferimento, Claude usa come default le best practice generali. Con uno, corrisponde alle convenzioni che la vostra codebase effettivamente usa.",1211 teaches: "Indica del codice che ti piace già. Senza un riferimento, Claude segue le best practice generali. Con un riferimento, si adegua alle convenzioni che il tuo codebase usa effettivamente.",
1159 next: "Chiedete a Claude di scrivere il modello che ha seguito in `CLAUDE.md` in modo che le sessioni future lo corrispondano senza il riferimento"1212 next: "Chiedi a Claude di scrivere in `CLAUDE.md` lo schema che ha seguito, in modo che le sessioni future lo rispettino senza il riferimento",
1213 prompt: "guarda come è implementato {example} per capire lo schema, poi crea {new} nello stesso modo",
1214 slots: {
1215 example: "l'handler dei webhook GitHub",
1216 new: "un handler per i webhook Stripe"
1217 }
1160 },1218 },
1161 "add-a-small-well": {1219 "add-a-small-well": {
1162 title: "Aggiungere una piccola funzionalità ben definita",1220 title: "Aggiungere una piccola funzionalità ben definita",
1163 teaches: "Dichiarate gli input e gli output, non come costruirla. Claude trova dove vive il codice simile e aggiunge il vostro accanto."1221 teaches: "Dichiara gli input e gli output, non come realizzarla. Claude trova dove si trova il codice simile e aggiunge il tuo accanto.",
1222 prompt: "aggiungi un endpoint {endpoint} che restituisca {payload}",
1223 slots: {
1224 endpoint: "/health",
1225 payload: "la versione dell'app e l'uptime"
1226 }
1164 },1227 },
1165 "build-a-small-internal": {1228 "build-a-small-internal": {
1166 title: "Costruire un piccolo strumento interno da zero",1229 title: "Creare un piccolo strumento interno da zero",
1167 teaches: "Non avete bisogno di un progetto, un framework, o un passo di build. Descrivete lo strumento e chiedete a Claude di aprirlo in modo che lo vediate funzionare immediatamente."1230 teaches: "Non ti servono un progetto, un framework o un passaggio di build. Descrivi lo strumento e chiedi a Claude di aprirlo, così lo vedi funzionare immediatamente.",
1231 prompt: "crea una {tool} usando HTML, CSS e JavaScript vanilla, poi aprila nel mio browser",
1232 slots: {
1233 tool: "bacheca Kanban drag-and-drop con tre colonne"
1234 }
1168 },1235 },
1169 "work-an-issue-end": {1236 "work-an-issue-end": {
1170 title: "Lavorare un problema da capo a fondo",1237 title: "Lavorare su una issue dall'inizio alla fine",
1171 teaches: "Date il numero del problema, non un riepilogo. Claude legge il ticket completo stesso, così i requisiti che dimentichereste di menzionare vengono attraversati, e valida il cambiamento prima di riferire."1238 teaches: "Fornisci il numero della issue, non un riepilogo. Claude legge da solo l'intero ticket, così emergono anche i requisiti che dimenticheresti di menzionare, e convalida la modifica prima di riferire.",
1239 prompt: "leggi la issue #{issue}, implementa la correzione ed esegui i test",
1240 slots: {
1241 issue: "312"
1242 }
1172 },1243 },
1173 "find-and-update-copy": {1244 "find-and-update-copy": {
1174 title: "Trovare e aggiornare il testo in tutta la codebase",1245 title: "Trovare e aggiornare i testi in tutto il codebase",
1175 teaches: "Chiedete varianti e dite cosa saltare. Claude trova fraseologie che una ricerca letterale perderebbe e lascia i fixture di test e la cronologia intatti, così rivedete solo il testo che gli utenti effettivamente vedono."1246 teaches: "Chiedi le varianti e di' cosa saltare. Claude trova formulazioni che una ricerca letterale non coglierebbe e lascia intatte le fixture di test e la cronologia, così rivedi solo i testi che gli utenti vedono effettivamente.",
1247 prompt: "trova ogni punto in cui diciamo \"{copy}\" o una variante simile, mostrami ciascuno nel suo contesto, poi aggiornali tutti in \"{new}\". lascia stare i test e il changelog",
1248 slots: {
1249 copy: "Registrati gratis",
1250 new: "Inizia la prova gratuita"
1251 }
1176 },1252 },
1177 "draft-from-past-examples": {1253 "draft-from-past-examples": {
1178 title: "Bozza di un documento da esempi passati",1254 title: "Scrivere un documento partendo da esempi passati",
1179 teaches: "Puntate a una cartella di lavoro finita invece di descrivere il vostro stile. Claude impara la struttura e la voce da quello che avete già spedito, così la prima bozza legge come una delle vostre.",1255 teaches: "Indica una cartella di lavori finiti invece di descrivere il tuo stile. Claude impara la struttura e il tono da ciò che hai già pubblicato, così la prima bozza sembra scritta da te.",
1180 next: "Salvate la voce come una skill in modo che ogni bozza inizi lì"1256 next: "Salva il tono come skill in modo che ogni bozza parta da lì",
1257 prompt: "leggi le {examples} in {folder} per imparare la struttura e il tono, poi scrivine una nuova per {topic}",
1258 slots: {
1259 examples: "valutazioni d'impatto sulla privacy",
1260 folder: "legal/pia/",
1261 topic: "la nuova integrazione di analytics"
1262 }
1181 },1263 },
1182 "write-tests-run-them": {1264 "write-tests-run-them": {
1183 title: "Scrivere test, eseguirli, correggere i fallimenti",1265 title: "Scrivere test, eseguirli, correggere gli errori",
1184 teaches: "Chiedete di scrivere, eseguire e correggere insieme in modo che Claude iteri senza fermarsi per istruzioni.",1266 teaches: "Chiedi di scrivere, eseguire e correggere insieme, così Claude itera senza fermarsi ad aspettare istruzioni.",
1185 next: "Eseguite `/init` in modo che Claude impari automaticamente il vostro comando di test"1267 next: "Esegui `/init` in modo che Claude impari automaticamente il tuo comando di test",
1268 prompt: "scrivi i test per {path}, eseguili e correggi eventuali errori",
1269 slots: {
1270 path: "app/parsers/feed.py"
1271 }
1186 },1272 },
1187 "drive-implementation-from-tests": {1273 "drive-implementation-from-tests": {
1188 title: "Guidare l'implementazione dai test",1274 title: "Guidare l'implementazione con i test",
1189 teaches: "Test-driven development: i test definiscono quando il lavoro è completo, e Claude itera sull'implementazione finché non passano."1275 teaches: "Test-driven development: i test definiscono quando il lavoro è completo e Claude itera sull'implementazione finché non passano.",
1276 prompt: "scrivi prima i test per {feature}, poi implementalo finché non passano",
1277 slots: {
1278 feature: "il flusso di reimpostazione della password"
1279 }
1190 },1280 },
1191 "fill-gaps-from-a": {1281 "fill-gaps-from-a": {
1192 title: "Riempire le lacune da un rapporto di copertura",1282 title: "Colmare le lacune da un report di copertura",
1193 teaches: "Puntate al rapporto di copertura invece di indovinare cosa non è testato. Claude legge i numeri effettivi e scrive test per i file che ne hanno più bisogno.",1283 teaches: "Indica il report di copertura invece di indovinare cosa non è testato. Claude legge i numeri reali e scrive test per i file che ne hanno più bisogno.",
1194 next: "Impostate questo come un `/goal` in modo che Claude continui a scrivere test finché la copertura non raggiunge l'obiettivo"1284 next: "Imposta questo come `/goal` in modo che Claude continui a scrivere test fino a raggiungere l'obiettivo di copertura",
1285 prompt: "leggi {report} e aggiungi test per i file con la copertura più bassa finché ciascuno non supera il {target}%",
1286 slots: {
1287 report: "coverage/coverage-summary.json",
1288 target: "80"
1289 }
1195 },1290 },
1196 "port-code-between-languages": {1291 "port-code-between-languages": {
1197 title: "Portare il codice in un'altra lingua",1292 title: "Portare il codice in un altro linguaggio",
1198 teaches: "Dite cosa preservare, non solo il linguaggio di destinazione. Nominare l'API o il comportamento che deve rimanere lo stesso dà a Claude un contratto per verificare il port."1293 teaches: "Di' cosa preservare, non solo il linguaggio di destinazione. Indicare l'API o il comportamento che deve restare invariato dà a Claude un contratto rispetto al quale verificare il porting.",
1294 prompt: "porta {source} in {target}, mantenendo invariati {keep}",
1295 slots: {
1296 source: "questo modulo Python",
1297 target: "Rust",
1298 keep: "l'API pubblica e il comportamento dei test"
1299 }
1199 },1300 },
1200 "generate-docs-for-code": {1301 "generate-docs-for-code": {
1201 title: "Generare documentazione per codice non documentato",1302 title: "Generare documentazione per codice non documentato",
1202 teaches: "Nominate l'ambito e il formato. Claude trova cosa manca e corrisponde allo stile di commento già nel file, così la nuova documentazione legge come il resto."1303 teaches: "Indica l'ambito e il formato. Claude trova cosa manca e si adegua allo stile dei commenti già presente nel file, così la nuova documentazione è coerente con il resto.",
1304 prompt: "trova {scope} senza commenti {format} e aggiungili, rispettando lo stile già usato nel file",
1305 slots: {
1306 scope: "le funzioni pubbliche in src/auth/",
1307 format: "JSDoc"
1308 }
1203 },1309 },
1204 "migrate-a-pattern-across": {1310 "migrate-a-pattern-across": {
1205 title: "Migrare un modello in tutta la codebase",1311 title: "Migrare uno schema in tutto il codebase",
1206 teaches: "Descrivete il vecchio modello e il nuovo. Chiedere a Claude di identificare prima ogni posto significa che i siti di chiamata sono elencati nella risposta, così potete controllare che nessuno sia stato perso. Per una migrazione su molti file, eseguite [/batch](/docs/it/commands). Claude divide il lavoro in unità per voi da approvare, quindi i subagent in background fanno i cambiamenti e aprono una pull request per unità."1312 teaches: "Descrivi il vecchio schema e quello nuovo. Chiedere a Claude di identificare prima ogni punto fa sì che i punti di chiamata siano elencati nella risposta, così puoi verificare che non ne manchi nessuno. Per una migrazione su molti file, esegui [/batch](/docs/it/commands). Claude suddivide il lavoro in unità che approvi tu, poi i subagent in background apportano le modifiche.",
1313 prompt: "migra tutto da {from} a {to}: identifica ogni punto che deve cambiare, poi apporta le modifiche",
1314 slots: {
1315 from: "vecchia API di logging",
1316 to: "logger strutturato"
1317 }
1207 },1318 },
1208 "optimize-against-a-measurable": {1319 "optimize-against-a-measurable": {
1209 title: "Ottimizzare rispetto a un obiettivo misurabile",1320 title: "Ottimizzare rispetto a un obiettivo misurabile",
1210 teaches: "Dichiarare la metrica e l'obiettivo dà a Claude una chiara definizione di fatto.",1321 teaches: "Indicare la metrica e l'obiettivo dà a Claude una definizione chiara di completamento.",
1211 next: "Impostate questo come un `/goal` in modo che Claude continui a misurare e iterare finché non raggiunge il numero"1322 next: "Imposta questo come `/goal` in modo che Claude continui a misurare e iterare fino a raggiungere il numero",
1323 prompt: "ottimizza {target} per portare {metric} da {current} a meno di {goal}",
1324 slots: {
1325 target: "la query di ricerca",
1326 metric: "la latenza p95",
1327 current: "2s",
1328 goal: "500ms"
1329 }
1212 },1330 },
1213 "fix-a-precise-visual": {1331 "fix-a-precise-visual": {
1214 title: "Correggere un bug visivo preciso",1332 title: "Correggere un bug visivo preciso",
1215 teaches: "Un feedback visivo preciso ottiene una correzione precisa. Dichiarate l'elemento esatto, la misurazione e il viewport.",1333 teaches: "Un feedback visivo preciso porta a una correzione precisa. Indica l'elemento esatto, la misura e il viewport.",
1216 next: "Aggiungete uno strumento di anteprima in modo che Claude faccia uno screenshot e verifichi la correzione stessa"1334 next: "Aggiungi uno strumento di anteprima in modo che Claude faccia uno screenshot e verifichi la correzione da solo",
1335 prompt: "il {element} sporge di {amount} oltre il {container} su {viewport}. correggilo.",
1336 slots: {
1337 element: "pulsante di login",
1338 amount: "20px",
1339 container: "bordo della card",
1340 viewport: "mobile"
1341 }
1217 },1342 },
1218 "review-your-changes-before": {1343 "review-your-changes-before": {
1219 title: "Rivedere i vostri cambiamenti prima di eseguire il commit",1344 title: "Rivedere le tue modifiche prima del commit",
1220 teaches: "Catturate i problemi mentre sono ancora economici da correggere. Claude legge i file modificati per intero, non solo le righe diff, così individua i problemi che una rapida auto-revisione perde.",1345 teaches: "Individua i problemi quando sono ancora poco costosi da correggere. Claude legge i file modificati per intero, non solo le righe del diff, così individua problemi che una rapida autorevisione non coglie.",
1221 next: "Eseguite `/code-review` per lo stesso controllo in un comando"1346 next: "Esegui `/code-review` per lo stesso controllo con un solo comando",
1347 prompt: "rivedi le mie modifiche non ancora committate e segnala tutto ciò che sembra rischioso prima che io faccia il commit"
1222 },1348 },
1223 "review-a-pull-request": {1349 "review-a-pull-request": {
1224 title: "Rivedere una pull request",1350 title: "Rivedere una pull request",
1225 teaches: "Claude rivede con l'intera codebase in contesto, non solo il diff. Legge il codice modificato e quello che chiama, così cattura i problemi che una revisione solo diff perderebbe.",1351 teaches: "Claude esegue la revisione con l'intero codebase nel contesto, non solo il diff. Legge il codice modificato e ciò che richiama, così individua problemi che una revisione del solo diff non coglierebbe.",
1226 next: "Eseguite `/code-review <pr#>` in un comando, o attivate Code Review per ogni PR"1352 next: "Esegui `/code-review <pr#>` con un solo comando, oppure attiva Code Review per ogni PR",
1353 prompt: "rivedi la PR #{pr} e riassumi cosa è cambiato, poi elenca eventuali dubbi",
1354 slots: {
1355 pr: "247"
1356 }
1227 },1357 },
1228 "review-infrastructure-changes-before": {1358 "review-infrastructure-changes-before": {
1229 title: "Rivedere i cambiamenti dell'infrastruttura prima di applicare",1359 title: "Rivedere le modifiche all'infrastruttura prima di applicarle",
1230 teaches: "L'output del piano è denso e difficile da scansionare. Incollarlo vi dà un riepilogo in linguaggio semplice di cosa effettivamente cambierà prima di applicarlo."1360 teaches: "L'output del piano è denso e difficile da scorrere. Incollandolo ottieni un riepilogo in linguaggio semplice di cosa cambierà effettivamente prima di applicarlo.",
1361 prompt: "ecco l'output del mio piano Terraform. cosa farà, e c'è qualcosa qui che causerà problemi?"
1231 },1362 },
1232 "run-a-security-review": {1363 "run-a-security-review": {
1233 title: "Eseguire una revisione di sicurezza con un subagent",1364 title: "Eseguire una revisione di sicurezza con un subagent",
1234 teaches: "Un [subagent](/docs/it/sub-agents) esegue l'audit nel suo proprio context window e riferisce un riepilogo, così una lunga revisione di sicurezza non riempie la vostra sessione principale. Il subagent generico integrato gestisce questo senza configurazione aggiuntiva.",1365 teaches: "Un [subagent](/docs/it/sub-agents) esegue l'audit nella propria finestra di contesto e restituisce un riepilogo, così una lunga revisione di sicurezza non riempie la tua sessione principale. Il subagent generico integrato se ne occupa senza configurazione aggiuntiva.",
1235 next: "Configurate un subagent dedicato security-review che tutto il vostro team può usare"1366 next: "Configura un subagent dedicato alla revisione di sicurezza che tutto il tuo team può usare",
1367 prompt: "usa un subagent per esaminare {path} alla ricerca di problemi di sicurezza e riferisci cosa trova",
1368 slots: {
1369 path: "src/api/"
1370 }
1236 },1371 },
1237 "review-content-before-sending": {1372 "review-content-before-sending": {
1238 title: "Catturare i problemi prima della revisione formale",1373 title: "Individuare i problemi prima della revisione formale",
1239 teaches: "Ottenete un primo passaggio prima che un umano spenda tempo su di esso. Nominate i problemi che volete controllati in modo che la revisione sia focalizzata, quindi correggete quello che trova e inviate una bozza più pulita.",1374 teaches: "Ottieni un primo controllo prima che una persona ci dedichi del tempo. Indica gli aspetti che vuoi verificare in modo che la revisione sia mirata, poi correggi ciò che emerge e invia una bozza più pulita.",
1240 next: "Catturate la vostra lista di controllo di revisione come una skill che tutto il vostro team può eseguire"1375 next: "Salva la tua checklist di revisione come skill che tutto il tuo team può eseguire",
1376 prompt: "rivedi {file} per individuare {concerns} ed elenca tutto ciò che dovrei correggere prima di inviarlo a {reviewer}",
1377 slots: {
1378 file: "launch-post.md",
1379 concerns: "affermazioni non supportate, attribuzioni mancanti e problemi con le linee guida del brand",
1380 reviewer: "l'ufficio legale"
1381 }
1241 },1382 },
1242 "course-correct-a-wrong": {1383 "course-correct-a-wrong": {
1243 title: "Correggere il corso di un approccio sbagliato",1384 title: "Correggere la rotta di un approccio sbagliato",
1244 teaches: "Nominate il vincolo che Claude ha perso, non solo che è sbagliato. Una ragione specifica dà a Claude un vincolo concreto da soddisfare al nuovo tentativo, invece di indovinare di nuovo.",1385 teaches: "Indica il vincolo che Claude non ha considerato, non solo che è sbagliato. Una ragione specifica dà a Claude un vincolo concreto da soddisfare al nuovo tentativo, invece di tirare a indovinare di nuovo.",
1245 next: "Premete `Esc` due volte per aprire il menu di rewind e ripristinare il codice e la conversazione in modo che il nuovo tentativo inizi pulito"1386 next: "Premi `Esc` due volte per aprire il menu di rewind e ripristinare codice e conversazione, così il nuovo tentativo parte da zero",
1387 prompt: "non va bene: {feedback}. prova un approccio diverso",
1388 slots: {
1389 feedback: "la firma della funzione deve restare retrocompatibile"
1390 }
1246 },1391 },
1247 "narrow-the-scope-of": {1392 "narrow-the-scope-of": {
1248 title: "Restringere l'ambito di un cambiamento",1393 title: "Restringere la portata di una modifica",
1249 teaches: "Quando la direzione è giusta ma il cambiamento è diventato troppo ampio, chiedete a Claude di mantenere parte di esso piuttosto che fare il rewind di tutto. Un confine dichiarato mantiene una piccola correzione dal diventare un refactoring."1394 teaches: "Quando la direzione è giusta ma la modifica è andata troppo oltre, chiedi a Claude di mantenerne una parte invece di annullare tutto. Un limite esplicito impedisce che una piccola correzione diventi un refactoring.",
1395 prompt: "è troppo. mantieni solo le modifiche a {scope} e annulla le altre modifiche",
1396 slots: {
1397 scope: "la logica di validazione in src/forms/"
1398 }
1250 },1399 },
1251 "turn-a-correction-into": {1400 "turn-a-correction-into": {
1252 title: "Trasformare una correzione in una regola",1401 title: "Trasformare una correzione in una regola",
1253 teaches: "Una correzione in chat non è condivisa con il vostro team. Una regola nel [CLAUDE.md](/docs/it/memory) del progetto è condivisa una volta che la eseguite il commit, e Claude la legge all'inizio di ogni sessione.",1402 teaches: "Una correzione in chat non viene condivisa con il tuo team. Una regola nel [CLAUDE.md](/docs/it/memory) del progetto viene condivisa una volta che ne fai il commit, e Claude la legge all'inizio di ogni sessione.",
1254 next: "Aprite `/memory` per rivedere quello che Claude ha scritto"1403 next: "Apri `/memory` per rivedere ciò che Claude ha scritto",
1404 prompt: "continui a {mistake}. aggiungi una regola a CLAUDE.md così non succede più",
1405 slots: {
1406 mistake: "usare export default quando questo progetto usa export con nome"
1407 }
1255 },1408 },
1256 "resolve-merge-conflicts": {1409 "resolve-merge-conflicts": {
1257 title: "Risolvere i conflitti di merge",1410 title: "Risolvere i conflitti di merge",
1258 teaches: "Dite quale stato volete, non quali marcatori mantenere. Chiedere il ragionamento rende il merge revisionabile invece di una scatola nera."1411 teaches: "Di' quale stato vuoi ottenere, non quali marcatori mantenere. Chiedere il ragionamento rende il merge verificabile invece di una scatola nera.",
1412 prompt: "risolvi i conflitti di merge in questo branch e spiega cosa hai mantenuto da ciascun lato"
1259 },1413 },
1260 "commit-with-a-generated": {1414 "commit-with-a-generated": {
1261 title: "Eseguire il commit con un messaggio generato",1415 title: "Fare il commit con un messaggio generato",
1262 teaches: "Lasciate che Claude derivi il messaggio dal diff. Corrisponde allo stile di commit esistente del vostro repository."1416 teaches: "Lascia che Claude ricavi il messaggio dal diff. Si adegua allo stile dei commit già presente nel tuo repository.",
1417 prompt: "fai il commit di queste modifiche con un messaggio che riassuma cosa ho fatto"
1263 },1418 },
1264 "open-a-pull-request": {1419 "open-a-pull-request": {
1265 title: "Aprire una pull request da un ticket",1420 title: "Aprire una pull request da un ticket",
1266 teaches: "Saltate il cambio di contesto tra tracker, editor e GitHub. Un prompt legge la specifica, fa il cambiamento e apre la PR."1421 teaches: "Evita il cambio di contesto tra tracker, editor e GitHub. Un solo prompt legge la specifica, apporta la modifica e apre la PR.",
1422 prompt: "trova il ticket {tracker} relativo a {topic} e apri una PR che lo implementi",
1423 slots: {
1424 tracker: "Linear",
1425 topic: "il timeout del login"
1426 }
1267 },1427 },
1268 "draft-release-notes-from": {1428 "draft-release-notes-from": {
1269 title: "Bozza di note di rilascio dalla cronologia git",1429 title: "Scrivere le note di rilascio dalla cronologia git",
1270 teaches: "Date due punti di riferimento e la struttura che volete. Claude legge il log dei commit tra di loro e bozza un changelog che potete modificare.",1430 teaches: "Fornisci due punti di riferimento e la struttura che vuoi. Claude legge il log dei commit tra i due e scrive una bozza di changelog che puoi modificare.",
1271 next: "Salvate questo come una skill `/changelog`"1431 next: "Salva questo come skill `/changelog`",
1432 prompt: "confronta {from} con {to} e scrivi una bozza delle note di rilascio raggruppate per funzionalità, correzione e breaking change",
1433 slots: {
1434 from: "v2.3.0",
1435 to: "v2.4.0"
1436 }
1272 },1437 },
1273 "write-a-ci-workflow": {1438 "write-a-ci-workflow": {
1274 title: "Scrivere un workflow CI",1439 title: "Scrivere un workflow CI",
1275 teaches: "Descrivete quando dovrebbe eseguire e cosa dovrebbe fare; lo YAML è generato per voi, abbinato ai vostri comandi di build e test del progetto."1440 teaches: "Descrivi quando deve essere eseguito e cosa deve fare; lo YAML viene generato per te, in linea con i comandi di build e test del tuo progetto.",
1441 prompt: "scrivi un workflow GitHub Actions che {steps} a ogni push su {branch}",
1442 slots: {
1443 steps: "esegua i test e faccia il deploy in staging",
1444 branch: "main"
1445 }
1276 },1446 },
1277 "find-and-fix-a": {1447 "find-and-fix-a": {
1278 title: "Trovare e correggere un test fallito",1448 title: "Trovare e correggere un test che fallisce",
1279 teaches: "Descrivete il sintomo; non avete bisogno di sapere quale file è rotto. Claude esegue il test per vedere il fallimento, lo traccia nel sorgente e lo corregge."1449 teaches: "Descrivi il sintomo; non serve sapere quale file è rotto. Claude esegue il test per vedere l'errore, ne risale l'origine nel sorgente e lo corregge.",
1450 prompt: "il test {test} fallisce, scopri perché e correggilo",
1451 slots: {
1452 test: "UserAuth"
1453 }
1280 },1454 },
1281 "investigate-a-reported-error": {1455 "investigate-a-reported-error": {
1282 title: "Investigare un errore segnalato",1456 title: "Analizzare un errore segnalato",
1283 teaches: "Descrivete il sintomo e la posizione; Claude legge il percorso di codice rilevante e traccia le cause probabili. Incollate stack trace o log se li avete.",1457 teaches: "Descrivi il sintomo e dove si verifica; Claude legge il percorso di codice rilevante e individua le cause probabili. Incolla stack trace o log se li hai.",
1284 next: "Mettete un deeplink nel vostro runbook che apre Claude con questo prompt pre-compilato"1458 next: "Inserisci nel tuo runbook un deeplink che apre Claude con questo prompt precompilato",
1459 prompt: "gli utenti vedono {symptom} su {where}. indaga e dimmi cosa sta succedendo",
1460 slots: {
1461 symptom: "errori 500",
1462 where: "/api/settings"
1463 }
1285 },1464 },
1286 "fix-a-build-error": {1465 "fix-a-build-error": {
1287 title: "Correggere un errore di build alla radice",1466 title: "Correggere un errore di build alla radice",
1288 teaches: "Chiedere la causa radice e la verifica previene patch superficiali che sopprimono l'errore senza correggerlo."1467 teaches: "Chiedere la causa principale e la verifica evita patch superficiali che nascondono l'errore senza correggerlo.",
1468 prompt: "ecco un errore di build. correggi la causa principale e verifica che la build vada a buon fine"
1289 },1469 },
1290 "investigate-a-production-incident": {1470 "investigate-a-production-incident": {
1291 title: "Investigare un incidente di produzione",1471 title: "Analizzare un incidente di produzione",
1292 teaches: "Elencate le fonti di evidenza da correlare, non i passaggi da intraprendere. Claude legge log, cronologia git e config insieme per restringere la causa.",1472 teaches: "Elenca le fonti di informazioni da correlare, non i passaggi da seguire. Claude legge insieme log, cronologia git e configurazione per restringere la causa.",
1293 next: "Collegate Sentry o il vostro log store tramite MCP"1473 next: "Collega Sentry o il tuo log store tramite MCP",
1474 prompt: "{symptom}. controlla i log, i deploy recenti e le modifiche alla configurazione, poi dimmi la causa più probabile",
1475 slots: {
1476 symptom: "l'endpoint di checkout ha iniziato a restituire errori 500 un'ora fa"
1477 }
1294 },1478 },
1295 "query-logs-in-plain": {1479 "query-logs-in-plain": {
1296 title: "Interrogare i log in inglese semplice",1480 title: "Interrogare i log in linguaggio naturale",
1297 teaches: "Fate la domanda invece di scrivere l'SQL. Claude costruisce la query, la esegue contro i vostri log collegati, e mostra sia la query che il risultato in modo che possiate controllare cosa è stato eseguito."1481 teaches: "Fai la domanda invece di scrivere l'SQL. Claude crea la query, la esegue sui log collegati e mostra sia la query sia il risultato, così puoi verificare cosa è stato eseguito.",
1482 prompt: "mostrami tutti i {events} per {scope} durante {timeframe}. scrivi la query, eseguila e dimmi cosa spicca",
1483 slots: {
1484 events: "login non riusciti",
1485 scope: "il servizio di autenticazione",
1486 timeframe: "le ultime 24 ore"
1487 }
1298 },1488 },
1299 "diagnose-from-a-console": {1489 "diagnose-from-a-console": {
1300 title: "Diagnosticare da uno screenshot della console",1490 title: "Diagnosticare da uno screenshot della console",
1301 teaches: "Le console cloud vi mostrano il problema ma non i comandi per correggerlo. Claude legge lo screenshot e traduce il dashboard nei comandi kubectl, gcloud o aws da eseguire."1491 teaches: "Le console cloud ti mostrano il problema ma non i comandi per risolverlo. Claude legge lo screenshot e traduce la dashboard nei comandi kubectl, gcloud o aws da eseguire.",
1492 prompt: "ecco uno screenshot di {console}. spiegami passo passo perché {resource} non funziona e dammi i comandi esatti per risolvere il problema",
1493 slots: {
1494 console: "la dashboard Kubernetes di GCP",
1495 resource: "questo pod"
1496 }
1302 },1497 },
1303 "analyze-a-data-file": {1498 "analyze-a-data-file": {
1304 title: "Analizzare un file di dati",1499 title: "Analizzare un file di dati",
1305 teaches: "Una domanda una tantum non ha bisogno di uno script una tantum. Puntate a un file nella vostra cartella di progetto e Claude lo legge direttamente, trova i modelli e scrive l'output dove lo chiedete.",1500 teaches: "Una domanda occasionale non richiede uno script occasionale. Indica un file nella cartella del tuo progetto e Claude lo legge direttamente, individua gli schemi e scrive l'output dove chiedi.",
1306 next: "Collegate la fonte di dati tramite MCP invece di esportare file"1501 next: "Collega la fonte di dati tramite MCP invece di esportare file",
1502 prompt: "leggi {file}, riassumi gli schemi principali e scrivi i risultati in {output}",
1503 slots: {
1504 file: "@reports/q1-signups.csv",
1505 output: "una pagina HTML con grafici, poi aprila nel mio browser"
1506 }
1307 },1507 },
1308 "generate-variations-from-performance": {1508 "generate-variations-from-performance": {
1309 title: "Generare variazioni dai dati di performance",1509 title: "Generare variazioni dai dati di performance",
1310 teaches: "Dichiarate il vincolo all'inizio in modo che la generazione rimanga entro il limite. Claude legge le metriche, sceglie cosa sostituire e produce alternative che si adattano.",1510 teaches: "Dichiara il vincolo all'inizio, così la generazione resta entro il limite. Claude legge le metriche, sceglie cosa sostituire e produce alternative che rispettano il vincolo.",
1311 next: "Collegate la piattaforma pubblicitaria tramite MCP invece di esportare un file"1511 next: "Collega la piattaforma pubblicitaria tramite MCP invece di esportare un file",
1512 prompt: "leggi {file}, trova {items} con le performance peggiori e genera {n} nuove variazioni che restino sotto i {limit} caratteri",
1513 slots: {
1514 file: "@ads-performance.csv",
1515 items: "i titoli",
1516 n: "20",
1517 limit: "90"
1518 }
1312 },1519 },
1313 "turn-a-recurring-task": {1520 "turn-a-recurring-task": {
1314 title: "Trasformare un'attività ricorrente in una skill",1521 title: "Trasformare un'attività ricorrente in una skill",
1315 teaches: "Nominate i passaggi una volta; riutilizzateli come comando. Claude scrive una [skill](/docs/it/skills) che chiunque nel vostro team può eseguire."1522 teaches: "Indica i passaggi una volta sola; riutilizzali come comando. Claude scrive una [skill](/docs/it/skills) che chiunque nel tuo team può eseguire.",
1523 prompt: "crea una skill /{name} per questo progetto che {steps}",
1524 slots: {
1525 name: "ship",
1526 steps: "esegua il linter e i test, poi scriva una bozza del messaggio di commit"
1527 }
1316 },1528 },
1317 "add-a-hook-for": {1529 "add-a-hook-for": {
1318 title: "Aggiungere un hook per il comportamento ripetuto",1530 title: "Aggiungere un hook per un comportamento ricorrente",
1319 teaches: "Gli hook rendono un comportamento automatico invece di qualcosa che dovete ricordare di chiedere. Descrivete il trigger e l'azione e Claude scrive la configurazione [hook](/docs/it/hooks)."1531 teaches: "Gli hook rendono un comportamento automatico invece di qualcosa che devi ricordarti di chiedere. Descrivi il trigger e l'azione e Claude scrive la configurazione dell'[hook](/docs/it/hooks).",
1532 prompt: "scrivi un hook che {action} dopo ogni {event}",
1533 slots: {
1534 action: "esegua prettier",
1535 event: "modifica a un file .ts o .tsx"
1536 }
1320 },1537 },
1321 "connect-a-tool-with": {1538 "connect-a-tool-with": {
1322 title: "Connettere uno strumento con MCP",1539 title: "Collegare uno strumento con MCP",
1323 teaches: "Collegate la fonte una volta invece di incollare i dati ogni sessione. Dopo la configurazione [MCP](/docs/it/mcp), Claude legge dallo strumento direttamente quando lo chiedete."1540 teaches: "Collega la fonte una volta sola invece di incollare i dati in ogni sessione. Dopo la configurazione di [MCP](/docs/it/mcp), Claude legge direttamente dallo strumento quando gli chiedi qualcosa al riguardo.",
1541 prompt: "configura il server MCP {server} in modo che tu possa leggere direttamente i miei {data}",
1542 slots: {
1543 server: "Sentry",
1544 data: "report degli errori"
1545 }
1324 },1546 },
1325 "capture-what-to-remember": {1547 "capture-what-to-remember": {
1326 title: "Catturare cosa ricordare per la prossima volta",1548 title: "Annotare cosa ricordare per la prossima volta",
1327 teaches: "Chiedete prima di dimenticare. Claude sa cosa ha dovuto capire questa sessione e propone voci [CLAUDE.md](/docs/it/memory) in modo che la sessione successiva inizi con quel contesto."1549 teaches: "Chiedi prima di dimenticare. Claude sa cosa ha dovuto capire in questa sessione e propone voci per [CLAUDE.md](/docs/it/memory), così la sessione successiva inizia con quel contesto.",
1550 prompt: "riassumi cosa abbiamo fatto in questa sessione e suggerisci cosa aggiungere a CLAUDE.md"
1328 }1551 }
1329};1552};
1330 1553