Communitygithub.com

thatdudealso/consistent-naming

Habilidad para nombrar archivos y proyectos de manera coherente, basándose en la estructura del repositorio local.

¿Qué es consistent-naming?

Este skill obliga al agente a no inventar nombres aleatorios para archivos, directorios o proyectos, sino a inspeccionar primero la estructura circundante (hermanos, paquete, raíz del repositorio, etc.) y aplicar las convenciones existentes. Para ello, ejecuta un script de sondeo (`scripts/survey-names.sh`) que recopila ejemplos reales del ámbito elegido, consulta reglas de formato (kebab-case, PascalCase, SCREAMING_SNAKE, etc.) y propone uno o dos nombres alternativos con justificaciones concretas. Es útil para mantener consistencia en proyectos con múltiples repositorios, evitar colisiones (sin sufijos como `2`, `final`, `new`) y asegurar que cada nuevo nombre parezca haber pertenecido siempre al árbol objetivo. Funciona en cualquier entorno donde se ejecute el script (local, CI, agentes como Claude Code) y requiere los archivos de referencia incluidos en el skill (`references/scope.md`, `references/rules.md`, `references/kinds.md`, `references/defaults.md`).

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add thatdudealso/consistent-naming

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Nombres coherentes

Detén los nombres aleatorios. Cada nombre nuevo debe parecer que ya pertenecía al árbol objetivo, incluidos los archivos.

Regla estricta

Antes de proponer o escribir cualquier nombre nuevo:

  1. Elige el ámbito de nomenclatura (references/scope.md): hermanos → paquete → raíz del repositorio → proyectos hermanos en disco → valores por defecto de la casa.
  2. Ejecuta scripts/survey-names.sh en ese ámbito (con --siblings para proyectos nuevos).
  3. Lee references/rules.md según el tipo de nombre.
  4. Propón un nombre principal y como máximo dos alternativas, cada una justificada con ejemplos concretos del sondeo.
  5. Si los patrones entran en conflicto, prefiere el vecindario local y una frase que explique por qué.

No generes nombres bonitos, ocurrentes o únicos que ignoren a los vecinos. No reutilices el estilo del repositorio A dentro del repositorio B sin haber sondeado B.

Flujo de trabajo

  1. Clasifica el tipo de nombre (references/kinds.md): proyecto, paquete, directorio, archivo, archivo de sistema/configuración, componente, test, entorno, rama, skill, cli, api/ruta.

  2. Sondea la ruta propietaria (no una raíz aleatoria del espacio de trabajo):

    scripts/survey-names.sh [ruta]
    # para proyecto nuevo / raíz de producto también:
    scripts/survey-names.sh --siblings [padre-de-proyectos]
    
  3. Coincide mayúsculas/minúsculas y separadores para ese tipo en esa carpeta (directorios kebab, componentes PascalCase, entorno SCREAMING_SNAKE, nombres fijos de herramientas).

  4. Coincide vocabulario ya presente en ese árbol. Reutiliza raíces; evita bifurcaciones de sinónimos (auth/ junto a authentication/).

  5. Comprueba colisiones contra el sondeo, repositorios hermanos y nombres en PATH/paquetes. Sin sufijos 2, final, new, copia.

  6. Salida:

    Principal: <nombre>
    Ámbito: <ruta sondeada>
    Patrón: <regla + 1-2 ejemplos reales>
    Rechazados: <alternativas y por qué>
    

Archivos y archivos de sistema

  • Archivos fuente ordinarios: debe coincidir exactamente con el estilo del nombre base de los hermanos y la extensión.
  • Archivos de sistema/configuración/herramientas: prefiere nombres fijos idiomáticos (.env.example, docker-compose.yml, AGENTS.md, flake.nix, nombres kebab para flujos de trabajo). Consulta references/scope.md.

Valores por defecto cuando está vacío

Si el sondeo encuentra casi nada, usa references/defaults.md y mantén la coherencia desde el primer nombre en adelante.

Antipatrones

  • Nombres en clave aleatorios de animales/comida a menos que ese tema ya exista en el ámbito.
  • Espacios en rutas nuevas; carpetas con Título de Caso junto a hermanos kebab.
  • Mezclar archivos camelCase y kebab-case en la misma carpeta.
  • Aplicar el estilo de casa de este espacio de trabajo a un repositorio no relacionado sin sondearlo.
  • "Mejorar" nombres de archivos de sistema obligatorios (package.json → pkg.json).
  • utils2.ts, helpers-new.ts, tmp-final.tsx.

Recursos incluidos

RutaCuándo
scripts/survey-names.shSiempre antes de nombrar
references/scope.mdNombres de archivos, sistema/configuración, multi-repositorio
references/rules.mdMayúsculas/minúsculas y separadores por tipo
references/kinds.mdClasificar la petición
references/defaults.mdSolo en campo nuevo

Skills relacionados