# 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 # 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 ` → `filterStatus` (pending | in_progress | completed) - `--tag ` → `filterTag` - `--export ` → `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 # Detalle de workspace específico /issues:status --status pending # Solo pendientes /app:launch # 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