Lesson completed!
-

Slash Commands Custom: /commit, /review, /test + Templates

Slash Commands Personalizados

Claude Code viene con comandos built-in como /help y /clear. Pero el poder real esta en crear tus propios comandos.

Built-in vs Custom

Comandos Built-in

Los que ya vienen con Claude Code:

/help       # Ver ayuda
/clear      # Limpiar contexto
/init       # Crear CLAUDE.md
/context    # Ver uso de tokens
/cost       # Ver costos
/compact    # Resumir historial

Comandos Custom

Los que creas vos para tu workflow:

/commit     # Commit semantico automatico
/review     # Code review de los cambios
/test       # Correr tests y arreglar failures
/deploy     # Deploy a produccion
/docs       # Actualizar documentacion

Crear Tu Primer Comando Custom

Los comandos custom viven en .claude/commands/ en tu proyecto.

Paso 1: Crear el Directorio

mkdir -p .claude/commands

Paso 2: Crear el Archivo del Comando

Cada comando es un archivo Markdown:

touch .claude/commands/commit.md

Paso 3: Escribir el Comando

# /commit
 
Analiza los cambios en git y crea un commit con mensaje semantico.
 
## Instrucciones
 
1. Ejecuta `git status` para ver los cambios
2. Ejecuta `git diff --staged` si hay cambios staged
3. Analiza el tipo de cambio (feat, fix, docs, refactor, etc.)
4. Genera un mensaje de commit siguiendo conventional commits
5. Ejecuta el commit
 
## Formato del Mensaje
 
```
type(scope): description
 
[optional body]
```
 
Tipos validos: feat, fix, docs, style, refactor, test, chore
 
## Ejemplo
 
Si agregue una funcion de login:
```
feat(auth): add login functionality
 
- Add login form component
- Implement authentication logic
- Add session management
```

Paso 4: Usar el Comando

/commit

Claude lee el archivo, sigue las instrucciones, y ejecuta todo automaticamente.

El Poder de $ARGUMENTS

Podes pasar argumentos a tus comandos usando $ARGUMENTS:

# /review
 
Revisa el codigo en $ARGUMENTS buscando:
 
1. Bugs potenciales
2. Mejoras de performance
3. Claridad del codigo
4. Falta de tests
 
Genera un reporte con findings y sugerencias.

Uso:

/review src/components/LoginForm.tsx

Claude recibe src/components/LoginForm.tsx como $ARGUMENTS.

Mis Comandos Mas Usados

/commit - Commits Semanticos

# /commit
 
Crea un commit semantico de los cambios actuales.
 
1. Ejecuta `git status` y `git diff`
2. Determina el tipo: feat|fix|docs|refactor|test|chore
3. Escribe mensaje claro y conciso
4. Ejecuta `git add .` y `git commit`
 
Si hay muchos cambios, sugiere dividir en commits mas pequenos.

/review - Code Review Rapido

# /review
 
Revisa $ARGUMENTS como un senior developer.
 
Busca:
- Bugs y edge cases no manejados
- Problemas de performance
- Codigo repetido
- Falta de error handling
- Oportunidades de refactor
 
Formato: Lista de issues ordenados por severidad (HIGH/MEDIUM/LOW).

/test - Testing Automatico

# /test
 
Corre los tests y arregla failures automaticamente.
 
1. Ejecuta `npm run test`
2. Si hay failures, analiza el error
3. Determina si el bug esta en el codigo o en el test
4. Arregla el problema
5. Vuelve a correr los tests
6. Repite hasta que pasen todos

/pr - Crear Pull Request

# /pr
 
Crea un pull request para la branch actual.
 
1. Asegurate de estar en una feature branch (no main)
2. Ejecuta `git log main..HEAD` para ver los commits
3. Genera un titulo descriptivo
4. Genera una descripcion con:
   - Resumen de cambios
   - Tipo de cambio (feature/bugfix/refactor)
   - Testing realizado
5. Ejecuta `gh pr create`

/fix - Arreglar Error

# /fix
 
Analiza el error en $ARGUMENTS y arreglalo.
 
1. Lee el mensaje de error completo
2. Busca el archivo y linea donde ocurre
3. Analiza la causa root
4. Implementa el fix
5. Verifica que el error no vuelve
 
Si el error no es claro, agrega logs temporales para debugging.

Organizacion de Comandos

Por Proyecto

Guarda comandos especificos del proyecto en:

mi-proyecto/
└── .claude/
    └── commands/
        ├── commit.md
        ├── review.md
        ├── test.md
        └── deploy.md

Globales (Todos los Proyectos)

Guarda comandos que usas en todos lados en:

~/.claude/
└── commands/
    ├── commit.md      # Mismo comando para todos los proyectos
    ├── explain.md
    └── refactor.md

