feat(statusline): objetivo+DoD coherentes con los prompts + alerta de mezcla de tareas

El objetivo y el DoD dejan de quedarse congelados en el primer prompt:

- goal_tracker acumula cada prompt sustantivo del usuario en .prompts y lanza
  goal_refine.sh (background, haiku) para mantener objetivo y DoD coherentes con
  TODO lo pedido (action refine), o dejarlos igual (action same).
- goal_refine marca alert=true (action switch) cuando el ultimo prompt introduce
  una tarea completamente distinta del objetivo: senal de que la terminal mezcla
  tareas (principio: una terminal = una tarea). No cambia el objetivo, solo avisa.
- statusline muestra ⚠️ en rojo antes del objetivo cuando alert=true.
- Comando 'recalcular' (recalcula/replantea): fuerza regenerar objetivo+DoD desde
  los prompts y limpia la alerta (para cuando el cambio de tarea es intencional).
- goal_autogen inicializa .prompts con el primer prompt.

Coste: 1 haiku/prompt sustantivo en background (ademas del haiku de reposo del
Stop), solicitado para mantener la coherencia. No bloquea el turno.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-06 16:01:15 +02:00
parent 9ac52501b5
commit 1840402453
4 changed files with 108 additions and 4 deletions
+2 -2
View File
@@ -37,8 +37,8 @@ DOD=$(printf '%s' "$JSON" | jq -r '.dod // ""' 2>/dev/null)
[ -f "$F" ] && exit 0
TMP="${F}.tmp.$$"
if jq -n --arg g "$GOAL" --arg d "$DOD" \
'{goal:$g, phase:"planificando", history:["planificando"]} | if $d != "" then .dod=$d else . end' > "$TMP" 2>/dev/null; then
if jq -n --arg g "$GOAL" --arg d "$DOD" --arg p "$P" \
'{goal:$g, phase:"planificando", history:["planificando"], prompts:[$p]} | if $d != "" then .dod=$d else . end' > "$TMP" 2>/dev/null; then
mv "$TMP" "$F"
else
rm -f "$TMP"