Files
repo_Claude/.claude/commands/issues/status.md
T

120 lines
3.7 KiB
Markdown

# Command: issues:status
Muestra un dashboard global de todas las issues en todos los workspaces, con métricas,
filtros y sugerencias de próximas issues a ejecutar.
## Para el usuario
### Cuándo usar este comando
Usar para obtener una vista consolidada del estado de todas las issues en todos los workspaces.
Útil para planificar qué ejecutar a continuación y ver el progreso general.
### Sintaxis
```bash
/issues:status # Dashboard global completo
/issues:status <workspace> # Detalle de un workspace específico
/issues:status --status pending # Filtrar por estado
/issues:status --tag backend # Filtrar por tag
/issues:status --export json # Exportar a JSON
/issues:status --export csv # Exportar a CSV
```
### Ejemplos
**Dashboard global:**
```bash
/issues:status
```
**Ver solo issues pendientes:**
```bash
/issues:status --status pending
```
**Ver detalle de un workspace:**
```bash
/issues:status my-api
```
**Exportar métricas:**
```bash
/issues:status --export json
```
## Para Claude
### Inputs
Parsear argumentos del usuario:
- Primer argumento posicional (sin `--`) → `filterWorkspace`
- `--status <value>``filterStatus` (pending | in_progress | completed)
- `--tag <value>``filterTag`
- `--export <format>``exportFormat` (json | csv)
### Flujo
1. **Parsear argumentos** del comando según la sintaxis arriba
2. **Llamar `app.IssuesDashboardCommand(config, filterWorkspace, filterStatus, filterTag, exportFormat)`**
3. Si se solicitó dashboard global (sin filtros), después de mostrar el dashboard preguntar:
- "¿Ver detalle de algún workspace? (nombre o 'n')"
- Si el usuario ingresa un nombre válido, llamar `app.RenderWorkspaceDetail()`
### Parseo de argumentos
```
/issues:status → filterWorkspace="", filterStatus="", filterTag="", exportFormat=""
/issues:status my-api → filterWorkspace="my-api"
/issues:status --status pending → filterStatus="pending"
/issues:status --tag backend → filterTag="backend"
/issues:status my-api --status pending → filterWorkspace="my-api", filterStatus="pending"
/issues:status --export json → exportFormat="json"
```
### Lógica de llamada Go
```go
// Cargar config
config, err := app.LoadConfig()
if err != nil {
// Reportar error
}
// Ejecutar dashboard
err = app.IssuesDashboardCommand(config, filterWorkspace, filterStatus, filterTag, exportFormat)
```
### Comandos sugeridos al final
Siempre mostrar al final:
```
Commands:
/issues:status <workspace> # Detalle de workspace específico
/issues:status --status pending # Solo pendientes
/app:launch <workspace> <issue> # Lanzar una issue sugerida
```
### Modo interactivo (dashboard global)
Cuando se muestra el dashboard global sin filtros:
1. Mostrar el dashboard completo con sugerencias
2. Preguntar: "¿Ver detalle de un workspace? (nombre o 'n' para salir)"
3. Si el usuario responde con un nombre de workspace:
- Obtener issues del workspace con `shell.ListIssuesInWorkspace(workspacePath)`
- Renderizar con `app.RenderWorkspaceDetail(workspace, issues)`
4. Si responde 'n' o vacío, terminar
### Manejo de errores
- Si `ReposBasePath` no existe: "No se encontraron workspaces. ¿Está configurado DATAFORGE_REPOS?"
- Si no hay issues en ningún workspace: Mostrar dashboard vacío con sugerencia de crear issues
- Si exportación falla: Reportar error específico
### Notas
- Las stats se calculan escaneando el filesystem y sincronizando con la BD
- La BD actúa como cache — si está desactualizada, el scan la actualiza
- Para workspaces con muchas issues, el scan puede tardar segundos