feat(orquestador): reanclar role=orchestrator en el hook de inyeccion de flota

El modo /orquestador dependia de que su prompt siguiera en contexto. Ahora el
hook UserPromptSubmit que ya filtra por role=orchestrator reinyecta tambien una
linea recordatorio del rol cada turno, reanclando el modo independientemente del
prompt. Se emite antes de la guarda del venv para sobrevivir a un watcher caido.
El path limpio (sin goal.json o role != orchestrator) sigue saliendo con exit 0
y stdout vacio.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-21 13:47:46 +02:00
parent 687c72805d
commit 8328637935
@@ -37,6 +37,14 @@ ROLE=""
# Solo el orquestador recibe el feed de la flota. Resto: silencio total.
[ "$ROLE" != "orchestrator" ] && exit 0
# Reanclar el rol en cada turno: el modo /orquestador no debe depender solo de
# que su prompt (.claude/commands/orquestador.md) siga en contexto. Este
# recordatorio se reinyecta aunque el watcher este caido o falte el venv (la
# guarda de abajo saldria con exit 0 sin emitir FLEET-STATE). Se emite SOLO para
# role=orchestrator: las sesiones sin goal.json o sin ese rol ya salieron arriba
# con exit 0 y stdout vacio, asi que el path limpio queda intacto.
printf '%s\n' "MODO ORQUESTADOR activo (role=orchestrator)."
PROJECT_DIR="${CLAUDE_PROJECT_DIR:-$HOME/fn_registry}"
PY="$PROJECT_DIR/python/.venv/bin/python3"
{ [ -x "$PY" ] && [ -d "$PROJECT_DIR/python/functions" ]; } || exit 0