5.9 KiB
version, updated, tags
| version | updated | tags | ||||
|---|---|---|---|---|---|---|
| 2.0.0 | 2026-03-11 |
|
Command: create-command
Crea un nuevo comando en .claude/commands/ siguiendo la estructura estándar del proyecto. Usa el template en .claude/templates/command.md y incluye flujo completo de git.
Flujo completo:
- Solicita inputs del comando
- Crea el archivo
.mddel comando - Muestra el contenido al usuario
- Pregunta si está bien
- Si el usuario confirma → ejecuta
/git:pushautomáticamente
Inputs
Se necesitan los datos del comando. Si no se proporcionan, preguntar.
nombre: nombre del comando sin extensión (ej:deploy,test-all)descripcion: breve descripción de qué hace el comando (1 frase)inputs: lista de parámetros que recibe el comando (opcional)flujo: pasos principales que ejecuta el comando
Flujo obligatorio
1. Validar nombre del comando
- Solo minúsculas y guiones (no underscores ni espacios)
- No usar nombres reservados del sistema (help, clear, exit)
- Verificar que no exista ya en
.claude/commands/
ls -1 .claude/commands/ | grep -E "^${nombre}\.md$"
Si existe, STOP e informar al usuario.
2. Determinar tipo de comando
Analizar la descripción y flujo para clasificar:
- Comando de git (git-*): manipula ramas, commits, merges
- Comando de issue (create-issue, fix-issue, etc.): crea/modifica issues
- Comando de proyecto (build, deploy, test): ejecuta operaciones del proyecto
- Comando genérico: cualquier otro tipo
3. Cargar template base
Leer el template desde .claude/templates/command.md:
cat .claude/templates/command.md
4. Generar estructura del comando
Reemplazar los placeholders del template con los valores proporcionados:
# Command: <nombre>
<Descripción breve en 1-2 líneas. Indicar qué hace el comando.>
**Flujo completo:** [si aplica]
<Lista numerada de pasos de alto nivel>
## Inputs
<Describir parámetros que recibe el comando>
- `param1`: descripción del parámetro
- `param2` (opcional): descripción del parámetro opcional
## Flujo obligatorio
### 1. <Paso principal 1>
<Descripción detallada del paso>
```bash
# Comandos ejemplo si aplica
comando1
comando2
<Notas adicionales, casos especiales, validaciones>
2. <Paso principal 2>
...
N. Confirmar al usuario [si es comando interactivo]
Mostrar resumen de lo realizado:
<Mensaje de confirmación>
Convenciones [si aplica]
- Regla 1
- Regla 2
Reglas críticas [si aplica]
- Regla crítica 1
- Regla crítica 2
### 4. Rellenar secciones específicas por tipo
#### Para comandos de git:
- Incluir verificaciones de branch y estado
- Documentar convenciones de nombres de rama
- Explicar flujo de merge y push
#### Para comandos de issue:
- Referencia a `dev/issues/` y estructura
- Manejo de numeración consecutiva
- Actualización de `dev/issues/README.md`
#### Para comandos de proyecto:
- Documentar dependencias (Go, herramientas, etc.)
- Flags y opciones de ejecución
- Manejo de errores
### 5. Agregar ejemplos concretos
Incluir al menos 1 ejemplo de uso típico:
```markdown
## Ejemplo
**Input:**
```bash
/project:create-command build-all
Output:
Comando build-all creado en .claude/commands/build-all.md
Listo para usar: /build-all
### 6. Validar completitud
Verificar que el comando tiene:
- [ ] Título con formato `# Command: <nombre>`
- [ ] Descripción breve al inicio
- [ ] Sección de inputs (aunque esté vacía si no tiene)
- [ ] Flujo obligatorio con pasos numerados
- [ ] Ejemplos de bash si aplica
- [ ] Sección de convenciones si tiene reglas especiales
- [ ] Reglas críticas si hay validaciones obligatorias
### 7. Crear el archivo
```bash
cat > .claude/commands/<nombre>.md << 'EOF'
<contenido-generado>
EOF
8. Mostrar el comando creado y confirmar
Mostrar al usuario el contenido completo del comando:
cat .claude/commands/<nombre>.md
Pausar y preguntar:
Comando creado: <nombre>
¿Te parece bien el comando?
- Si es correcto: se hará commit y push automáticamente
- Si necesitas ajustes: puedes editarlo manualmente antes
Esperar respuesta del usuario:
- Si responde SI / afirmativo → continuar al paso 9
- Si responde NO / necesita cambios → STOP y decir: "Edita el archivo y cuando estés listo ejecuta
/git:push"
9. Ejecutar git-push automáticamente
Una vez confirmado por el usuario, ejecutar el comando /git:push para:
- Crear rama
quick/project:create-command-<nombre>automáticamente - Commitear el archivo
.claude/commands/<nombre>.md - Mergear a master con
--no-ff - Push a remoto
- Limpiar rama local
El comando /git:push maneja todo el flujo de git automáticamente.
10. Verificar disponibilidad
Informar al usuario:
✓ Comando /<nombre> creado e integrado a master
Para usar:
/<nombre> [argumentos]
Para ver ayuda:
/<nombre> --help
Convenciones
- Nombres descriptivos: usar verbos de acción (create, fix, deploy, test)
- Guiones para separar:
git-branch,fix-issue, nogit_branch - Sin prefijo slash: el archivo se llama
comando.md, no/comando.md - Extensión obligatoria: siempre
.md - Estructura consistente: seguir el template para mantener uniformidad
Reglas críticas
- Validar nombre antes de crear: evitar sobrescribir comandos existentes
- Documentar exhaustivamente: cada paso debe ser claro y reproducible
- Incluir ejemplos: facilitar comprensión del uso
- Confirmación obligatoria: siempre mostrar el comando completo al usuario y esperar su aprobación antes de hacer commit/push
- Flujo automático: una vez aprobado por el usuario, ejecutar
/git:pushpara integrar los cambios automáticamente - No crear comandos redundantes: verificar si funcionalidad ya existe en otro comando
- Respetar convenciones del proyecto: seguir patrones de trunk-based development, pure core / impure shell, etc.