Tasks
APX tiene una lista de TODO por proyecto respaldada por un log de eventos solo-agregado. Las tasks tienen alcance de
proyecto, se direccionan por prefijo de short-id, y nunca se borran de verdad — las transiciones de estado (done,
drop) se registran como eventos y la task persiste para siempre.
Almacenamiento
Sección titulada «Almacenamiento»Las tasks viven en ~/.apx/projects/<apxId>/tasks/YYYY-MM.jsonl, un archivo por mes. El estado es el
fold del stream de eventos: crear, completar, descartar, reabrir y parchear, todos agregan
eventos. No hagas grep del JSONL directamente para conocer el estado — usá apx task list o la API.
apx task add
Sección titulada «apx task add»apx task add "<title>" \ [--project <name|id|path>] \ [--body <text>] \ [--tag <name>]... \ [--due <YYYY-MM-DD>] \ [--agent <slug>] \ [--source <label>]--tag es repetible. Ejemplos:
apx task add "Review PR #42" --project myapp --agent reviewer --tag reviewapx task add "Release notes" --project myapp --tag release --tag docs --due 2026-06-01apx task add "Call client" --project myapp --due 2026-05-31 --tag urgentapx task list
Sección titulada «apx task list»apx task list \ [--state open|done|dropped|all] \ # por defecto: open [--tag <name>] \ [--agent <slug>] \ [--due-before <iso>] \ [--limit <N>] \ [--project <name|id|path>]apx task list --project myapp # tasks abiertasapx task list --project myapp --state allapx task list --project myapp --state doneapx task list --project myapp --tag urgentapx task list --project myapp --due-before 2026-06-01apx task list --project myapp --agent reviewer --limit 10$ apx task list --project myapp ID STATE DUE TAGS TITLE t-1a open 2026-06-16 checkout,urgent Wire Stripe webhooks before merge t-2b open 2026-06-18 tests Retry-guard the flaky cart-total test t-3c open — docs Document the pairing flow for the web panel t-4d open 2026-06-20 infra Backfill ingestion CLI flag
apx task show
Sección titulada «apx task show»apx task show <id> [--project <name|id|path>]apx task show abc [--project <name|id|path>] # coincidencia por prefijo (≥ 3 chars, debe ser único)Imprime la task completa como JSON, incluyendo todos los campos y el estado actual.
Transiciones de estado
Sección titulada «Transiciones de estado»apx task done <id> [--project P] [--by <name>] # marcar como completadaapx task drop <id> [--project P] # archivar (ya no hace falta)apx task reopen <id> [--project P] # volver a opendone significa “completé este trabajo”. drop significa “esto ya no hace falta”. Las métricas y
los reportes los distinguen — usá el correcto.
apx task patch
Sección titulada «apx task patch»apx task patch <id> \ [--title <text>] \ [--body <text>] \ [--due <date>] \ [--agent <slug>] \ [--tag <name>]... \ [--project <name|id|path>]--tag reemplaza la lista de tags cuando se provee; no pasar ningún flag --tag deja los tags sin cambios.
apx task patch t_abc123 --project myapp --title "New title"apx task patch t_abc123 --project myapp --tag review --tag urgent # reemplaza los tagsapx task patch t_abc123 --project myapp --due 2026-06-10Formato de ID y direccionamiento por prefijo
Sección titulada «Formato de ID y direccionamiento por prefijo»Los IDs de task tienen la forma t_ + 6 caracteres base36 (entropía de 32 bits, ~4 mil millones de keyspace). Podés
direccionar una task por cualquier prefijo de ≥ 3 caracteres mientras identifique de forma única a una sola task. Si dos
tasks comparten un prefijo, el comando devuelve un error — usá un prefijo más largo.
apx task done t_abc123 --project myapp # id completoapx task done abc --project myapp # prefijo, resuelve si es únicoCampos de una task
Sección titulada «Campos de una task»| Campo | Cuándo | Notas |
|---|---|---|
title | Requerido | Línea imperativa corta. |
body | Opcional | Notas más largas. Se acepta Markdown. |
tags | Opcional | Cadenas libres. Filtrables con --tag. |
due | Opcional | Fecha ISO YYYY-MM-DD. Filtrable con --due-before. |
agent | Opcional | Slug del agente responsable de la task. |
source | Auto / opcional | Origen: cli, telegram, super-agent, … |
state | Derivado | open → done o dropped. Reabrible. |
Cómo el super-agent alimenta las tasks
Sección titulada «Cómo el super-agent alimenta las tasks»El super-agent tiene las herramientas create_task y list_tasks registradas en su conjunto core de herramientas,
disponibles en todos los canales. Cuando decís “recordame cerrar el bug de auth en myapp”, el modelo
llama a create_task con el proyecto correcto, el título y los campos opcionales. Cuando preguntás “qué está
pendiente en myapp?”, llama a list_tasks.
Ejemplo de la llamada a herramienta que emite el modelo:
{ "name": "create_task", "arguments": { "project": "myapp", "title": "Close auth bug", "due": "2026-06-01", "tags": ["bug"] }}Si el proyecto es ambiguo (el usuario no dijo cuál), el modelo llama primero a list_projects y
pregunta — nunca asume. En un canal de Telegram fijado a un proyecto, el modelo usa ese proyecto como
contexto por defecto.
Siguiente
Sección titulada «Siguiente»- Routines — programá el super-agent para crear o reportar tasks.
- Super-agent — el tool loop que puede crear y consultar tasks conversacionalmente.