Cómo funciona

Los agentes llegan a trackxai por MCP, en /mcp, con inicio de sesión en el navegador o con un token. Tú entras en /w. Los dos leen y escriben las mismas filas, así que lo que archivó un agente es lo que ves.

task.create

Una escritura, paso a paso

  1. El agente llama a task.create con un título, un objetivo, un campo out-of-scope y al menos un criterio de aceptación.
  2. Una clave desconocida se rechaza antes de que corra ninguna regla.
  3. Corren las reglas de rechazo. Con un solo fallo no se guarda nada; el rechazo nombra el campo, explica la regla y da un ejemplo que pasa.
  4. Corren las reglas de aviso. Un aviso nunca rechaza. Se adjunta a la tarea y cada lectura posterior lo muestra.
  5. La tarea se guarda como campos, uno por cada campo obligatorio, así que un filtro o una búsqueda pueden dirigirse a un campo por su nombre.
  6. La respuesta lleva la tarea en markdown, así que no hace falta una segunda lectura.
La llamada no dice qué excluye la tarea. La respuesta nombra el campo, explica la regla y da un valor que pasaría. El ejemplo se muestra en inglés.

Dos clases de regla que nunca se mezclan

Una regla de rechazo es mecánica. Una máquina la decide sin juicio, y dos lectores llegan al mismo veredicto.

Reglas de rechazo, que impiden la escritura
ReglaComprobación
Falta un campo obligatorioAusente, vacío o con solo espacios
Ningún criterio de aceptaciónUna tarea lleva cero
Referencia sin destinoEl identificador de destino no corresponde a ninguna entidad
Extremos de referencia erróneosLa relación no admite esos dos tipos de entidad
Referencia a sí mismaOrigen y destino son la misma entidad
Pregunta sin tipoEl tipo falta o no es uno de los tres
Escritura entre espacios de trabajoLa carga nombra una entidad de otro espacio de trabajo
Reglas de aviso, que anotan la escritura
ReglaComprobación
El objetivo repite el títuloLos dos coinciden, sin contar mayúsculas ni espacios en los extremos
Criterio imposible de comprobarEl criterio no contiene nada observable ni ningún límite
Archivo inexistenteUna entrada de files nombra una ruta que no está en el repositorio vinculado

Guardada como campos, leída como markdown

Cada campo es una columna. Cada lectura devuelve la tarea como un documento markdown: el título como encabezado y después ## Goal, ## Out of scope, ## Acceptance criteria, ## Gaps, ## References, ## Files, ## Notes y ## Estimate. Los apartados opcionales vacíos se omiten.

Una tarea ocupó 1.290 caracteres en markdown frente a 1.898 con etiquetas, un 32% menos de lectura. El formato lo fija una prueba de referencia, así que no se desvía bajo los pies de un agente.

Referencias

Las siete relaciones entre entidades
RelaciónDesdeHaciaSignifica
realizestareaépicaEsta tarea es parte de entregar esa épica
blockstareatareaEl origen debe cerrarse antes de que pueda abrirse el destino
blocked-bytareatareaEl inverso guardado de blocks. Una fila, leída en cada sentido
supersedestarea, épicatarea, épicaEl origen sustituye al destino, que conserva su historial
relates-tocualquier entidadcualquier entidadAsociación débil, que se conserva porque forzar una relación precisa produce una equivocada
sourcesproyecto, épica, tareaexternoEl sistema del cliente, su identificador y su URL
verifiescriterioobjetivoSe escribe en el propio criterio, en su campo verifies

Preguntas

Una pregunta es algo que la tarea no sabe, anotado sin detener el trabajo.

Los tres tipos de pregunta
TipoObliga aEjemplo
needs-inputAlguien busca un dato, y la pregunta dice dónde¿Qué columna lee el importador antiguo? La respuesta está en el código del importador
open-questionDecides tú. Es el único tipo que espera a una personaMantener el formato de exportación antiguo una versión más. Hace falta una decisión
assumptionNada. La creencia queda escrita para poder refutarla más tardeLa exportación de origen es idempotente al reintentar
task.claim

El ciclo de una toma

Cuatro estados de tarea: open, claimed, in-progress y done. task.claim se rechaza mientras otro tenga una toma activa, y el rechazo nombra a quien la tiene. Una toma caduca pasada una ventana configurada, treinta minutos por defecto, y una toma caducada puede retomarse, con los dos actores registrados.

task.complete se rechaza mientras quede un criterio de aceptación sin marcar, salvo que la llamada nombre todos los que faltan. Nombrarlos deja la decisión registrada como un comentario.

Una sola toma activa por tarea. El rechazo dice quién la tiene y cuándo caduca. El ejemplo se muestra en inglés.

Tu lado

Una lista de tareas con filtros en la URL y vistas guardadas con una tecla. Un tablero de trabajo asignado en tres columnas, que mueves con el teclado, un Backlog con lo que aún no tiene dueño, y la tarea abierta encima en su propia dirección. Una bandeja con lo que espera tu respuesta, las épicas, las preguntas abiertas y los tokens de agente, que emites y revocas en el sitio, con el texto en claro visible una sola vez.

La actividad se lee de más reciente a más antigua, en el espacio de trabajo y en cada tarea. La página de progreso divide un día en tus horas, o siete días en una fila cada uno.

El tablero con una tarea abierta encima. Assigned, In progress y Done, entre las que mueves tarjetas con el teclado. El trabajo sin asignar espera en el Backlog. El ejemplo se muestra en inglés.

En la aplicación

Capturas de un espacio de trabajo de demostración, con la interfaz en inglés.

El tablero: cada tarea como una tarjeta, agrupada por estado, con las tareas en las que trabaja un agente en la columna In progress.
Cada tarea que crearon tus agentes, agrupada por estado.
La lista Waiting on you: las tareas bloqueadas a la espera de tu respuesta, con una pregunta abierta que puedes responder en la primera fila.
Las preguntas que dejaron tus agentes, respondidas sin salir de la lista.
La página de progreso: una barra que reparte cada tarea por fase y las tareas abiertas agrupadas por épica.
Hasta dónde ha llegado el trabajo, por fase y por épica.

Quién puede hacer qué

Cada persona que invitas tiene uno de cuatro roles en un espacio de trabajo. La página de personas dice quién tiene cuál, quién le dio entrada y cuándo, y una pertenencia revocada queda en la lista como historial.

Los cuatro roles
RolPuede
PropietarioTodo, también la facturación. Es quien tiene la cuenta, en cada espacio de trabajo de la cuenta
AdministradorTodo salvo la facturación: invita a personas, cambia sus roles y gestiona los ajustes
MiembroLee y escribe
LectorLee

Qué garantiza el filtro

Que haya datos, que se resuelvan y que tengan forma: cada campo obligatorio relleno, cada referencia apuntando a algo real, cada tarea con una forma de comprobarse. El fondo queda en manos de quien lee, a propósito. La medición detrás del diseño encontró que entre el 50 y el 85% de los hallazgos de una revisión son de fondo y ningún formato los toca, así que trackxai gasta sus rechazos donde una máquina siempre acierta y te muestra el resto como avisos.

Dónde seguir