Missions y scouts
Los dos tipos de tarea, y los estados por los que pasa una tarea.
Dos tipos
| Mission | Scout | |
|---|---|---|
| Propósito | cambiar código, entregar algo para aterrizar | investigar y reportar |
| Escribe en su camp | sí, commits en su branch | nunca hace commit ni push |
| Entrega | commits en vexillum/<task-id>, aterrizados con land o abiertos como PR con ship | un reporte en markdown |
| Done significa | produjo commits por delante de su base | existe su archivo de reporte |
vx dispatch usa --kind mission por defecto. Un scout escribe su reporte en ~/.vexillum/projects/<repo>-<hash>/reports/<agent-name>-<task-id>.md, fuera del camp, así sobrevive al strike. Nunca uses un scout para trabajo que deba cambiar código.
--model y --effort se pasan directo al CLI del harness del perfil (claude salvo que el perfil nombre pi u opencode); vexillum verifica que el harness acepte el valor, solo por su forma en los modelos de Pi y OpenCode (ver models.json). Elegirlos es trabajo del commander, a partir de los perfiles de models.json (--profile). Ver también AGENTS.md y rules.
Estados de una tarea
| Status | Significado |
|---|---|
pending | creada, todavía no iniciada |
running | el soldier está trabajando |
blocked | el soldier hizo una pregunta y espera; la pregunta está en el decision de la tarea. Ver Blocked e interrupted |
done | terminó con prueba de finalización |
failed | terminó sin éxito |
interrupted | vexillum perdió al soldier mismo (su pane de herdr desapareció), no necesariamente porque haya fallado; el trabajo ya commiteado sigue en el camp |
unconfirmed | el soldier quedó idle sin prueba de finalización y sin una pausa válida declarada, así que vexillum no distingue éxito de atascado; una persona tiene que mirar |
shipped | enviada por el pipeline tribunal y abierta como pull request real; el soldier y su camp quedan abiertos a propósito hasta que se mergee el PR. Ver Land vs ship |
struck | una tarea interrupted o failed cuyo camp se devolvió al pool con strike; no queda nada que vigilar, re-promptear ni re-despachar. Una tarea done o shipped conserva su estado al hacer strike |
done nunca se infiere solo de la inactividad. Para una mission vexillum exige un commit nuevo por delante de la base del camp; para un scout, el archivo de reporte. Cada prompt de dispatch declara el entregable. A una mission se le dice que commitee en su propia branch, por delante de su base, y que cierre con una línea final delivered: <resumen>; a un scout se le dice la ruta de su reporte. También se les dice a los soldiers que nunca pausen por un job en segundo plano: los comandos largos corren en primer plano (una llamada de herramienta en primer plano tiene un tope de unos 10 minutos en Claude Code, y los otros harnesses fijan su propio timeout), así que un comando que puede tardar más se divide o se avisa en el mensaje final en vez de mandarlo a segundo plano. Un soldier que tiene que esperar algo externo que no puede correr en primer plano puede declarar una pausa en pauses/<agent-name>.md para que un turno quieto no se confunda con haber terminado. Al despertar tiene que terminar el entregable antes de cerrar su turno: borrar el archivo de pausa no es terminar, y un turno que termina así queda unconfirmed.