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);
1098 "get-oriented-in-a": {1104 "get-oriented-in-a": {
1099 title: "Orientar-se em um novo repositório",1105 title: "Orientar-se em um novo repositório",
1100 teaches: "Descreva o que você quer saber, não quais arquivos ler. Claude explora o projeto por conta própria e retorna um resumo de como ele se encaixa.",1106 teaches: "Descreva o que você quer saber, não quais arquivos ler. Claude explora o projeto por conta própria e retorna um resumo de como ele se encaixa.",
1101 next: "Execute `/init` para configurar `CLAUDE.md` para que Claude se lembre disso a cada sessão"1107 next: "Execute `/init` para configurar `CLAUDE.md` para que Claude se lembre disso a cada sessão",
1108 prompt: "me dê uma visão geral desta base de código: arquitetura, diretórios principais e como as partes se conectam"
1102 },1109 },
1103 "explain-unfamiliar-code": {1110 "explain-unfamiliar-code": {
1104 title: "Explicar código desconhecido",1111 title: "Explicar código desconhecido",
1105 teaches: "Nomeie o arquivo e diga em qual formato você quer a resposta. Troque a página HTML por um diagrama, pontos de bala ou o que se adequar a como você aprende.",1112 teaches: "Nomeie o arquivo e diga em qual formato você quer a resposta. Troque a página HTML por um diagrama, tópicos ou o que se adequar a como você aprende.",
1106 next: "Defina um estilo de saída para que Claude sempre explique em seu formato preferido"1113 next: "Defina um estilo de saída para que Claude sempre explique em seu formato preferido",
1114 prompt: "explique o que {path} faz e como os dados fluem por ele. escreva isso como {format}",
1115 slots: {
1116 path: "src/scheduler/queue.ts",
1117 format: "uma página HTML com um diagrama e depois abra-a no meu navegador"
1118 }
1107 },1119 },
1108 "find-where-something-happens": {1120 "find-where-something-happens": {
1109 title: "Encontrar onde algo acontece",1121 title: "Encontrar onde algo acontece",
1110 teaches: "Pesquise por comportamento em vez de por nome de arquivo. A pesquisa funciona mesmo quando você não sabe como o arquivo é chamado ou em qual diretório ele está."1122 teaches: "Pesquise por comportamento em vez de por nome de arquivo. A pesquisa funciona mesmo quando você não sabe como o arquivo é chamado ou em qual diretório ele está.",
1123 prompt: "onde nós {behavior}?",
1124 slots: {
1125 behavior: "validamos os tipos de arquivo enviados"
1126 }
1111 },1127 },
1112 "see-what-depends-on": {1128 "see-what-depends-on": {
1113 title: "Verificar o que quebra antes de você deletar",1129 title: "Verificar o que quebra antes de você deletar",
1114 teaches: "Pergunte antes de remover qualquer coisa. A lista de chamadores e efeitos downstream diz se você está olhando para uma limpeza de uma linha ou uma mudança que você precisa coordenar."1130 teaches: "Pergunte antes de remover qualquer coisa. A lista de chamadores e efeitos downstream diz se você está olhando para uma limpeza de uma linha ou uma mudança que você precisa coordenar.",
1131 prompt: "o que quebraria se eu deletasse {target}?",
1132 slots: {
1133 target: "o helper retryWithBackoff"
1134 }
1115 },1135 },
1116 "trace-how-code-evolved": {1136 "trace-how-code-evolved": {
1117 title: "Rastrear como o código evoluiu",1137 title: "Rastrear como o código evoluiu",
1118 teaches: "Aponte para o histórico de commits quando a pergunta é por quê, não o quê. Claude lê o log e blame para qualquer controle de versão que você use e explica as decisões por trás da implementação atual."1138 teaches: "Aponte para o histórico de commits quando a pergunta é por quê, não o quê. Claude lê o log e blame para qualquer controle de versão que você use e explica as decisões por trás da implementação atual.",
1139 prompt: "examine o histórico de commits de {path} e resuma como ele evoluiu e por quê",
1140 slots: {
1141 path: "internal/auth/session.go"
1142 }
1119 },1143 },
1120 "scope-a-change-before": {1144 "scope-a-change-before": {
1121 title: "Definir o escopo de uma mudança antes de começar",1145 title: "Definir o escopo de uma mudança antes de começar",
1122 teaches: "Dimensione o trabalho antes de comprometê-lo com um roadmap. A lista de arquivos diz se você está olhando para um componente ou uma mudança transversal."1146 teaches: "Dimensione o trabalho antes de comprometê-lo com um roadmap. A lista de arquivos diz se você está olhando para um componente ou uma mudança transversal.",
1147 prompt: "quais arquivos eu precisaria alterar para {change}?",
1148 slots: {
1149 change: "adicionar um botão de alternância de modo escuro nas configurações"
1150 }
1123 },1151 },
1124 "ask-the-codebase-a": {1152 "ask-the-codebase-a": {
1125 title: "Fazer uma pergunta de produto à base de código",1153 title: "Fazer uma pergunta de produto à base de código",
1126 teaches: "Declare seu papel para que a resposta seja no nível certo. Claude explica o que o produto realmente faz a partir do código-fonte, sem você precisar lê-lo.",1154 teaches: "Declare seu papel para que a resposta seja no nível certo. Claude explica o que o produto realmente faz a partir do código-fonte, sem você precisar lê-lo.",
1127 next: "Defina um estilo de saída para que Claude sempre apresente respostas neste nível"1155 next: "Defina um estilo de saída para que Claude sempre apresente respostas neste nível",
1156 prompt: "eu sou {role}. me explique passo a passo o que acontece quando um usuário {action}, da UI até o resultado",
1157 slots: {
1158 role: "PM",
1159 action: "clica em Exportar para PDF"
1160 }
1128 },1161 },
1129 "plan-a-multi-file": {1162 "plan-a-multi-file": {
1130 title: "Planejar uma mudança em vários arquivos antes de tocar no código",1163 title: "Planejar uma mudança em vários arquivos antes de tocar no código",
1131 teaches: "Adicionar \"não edite ainda\" separa exploração de mudanças, para que você veja a abordagem antes de qualquer código se mover. Para fazer o planejamento primeiro o padrão em cada prompt, pressione Shift+Tab para [modo de plano](/docs/pt/permission-modes#analyze-before-you-edit-with-plan-mode)."1164 teaches: "Adicionar \"não edite ainda\" separa exploração de mudanças, para que você veja a abordagem antes de qualquer código se mover. Para fazer o planejamento primeiro o padrão em cada prompt, pressione Shift+Tab para o [modo de planejamento](/docs/pt/permission-modes#analyze-before-you-edit-with-plan-mode).",
1165 prompt: "planeje como refatorar o {target} para {goal}. liste os arquivos que você alteraria, mas não edite nada ainda",
1166 slots: {
1167 target: "módulo de pagamento",
1168 goal: "suportar várias moedas"
1169 }
1132 },1170 },
1133 "draft-a-spec-by": {1171 "draft-a-spec-by": {
1134 title: "Rascunhar uma especificação por entrevista",1172 title: "Rascunhar uma especificação por entrevista",
1135 teaches: "Peça para ser entrevistado em vez de escrever a especificação você mesmo. Claude faz perguntas estruturadas até que os requisitos estejam completos e depois escreve o resultado em um arquivo.",1173 teaches: "Peça para ser entrevistado em vez de escrever a especificação você mesmo. Claude faz perguntas estruturadas até que os requisitos estejam completos e depois escreve o resultado em um arquivo.",
1136 next: "Salve suas perguntas de entrevista como uma skill `/spec` para que cada especificação comece da mesma forma"1174 next: "Salve suas perguntas de entrevista como uma skill `/spec` para que cada especificação comece da mesma forma",
1175 prompt: "quero criar {feature}. me entreviste sobre implementação, UX, casos extremos e tradeoffs até cobrirmos tudo, depois escreva a especificação em SPEC.md",
1176 slots: {
1177 feature: "rate limits por workspace"
1178 }
1137 },1179 },
1138 "turn-a-meeting-into": {1180 "turn-a-meeting-into": {
1139 title: "Transformar uma reunião em tickets",1181 title: "Transformar uma reunião em tickets",
1140 teaches: "Pule a etapa de transcrição. Claude extrai itens de ação da entrada não estruturada e os escreve diretamente em seu rastreador via [MCP](/docs/pt/mcp), para que você revise os tickets, não a transcrição.",1182 teaches: "Pule a etapa de transcrição. Claude extrai itens de ação da entrada não estruturada e os escreve diretamente em seu rastreador via [MCP](/docs/pt/mcp), para que você revise os tickets, não a transcrição.",
1141 next: "Salve isto como uma skill `/tickets`"1183 next: "Salve isto como uma skill `/tickets`",
1184 prompt: "leia {input} e redija os itens de ação, depois crie um ticket no {tracker} para cada um com critérios de aceitação",
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: "Mapear casos extremos antes de construir",1191 title: "Mapear casos extremos antes de desenvolver",
1145 teaches: "Peça pelo que está faltando, não pelo que está lá. Claude lista os estados de erro, estados vazios e casos extremos que um design de caminho feliz tende a pular."1192 teaches: "Peça pelo que está faltando, não pelo que está lá. Claude lista os estados de erro, estados vazios e casos extremos que um design de caminho feliz tende a pular.",
1193 prompt: "liste os estados de erro, estados vazios e casos extremos de {feature} que o design precisa cobrir",
1194 slots: {
1195 feature: "o fluxo de upload de arquivos"
1196 }
1146 },1197 },
1147 "turn-a-mockup-into": {1198 "turn-a-mockup-into": {
1148 title: "Transformar um mockup em um protótipo funcional",1199 title: "Transformar um mockup em um protótipo funcional",
1149 teaches: "Um protótipo clicável responde perguntas que um mockup estático não consegue. Entregue o código funcional à engenharia em vez de explicar as interações em um documento."1200 teaches: "Um protótipo clicável responde perguntas que um mockup estático não consegue. Entregue o código funcional à engenharia em vez de explicar as interações em um documento.",
1201 prompt: "aqui está um mockup. crie um protótipo funcional no qual eu possa clicar, correspondendo ao layout e aos estados mostrados"
1150 },1202 },
1151 "implement-from-a-screenshot": {1203 "implement-from-a-screenshot": {
1152 title: "Implementar a partir de uma captura de tela e auto-verificar",1204 title: "Implementar a partir de uma captura de tela e auto-verificar",
1153 teaches: "Isto dá a Claude um loop de verificação: ele renderiza, compara com a imagem de origem e itera sem você apontar cada lacuna.",1205 teaches: "Isto dá a Claude um loop de verificação: ele renderiza, compara com a imagem de origem e itera sem você apontar cada lacuna.",
1154 next: "Use `/goal` para manter Claude iterando até que as capturas de tela correspondam"1206 next: "Use `/goal` para manter Claude iterando até que as capturas de tela correspondam",
1207 prompt: "implemente este design, depois faça uma captura de tela do resultado, compare-a com o original e corrija quaisquer diferenças"
1155 },1208 },
1156 "follow-an-existing-pattern": {1209 "follow-an-existing-pattern": {
1157 title: "Seguir um padrão existente",1210 title: "Seguir um padrão existente",
1158 teaches: "Aponte para código que você já gosta. Sem uma referência, Claude usa como padrão as melhores práticas gerais. Com uma, ele corresponde às convenções que sua base de código realmente usa.",1211 teaches: "Aponte para código que você já gosta. Sem uma referência, Claude usa como padrão as boas práticas gerais. Com uma, ele corresponde às convenções que sua base de código realmente usa.",
1159 next: "Peça a Claude para escrever o padrão que seguiu em `CLAUDE.md` para que futuras sessões o correspondam sem a referência"1212 next: "Peça a Claude para escrever o padrão que seguiu em `CLAUDE.md` para que futuras sessões o correspondam sem a referência",
1213 prompt: "veja como {example} é implementado para entender o padrão, depois crie {new} da mesma forma",
1214 slots: {
1215 example: "o handler de webhook do GitHub",
1216 new: "um handler de webhook do Stripe"
1217 }
1160 },1218 },
1161 "add-a-small-well": {1219 "add-a-small-well": {
1162 title: "Adicionar um recurso pequeno e bem definido",1220 title: "Adicionar um recurso pequeno e bem definido",
1163 teaches: "Declare as entradas e saídas, não como construir. Claude encontra onde código similar vive e adiciona o seu ao lado."1221 teaches: "Declare as entradas e saídas, não como criá-lo. Claude encontra onde código similar vive e adiciona o seu ao lado.",
1222 prompt: "adicione um endpoint {endpoint} que retorne {payload}",
1223 slots: {
1224 endpoint: "/health",
1225 payload: "a versão do app e o uptime"
1226 }
1164 },1227 },
1165 "build-a-small-internal": {1228 "build-a-small-internal": {
1166 title: "Construir uma pequena ferramenta interna do zero",1229 title: "Criar uma pequena ferramenta interna do zero",
1167 teaches: "Você não precisa de um projeto, um framework ou uma etapa de construção. Descreva a ferramenta e peça a Claude para abri-la para que você a veja funcionando imediatamente."1230 teaches: "Você não precisa de um projeto, um framework ou uma etapa de build. Descreva a ferramenta e peça a Claude para abri-la para que você a veja funcionando imediatamente.",
1231 prompt: "crie {tool} usando HTML, CSS e JavaScript puro, depois abra-o no meu navegador",
1232 slots: {
1233 tool: "um quadro Kanban de arrastar e soltar com três colunas"
1234 }
1168 },1235 },
1169 "work-an-issue-end": {1236 "work-an-issue-end": {
1170 title: "Trabalhar um problema de ponta a ponta",1237 title: "Trabalhar um problema de ponta a ponta",
1171 teaches: "Dê o número do problema, não um resumo. Claude lê o ticket completo em si, para que requisitos que você esqueceria de mencionar apareçam e valide a mudança antes de relatar."1238 teaches: "Dê o número do problema, não um resumo. Claude lê o ticket completo por conta própria, para que requisitos que você esqueceria de mencionar apareçam, e valida a mudança antes de relatar.",
1239 prompt: "leia a issue #{issue}, implemente a correção e execute os testes",
1240 slots: {
1241 issue: "312"
1242 }
1172 },1243 },
1173 "find-and-update-copy": {1244 "find-and-update-copy": {
1174 title: "Encontrar e atualizar cópia em toda a base de código",1245 title: "Encontrar e atualizar textos em toda a base de código",
1175 teaches: "Peça por variantes e diga o que pular. Claude encontra fraseados que uma pesquisa literal perderia e deixa fixtures de teste e histórico intocados, para que você revise apenas a cópia que os usuários realmente veem."1246 teaches: "Peça por variantes e diga o que pular. Claude encontra fraseados que uma pesquisa literal perderia e deixa fixtures de teste e histórico intocados, para que você revise apenas os textos que os usuários realmente veem.",
1247 prompt: "encontre todos os lugares onde dizemos \"{copy}\" ou uma variante próxima, mostre-me cada um no contexto, depois atualize todos para \"{new}\". não mexa nos testes nem no changelog",
1248 slots: {
1249 copy: "Cadastre-se grátis",
1250 new: "Comece o teste grátis"
1251 }
1176 },1252 },
1177 "draft-from-past-examples": {1253 "draft-from-past-examples": {
1178 title: "Rascunhar um documento a partir de exemplos passados",1254 title: "Rascunhar um documento a partir de exemplos passados",
1179 teaches: "Aponte para uma pasta de trabalho concluída em vez de descrever seu estilo. Claude aprende a estrutura e a voz do que você já lançou, para que o primeiro rascunho pareça um dos seus.",1255 teaches: "Aponte para uma pasta de trabalho concluída em vez de descrever seu estilo. Claude aprende a estrutura e a voz do que você já lançou, para que o primeiro rascunho pareça um dos seus.",
1180 next: "Salve a voz como uma skill para que cada rascunho comece lá"1256 next: "Salve a voz como uma skill para que cada rascunho comece lá",
1257 prompt: "leia as {examples} em {folder} para aprender a estrutura e a voz, depois redija uma nova para {topic}",
1258 slots: {
1259 examples: "avaliações de impacto de privacidade",
1260 folder: "legal/pia/",
1261 topic: "a nova integração de analytics"
1262 }
1181 },1263 },
1182 "write-tests-run-them": {1264 "write-tests-run-them": {
1183 title: "Escrever testes, executá-los, corrigir falhas",1265 title: "Escrever testes, executá-los, corrigir falhas",
1184 teaches: "Peça para escrever, executar e corrigir juntos para que Claude itere sem parar para instruções.",1266 teaches: "Peça para escrever, executar e corrigir juntos para que Claude itere sem parar para instruções.",
1185 next: "Execute `/init` para que Claude aprenda seu comando de teste automaticamente"1267 next: "Execute `/init` para que Claude aprenda seu comando de teste automaticamente",
1268 prompt: "escreva testes para {path}, execute-os e corrija quaisquer falhas",
1269 slots: {
1270 path: "app/parsers/feed.py"
1271 }
1186 },1272 },
1187 "drive-implementation-from-tests": {1273 "drive-implementation-from-tests": {
1188 title: "Conduzir implementação a partir de testes",1274 title: "Conduzir implementação a partir de testes",
1189 teaches: "Desenvolvimento orientado por testes: os testes definem quando o trabalho está completo e Claude itera na implementação até que passem."1275 teaches: "Desenvolvimento orientado por testes: os testes definem quando o trabalho está completo e Claude itera na implementação até que passem.",
1276 prompt: "escreva testes para {feature} primeiro, depois implemente até que passem",
1277 slots: {
1278 feature: "o fluxo de redefinição de senha"
1279 }
1190 },1280 },
1191 "fill-gaps-from-a": {1281 "fill-gaps-from-a": {
1192 title: "Preencher lacunas a partir de um relatório de cobertura",1282 title: "Preencher lacunas a partir de um relatório de cobertura",
1193 teaches: "Aponte para o relatório de cobertura em vez de adivinhar o que não foi testado. Claude lê os números reais e escreve testes para os arquivos que mais precisam.",1283 teaches: "Aponte para o relatório de cobertura em vez de adivinhar o que não foi testado. Claude lê os números reais e escreve testes para os arquivos que mais precisam.",
1194 next: "Defina isto como um `/goal` para que Claude continue escrevendo testes até que a cobertura atinja o alvo"1284 next: "Defina isto como um `/goal` para que Claude continue escrevendo testes até que a cobertura atinja o alvo",
1285 prompt: "leia {report} e adicione testes para os arquivos com menor cobertura até que cada um esteja acima de {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: "Portar código para outra linguagem",1292 title: "Portar código para outra linguagem",
1198 teaches: "Diga o que preservar, não apenas a linguagem de destino. Nomear a API ou comportamento que deve permanecer igual dá a Claude um contrato para verificar a porta."1293 teaches: "Diga o que preservar, não apenas a linguagem de destino. Nomear a API ou comportamento que deve permanecer igual dá a Claude um contrato para verificar a portabilidade.",
1294 prompt: "porte {source} para {target}, mantendo {keep}",
1295 slots: {
1296 source: "este módulo Python",
1297 target: "Rust",
1298 keep: "a mesma API pública e o mesmo comportamento dos testes"
1299 }
1199 },1300 },
1200 "generate-docs-for-code": {1301 "generate-docs-for-code": {
1201 title: "Gerar documentação para código não documentado",1302 title: "Gerar documentação para código não documentado",
1202 teaches: "Nomeie o escopo e o formato. Claude encontra o que está faltando e corresponde ao estilo de comentário já no arquivo, para que a nova documentação pareça o resto."1303 teaches: "Nomeie o escopo e o formato. Claude encontra o que está faltando e corresponde ao estilo de comentário já no arquivo, para que a nova documentação pareça o resto.",
1304 prompt: "encontre {scope} sem comentários {format} e adicione-os, seguindo o estilo já usado no arquivo",
1305 slots: {
1306 scope: "as funções públicas em src/auth/",
1307 format: "JSDoc"
1308 }
1203 },1309 },
1204 "migrate-a-pattern-across": {1310 "migrate-a-pattern-across": {
1205 title: "Migrar um padrão em toda a base de código",1311 title: "Migrar um padrão em toda a base de código",
1206 teaches: "Descreva o padrão antigo e o novo. Pedir a Claude para identificar cada lugar primeiro significa que os sites de chamada são listados na resposta, para que você possa verificar se nenhum foi perdido. Para uma migração em muitos arquivos, execute [/batch](/docs/pt/commands). Claude divide o trabalho em unidades para você aprovar, depois subagentes em background fazem as mudanças."1312 teaches: "Descreva o padrão antigo e o novo. Pedir a Claude para identificar cada lugar primeiro significa que os locais de chamada são listados na resposta, para que você possa verificar se nenhum foi perdido. Para uma migração em muitos arquivos, execute [/batch](/docs/pt/commands). Claude divide o trabalho em unidades para você aprovar, depois subagentes em background fazem as mudanças.",
1313 prompt: "migre tudo de {from} para {to}: identifique cada lugar que precisa mudar, depois faça as mudanças",
1314 slots: {
1315 from: "a API de logging antiga",
1316 to: "o logger estruturado"
1317 }
1207 },1318 },
1208 "optimize-against-a-measurable": {1319 "optimize-against-a-measurable": {
1209 title: "Otimizar contra um alvo mensurável",1320 title: "Otimizar contra um alvo mensurável",
1210 teaches: "Declarar a métrica e o alvo dá a Claude uma definição clara de conclusão.",1321 teaches: "Declarar a métrica e o alvo dá a Claude uma definição clara de conclusão.",
1211 next: "Defina isto como um `/goal` para que Claude continue medindo e iterando até atingir o número"1322 next: "Defina isto como um `/goal` para que Claude continue medindo e iterando até atingir o número",
1323 prompt: "otimize {target} para reduzir {metric} de {current} para menos de {goal}",
1324 slots: {
1325 target: "a consulta de pesquisa",
1326 metric: "a latência p95",
1327 current: "2s",
1328 goal: "500ms"
1329 }
1212 },1330 },
1213 "fix-a-precise-visual": {1331 "fix-a-precise-visual": {
1214 title: "Corrigir um bug visual preciso",1332 title: "Corrigir um bug visual preciso",
1215 teaches: "Feedback visual preciso obtém uma correção precisa. Declare o elemento exato, medição e viewport.",1333 teaches: "Feedback visual preciso obtém uma correção precisa. Declare o elemento exato, medição e viewport.",
1216 next: "Adicione uma ferramenta de visualização para que Claude faça captura de tela e verifique a correção em si"1334 next: "Adicione uma ferramenta de visualização para que Claude faça captura de tela e verifique a correção por conta própria",
1335 prompt: "o {element} se estende {amount} além da {container} no {viewport}. corrija isso.",
1336 slots: {
1337 element: "botão de login",
1338 amount: "20px",
1339 container: "borda do card",
1340 viewport: "mobile"
1341 }
1217 },1342 },
1218 "review-your-changes-before": {1343 "review-your-changes-before": {
1219 title: "Revisar suas mudanças antes de fazer commit",1344 title: "Revisar suas mudanças antes de fazer commit",
1220 teaches: "Pegue problemas enquanto ainda são baratos de corrigir. Claude lê os arquivos alterados na íntegra, não apenas as linhas de diff, para que detecte problemas que uma auto-revisão rápida perde.",1345 teaches: "Pegue problemas enquanto ainda são baratos de corrigir. Claude lê os arquivos alterados na íntegra, não apenas as linhas de diff, para que detecte problemas que uma auto-revisão rápida perde.",
1221 next: "Execute `/code-review` para a mesma verificação em um comando"1346 next: "Execute `/code-review` para a mesma verificação em um comando",
1347 prompt: "revise minhas mudanças sem commit e sinalize qualquer coisa que pareça arriscada antes de eu fazer commit"
1222 },1348 },
1223 "review-a-pull-request": {1349 "review-a-pull-request": {
1224 title: "Revisar um pull request",1350 title: "Revisar um pull request",
1225 teaches: "Claude revisa com toda a base de código em contexto, não apenas o diff. Ele lê o código alterado e o que ele chama, para que detecte problemas que uma revisão apenas de diff perderia.",1351 teaches: "Claude revisa com toda a base de código em contexto, não apenas o diff. Ele lê o código alterado e o que ele chama, para que detecte problemas que uma revisão apenas de diff perderia.",
1226 next: "Execute `/code-review <pr#>` em um comando, ou ative Code Review para cada PR"1352 next: "Execute `/code-review <pr#>` em um comando, ou ative Code Review para cada PR",
1353 prompt: "revise o PR #{pr} e resuma o que mudou, depois liste quaisquer preocupações",
1354 slots: {
1355 pr: "247"
1356 }
1227 },1357 },
1228 "review-infrastructure-changes-before": {1358 "review-infrastructure-changes-before": {
1229 title: "Revisar mudanças de infraestrutura antes de aplicar",1359 title: "Revisar mudanças de infraestrutura antes de aplicar",
1230 teaches: "A saída do plano é densa e difícil de escanear. Colá-la obtém um resumo em linguagem simples do que realmente vai mudar antes de você aplicar."1360 teaches: "A saída do plano é densa e difícil de escanear. Colá-la obtém um resumo em linguagem simples do que realmente vai mudar antes de você aplicar.",
1361 prompt: "aqui está a saída do meu plano do Terraform. o que isso vai fazer, e algo aqui vai causar problemas?"
1231 },1362 },
1232 "run-a-security-review": {1363 "run-a-security-review": {
1233 title: "Executar uma revisão de segurança com um subagente",1364 title: "Executar uma revisão de segurança com um subagente",
1234 teaches: "Um [subagente](/docs/pt/sub-agents) executa a auditoria em sua própria janela de contexto e relata um resumo, para que uma revisão de segurança longa não preencha sua sessão principal. O subagente de propósito geral integrado lida com isto sem configuração extra.",1365 teaches: "Um [subagente](/docs/pt/sub-agents) executa a auditoria em sua própria janela de contexto e relata um resumo, para que uma revisão de segurança longa não preencha sua sessão principal. O subagente de propósito geral integrado lida com isto sem configuração extra.",
1235 next: "Configure um subagente dedicado de revisão de segurança que todo o seu time possa usar"1366 next: "Configure um subagente dedicado de revisão de segurança que todo o seu time possa usar",
1367 prompt: "use um subagente para revisar {path} em busca de problemas de segurança e relate o que ele encontrar",
1368 slots: {
1369 path: "src/api/"
1370 }
1236 },1371 },
1237 "review-content-before-sending": {1372 "review-content-before-sending": {
1238 title: "Detectar problemas antes da revisão formal",1373 title: "Detectar problemas antes da revisão formal",
1239 teaches: "Obtenha uma primeira passagem antes de um humano gastar tempo com isto. Nomeie as preocupações que você quer verificadas para que a revisão seja focada e depois corrija o que encontra e envie um rascunho mais limpo.",1374 teaches: "Obtenha uma primeira passagem antes de um humano gastar tempo com isto. Nomeie as preocupações que você quer verificadas para que a revisão seja focada e depois corrija o que encontra e envie um rascunho mais limpo.",
1240 next: "Capture sua lista de verificação de revisão como uma skill que todo o seu time possa executar"1375 next: "Capture sua lista de verificação de revisão como uma skill que todo o seu time possa executar",
1376 prompt: "revise {file} em busca de {concerns} e liste qualquer coisa que eu deva corrigir antes de enviar para {reviewer}",
1377 slots: {
1378 file: "launch-post.md",
1379 concerns: "afirmações sem suporte, atribuições ausentes e problemas com as diretrizes da marca",
1380 reviewer: "o jurídico"
1381 }
1241 },1382 },
1242 "course-correct-a-wrong": {1383 "course-correct-a-wrong": {
1243 title: "Corrigir uma abordagem errada",1384 title: "Corrigir uma abordagem errada",
1244 teaches: "Nomeie a restrição que Claude perdeu, não apenas que está errado. Uma razão específica dá a Claude uma restrição concreta a satisfazer na tentativa novamente, em vez de adivinhar novamente.",1385 teaches: "Nomeie a restrição que Claude perdeu, não apenas que está errado. Uma razão específica dá a Claude uma restrição concreta a satisfazer na nova tentativa, em vez de adivinhar novamente.",
1245 next: "Pressione `Esc` duas vezes para abrir o menu de retrocesso e restaurar código e conversa para que a tentativa novamente comece limpa"1386 next: "Pressione `Esc` duas vezes para abrir o menu de retrocesso e restaurar código e conversa para que a nova tentativa comece limpa",
1387 prompt: "isso não está certo: {feedback}. tente uma abordagem diferente",
1388 slots: {
1389 feedback: "a assinatura da função precisa continuar retrocompatível"
1390 }
1246 },1391 },
1247 "narrow-the-scope-of": {1392 "narrow-the-scope-of": {
1248 title: "Estreitar o escopo de uma mudança",1393 title: "Estreitar o escopo de uma mudança",
1249 teaches: "Quando a direção está certa mas a mudança ficou muito ampla, peça a Claude para manter parte dela em vez de retroceder tudo. Um limite declarado mantém uma pequena correção de se tornar uma refatoração."1394 teaches: "Quando a direção está certa mas a mudança ficou muito ampla, peça a Claude para manter parte dela em vez de retroceder tudo. Um limite declarado impede que uma pequena correção se torne uma refatoração.",
1395 prompt: "isso é demais. mantenha apenas as mudanças em {scope} e desfaça suas outras edições",
1396 slots: {
1397 scope: "a lógica de validação em src/forms/"
1398 }
1250 },1399 },
1251 "turn-a-correction-into": {1400 "turn-a-correction-into": {
1252 title: "Transformar uma correção em uma regra",1401 title: "Transformar uma correção em uma regra",
1253 teaches: "Uma correção no chat não é compartilhada com seu time. Uma regra no [CLAUDE.md](/docs/pt/memory) do projeto é compartilhada uma vez que você a faz commit e Claude a lê no início de cada sessão.",1402 teaches: "Uma correção no chat não é compartilhada com seu time. Uma regra no [CLAUDE.md](/docs/pt/memory) do projeto é compartilhada assim que você faz commit dela, e Claude a lê no início de cada sessão.",
1254 next: "Abra `/memory` para revisar o que Claude escreveu"1403 next: "Abra `/memory` para revisar o que Claude escreveu",
1404 prompt: "você continua {mistake}. adicione uma regra ao CLAUDE.md para que isso pare de acontecer",
1405 slots: {
1406 mistake: "usando exports default quando este projeto usa exports nomeados"
1407 }
1255 },1408 },
1256 "resolve-merge-conflicts": {1409 "resolve-merge-conflicts": {
1257 title: "Resolver conflitos de merge",1410 title: "Resolver conflitos de merge",
1258 teaches: "Diga qual estado você quer, não quais marcadores manter. Pedir o raciocínio torna o merge revisável em vez de uma caixa preta."1411 teaches: "Diga qual estado você quer, não quais marcadores manter. Pedir o raciocínio torna o merge revisável em vez de uma caixa preta.",
1412 prompt: "resolva os conflitos de merge neste branch e explique o que você manteve de cada lado"
1259 },1413 },
1260 "commit-with-a-generated": {1414 "commit-with-a-generated": {
1261 title: "Fazer commit com uma mensagem gerada",1415 title: "Fazer commit com uma mensagem gerada",
1262 teaches: "Deixe Claude derivar a mensagem do diff. Ela corresponde ao estilo de commit existente do seu repositório."1416 teaches: "Deixe Claude derivar a mensagem do diff. Ela corresponde ao estilo de commit existente do seu repositório.",
1417 prompt: "faça commit destas mudanças com uma mensagem que resuma o que eu fiz"
1263 },1418 },
1264 "open-a-pull-request": {1419 "open-a-pull-request": {
1265 title: "Abrir um pull request a partir de um ticket",1420 title: "Abrir um pull request a partir de um ticket",
1266 teaches: "Pule a troca de contexto entre rastreador, editor e GitHub. Um prompt lê a especificação, faz a mudança e abre o PR."1421 teaches: "Pule a troca de contexto entre rastreador, editor e GitHub. Um prompt lê a especificação, faz a mudança e abre o PR.",
1422 prompt: "encontre o ticket do {tracker} sobre {topic} e abra um PR que o implemente",
1423 slots: {
1424 tracker: "Linear",
1425 topic: "o timeout de login"
1426 }
1267 },1427 },
1268 "draft-release-notes-from": {1428 "draft-release-notes-from": {
1269 title: "Rascunhar notas de lançamento do histórico git",1429 title: "Rascunhar notas de lançamento do histórico git",
1270 teaches: "Dê dois pontos de referência e a estrutura que você quer. Claude lê o log de commit entre eles e rascunha um changelog que você pode editar.",1430 teaches: "Dê dois pontos de referência e a estrutura que você quer. Claude lê o log de commits entre eles e rascunha um changelog que você pode editar.",
1271 next: "Salve isto como uma skill `/changelog`"1431 next: "Salve isto como uma skill `/changelog`",
1432 prompt: "compare {from} com {to} e redija notas de lançamento agrupadas por recurso, correção 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: "Escrever um workflow de CI",1439 title: "Escrever um workflow de CI",
1275 teaches: "Descreva quando deve ser executado e o que deve fazer; o YAML é gerado para você, correspondido aos comandos de construção e teste do seu projeto."1440 teaches: "Descreva quando deve ser executado e o que deve fazer; o YAML é gerado para você, correspondendo aos comandos de build e teste do seu projeto.",
1441 prompt: "escreva um workflow do GitHub Actions que {steps} a cada push para {branch}",
1442 slots: {
1443 steps: "execute os testes e faça deploy para staging",
1444 branch: "main"
1445 }
1276 },1446 },
1277 "find-and-fix-a": {1447 "find-and-fix-a": {
1278 title: "Encontrar e corrigir um teste falhando",1448 title: "Encontrar e corrigir um teste falhando",
1279 teaches: "Descreva o sintoma; você não precisa saber qual arquivo está quebrado. Claude executa o teste para ver a falha, rastreia-a para a origem e a corrige."1449 teaches: "Descreva o sintoma; você não precisa saber qual arquivo está quebrado. Claude executa o teste para ver a falha, rastreia-a até o código-fonte e a corrige.",
1450 prompt: "o teste {test} está falhando, descubra por que e corrija-o",
1451 slots: {
1452 test: "UserAuth"
1453 }
1280 },1454 },
1281 "investigate-a-reported-error": {1455 "investigate-a-reported-error": {
1282 title: "Investigar um erro relatado",1456 title: "Investigar um erro relatado",
1283 teaches: "Descreva o sintoma e localização; Claude lê o caminho de código relevante e rastreia as causas prováveis. Cole stack traces ou logs se você tiver.",1457 teaches: "Descreva o sintoma e localização; Claude lê o caminho de código relevante e rastreia as causas prováveis. Cole stack traces ou logs se você tiver.",
1284 next: "Coloque um deeplink em seu runbook que abre Claude com este prompt pré-preenchido"1458 next: "Coloque um deeplink em seu runbook que abre Claude com este prompt pré-preenchido",
1459 prompt: "os usuários estão vendo {symptom} em {where}. investigue e me diga o que está acontecendo",
1460 slots: {
1461 symptom: "erros 500",
1462 where: "/api/settings"
1463 }
1285 },1464 },
1286 "fix-a-build-error": {1465 "fix-a-build-error": {
1287 title: "Corrigir um erro de construção na raiz",1466 title: "Corrigir um erro de build na raiz",
1288 teaches: "Pedir causa raiz e verificação previne patches de nível de superfície que suprimem o erro sem corrigi-lo."1467 teaches: "Pedir causa raiz e verificação previne patches superficiais que suprimem o erro sem corrigi-lo.",
1468 prompt: "aqui está um erro de build. corrija a causa raiz e verifique se o build é bem-sucedido"
1289 },1469 },
1290 "investigate-a-production-incident": {1470 "investigate-a-production-incident": {
1291 title: "Investigar um incidente de produção",1471 title: "Investigar um incidente de produção",
1292 teaches: "Liste as fontes de evidência para correlacionar, não os passos a tomar. Claude lê logs, histórico git e config juntos para estreitar a causa.",1472 teaches: "Liste as fontes de evidência para correlacionar, não os passos a tomar. Claude lê logs, histórico git e configuração juntos para estreitar a causa.",
1293 next: "Conecte Sentry ou seu armazenamento de logs via MCP"1473 next: "Conecte Sentry ou seu armazenamento de logs via MCP",
1474 prompt: "{symptom}. verifique os logs, os deploys recentes e as mudanças de configuração, depois me diga a causa mais provável",
1475 slots: {
1476 symptom: "o endpoint de checkout começou a retornar 500s há uma hora"
1477 }
1294 },1478 },
1295 "query-logs-in-plain": {1479 "query-logs-in-plain": {
1296 title: "Consultar logs em inglês simples",1480 title: "Consultar logs em linguagem simples",
1297 teaches: "Faça a pergunta em vez de escrever o SQL. Claude constrói a consulta, a executa contra seus logs conectados e mostra tanto a consulta quanto o resultado para que você possa verificar o que foi executado."1481 teaches: "Faça a pergunta em vez de escrever o SQL. Claude monta a consulta, a executa contra seus logs conectados e mostra tanto a consulta quanto o resultado para que você possa verificar o que foi executado.",
1482 prompt: "mostre-me todos os {events} para {scope} durante {timeframe}. escreva a consulta, execute-a e me diga o que se destaca",
1483 slots: {
1484 events: "logins com falha",
1485 scope: "o serviço de autenticação",
1486 timeframe: "as últimas 24 horas"
1487 }
1298 },1488 },
1299 "diagnose-from-a-console": {1489 "diagnose-from-a-console": {
1300 title: "Diagnosticar a partir de uma captura de tela do console",1490 title: "Diagnosticar a partir de uma captura de tela do console",
1301 teaches: "Consoles em nuvem mostram o problema mas não os comandos para corrigi-lo. Claude lê a captura de tela e traduz o dashboard nos comandos kubectl, gcloud ou aws para executar."1491 teaches: "Consoles em nuvem mostram o problema mas não os comandos para corrigi-lo. Claude lê a captura de tela e traduz o dashboard nos comandos kubectl, gcloud ou aws para executar.",
1492 prompt: "aqui está uma captura de tela {console}. explique passo a passo por que {resource} está falhando e me dê os comandos exatos para corrigir",
1493 slots: {
1494 console: "do dashboard do Kubernetes no GCP",
1495 resource: "este pod"
1496 }
1302 },1497 },
1303 "analyze-a-data-file": {1498 "analyze-a-data-file": {
1304 title: "Analisar um arquivo de dados",1499 title: "Analisar um arquivo de dados",
1305 teaches: "Uma pergunta única não precisa de um script único. Aponte para um arquivo em sua pasta de projeto e Claude o lê diretamente, encontra os padrões e escreve a saída onde você pedir.",1500 teaches: "Uma pergunta única não precisa de um script único. Aponte para um arquivo em sua pasta de projeto e Claude o lê diretamente, encontra os padrões e escreve a saída onde você pedir.",
1306 next: "Conecte a fonte de dados via MCP em vez de exportar arquivos"1501 next: "Conecte a fonte de dados via MCP em vez de exportar arquivos",
1502 prompt: "leia {file}, resuma os principais padrões e escreva os resultados em {output}",
1503 slots: {
1504 file: "@reports/q1-signups.csv",
1505 output: "uma página HTML com gráficos e depois abra-a no meu navegador"
1506 }
1307 },1507 },
1308 "generate-variations-from-performance": {1508 "generate-variations-from-performance": {
1309 title: "Gerar variações a partir de dados de desempenho",1509 title: "Gerar variações a partir de dados de desempenho",
1310 teaches: "Declare a restrição no início para que a geração permaneça dentro do limite. Claude lê as métricas, escolhe o que substituir e produz alternativas que se encaixam.",1510 teaches: "Declare a restrição no início para que a geração permaneça dentro do limite. Claude lê as métricas, escolhe o que substituir e produz alternativas que se encaixam.",
1311 next: "Conecte a plataforma de anúncios via MCP em vez de exportar um arquivo"1511 next: "Conecte a plataforma de anúncios via MCP em vez de exportar um arquivo",
1512 prompt: "leia {file}, encontre os {items} com baixo desempenho e gere {n} novas variações com menos de {limit} caracteres",
1513 slots: {
1514 file: "@ads-performance.csv",
1515 items: "títulos",
1516 n: "20",
1517 limit: "90"
1518 }
1312 },1519 },
1313 "turn-a-recurring-task": {1520 "turn-a-recurring-task": {
1314 title: "Transformar uma tarefa recorrente em uma skill",1521 title: "Transformar uma tarefa recorrente em uma skill",
1315 teaches: "Nomeie os passos uma vez; reutilize-os como um comando. Claude escreve uma [skill](/docs/pt/skills) que qualquer pessoa do seu time possa executar."1522 teaches: "Nomeie os passos uma vez; reutilize-os como um comando. Claude escreve uma [skill](/docs/pt/skills) que qualquer pessoa do seu time possa executar.",
1523 prompt: "crie uma skill /{name} para este projeto que {steps}",
1524 slots: {
1525 name: "ship",
1526 steps: "execute o linter e os testes, depois redija uma mensagem de commit"
1527 }
1316 },1528 },
1317 "add-a-hook-for": {1529 "add-a-hook-for": {
1318 title: "Adicionar um hook para comportamento repetido",1530 title: "Adicionar um hook para comportamento repetido",
1319 teaches: "Hooks tornam um comportamento automático em vez de algo que você tem que se lembrar de pedir. Descreva o gatilho e ação e Claude escreve a configuração do [hook](/docs/pt/hooks)."1531 teaches: "Hooks tornam um comportamento automático em vez de algo que você tem que se lembrar de pedir. Descreva o gatilho e a ação e Claude escreve a configuração do [hook](/docs/pt/hooks).",
1532 prompt: "escreva um hook que {action} após cada {event}",
1533 slots: {
1534 action: "execute o prettier",
1535 event: "edição em um arquivo .ts ou .tsx"
1536 }
1320 },1537 },
1321 "connect-a-tool-with": {1538 "connect-a-tool-with": {
1322 title: "Conectar uma ferramenta com MCP",1539 title: "Conectar uma ferramenta com MCP",
1323 teaches: "Conecte a fonte uma vez em vez de colar dados a cada sessão. Após a configuração do [MCP](/docs/pt/mcp), Claude lê da ferramenta diretamente quando você pergunta sobre ela."1540 teaches: "Conecte a fonte uma vez em vez de colar dados a cada sessão. Após a configuração do [MCP](/docs/pt/mcp), Claude lê da ferramenta diretamente quando você pergunta sobre ela.",
1541 prompt: "configure o servidor MCP do {server} para que você possa ler meus {data} diretamente",
1542 slots: {
1543 server: "Sentry",
1544 data: "relatórios de erros"
1545 }
1324 },1546 },
1325 "capture-what-to-remember": {1547 "capture-what-to-remember": {
1326 title: "Capturar o que lembrar para a próxima vez",1548 title: "Capturar o que lembrar para a próxima vez",
1327 teaches: "Pergunte antes de esquecer. Claude sabe o que teve que descobrir nesta sessão e propõe entradas [CLAUDE.md](/docs/pt/memory) para que a próxima sessão comece com esse contexto."1549 teaches: "Pergunte antes de esquecer. Claude sabe o que teve que descobrir nesta sessão e propõe entradas [CLAUDE.md](/docs/pt/memory) para que a próxima sessão comece com esse contexto.",
1550 prompt: "resuma o que fizemos nesta sessão e sugira o que adicionar ao CLAUDE.md"
1328 }1551 }
1329};1552};
1330 1553