Board v2

Proposta da nova tela da extensão Board, feita a partir da sua captura de hoje, de 36 shots do Dribbble e dos produtos de referência. Só proposta e protótipo: nada da extensão mudou.

08/11/2026Pedido do donoProtótipo com dados simulados, menos o cenário "Dados reais"

Protótipo: hoje × v2

Tudo funciona. Arraste um card entre as colunas (o Done pede a referência do merge) ou clique nele para abrir. No teclado: N cria um card, / filtra, as setas andam entre os cards, Espaço abre, M move e ? mostra os atalhos.

Resumo

O que sua captura mostra

Na tela de hojePor que atrapalha
Cinco colunas vazias com altura cheiaO que mais ocupa a página é o vazio. Medido na captura: poços 40%, cards 5%.
O único conteúdo fica na última coluna, à direitaA leitura termina no que já acabou. O que está em andamento não tem destaque nenhum.
JSON do servidor no cabeçalho (answered 500: {"error":…)Erro técnico em texto corrido, sem dizer o que fazer. Empurra New card sozinho para uma segunda linha.
Card só com título, número e "closed upstream"Não diz quem está nele, há quanto tempo, nem se precisa de você.
Nada mostra o que depende de vocêÉ a primeira pergunta de quem abre um board de agentes, e a resposta exige abrir card por card.
Linha fixa de atalhos no rodapéDocumentação na tela. E as setas esquerda e direita andam na lista inteira, não entre colunas (ui/board.html:316).
O detalhe do card abre abaixo do boardFora da vista, e o board inteiro desce quando ele abre.
Colunas pretas opacas sobre o fundo GlassO vidro só aparece nas sobras. Na v2 as colunas não têm fundo e só os cards são opacos.

O que muda

PeçaV2De onde veio
AberturaTítulo e uma frase viva: "4 need you, 1 working, 2 ready", com a marca da CLI de quem está trabalhando ao lado do número.Victoria Grinevich, Foreman
Needs youLista de linhas só quando há algo seu: motivo, card, quem, uma ação. O âmbar fica só na bolinha. Some quando não há nada.Sujon Hossain, Foreman
ColunasSem poço de fundo. Cabeçalho com anel que preenche conforme a etapa, nome e número.Foreman, Vee
Etapa vaziaSó o nome, sem coluna e sem o "0". Ao arrastar um card, vira um alvo "Drop in Review".Harmony, usrnk1, Linear
DoneSó o nome com o total enquanto há trabalho. Clicado, abre em linhas. Sem trabalho ativo, vira o conteúdo da página.Harmony, Foreman (que nem tem Done)
CardUma anatomia só: estado no topo (Working, Asking you, Ready for review), título, última nota do agente, marca da CLI e anel do tempo que ele ainda tem.Harmony, Vee, Hafidz
Limite do DoingBolinhas e "2 agents at most". Acima do limite, só avisa: a regra trava agentes, não você.GitHub Projects
Abrir um cardGaveta à direita com o board visível, etapas clicáveis, agente, contexto, atividade e nota.Linear (peek), Foreman
ArrastarCard inclinado, vaga onde vai cair, coluna inteira acesa em luminosidade. Undo depois de soltar.Balslev, Lauderdale, saasui
ErrosTítulo, uma frase e uma ação. O texto cru do servidor não aparece mais.Foreman, regra da casa
CelularAbas por etapa, uma coluna por vez, detalhe em folha, mover pelas etapas da folha.Regra da casa

Dribbble: o que entrou e o que ficou de fora

36 shots lidos como imagem (buscas "kanban board dashboard" e "ai agent task board"). Miniaturas só como referência interna, com link e crédito.

Harmony Board, Alex Vey

Entrou: estado do agente no topo do card; coluna recolhida.

Fora: borda lateral colorida, etiquetas de cor cheia.

Foreman, ASCII Studio

Entrou: linhas de decisão com botão; aviso de uma linha com causa e ação; id em fonte mono.

Fora: a fileira de KPIs, porque esses números já estão nas colunas.

Kanban Board Cards, Vee

Entrou: barrinhas de prioridade, anel de progresso, versão escura que funciona.

Fora: descrição no card e contadores de anexo que o Board não tem.

Kanban Management, Victoria Grinevich

Entrou: título forte no alto e rostos de quem está no board (aqui, as marcas das CLIs).

Fora: uma cor por coluna: colidiria com verde, âmbar e azul de estado.

AI Agent Workspace, Sujon Hossain

Entrou: a lista "Needs your approval" antes de tudo.

Fora: barras de progresso em porcentagem, que seriam inventadas: o agente não informa porcentagem.

Kanban Drag & Drop, Frederik Balslev

Entrou: o card inclinado e a vaga aberta onde ele vai cair.

Volley, Alex Lauderdale

Entrou: a coluna inteira acende ao receber o card.

Fora: o azul; aqui acende em luminosidade, sem cor.

Orders Status Board, usrnk1

Entrou: a ideia de recolher a coluna que não tem nada para mostrar.

Minimalist Kanban, Moh. Hafidz

Entrou: id pequeno acima do título, pouca coisa em cada card.

Produtos de referência

ProdutoO que a fonte dizComo entra aqui
Linear"Descriptions are not shown on cards"; tecla Espaço espia o card; "Show empty groups" e esconder coluna.Card sem descrição, gaveta de espiar, etapa vazia recolhida por padrão.
GitHub ProjectsLimite "at the top of the column", destacado quando estoura, e "does not restrict anyone from adding cards".Igual à regra atual do Board: o limite trava o claim do agente, não a pessoa.
Cline Kanban"every card is a live agent task"; "When something is blocked, you see it immediately".Estado vivo no card e a faixa Needs you.
Vibe KanbanO card vai para Review quando o agente termina; logs ao vivo; recusa cria nova tentativa. O site avisa que o projeto está sendo descontinuado."Ready for review" quando o agente termina. Tentativas ficam fora: seria outro modelo de dados.
Linear AgentsAgente aparece no menu de responsável; issues delegadas seguem em My issues "so you maintain visibility and control".O agente é quem assina o card, com nome e CLI.
saasui (arrastar)Card que falha "should return with an explanation"; "Moved to Done · Undo"; mover por teclado com ação explícita "move to".Undo, tecla M e volta do card com o motivo.

Li também a documentação do Plane, que não diz nada sobre card, coluna vazia ou limite. A página de colunas recolhidas do Trello respondeu 404 e não foi usada.

De onde vem cada dado

Para a v2 não prometer o que o Board não sabe. Li rules.mjs, process.mjs, os dados reais e a Host API.

Na telaVem deEstado
Etapas recolhidas, Needs you, gaveta, arrastar, Undo, estados vaziosA página, com POST /move e /release que já existemExiste
Há quanto tempo, "Ready for review 12 min ago"updatedAt e historyExiste
Anel e "33 min left"assignee.since, assignee.leaseUntilExiste
Linha viva do agenteÚltima nota (note: no history)Existe
"Waiting for your OK"dispatch: filed for approval no historyExiste
Prioridade, etiquetas, "Blocked by"priority, labels, blockedByExiste
Marca e nome da CLI; Working, Asking youGET /api/ext/v1/agents já devolve cli, running e stateUma linha: agents:read
Open agent, Open Inbox, Reconnect GitHubUma página aberta em Apps não tem como levar a pessoa a um agente, ao Inbox ou aos ajustesPorta nova (D5)
Ordem manual dentro da colunaO card não tem posição; a ordem é a do next: prioridade e depois idFora da v2
Link do PR e diff no cardO sync só lê issuesDepois
Porcentagem de progressoNenhum agente informaRecusado

O que a pessoa, o agente e o sistema fazem

PessoaAbre e vê o que depende dela. Aprova no Inbox, marca o merge, devolve para Ready o card de um claim vencido, arrasta, anota, cria card.
AgenteNada muda: as mesmas ferramentas board (next, claim, move, comment…). Cada comment vira a linha viva no card, então escrever notas passa a valer mais.
SistemaO processo continua sincronizando o GitHub e arquivando despachos, e passa a juntar o estado dos agentes ao GET /board. A página segue lendo a cada 5 s e ao ganhar foco.

Tabela de decisão: o que o card diz

EtapaCondiçãoO card dizNeeds youAção
ReadyDespacho arquivadoWaiting for your OKSimOpen Inbox
ReadySem despachoSó id e etiquetasNãoArrastar
DoingClaim válido, agente trabalhandoWorkingNãoOpen agent
DoingClaim válido, agente perguntouAsking youSimOpen agent
DoingClaim válido, agente paradoIdleNãoOpen agent
DoingClaim vencidoClaim expiredSimBack to Ready
DoingSem agente (pessoa moveu)No agent yetNãoArrastar
ReviewQualquerReady for reviewSimMark merged
BlockedCom blockedByBlocked by #nNãoAbrir o card
DoneMerge ou closed upstreamLinha compactaNãoAbrir o card

Decisões D1–D8

A recomendação vem primeiro. Um "ok, siga as recomendações" fecha todas.

D1. Etapa vazia deixa de ser coluna?

Recomendo sim. É o que tira os poços pretos: fica só o nome, que vira alvo ao arrastar. Alternativa: seis colunas sempre visíveis, só que sem fundo; a tela fica calma, mas com títulos sobre nada.

D2. Faixa Needs you no topo?

Recomendo sim. Responde à primeira pergunta ao abrir. Custa altura, e só aparece quando há algo. Alternativa: um filtro "Needs you", mais discreto, que exige um clique.

D3. Done recolhido enquanto há trabalho?

Recomendo sim. Vira o conteúdo da página quando não há trabalho ativo, e a sua escolha fica salva. Alternativa: Done sempre aberto, com colunas mais estreitas.

D4. Pedir agents:read para mostrar nome, CLI e estado?

Recomendo sim. Uma linha no manifesto, e a extensão passa a ver seus agentes; a permissão nova aparece na revisão ao atualizar. O card guarda só o id do agente, então sem ela a tela mostraria um id cru no lugar do nome.

D5. Criar uma porta para a página levar você a um agente, ao Inbox ou aos ajustes?

Recomendo sim, com lista fechada e só depois de um clique, como a porta workspace (ADR-0230, ADR-0401). Muda uma decisão documentada, então é sua. Sem ela, esses três botões somem e o card diz onde ir.

D6. Aprovar despacho dentro do Board?

Recomendo não, por enquanto. A aprovação continua no Inbox, onde fica o registro, e o botão leva até ela. Aprovar aqui pediria mais uma porta de escrita.

D7. A pessoa pode passar do limite do Doing?

Recomendo manter como é: pode, e a coluna só avisa ao passar de 2. O limite existe para os agentes não se atropelarem.

D8. Vista em lista junto com a v2?

Recomendo sim. Sai barato e serve para backlog longo. Alternativa: só o quadro na primeira versão.

Fases

FaseO que entraToca no core?Pronto quando
F1. A páginaNova ui/board.html com tudo do protótipo; agents:read e a junção no GET /board para nome, CLI e estadoNãoNuma scratch, com agente real em Working e Asking you: vazio, erro, muitos e celular capturados nos três materiais; revisão visual e testes da extensão passando
F2. Porta de navegaçãoSe D5 for sim: Open agent, Open Inbox, Reconnect GitHubSim, emenda à ADR-0230make close verde; a página só navega depois de um clique

Bug achado: o sync parou por causa da troca de nome da extensão

O erro da sua captura (the extension's secrets cannot be opened on this machine (the key changed)) não é chave trocada. Os segredos são selados com o id da extensão como dado autenticado (internal/extensions/secrets.go). Quando a extensão passou de picode-board para board (ADR-0405, 06/11), MoveInstalled só renomeou a pasta e o arquivo continuou selado com o id antigo.

Isso atinge qualquer extensão renomeada que tenha segredo guardado. A correção é pequena e é no core: ao mover, reabrir com o id antigo e selar com o novo. Depois dela, o sync volta sem você digitar o token de novo. Reproduzi num teste com um segredo fictício e uma pasta temporária: antes da troca de nome ele abre, depois dá exatamente esse erro. Não toquei no seu token. A correção não faz parte da v2.

Limites desta proposta