Referencia

status --json

El snapshot de la tropa legible por máquinas, y el schema de tarea que hay detrás.

vx status --json

imprime un único objeto JSON. Es de solo lectura y no agrega nada a la tarea persistida: tasks es exactamente el schema Task que vexillum mismo lee de <project root>/tasks/*.json, así un consumidor como el skill muster nunca trabaja con una reinterpretación aparte. El agrupamiento, el filtrado y los juicios (qué cuenta como "needs attention", el enriquecimiento con GitHub) le corresponden al consumidor.

{
  "schema_version": 1,
  "generated_at": "2026-09-24T12:00:00Z",
  "project_root": "/abs/path/to/this project's ~/.vexillum namespace",
  "tasks": []
}

Sin tareas, tasks es [], nunca null. Las tareas vienen ordenadas, la actualizada más recientemente primero.

Campos de una tarea

CampoTipoNotas
schema_versionnumberversión del schema del archivo de tarea; este build escribe 1 y todavía lee 0
idstring16 caracteres hexadecimales
kind"mission" o "scout"
promptstringel prompt original
statusstringpending, running, blocked, done, failed, interrupted, shipped, unconfirmed, struck; ver Missions y scouts. Una tarea shipped espera que se mergee su pull request, no está trabada. Una tarea struck estaba interrupted o failed y su camp se devolvió con vx strike
created_at, updated_athora RFC 3339
camp_slot, camp_path, camp_branchnumber, string, stringse definen cuando se adquiere un camp
camp_basestringbranch de la que se bifurcó el camp; puede estar vacío
outputstringel transcript capturado
herdr_workspace_id, herdr_tab_id, herdr_pane_id, herdr_agent_namestringel pane de herdr del soldier
agent_not_found_since, idle_unconfirmed_sincehoracuándo el sentinel vio la condición por primera vez
pause_seen_athoracuándo el sentinel vio por primera vez una pausa declarada válida en la tarea idle; se borra cuando la tarea termina. Permite que la nota de un unconfirmed diga que existió una pausa y ya no está
redispatchesnumbercuántas veces se re-despachó la tarea
model, effortstringla elección del soldier; vacío significa el default de claude
harnessstringel CLI de agente en el que corre el soldier, tomado del perfil del dispatch (claude, pi u opencode); vacío significa claude, como en un archivo de tarea escrito antes de este campo
harness_majornumberen una tarea de opencode, la serie de OpenCode con la que se despachó (1 o 2), detectada con opencode --version y conservada por vx redispatch; ausente en los demás harnesses
harness_versionstringen una tarea de opencode, la versión completa encontrada al despachar, como 2.0.32; ausente en los demás harnesses
harness_sessionstringen una tarea de opencode 2.x con modelo, el id de la sesión de OpenCode creada para su soldier (ses_...), que vx redispatch reutiliza; ausente en los demás casos
decisionobjectpresente una vez que la tarea quedó blocked al menos una vez
amendmentsarrayinstrucciones que el general dio después del dispatch, con vx prompt y vx decide (no --dismiss); ver abajo

Los campos opcionales se omiten cuando están vacíos.

decision

CampoNotas
questionlo que preguntó el soldier
optionsopciones que ofreció, si hubo
asked_atcuándo quedó blocked
answer, answered_atse definen después de vx decide
kindcómo debe responderse: modal (un overlay selector) con una tecla, ask (una pregunta ask_user de un soldier de Pi) mediante un archivo, cualquier otro como texto
question_idel id de una pregunta ask, a quien se dirige una respuesta
dismissedtrue cuando se limpió con vx decide --dismiss en vez de responderse; answered_at queda definido, answer no

Una tarea en blocked siempre lleva su pregunta acá, no solo la palabra "blocked".

amendments

CampoNotas
textlo que dijo el general; para vx decide, la pregunta y la respuesta (una elección de selector como el texto de la opción). Máximo 2000 caracteres, el texto más largo se corta y se marca [truncated]
athora RFC 3339 en que se registró
sourcevx prompt o vx decide

Se omite cuando está vacío. Una tarea conserva sus 20 amendments más recientes. prompt nunca cambia: vx ship le da a la revisión del tribunal el prompt seguido de los amendments, así que lo que el general pidió después cuenta como pedido. Solo vx prompt y vx decide los escriben, en el archivo de estado de la tarea, nunca en un archivo del camp.

Compatibilidad

Tratá los campos desconocidos como aditivos.

En esta página