docs(orquestador): documentar push automatico FLEET-STATE + fn summarize_fleet_transitions
This commit is contained in:
@@ -274,6 +274,26 @@ Ningún secundario arranca sin **DoD-contrato**: el criterio de aceptación FIJO
|
|||||||
|
|
||||||
El contrato sigue `dod_quality.md` (golden + edge + error con evidencia ejecutable), no un checkbox vago. Sin él, el agente es `MAL_LANZADO`.
|
El contrato sigue `dod_quality.md` (golden + edge + error con evidencia ejecutable), no un checkbox vago. Sin él, el agente es `MAL_LANZADO`.
|
||||||
|
|
||||||
|
### Push automático: el bloque `FLEET-STATE`
|
||||||
|
|
||||||
|
No hace falta acordarse de drenar para enterarse de un cambio. El hook `UserPromptSubmit`
|
||||||
|
`hook_fleet_state_inject.sh` (registrado en `.claude/settings.local.json`) inyecta en CADA turno del
|
||||||
|
orquestador —solo cuando la sesión es `role=orchestrator`— un bloque resumen de las transiciones
|
||||||
|
pendientes del watcher:
|
||||||
|
|
||||||
|
```
|
||||||
|
FLEET-STATE: terminados=[<sid>:<goal>…] reclaman=[…] estancados=[…] (drain con ./fn run drain_fleet_events para consumir)
|
||||||
|
```
|
||||||
|
|
||||||
|
Si no hay cambios emite `FLEET-STATE: sin cambios`; si el watcher está caído o el `events.jsonl` no
|
||||||
|
existe, degrada limpio sin romper el turno. El bloque es solo un **aviso** (hace peek, no avanza el
|
||||||
|
cursor): para consumir las transiciones y aplicar la política por clasificación sigues drenando
|
||||||
|
(abajo). El resumen lo produce `summarize_fleet_transitions_py_infra` sobre el feed del watcher.
|
||||||
|
|
||||||
|
Gotcha conocido: hoy el bloque lista transiciones de TODA la flota, incluidas las de otros
|
||||||
|
orquestadores y sus ejecutores. Si hay más de un orquestador activo, filtra por tu propia familia de
|
||||||
|
agentes (los que tú lanzaste) — igual que en "No te vigiles a ti mismo" más abajo.
|
||||||
|
|
||||||
### Drenar la cola
|
### Drenar la cola
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
@@ -401,6 +421,7 @@ El orquestador no hace polling caro: drena la cola **cuando actúa** (cuando la
|
|||||||
| `reboot_all_claudes_bash_infra` | Reiniciar/parar la flota retomando sesiones; `--exclude-current` para no tocarte |
|
| `reboot_all_claudes_bash_infra` | Reiniciar/parar la flota retomando sesiones; `--exclude-current` para no tocarte |
|
||||||
| `set_dod_contract_py_infra` | Escribir el DoD-contrato fijo (`dod_contract`/`dod_status`) en el `goal.json` de un secundario al lanzarlo |
|
| `set_dod_contract_py_infra` | Escribir el DoD-contrato fijo (`dod_contract`/`dod_status`) en el `goal.json` de un secundario al lanzarlo |
|
||||||
| `drain_fleet_events_py_infra` | Consumir la cola de transiciones del watcher (`~/.claude/fleet/events.jsonl`), agrupada por clasificación + urgentes |
|
| `drain_fleet_events_py_infra` | Consumir la cola de transiciones del watcher (`~/.claude/fleet/events.jsonl`), agrupada por clasificación + urgentes |
|
||||||
|
| `summarize_fleet_transitions_py_infra` | Resumir las transiciones del feed en una línea (`terminados/reclaman/estancados`); alimenta el bloque `FLEET-STATE` que el hook `UserPromptSubmit` inyecta cada turno |
|
||||||
| `classify_fleet_termination_go_infra` | Clasificar el estado de terminación de un agente (RECLAMA/MAL_LANZADO/DICE_TERMINADO/ESTANCADO/TRABAJANDO) — lo usa el watcher |
|
| `classify_fleet_termination_go_infra` | Clasificar el estado de terminación de un agente (RECLAMA/MAL_LANZADO/DICE_TERMINADO/ESTANCADO/TRABAJANDO) — lo usa el watcher |
|
||||||
| `list_claude_fleet_go_infra` | Fleet tipado con goal/phase/`role` + `tmux_window` (alimenta `/fleet` y el watcher). **Invócala por el binario `apps/fleetview/fleetview list --json`**, NUNCA por `./fn run` (la despacha como `go test`). El JSON del CLI aún no expone `role`/`dod_contract`/`dod_status`; léelos de `~/.claude/goals/<session_id>.json` |
|
| `list_claude_fleet_go_infra` | Fleet tipado con goal/phase/`role` + `tmux_window` (alimenta `/fleet` y el watcher). **Invócala por el binario `apps/fleetview/fleetview list --json`**, NUNCA por `./fn run` (la despacha como `go test`). El JSON del CLI aún no expone `role`/`dod_contract`/`dod_status`; léelos de `~/.claude/goals/<session_id>.json` |
|
||||||
| `spawn_fleet_agent_bash_infra` | Lanzar un ejecutor (o el orquestador) como window de la flota tmux — preferido sobre kitty cuando hay perfil fleet |
|
| `spawn_fleet_agent_bash_infra` | Lanzar un ejecutor (o el orquestador) como window de la flota tmux — preferido sobre kitty cuando hay perfil fleet |
|
||||||
|
|||||||
Reference in New Issue
Block a user