Tarefas de código

O quadro de código transforma um briefing escrito em código integrado com tão pouca cerimónia quanto quiser: escreva o que precisa, planeie-o em fases revisáveis com um agente de planeamento interativo ou faça-o de uma só vez, veja o agente trabalhar na sua própria worktree do git, reveja o diff com comentários ancorados à linha e faça merge. Cada etapa é uma coluna; cada tarefa é um cartão.

A barra lateral mantém uma fina secção TAREFAS perto do topo — uma linha de pulso resume o quadro (9 planeadas · 1 em curso · 2 a rever) com um crachá laranja a contar os cartões à espera em Teste/Revisão e um crachá vermelho quando um agente precisa da sua intervenção. Clique no título da secção ou na linha para abrir o quadro, ou prima ⇧⌘T a partir de qualquer lugar.

O quadro de Tarefas de código: Backlog com um briefing que oferece Planear e De uma só vez, Plano com dois cartões de fase numerados (o segundo bloqueado atrás de uma dependência), Em curso com uma tarefa em execução, Teste/Revisão com um cartão a mostrar o seu ramo e uma contagem de comentários, e Concluído com um cartão integrado.
ColunaO que está ali
BacklogOs briefings que escreveu mas não iniciou. Cada cartão oferece Planear e De uma só vez.
PlanoOs cartões de fase que um agente planeador arquivou a partir de um briefing — numerados, conscientes das dependências, multisselecionáveis.
Em cursoFases e tarefas de uma só vez em que um agente está a trabalhar ativamente, cada uma na sua própria worktree.
Teste/RevisãoTrabalho terminado à sua espera: o cartão abre a janela de revisão com o diff do ramo.
ConcluídoTarefas integradas, submetidas como pull request ou fechadas sem merge.

Tudo nesta página funciona de forma idêntica a partir de um cliente rico remoto — o quadro, a janela de planeamento e a janela de revisão são todos espelhados através da API de controlo.

Escrever uma tarefa

+ Nova tarefa (ou clicar num cartão do backlog) abre o editor:

  • Um Título e uma descrição escrita em Markdown, com um alternador Escrever / Pré-visualizar. O briefing torna-se o prompt do agente, por isso escreva-o como tal.
  • Espaço de trabalho e Agente — a tarefa executa dentro do espaço de trabalho escolhido com um dos seus agentes configurados.
  • Iniciar o agente em — uma pasta dentro do espaço de trabalho. Quando é um repositório git próprio, a tarefa executa aí numa worktree e num ramo novos.
  • Criar pasta e repo git se necessário — para trabalho de raiz: iniciar ou planear executa primeiro mkdir + git init (com um commit raiz vazio) quando a pasta ainda não é o seu próprio repositório. Deixe-o desligado para uma pasta dentro de um repo existente.

Um briefing no Backlog oferece dois botões:

  • De uma só vez envia a tarefa diretamente para Em curso: o agente faz tudo de forma autónoma e entrega-lhe o diff em Teste/Revisão.
  • Planear abre primeiro uma sessão de planeamento.

Planeamento

Planear lança uma sessão de planeamento visível e interativa e abre a sua janela — uma vista de conversa nativa, sem terminal necessário. A sessão abre no seu briefing, renderizado como um cartão; o agente explora o repositório apenas em leitura, narra o que encontra e faz perguntas quando o briefing deixa escolhas reais em aberto.

As perguntas chegam como um cartão com separadores — um separador por pergunta, espelhando exatamente o seletor que o agente mostra na sua própria sessão. As respostas são recolhidas localmente e permanecem editáveis até premir Submeter, o que envia o conjunto todo de uma vez; um clique errado nunca é definitivo. Também pode escrever respostas livres no compositor no fundo da janela, ou premir Abrir terminal para observar a sessão em bruto.

Quando o agente tem o que precisa, arquiva o plano no quadro — cartões de fase ordenados na coluna Plano, cada um sensivelmente uma pull request de trabalho revisável, com dependências entre si — e regista uma visão geral do plano. A janela mostra então O plano está pronto com a contagem de fases e um botão Fechar, o separador da sessão de planeamento fecha-se sozinho, e o briefing sai do Backlog (as suas fases substituem-no; elimine-as todas e ele regressa).

O planeamento é vigiado: se o espaço de trabalho reiniciar, o agente for encerrado ou a sessão morrer antes de as fases serem arquivadas, o spinner do cartão termina com um motivo concreto — clique em Planear para tentar de novo — em vez de girar para sempre.

A coluna Plano

Os cartões de fase são numerados pela ordem do plano e trazem:

  • Um crachá de dependência (um cadeado com números de fase) quando a fase precisa primeiro que fases anteriores estejam Concluído.
  • Um crachá em fila quando a iniciou antes de as suas dependências terminarem — arranca automaticamente no momento em que estão todas Concluído.
  • O nome do seu briefing-mãe.

