Tareas de código

El tablero de código convierte un brief escrito en código fusionado con tan poca ceremonia como quieras: escribe lo que necesitas, planifícalo en fases revisables con un agente de planificación interactivo o hazlo de un tiro, observa al agente trabajar en su propio worktree de git, revisa el diff con comentarios anclados a la línea y fusiona. Cada etapa es una columna; cada tarea es una tarjeta.

La barra lateral mantiene una fina sección TAREAS cerca de la parte superior: una fila de pulso resume el tablero (9 planificadas · 1 en curso · 2 por revisar) con una insignia naranja que cuenta las tarjetas que esperan en Prueba/Revisión y una insignia roja cuando un agente necesita tu intervención. Haz clic en el título de la sección o en la fila para abrir el tablero, o pulsa ⇧⌘T desde cualquier lugar.

El tablero de Tareas de código: Backlog con un brief que ofrece Planificar y De un tiro, Plan con dos tarjetas de fase numeradas (la segunda bloqueada tras una dependencia), En curso con una tarea en ejecución, Prueba/Revisión con una tarjeta que muestra su rama y un recuento de comentarios, y Completado con una tarjeta fusionada.
ColumnaQué hay ahí
BacklogLos briefs que has escrito pero no iniciado. Cada tarjeta ofrece Planificar y De un tiro.
PlanLas tarjetas de fase que un agente planificador archivó a partir de un brief: numeradas, conscientes de sus dependencias, multiseleccionables.
En cursoFases y tareas de un tiro en las que un agente está trabajando activamente, cada una en su propio worktree.
Prueba/RevisiónTrabajo terminado que te espera: la tarjeta abre la ventana de revisión con el diff de la rama.
CompletadoTareas fusionadas, convertidas en pull request o cerradas sin fusionar.

Todo en esta página funciona de forma idéntica desde un cliente enriquecido remoto: el tablero, la ventana de planificación y la ventana de revisión se reflejan todos a través de la API de control.

Escribir una tarea

+ Nueva tarea (o hacer clic en una tarjeta del backlog) abre el editor:

  • Un Título y una descripción escrita en Markdown, con un conmutador Escribir / Vista previa. El brief se convierte en el prompt del agente, así que escríbelo como tal.
  • Espacio de trabajo y Agente: la tarea se ejecuta dentro del espacio de trabajo elegido con uno de sus agentes configurados.
  • Iniciar el agente en: una carpeta dentro del espacio de trabajo. Cuando es un repositorio de git propio, la tarea se ejecuta allí en un worktree y una rama nuevos.
  • Crear carpeta y repo de git si es necesario: para trabajo desde cero: iniciar o planificar primero ejecuta mkdir + git init (con un commit raíz vacío) cuando la carpeta no es ya su propio repositorio. Déjalo desactivado para una carpeta dentro de un repo existente.

Un brief en el Backlog ofrece dos botones:

  • De un tiro envía la tarea directamente a En curso: el agente lo hace todo de forma autónoma y te entrega el diff en Prueba/Revisión.
  • Planificar abre primero una sesión de planificación.

Planificación

Planificar lanza una sesión de planificación visible e interactiva y abre su ventana: una vista de conversación nativa, sin terminal requerida. La sesión se abre sobre tu brief, renderizado como una tarjeta; el agente explora el repositorio en solo lectura, narra lo que encuentra y hace preguntas cuando el brief deja abiertas decisiones reales.

Las preguntas llegan como una tarjeta con pestañas: una pestaña por pregunta, reflejando exactamente el selector que el agente muestra en su propia sesión. Las respuestas se recopilan localmente y siguen siendo editables hasta que pulsas Enviar, lo que envía todo el conjunto de una vez; un clic erróneo nunca es definitivo. También puedes escribir respuestas libres en el compositor en la parte inferior de la ventana, o pulsar Abrir terminal para observar la sesión en bruto.

Cuando el agente tiene lo que necesita, archiva el plan en el tablero: tarjetas de fase ordenadas en la columna Plan, cada una aproximadamente una pull request de trabajo revisable, con dependencias entre ellas, y registra un resumen del plan. La ventana muestra entonces El plan está listo con el recuento de fases y un botón Cerrar, la pestaña de la sesión de planificación se cierra sola, y el brief abandona el Backlog (sus fases lo sustituyen; elimínalas todas y vuelve).

La planificación se vigila: si el espacio de trabajo se reinicia, se cierra el agente o la sesión muere antes de que se archiven las fases, el spinner de la tarjeta termina con un motivo concreto —haz clic en Planificar para reintentar— en lugar de girar para siempre.

La columna Plan

Las tarjetas de fase se numeran en el orden del plan y llevan:

  • Una insignia de dependencia (un candado con números de fase) cuando la fase necesita primero que fases anteriores estén Completado.
  • Una insignia en cola cuando la iniciaste antes de que sus dependencias terminaran: se inicia automáticamente en el momento en que todas están Completado.
  • El nombre de su brief padre.

