Files
repo_Claude/.claude/commands/README.md
T

378 lines
8.9 KiB
Markdown

# Comandos Claude disponibles
Índice de comandos personalizados. Todos los comandos siguen trunk-based development y el patrón pure core / impure shell.
## Estructura de Comandos
Los comandos están organizados en subdirectorios temáticos:
- **`git/`** - Comandos de gestión de ramas y merge
- **`issues/`** - Comandos de gestión de issues del proyecto issues
- **`project/`** - Comandos de proyecto (crear comandos, etc.)
- **`workspace/`** - Comandos de workspace y worktrees
## Sistema de Inclusión
Los comandos pueden reutilizar fragmentos comunes usando el directorio `.claude/includes/`:
**Fragmentos disponibles:**
- `git-verify-clean` - Verificar working tree limpio
- `git-update-master` - Actualizar master desde remoto
- `git-merge-to-master` - Merge a master con --no-ff
- `ask-user-confirm` - Pedir confirmación al usuario
- `issue-numbering` - Sistema de numeración de issues
- `run-tests` - Ejecutar tests del proyecto
**Uso en comandos:**
```markdown
{{include: git-verify-clean}}
```
Esto expande automáticamente el contenido de `.claude/includes/git-verify-clean.md` cuando Claude lee el comando.
## Comandos de Git
### `/git:branch <tipo> <slug>`
Crea una rama de trabajo. Nunca trabajar directamente en master.
**Tipos:**
- `issue <NNNN> <slug>` - Para implementar un issue existente
- `quick <slug>` - Para cambios pequeños sin issue asociado
**Ejemplo:**
```bash
/git:branch issue 0013 hot-reload
/git:branch quick fix-typo-readme
```
### `/git:push`
Integra cambios a master y publica. Soporta ramas `issue/*` y `quick/*`.
**Flujo:**
1. Verifica rama y estado
2. Crea commits atómicos por bloque lógico
3. Ejecuta tests
4. Merge --no-ff a master
5. Push y limpieza
**Ejemplo:**
```bash
/git:push
```
## Comandos de Issues
### `/issues:create-issue`
Crea un issue nuevo en `dev/issues/` con confirmación del usuario.
**Características:**
- Desglose automático en sub-issues si es necesario
- Feature flags para issues multi-parte
- Actualiza índice automáticamente
- Pide confirmación antes de commit
**Ejemplo:**
```bash
/issues:create-issue
```
### `/issues:auto-create`
Crea un issue nuevo e integra automáticamente a master SIN pedir confirmación.
**Diferencia con `/issues:create-issue`:** No pausa para confirmación, ejecuta todo automáticamente.
**Ejemplo:**
```bash
/issues:auto-create
```
### `/issues:fix-issue <NNNN>`
Implementa un issue completo de punta a punta con confirmación.
**Flujo:**
1. Crea rama issue/NNNN-slug
2. Implementa todas las tareas
3. Ejecuta tests
4. Cierra el issue (mueve a completed/)
5. Pide confirmación
6. Integra a master
**Ejemplo:**
```bash
/issues:fix-issue 0013
/issues:fix-issue 0013-hot-reload
```
### `/issues:auto-fix <NNNN>`
Implementa un issue completo automáticamente SIN pedir confirmación.
**Ejemplo:**
```bash
/issues:auto-fix 0013
```
### `/issues:parallel`
Analiza issues pendientes y genera plan de ejecución paralela en `PARALLEL_EXECUTION_ORDER.md`.
**Flujo:**
1. Lee todas las issues en `dev/issues/`
2. Detecta conflictos por archivos compartidos
3. Detecta dependencias explícitas
4. Agrupa issues independientes
5. Genera plan con grupos paralelizables
**Ejemplo:**
```bash
/issues:parallel
/issues:parallel --dry-run # Vista previa sin crear archivo
```
### `/issues:execute-parallel`
Ejecuta automáticamente issues del plan de ejecución paralela.
**Flujo:**
1. Lee `PARALLEL_EXECUTION_ORDER.md`
2. Crea worktrees para cada issue
3. Ejecuta `/issues:auto-fix` en paralelo
4. Merge y cleanup automático
**Ejemplo:**
```bash
/issues:execute-parallel 1 # Ejecutar Grupo 1
/issues:execute-parallel --all-groups # Ejecutar TODOS los grupos
/issues:execute-parallel 2 --dry-run # Vista previa del Grupo 2
```
### `/issues:sort`
Ordena issues en `dev/issues/README.md` según criterios específicos.
**Ejemplo:**
```bash
/issues:sort
```
## Comandos de Workspace
### `/workspace:create-repo`
Crea un nuevo subrepo (child repository) en `workspaces/` con estructura core/shell/app.
**Flujo:**
1. Solicita nombre, descripción, tipo y privacidad
2. Muestra resumen y pide confirmación
3. Crea directorio local con estructura Go estándar
4. Crea repositorio en Gitea
5. Push inicial y registro en SQLite
**Prerequisitos:** `GITEA_URL` y `GITEA_TOKEN` configurados, feature flag `workspace_commands` habilitado.
**Ejemplo:**
```bash
/workspace:create-repo
```
### `/workspace:sync-repos`
Sincroniza workspaces locales con repositorios en Gitea.
**Flujo:**
1. Obtiene workspaces locales desde SQLite
2. Consulta repos en Gitea (organización o usuario)
3. Genera plan: repos a clonar, actualizar, y huérfanos
4. Muestra plan y pide confirmación
5. Clona repos faltantes y actualiza metadata
**Prerequisitos:** `GITEA_URL` y `GITEA_TOKEN` configurados, feature flag `workspace_commands` habilitado.
**Ejemplo:**
```bash
/workspace:sync-repos # Sincronización con confirmación
/workspace:sync-repos --dry-run # Solo análisis, sin cambios
```
### `/workspace:list-repos`
Lista todos los workspaces registrados en la BD local con soporte de filtro y ordenamiento.
**Flujo:**
1. Obtiene workspaces de SQLite
2. Aplica filtro si se especifica `--filter`
3. Ordena según `--sort` (name o date)
4. Muestra tabla ASCII con URLs de Gitea
**Prerequisitos:** Feature flag `workspace_commands` habilitado.
**Ejemplo:**
```bash
/workspace:list-repos
/workspace:list-repos --filter pipeline
/workspace:list-repos --sort name
```
### `/workspace:cleanup-worktrees`
Limpia worktrees obsoletos de git.
**Flujo:**
1. Lista todos los worktrees activos
2. Identifica worktrees sin rama asociada
3. Pide confirmación
4. Elimina worktrees y ramas
**Ejemplo:**
```bash
/workspace:cleanup-worktrees
/workspace:cleanup-worktrees --all # Limpiar todos sin confirmación
```
## Otros Comandos
### `/btw`
Comando de contexto rápido ("by the way"). Permite agregar información contextual durante una conversación.
**Ejemplo:**
```bash
/btw
```
## Comandos de Proyecto
### `/project:create-command`
Crea un nuevo comando en `.claude/commands/` siguiendo la estructura estándar.
**Flujo:**
1. Solicita inputs del comando
2. Genera estructura desde template
3. Muestra contenido al usuario
4. Pide confirmación
5. Integra a master automáticamente
**Ejemplo:**
```bash
/project:create-command
```
## Convenciones Generales
### Mensajes estándar
**Éxito:**
```
✓ <acción> completada
<detalles>
```
**Error:**
```
✗ Error: <descripción>
Solución: <pasos para resolver>
```
**Advertencia:**
```
⚠ Advertencia: <descripción>
¿Continuar? (s/n)
```
### Estructura de comandos
Todos los comandos siguen esta estructura:
```markdown
---
version: X.Y.Z
updated: YYYY-MM-DD
tags: [categoria1, categoria2]
---
# Command: nombre
## Para el usuario
<Documentación de uso>
## Para Claude
<Implementación técnica>
## Precondiciones
<Verificaciones antes de ejecutar>
## Troubleshooting
<Problemas comunes y soluciones>
```
### Reglas de commits
- `feat:` nueva funcionalidad
- `fix:` corrección de error
- `refactor:` cambio estructural sin cambio funcional
- `docs:` documentación
- `chore:` mantenimiento
- `test:` tests nuevos o modificados
- `merge:` commit de merge (generado por --no-ff)
### Trunk-based development
- **Una rama por tarea**: corta (horas, no días)
- **Merge rápido**: integrar a master frecuentemente
- **No rebase interactivo**: preservar historia limpia
- **Feature flags**: para features grandes, no para WIP
- **Tests obligatorios**: siempre antes de merge
### Pure Core / Impure Shell
- **`core/`**: funciones puras, sin side effects
- **`shell/`**: I/O, filesystem, network, APIs
- **`app/`**: orquestación de core + shell
## Troubleshooting Global
### Error: "Rama ya existe"
**Solución:**
```bash
git branch -D <rama> # Borrar rama local
git checkout master # Volver a master
/git:branch ... # Crear de nuevo
```
### Error: "Working tree not clean"
**Solución:**
```bash
git status # Ver cambios pendientes
git add . # Stagear cambios
git commit -m "..." # Commitear antes de cambiar rama
```
### Error: "Tests failing"
**Solución:**
```bash
go test -v -tags goolm ./... # Ver detalles de tests
# Corregir errores
# Re-ejecutar tests
```
### Error: "Merge conflicts"
**Solución:**
```bash
git status # Ver archivos en conflicto
# Editar archivos y resolver conflictos manualmente
git add <archivos-resueltos>
git commit # Sin -m para mantener mensaje de merge
```
### Error: "Cannot push to master directly"
**Solución:**
```bash
git checkout -b quick/fix-direct-push
# Ahora los cambios están en rama
/git:push
```
## Extensión de comandos
Para crear nuevos comandos, usar `/project:create-command` que genera la estructura estándar automáticamente.
Para modificar comandos existentes, seguir la estructura documentada en esta guía.
## Referencias
- Documentación de trunk-based: `CLAUDE.md`
- Gestión de issues: `dev/README.md`
- Roadmap del proyecto: `dev/ROADMAP.md`
- Feature flags: `dev/feature_flags.json`