From 224f714d4a25269fa9a3d7a40b075e59294217d0 Mon Sep 17 00:00:00 2001 From: agent Date: Sat, 20 Jun 2026 18:38:12 +0200 Subject: [PATCH] =?UTF-8?q?feat(commands):=20/fleet=20=E2=80=94=20listar?= =?UTF-8?q?=20y=20saltar=20con=20foco=20a=20la=20flota=20de=20Claudes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Slash command que envuelve el modo CLI de fleetview (list/focus) para preguntar por la flota de Claudes vivos o saltar con foco a una conversación dentro de la sesión tmux fleet, desde cualquier sesión. Co-Authored-By: Claude Opus 4.8 (1M context) --- .claude/commands/fleet.md | 53 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 .claude/commands/fleet.md diff --git a/.claude/commands/fleet.md b/.claude/commands/fleet.md new file mode 100644 index 00000000..b9a46356 --- /dev/null +++ b/.claude/commands/fleet.md @@ -0,0 +1,53 @@ +--- +description: Muestra la flota de Claudes vivos (sessionId + objetivo + estado) y, con argumento, salta con foco a esa conversación dentro de la sesión tmux fleet. +argument-hint: "[texto|sessionId|PID para saltar — vacío = listar la flota]" +--- + +# /fleet — ver y navegar la flota de Claudes + +Inspecciona la flota de procesos Claude Code vivos de este PC y, opcionalmente, salta con foco a cualquiera de ellos dentro de la interfaz tmux (perfil fleetview). + +Se apoya en el modo CLI de la app `fleetview` (`fleetview list` / `fleetview focus`), que opera sobre el socket tmux del perfil **desde el que se invoca el comando** (`$FLEET_SOCKET`, default `fleet`). Es decir, lista y enfoca solo los Claudes del mismo perfil en el que corres. + +## Binario + +Ruta: `${FN_REGISTRY_ROOT:-$HOME/fn_registry}/apps/fleetview/fleetview` + +Si el binario no existe, compílalo antes de usarlo: + +```bash +cd "${FN_REGISTRY_ROOT:-$HOME/fn_registry}/apps/fleetview" && go build -o fleetview . +``` + +## Comportamiento según `$ARGUMENTS` + +### Sin argumentos → listar la flota + +1. Ejecuta: + ```bash + "${FN_REGISTRY_ROOT:-$HOME/fn_registry}/apps/fleetview/fleetview" list --json + ``` +2. Presenta el resultado como una tabla legible para el usuario, una fila por Claude, con: estado (idle/busy/waiting/shell), objetivo (`goal`), `sessionId` corto (primeros 8 caracteres), PID y window tmux. +3. Marca con claridad: + - el Claude **activo** (`active: true`) — el que está embebido en el pane derecho de la window `console`. + - la sesión actual / orquestador si la puedes identificar (su `session_id` coincide con el de quien invoca). +4. Si la lista está vacía, indícalo y sugiere que el perfil fleet podría no estar activo (revisar `$FLEET_SOCKET` y que la sesión tmux exista). + +### Con argumentos → saltar con foco + +El usuario quiere que la interfaz tmux salte a una conversación concreta. `$ARGUMENTS` es el query: texto del objetivo, prefijo de `sessionId`, o PID. + +1. Ejecuta: + ```bash + "${FN_REGISTRY_ROOT:-$HOME/fn_registry}/apps/fleetview/fleetview" focus "$ARGUMENTS" + ``` +2. Interpreta el exit code: + - `0`: salto hecho. Confirma al usuario a qué Claude saltó (usa la línea `→ ...` de stdout). + - `2`: query ambiguo. El binario lista los candidatos por stderr; muéstralos y pide al usuario que afine (por `sessionId` o PID). + - `1`: sin match o sin window tmux. Ejecuta `fleetview list` y muestra las opciones disponibles para que elija. + +## Notas + +- El salto usa el modelo de la TUI: trae el Claude elegido al pane derecho de la window `console` (con el sidebar fleetview siempre visible a la izquierda) y enfoca esa window. No es destructivo — el Claude que estuviera antes se aparca en su propia window, sigue vivo. +- El comando opera solo sobre el perfil tmux desde el que se invoca (`$FLEET_SOCKET`). Si pides un Claude que vive en otro perfil/socket, no aparecerá en la lista ni se podrá enfocar desde aquí. +- Para reabrir sesiones cerradas (`claude --resume`) usa la TUI fleetview (tecla `u`); este comando solo lista y enfoca Claudes vivos.