Cap 10: Commands, Skills y Rules

Por: Artiko
claude-certifiedcommandsskillsrulesconfiguración

Commands: workflows reutilizables

Los commands son prompts pre-definidos que se invocan con / en Claude Code. Permiten estandarizar workflows que el equipo ejecuta frecuentemente.

Project-scoped: .claude/commands/

Compartidos via version control. Todo el equipo tiene acceso:

.claude/
└── commands/
    ├── review-pr.md       # /review-pr
    ├── add-test.md        # /add-test
    └── deploy-check.md    # /deploy-check
<!-- .claude/commands/review-pr.md -->
Revisa el PR actual verificando:
1. Adherencia a convenciones del proyecto
2. Cobertura de tests para cambios nuevos
3. Posibles issues de seguridad
4. Performance implications

Genera un resumen con findings categorizados por severidad.

Se invocan como /review-pr en la conversación.

User-scoped: ~/.claude/commands/

Personales, no compartidos. Para workflows individuales:

~/.claude/
└── commands/
    ├── daily-standup.md   # /daily-standup
    └── my-review.md       # /my-review

Cuándo crear un command

  • El equipo ejecuta el mismo workflow repetidamente
  • El prompt requiere instrucciones específicas que se olvidan
  • Quieres estandarizar cómo el equipo usa Claude para una tarea

Skills: capacidades on-demand

Las skills son más poderosas que los commands. Viven en .claude/skills/ con un archivo SKILL.md que define comportamiento, restricciones y metadatos.

Estructura básica

.claude/
└── skills/
    ├── sdd-explore/
    │   └── SKILL.md
    ├── create-api-endpoint/
    │   └── SKILL.md
    └── migrate-database/
        └── SKILL.md

SKILL.md con frontmatter

---
context: fork
allowed-tools: ["Read", "Grep", "Glob"]
argument-hint: "nombre del módulo a explorar"
---

# Explorar módulo

Analiza la estructura del módulo especificado:
1. Identifica archivos principales con Glob
2. Lee los entry points con Read
3. Busca dependencias con Grep
4. Genera un resumen de arquitectura

## Output esperado
- Archivos principales y su propósito
- Dependencias internas y externas
- Patrones de diseño identificados

Frontmatter: context

context: fork

fork: ejecuta la skill en un contexto aislado (fork del conversation). El output verboso de la exploración no contamina la conversación principal. Solo el resultado final se retorna al main thread.

Sin context (default): la skill se ejecuta inline en la conversación actual. Apropiado para skills cortas que no generan mucho output intermedio.

Cuándo usar fork:

  • Skills de exploración que leen muchos archivos
  • Análisis extensos que generan output intermedio largo
  • Cuando quieres que solo el resumen final aparezca en la conversación

Frontmatter: allowed-tools

allowed-tools: ["Read", "Grep", "Glob", "Bash"]

Restringe qué tools puede usar Claude durante la ejecución de la skill. Esto es una medida de seguridad y enfoque:

  • Una skill de solo lectura no necesita Write ni Edit
  • Una skill de análisis no necesita Bash
  • Restringir tools previene side effects no deseados

Si no se especifica, la skill tiene acceso a todos los tools disponibles.

Frontmatter: argument-hint

argument-hint: "ruta del archivo o módulo a analizar"

Cuando un usuario invoca la skill sin argumentos, Claude usa este hint para solicitar los parámetros necesarios. Mejora la UX al guiar al usuario:

> /explore-module
Claude: ¿Cuál es la ruta del archivo o módulo a analizar?
> src/services/auth

Personal skill customization

Los usuarios pueden tener variantes personales de skills del proyecto en ~/.claude/skills/:

# Skill del proyecto
.claude/skills/review-code/SKILL.md
  → Revisa código con estándares del equipo

# Variante personal
~/.claude/skills/review-code/SKILL.md
  → Misma base + "también verifica accesibilidad WCAG"

La versión personal sobreescribe la del proyecto para ese usuario. Útil para developers con responsabilidades adicionales (ej: el lead de accesibilidad agrega checks extra).

Skills vs CLAUDE.md

La distinción es fundamental:

CLAUDE.md: always-loaded

  • Se carga al inicio de cada conversación
  • Para estándares que siempre aplican
  • Naming conventions, architecture decisions, testing requirements
  • Mantener conciso — todo lo que está aquí consume contexto siempre

Skills: on-demand

  • Se cargan solo cuando se invocan
  • Para workflows específicos que no aplican en cada conversación
  • Database migration, PR review, API scaffolding
  • Pueden ser extensas — solo consumen contexto cuando se necesitan

Tabla de decisión

ContenidoDónde
”Siempre usar TypeScript strict”CLAUDE.md
”Formato de commits: conventional”CLAUDE.md
”Workflow para crear nuevo endpoint”Skill
”Proceso de migración de DB”Skill
”Reglas de naming de archivos”CLAUDE.md o .claude/rules/
“Análisis de dependencias de un módulo”Skill

Regla práctica

Si aplica en el 80%+ de las conversaciones → CLAUDE.md. Si aplica solo cuando lo pides → Skill.

Commands vs Skills

AspectoCommandsSkills
Ubicación.claude/commands/.claude/skills/
MetadatosNofrontmatter (context, allowed-tools, argument-hint)
AislamientoNoSí (context: fork)
Restricción de toolsNoSí (allowed-tools)
Complejidad típicaPrompt simpleWorkflow multi-paso

Usa commands para prompts simples reutilizables. Usa skills cuando necesitas aislamiento, restricción de tools, o workflows complejos.

Path-specific rules en .claude/rules/

Las reglas en .claude/rules/ permiten activar convenciones solo cuando se editan archivos que coinciden con un patrón glob — reduciendo contexto irrelevante y tokens consumidos.

Estructura de un archivo de rules

---
paths:
  - "terraform/**/*"
---

# Convenciones de Terraform

- Siempre usa `terraform fmt` antes de commitear
- Los módulos deben tener outputs documentados
- No hardcodear ARNs — usar variables de entorno o data sources

Claude carga estas reglas solo cuando edita archivos que coinciden con terraform/**/*. Si estás trabajando en código TypeScript, estas reglas no consumen contexto.

Patrones glob por tipo de archivo

# Para todos los archivos de test independientemente del directorio
paths:
  - "**/*.test.ts"
  - "**/*.test.tsx"
  - "**/*.spec.ts"

La ventaja sobre subdirectory CLAUDE.md: las reglas de testing aplican a archivos en src/, lib/, packages/*/src/ y cualquier otra ubicación — un solo archivo de rules las cubre todas.

Cuándo usar .claude/rules/ vs subdirectory CLAUDE.md

SituaciónRecomendación
Convenciones que aplican a un directorio específicoSubdirectory CLAUDE.md
Convenciones que aplican a un tipo de archivo en varios directorios.claude/rules/ con glob
Estándares de testing en todo el repo.claude/rules/ con **/*.test.ts
Reglas de API específicas de src/api/src/api/CLAUDE.md

Para el examen: Si la pregunta menciona “convenciones que aplican a archivos de test en múltiples directorios”, la respuesta es .claude/rules/ con glob patterns, NO CLAUDE.md en cada subdirectorio.


← Cap 9: CLAUDE.md Jerarquía · Índice · Cap 11: Plan Mode →