Selecione várias fases com as caixas de verificação e a barra de seleção aparece: Iniciar N selecionadas faz cada uma de uma só vez (as fases dependentes ficam em fila), Limpar descarta a seleção, e Eliminar remove toda a seleção atrás de uma única confirmação. Editar uma fase mostra a sua lista Depende de — cada fase irmã com uma caixa de verificação, para que as dependências possam ser retrabalhadas à mão.

As fases executam de forma totalmente autónoma — nenhuma intervenção interativa é esperada uma vez iniciadas.

Em curso

Uma tarefa iniciada arranca o espaço de trabalho se necessário, cria uma worktree nova do repositório e lança o agente com o briefing como prompt. O cartão mostra um ponto de estado do agente em direto, quando começou, e Precisa da sua intervenção a vermelho se o agente estiver bloqueado numa pergunta — clicar no cartão salta para a sessão em direto. O crachá TAREFAS da barra lateral conta-as para que nunca perca nenhuma.

Quando o agente reporta como concluído, a tarefa passa para Teste/Revisão, e o seu separador de terminal fecha-se sozinho — uma sessão terminada não fica a ocupar a barra de separadores. Se o agente falhar em vez disso, o cartão fica vermelho em vez de fingir que trabalha.

Teste/Revisão

O cartão de Teste/Revisão abre a janela de revisão: o diff completo do ramo contra o seu pai, lido em direto a partir da VM, com expansores por ficheiro, contagens de adições/remoções e qualquer plano que o agente tenha registado.

Reveja como uma pull request:

  • Comentários por linha: passe o cursor sobre qualquer linha adicionada ou de contexto e clique na bolha da margem para anexar um comentário a essa linha exata; os comentários ancorados são renderizados sob as suas linhas. Comentários ao nível do ficheiro e gerais também funcionam.
  • Devolver a Em curso entrega cada comentário redigido ao agente — formatado como Em foo.js, linha 196: use um método diferente — e a tarefa regressa a Em curso para outra ronda. O agente retoma na mesma worktree e ramo.
  • Fazer merge — a predefinição do botão dividido faz merge no ramo-pai; mantenha-o premido para Squash & Merge, Criar pull request… (quando o espaço de trabalho tem um token do GitHub) ou fazer merge em qualquer outro ramo. Um merge limpo fecha o seu próprio separador de terminal; os conflitos abrem em vez disso uma sessão de resolução.
  • Fechar sem fazer merge descarta a ronda mantendo o registo em Concluído.

Dica: O mesmo fluxo de comentários por linha existe fora do quadro: quando o separador ativo executa um agente de código, o painel de diff do explorador de ficheiros ganha as mesmas bolhas de margem, e Enviar ao agente agrupa os seus comentários diretamente nessa sessão — revisão de código sem nunca criar uma tarefa.

Remover cartões

A cada cartão cresce um ao passar o cursor (e uma entrada de menu de contexto Remover do quadro), atrás de uma confirmação. Para os cartões com trabalho real por trás, a caixa de diálogo oferece uma escolha: Parar agente e eliminar worktree (Em curso) ou Eliminar worktree e ramo (Teste/Revisão) desmonta tudo, enquanto Remover apenas o cartão deixa a sessão e o checkout intactos no espaço de trabalho.

Armazenamento e API

As tarefas persistem num único ficheiro junto ao armazenamento do espaço de trabalho, com escritas atómicas e datas ISO-8601:

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

Todo o quadro é espelhado no socket de controlo da app para clientes ricos e scripts:

EndpointFinalidade
GET /tasksListar todas as tarefas.
POST /tasksCriar ou atualizar (upsert) um documento de tarefa.
POST /tasks/<id>/startIniciá-la (worktree + agente).
POST /tasks/<id>/planLançar a sessão de planeamento.
POST /tasks/<id>/commentAdicionar um comentário de revisão (text, file e line opcionais).
POST /tasks/<id>/send-backEntregar os comentários por enviar e devolver a tarefa a Em curso.
POST /tasks/<id>/mergeFazer merge (squash, target opcional).
POST /tasks/<id>/open-prCriar uma pull request em vez de fazer merge.
POST /tasks/<id>/to-testing, /to-in-progressMovê-la à mão.
POST /tasks/<id>/destroyParar o agente, eliminar a worktree e o ramo, remover o cartão.
DELETE /tasks/<id>Remover apenas o cartão.

Nos bastidores, os agentes de planeamento e de tarefa respondem ao quadro através de um servidor MCP de quadro por sessão (vsock, do lado do host): board_get_task, board_set_plan, board_create_subtasks e board_ready_for_review são a forma como as fases são arquivadas e como uma tarefa terminada se anuncia — sem polling, sem scraping. As ferramentas são ligadas automaticamente para cada agente suportado: o Claude Code carrega uma configuração MCP por ramo, o Codex recebe overrides mcp_servers por invocação, e o Grok lê um .grok/settings.json com âmbito de projeto escrito no checkout da sessão (e excluído do seu diff).