Selecciona varias fases con las casillas y aparece la barra de selección: Iniciar N seleccionadas hace de un tiro cada una (las fases con dependencias pendientes se ponen en cola), Limpiar descarta la selección y Eliminar quita toda la selección tras una sola confirmación. Editar una fase muestra su lista Depende de: cada fase hermana con una casilla, para que las dependencias puedan rehacerse a mano.

Las fases se ejecutan de forma totalmente autónoma: no se espera ninguna intervención interactiva una vez iniciadas.

En curso

Una tarea iniciada arranca el espacio de trabajo si es necesario, crea un worktree nuevo del repositorio y lanza el agente con el brief como prompt. La tarjeta muestra un punto de estado del agente en vivo, cuándo se inició y Necesita tu intervención en rojo si el agente está bloqueado en una pregunta; hacer clic en la tarjeta salta a la sesión en vivo. La insignia TAREAS de la barra lateral las cuenta para que nunca te pierdas ninguna.

Cuando el agente informa de que ha terminado, la tarea pasa a Prueba/Revisión, y su pestaña de terminal se cierra sola: una sesión terminada no se queda ocupando la barra de pestañas. Si el agente se cuelga en su lugar, la tarjeta se vuelve roja en vez de fingir que trabaja.

Prueba/Revisión

La tarjeta de Prueba/Revisión abre la ventana de revisión: el diff completo de la rama contra su padre, leído en vivo desde la VM, con desplegables por archivo, recuentos de añadidos/eliminados y cualquier plan que el agente haya registrado.

Revisa como una pull request:

  • Comentarios por línea: pasa el cursor sobre cualquier línea añadida o de contexto y haz clic en la burbuja del margen para adjuntar un comentario a esa línea exacta; los comentarios anclados se renderizan debajo de sus líneas. Los comentarios a nivel de archivo y generales también funcionan.
  • Devolver a En curso entrega cada comentario redactado al agente —con formato En foo.js, línea 196: usa otro método— y la tarea vuelve a En curso para otra ronda. El agente reanuda en el mismo worktree y rama.
  • Fusionar: el valor por defecto del botón dividido fusiona en la rama padre; mantenlo pulsado para Aplastar y fusionar, Crear pull request… (cuando el espacio de trabajo tiene un token de GitHub) o fusionar en cualquier otra rama. Una fusión limpia cierra su propia pestaña de terminal; los conflictos abren en su lugar una sesión de resolución.
  • Cerrar sin fusionar descarta la ronda pero conserva el registro en Completado.

Consejo: El mismo flujo de comentarios por línea existe fuera del tablero: cuando la pestaña activa ejecuta un agente de código, al panel de diff del explorador de archivos le crecen las mismas burbujas de margen, y Enviar al agente agrupa tus comentarios directamente en esa sesión: revisión de código sin crear jamás una tarea.

Quitar tarjetas

A cada tarjeta le crece una al pasar el cursor (y una entrada de menú contextual Quitar del tablero), tras una confirmación. Para las tarjetas con trabajo real detrás, el diálogo ofrece una elección: Detener agente y eliminar worktree (En curso) o Eliminar worktree y rama (Prueba/Revisión) lo desmonta todo, mientras que Quitar solo la tarjeta deja la sesión y el checkout intactos en el espacio de trabajo.

Almacenamiento y API

Las tareas persisten en un único archivo junto al almacén del espacio de trabajo, con escrituras atómicas y fechas ISO-8601:

~/Library/Application Support/BromureAC/tasks.json

Todo el tablero se refleja en el socket de control de la app para clientes enriquecidos y scripts:

EndpointPropósito
GET /tasksListar todas las tareas.
POST /tasksCrear o actualizar (upsert) un documento de tarea.
POST /tasks/<id>/startIniciarla (worktree + agente).
POST /tasks/<id>/planLanzar la sesión de planificación.
POST /tasks/<id>/commentAñadir un comentario de revisión (text, file y line opcionales).
POST /tasks/<id>/send-backEntregar los comentarios sin enviar y devolver la tarea a En curso.
POST /tasks/<id>/mergeFusionar (squash, target opcional).
POST /tasks/<id>/open-prCrear una pull request en lugar de fusionar.
POST /tasks/<id>/to-testing, /to-in-progressMoverla a mano.
POST /tasks/<id>/destroyDetener el agente, eliminar el worktree y la rama, quitar la tarjeta.
DELETE /tasks/<id>Quitar solo la tarjeta.

Bajo el capó, los agentes de planificación y de tarea responden al tablero a través de un servidor MCP de tablero por sesión (vsock, del lado del host): board_get_task, board_set_plan, board_create_subtasks y board_ready_for_review son la forma en que se archivan las fases y en que una tarea terminada se anuncia: sin sondeo, sin scraping. Las herramientas se cablean automáticamente para cada agente compatible: Claude Code carga una configuración MCP por rama, Codex recibe overrides mcp_servers por invocación, y Grok lee un .grok/settings.json con alcance de proyecto escrito en el checkout de la sesión (y excluido de su diff).