name: copy-check description: Verifica o texto da interface do usuário em vários idiomas, comparando a paridade de chaves entre catálogos de mensagens next-intl e objetos COPY sv/en no código, encontrando incompatibilidades de placeholders e arrays e palavras de outro idioma vazando (o bug "och" em inglês), além de revisar manualmente afirmações em relação a termos, preços e frases proibidas do projeto. Use após editar cópia ou traduções, antes de enviar uma página com texto novo, ou quando for solicitado a revisar ou verificar traduções. argument-hint: [dir] [--locales sv,en] allowed-tools: Bash(node *) Read Grep Glob Edit
O que copy-check (verificação de cópia) faz?
1. Passo mecânico
Args: $ARGUMENTS
node ${CLAUDE_SKILL_DIR}/scripts/i18n-parity.mjs <dir, padrão: raiz do app do projeto atual> --locales sv,en
O script encontra catálogos **/messages|locales|i18n/<locale>.json e objetos literais irmãos sv: {…} / en: {…} em TS/JS. Ele relata:
- ERRO: chaves ausentes, incompatibilidades de comprimento de array, incompatibilidades de placeholders (
{name},${x},{{x}}). Corrija todos esses. - aviso: palavras de função suecas (och, att, för, med, inte, är, …) em strings em inglês e vice-versa, e strings idênticas longas (não traduzidas?). Julgue cada uma; nomes de produtos e termos suecos entre aspas são aceitáveis.
- não analisado: blocos que o mini-parser não conseguiu ler. Verifique esses arquivos manualmente.
Strings construídas fora desses padrões (literais JSX, t() com padrões inline) não são cobertas. Use grep nos arquivos alterados para encontrar texto codificado no idioma errado.
2. Passo de julgamento (primeiro os arquivos alterados, depois as páginas em que aparecem)
- Frases proibidas ou obsoletas: leia o CLAUDE.md do repositório e as entradas de memória do projeto. Projetos geralmente mantêm uma lista de slogans aposentados, linhas de abertura obrigatórias ou coisas que nunca devem ser declaradas publicamente.
- Alegações vs realidade: preços, durações de teste, limites e "grátis" em relação à configuração real de preços, produtos Stripe e página de termos. Alegações de cobertura não devem citar um limite de exibição como cobertura. "Mais rápido", "todo" e "todos" precisam de uma fonte.
- Redação legal/consentimento: consentimento de marketing nunca é agrupado nos termos, e os termos legais suecos estão corretos (ångerrätt, personuppgifter).
- Qualidade do local (exemplo sueco): ordem natural das palavras, sem särskrivningar ("hyres lägenhet"), en/ett correto, vírgula decimal e
krapós o número (1 299 kr), datas como19 okt/2026-10-19. - Qualidade do inglês: uso de letras minúsculas em frases (sentence case), sem hábitos suecos de pontuação, e moeda formatada para o local.
- Consistência: o mesmo termo para a mesma coisa em todas as páginas (escolha o existente).
Critérios de saída
- i18n-parity sai com código 0, ou cada aviso restante foi julgado.
- Nenhuma frase proibida e toda alegação factual corresponde à configuração, termos ou uma fonte.
- Correções feitas apenas na cópia, sem redesenho sendo introduzido.
- Um breve resumo para o usuário.