Communitygithub.com

thatdudealso/consistent-naming

Skill para agente: nomear arquivos/projetos com base na estrutura local do repositório.

O que é consistent-naming?

Este skill garante que todos os nomes de arquivos, diretórios, projetos e outros artefatos sejam consistentes com o estilo já estabelecido no repositório alvo. Ao invés de propor nomes aleatórios ou sugestões fora de contexto, o agente primeiro executa um levantamento do escopo de nomes (irmãos, pacote, raiz git, projetos vizinhos ou padrões da casa), consulta as regras específicas para cada tipo de nome e só então propõe um nome primário e no máximo duas alternativas, sempre justificadas com exemplos concretos do levantamento. O skill inclui scripts e referências para classificar o tipo de nome (projeto, pacote, diretório, arquivo de sistema, componente, entre outros), verificar colisões e aplicar convenções de caixa e separadores (kebab, PascalCase, SCREAMING_SNAKE). Ele é útil em ambientes multi-repo ou times grandes onde a consistência de nomenclatura é fundamental para a legibilidade e manutenção do código, evitando nomes duplicados, estilos misturados ou nomes 'engraçados' sem contexto. O funcionamento é baseado na execução de um script Bash que escaneia o escopo escolhido, combinado com arquivos de referência em Markdown que definem regras, tipos e padrões. O skill é compatível com qualquer terminal Unix e editores que suportem a execução de scripts de shell e seja usado como skill para agentes como Claude Code, Cursor ou Codex.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add thatdudealso/consistent-naming

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Nomenclatura Consistente

Pare com nomes aleatórios. Cada novo nome deve parecer que já pertencia à árvore alvo — arquivos inclusos.

Regra rígida

Antes de propor ou escrever qualquer novo nome:

  1. Escolha o escopo de nomenclatura (references/scope.md): irmãos → pacote → raiz git → projetos irmãos no disco → padrões da casa.
  2. Execute scripts/survey-names.sh nesse escopo (e --siblings para novos projetos).
  3. Leia references/rules.md para o tipo de nome.
  4. Proponha um nome primário mais no máximo duas alternativas, cada uma justificada por exemplos concretos do levantamento.
  5. Se os padrões conflitarem, prefira a vizinhança local, depois uma frase explicando o porquê.

Não envie nomes bobos, engraçadinhos ou únicos que ignorem os vizinhos. Não reutilize o estilo do repositório A dentro do repositório B sem levantar o B.

Fluxo de trabalho

  1. Classifique o tipo de nome (references/kinds.md): projeto, pacote, diretório, arquivo, arquivo de sistema/configuração, componente, teste, env, branch, skill, cli, api/rota.

  2. Levante o caminho proprietário (não uma raiz de workspace aleatória):

    scripts/survey-names.sh [caminho]
    # para novo projeto / produto também:
    scripts/survey-names.sh --siblings [pai-dos-projetos]
    
  3. Combine caixa e separadores para aquele tipo naquela pasta (diretórios kebab, componentes PascalCase, env SCREAMING_SNAKE, nomes de ferramentas fixos).

  4. Combine vocabulário já existente naquela árvore. Reutilize radicais; evite bifurcações de sinônimos (auth/ ao lado de authentication/).

  5. Verifique colisões contra o levantamento, repositórios irmãos e nomes de pacotes/PATH. Sem sufixos 2, final, novo, copia.

  6. Saída:

    Primário: <nome>
    Escopo: <caminho levantado>
    Padrão: <regra + 1-2 exemplos reais>
    Rejeitado: <alternativas e porquê>
    

Arquivos e arquivos de sistema

  • Arquivos fonte comuns: combine o estilo do nome base dos irmãos + extensão exatamente.
  • Arquivos de sistema/configuração/ferramentas: prefira nomes fixos idiomáticos (.env.example, docker-compose.yml, AGENTS.md, flake.nix, nomes de workflow kebab). Veja references/scope.md.

Padrões quando vazio

Se o levantamento encontrar quase nada, use references/defaults.md e mantenha-se consistente a partir do primeiro nome.

Anti-padrões

  • Codinomes aleatórios de animais/comida a menos que esse tema já exista no escopo
  • Espaços em novos caminhos; pastas em Title Case ao lado de irmãos kebab
  • Misturar camelCase e kebab-case na mesma pasta
  • Aplicar o estilo da casa deste workspace a um repositório não relacionado sem levantá-lo
  • "Melhorar" nomes de arquivos de sistema obrigatórios (package.json → pkg.json)
  • utils2.ts, helpers-novo.ts, tmp-final.tsx

Recursos agrupados

CaminhoQuando
scripts/survey-names.shSempre antes de nomear
references/scope.mdMulti-repo, arquivos, nomes de sistema/config
references/rules.mdCaixa / separador por tipo
references/kinds.mdClassificar a solicitação
references/defaults.mdSomente em campo verde

Habilidades Relacionadas