Tips para Comandos Efectivos

1. Se Especifico

Malo:

# /review
Revisa el codigo.

Bueno:

# /review
Revisa el codigo buscando:
1. Null pointer exceptions
2. Memory leaks
3. Race conditions
4. Falta de input validation

2. Define el Output

# /analyze
 
Analiza $ARGUMENTS y genera un reporte con:
 
## Complejidad
- Ciclomatic complexity de cada funcion
 
## Dependencias
- Imports externos
- Imports internos
 
## Riesgos
- Partes del codigo que pueden romper
 
Formato: Markdown con secciones claras.

3. Incluye Ejemplos

# /rename
 
Renombra $ARGUMENTS siguiendo las convenciones del proyecto.
 
## Convenciones
- Componentes: PascalCase (LoginForm.tsx)
- Hooks: camelCase con use prefix (useAuth.ts)
- Utils: camelCase (formatDate.ts)
 
## Ejemplo
`/rename user-profile` → UserProfile.tsx

Errores Que Me Costaron Horas

Error 1: Comandos Muy Genericos

El error: Cree un comando /do-everything que hacia demasiadas cosas. Claude se confundia sobre que hacer primero.

El costo: 30 minutos de ida y vuelta clarificando que queria.

La leccion: Un comando = una tarea especifica. Mejor tener 10 comandos simples que 1 complejo.

Error 2: No Definir el Output

El error: Mi comando /analyze no especificaba el formato de salida. Cada vez que lo usaba, Claude generaba un formato diferente.

El costo: Tiempo perdido reformateando outputs.

La leccion: Siempre especifica el formato exacto que queres.

Para Equipos: Libreria Compartida de Comandos

Si trabajas en equipo, los comandos personalizados son una forma poderosa de estandarizar workflows.

Estructura de Comandos de Equipo

organization/
├── .claude/
│   └── commands/           # Comandos de la org (todos los proyectos)
│       ├── commit.md       # Standard de commits
│       ├── review.md       # Checklist de code review
│       └── deploy.md       # Proceso de deploy
│
└── proyecto/
    └── .claude/
        └── commands/       # Comandos especificos del proyecto
            ├── test.md     # Testing de este proyecto
            └── migrate.md  # Migraciones de DB

Governance de Comandos

TipoQuien ApruebaDonde Vive
Org-wideTech Lead/CTORepo compartido
Por proyectoTeam Lead.claude/commands/
PersonalIndividual~/.claude/commands/

Template de Comando Seguro para Equipos

# /deploy
 
## ⚠️ Advertencias
- Solo usar en branches aprobadas
- Verificar que CI esta verde
- No usar en horario pico
 
## Prerequisitos
- [ ] CI pipeline pasando
- [ ] PR aprobado
- [ ] Staging testeado
 
## Instrucciones
1. Verificar branch actual (debe ser main o release/*)
2. Correr `npm run test` una ultima vez
3. Ejecutar `npm run deploy:staging`
4. Esperar health checks
5. Si todo OK, `npm run deploy:production`
 
## Rollback
Si algo falla: `npm run rollback:production`

Versionando Comandos

Trata los comandos como codigo:

# Commitea cambios a comandos con mensajes claros
git commit -m "feat(commands): add deploy command with rollback support"
 
# Tagea versiones importantes
git tag commands-v1.2.0

Seguridad en Comandos

Comandos Peligrosos: Agrega Warnings

# /reset-db
 
## ⚠️ DANGER: Este comando borra datos
 
Este comando borra TODA la base de datos y la recrea.
Solo usar en desarrollo.
 
## Confirmacion Requerida
Antes de ejecutar, confirma escribiendo: "Entiendo que esto borra todo"
 
## Instrucciones
[...]

No Incluyas Secrets en Comandos

MALO:

# /deploy
Ejecuta: `API_KEY=sk-xxxx npm run deploy`

BUENO:

# /deploy
Ejecuta: `npm run deploy` (usa API_KEY de .env)

Comandos Solo-Lectura por Default

Para comandos de analisis, hacelos read-only explicitos:

# /analyze
 
## Nota: Este comando es READ-ONLY
No modifica ningun archivo. Solo analiza y reporta.
 
[...]

Desafio: Prueba Esto

Antes de pasar a la siguiente leccion:

  • Crea el directorio .claude/commands/ en tu proyecto
  • Crea un comando /commit basico
  • Ejecuta /commit y verifica que funciona
  • Crea un comando /review con $ARGUMENTS
  • (Equipos) Crea un comando compartido con warnings de seguridad

Tiempo estimado: 10 minutos

Siguiente Paso

Los comandos son invocados manualmente. Las Skills se activan automaticamente segun el contexto.