From db4f454f8aa07dd424d6367c108940c4b5bdb34f Mon Sep 17 00:00:00 2001 From: Egutierrez Date: Wed, 24 Jun 2026 00:59:54 +0200 Subject: [PATCH] chore: auto-commit (1 archivos) - .claude/commands/ausente.md Co-Authored-By: Claude Opus 4.7 (1M context) --- .claude/commands/ausente.md | 112 ++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 .claude/commands/ausente.md diff --git a/.claude/commands/ausente.md b/.claude/commands/ausente.md new file mode 100644 index 00000000..4715e784 --- /dev/null +++ b/.claude/commands/ausente.md @@ -0,0 +1,112 @@ +--- +description: Modo ausente — el orquestador itera solo (lanza agentes, verifica cierres, genera tareas del roadmap, push periódico) sin supervisión, hasta que el humano vuelva. Auto-continúa con ScheduleWakeup. +--- + +# /ausente — orquestador autónomo desatendido + +Activa un **loop autónomo del modo orquestador**: el humano se va y tú sigues trabajando solo +—lanzando agentes, verificando sus cierres, cerrando los que cumplen su DoD, generando tareas +nuevas cuando la flota se vacía, y sincronizando— **hasta que el humano vuelva**. Es el modo +orquestador (`.claude/commands/orquestador.md` + `.claude/rules/orchestration.md`) corriendo sin +prompts humanos, con un mecanismo de auto-continuación. + +Requisito: estar ya en modo orquestador (`role=orchestrator`). `/ausente` NO sustituye al +orquestador, lo deja en piloto automático. + +## Configuración de esta sesión (elegida por el humano) +- **Al vaciarse la flota**: seguir el **roadmap ComfyUI** — generar tareas nuevas sin parar. +- **Git**: **push periódico** — `/full-git-push` tras cada bloque de tareas cerrado. +- **Límite**: **hasta que el humano vuelva** — heartbeat ~25 min + el watcher; tope DURO de 6 + ejecutores a la vez; parar en cuanto el humano escriba. + +(Si se reinvoca `/ausente` en otra sesión, re-confirmar estas 3 con el humano vía AskUserQuestion.) + +## El bucle (cada vez que te re-invocan: por FLEET-DONE del watcher o por el heartbeat) + +1. **Drena la flota**: `./fn run drain_fleet_events`. Para cada ejecutor `DICE_TERMINADO`: + **verifica de primera mano** (lee su report + comprueba en disco/CDP que el golden existe — no + te fíes del autodeclarado). Si cumple el DoD → `set_dod_contract "" met` y **ciérralo + con `kill ` directo** (NUNCA `kill_fleet_agent`/`kill-window`: cierra windows ajenas y se + llevó la console de fleetview — incidente real). Si falla → nudge con el gap concreto. +2. **Nudge** a los `ESTANCADO` (idle > 10 min con DoD sin cerrar). NUNCA a `waiting`. +3. **¿Flota con hueco?** (< 6 ejecutores y hay backlog) → **genera la siguiente tarea del roadmap** + (lista abajo), escribe su prompt autocontenido con aislamiento + DoD-contrato, lánzala con + `spawn_fleet_agent --parent `, fíjale nombre (`fleet_set_name`) + DoD. Respeta el tope + de 6 y la disjunción de recursos (server/venv/GPU vs functions+fn_index vs disco — ver + `orchestration.md`): solo UN agente dueño del server/venv a la vez; solo UNO toca + `functions/`+`fn index` a la vez; los descargadores de modelos van a carpetas distintas. +4. **Push periódico**: cuando cierres un bloque (>=1 tarea met e integrada), corre + `./fn run full_git_push_bash_pipelines ""` y verifica que el padre queda alineado con + `origin/master`. Diagnostica y reintenta si falla (regla de `/full-git-push`). +5. **Bitácora**: añade una línea al report de bitácora `reports/NNNN-ausente-bitacora.md` (créalo + la primera vez): timestamp + qué cerraste + qué lanzaste + push. Es lo que el humano lee al + volver. +6. **Reprograma el heartbeat**: `ScheduleWakeup(delaySeconds≈1500, prompt="/ausente", + reason="loop ausente: vigilar flota + roadmap ComfyUI")`. Si hay agentes en vuelo, el watcher + te empujará sus FLEET-DONE antes (no hace falta wakeup corto); el heartbeat es el fallback para + cuando la flota está vacía y hay que generar tareas nuevas. + +## Supervivencia a la compactación de contexto +El loop es de larga duración → el contexto se llenará. **Cuando te quedes sin contexto, deja que +el harness compacte la conversación y CONTINÚA el modo ausente** — no lo trates como una parada. +El modo sobrevive porque su estado es **durable fuera del contexto**: +- El `ScheduleWakeup(prompt="/ausente")` re-inyecta el modo en cada heartbeat (y el FLEET-DONE del + watcher también te re-entra). +- La **bitácora** `reports/ausente-bitacora-2026-06-24.md` es la memoria persistente: qué se cerró, + qué se lanzó, qué falta del backlog, último push. **Tras una compactación, lo PRIMERO es releer + la bitácora** (y `fleet_list`) para reconstruir el estado y seguir donde lo dejaste. +- Mantén la bitácora al día en CADA turno (no solo al cerrar bloques) para que la compactación + nunca pierda progreso. El comando `/ausente` + `orchestration.md` reconstruyen la doctrina. +Una compactación NO es el humano volviendo — sigue iterando con normalidad. + +## Parada +- **El humano vuelve** = recibes un prompt que NO es un FLEET-DONE ni el `/ausente` del heartbeat + (es texto del humano). Entonces: **no reprogrames el wakeup**, resume todo lo hecho durante la + ausencia (lee la bitácora) y vuelve al modo orquestador interactivo normal. +- Si el backlog del roadmap se agota del todo (raro): haz un último push, deja la flota cerrada, + escribe el resumen en la bitácora, programa un heartbeat largo y queda a la espera. + +## Reglas duras (más estrictas sin supervisión) +- **Nada destructivo ni irreversible sin el humano**: no borrar datos/modelos/repos, no `git push + --force`, no tocar producción/VPS, no mandar nada hacia afuera (correos, mensajes, APIs con + efecto), no pagar/descargar gated de pago. Ante la duda, NO lo hagas: déjalo anotado en la + bitácora como "pendiente de revisión humana". +- **Aislamiento git por agente** SIEMPRE (sub-repo / worktree / scope disjunto). Ningún agente + commitea el padre salvo el push periódico que corres tú. +- **Tope 6 ejecutores**. Encola el resto. +- **Cierre por `kill `**, jamás `pkill`/`killall`/`kill_fleet_agent` (protege la TUI/console + de fleetview y a ti mismo). +- **Verificación adversarial**: el golden de cada cierre se comprueba en disco/CDP/ejecución, no + por lo que el agente diga. Honestidad en la bitácora (gaps incluidos). +- Cada agente full-capaz sigue registry-first y delega a `fn-constructor`; tú no escribes lógica + reutilizable inline. + +## Backlog del roadmap ComfyUI (fuente de tareas a generar; prioriza arriba→abajo) +Base: `reports/0064-comfyui-roadmap-plan.md` + propuestas de los reports 0069/0073/0075/0079. +1. **Funciones 3D propuestas pendientes**: `comfyui_build_view_3d_workflow`, + `comfyui_generate_views_from_image` (Zero123/SV3D), `comfyui_text_to_3d_oneshot` (pipeline), + `comfyui_build_multiview_textured_3d_workflow`. (Dueño de functions/+fn index, uno a la vez.) +2. **`comfyui_download_workflow`** (detecta Drive/GitHub/Civitai/PNG → API format) — del catálogo + de fuentes (report `comfyui-wf-sources`). +3. **P2 del roadmap**: `comfyui_batch_generate`, `comfyui_interrupt_queue`, + `comfyui_ensure_server` (systemd-user con --lowvram + health). +4. **Vídeo end-to-end**: montar workflow LTX-Video y Wan2.1 (modelos ya en /mnt/2tb), generar un + clip corto SFW de prueba, validar VRAM 8GB; capitalizar `comfyui_build_video_workflow`. +5. **Calidad 3D**: decimación de mesh (`fast_simplification`, gap del 0069) + watertight + (`VoxelToMesh`); función `comfyui_simplify_mesh`. +6. **Librería de workflows**: bajar+validar los ejemplos recomendados por `comfyui-wf-sources`, + dejarlos en una librería local validada contra nuestro server. +7. **Higiene**: `fn doctor` sobre las funciones nuevas (uses-functions/unused), capability page + `docs/capabilities/comfyui.md` al día, tests de las funciones sin cobertura. +8. Cuando ideas concretas se agoten: un agente "completeness critic" que audite el grupo `comfyui` + y proponga el siguiente lote. + +Cada tarea generada respeta el patrón del orquestador: prompt autocontenido (objetivo, dir, +aislamiento, qué entrega, DoD-contrato golden+edge+error), `--parent`, nombre + DoD fijados al +lanzar, verificación de primera mano al cerrar. + +## Relación +- `.claude/commands/orquestador.md` — el modo base; `/ausente` es su versión desatendida. +- `.claude/rules/orchestration.md` — maquinaria (drain, clasificación, verificador, nudge, tope). +- `.claude/rules/autonomous_loop.md` — `fn-orquestador` (Agent tool, sandbox). `/ausente` NO es + eso: aquí TÚ (el orquestador interactivo) sigues conduciendo la flota de Claudes interactivos.