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.
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.
agents:read), sem tocar no core. Só Open agent, Open Inbox e Reconnect GitHub pedem uma porta nova, que é decisão sua (D5).| Na tela de hoje | Por que atrapalha |
|---|---|
| Cinco colunas vazias com altura cheia | O que mais ocupa a página é o vazio. Medido na captura: poços 40%, cards 5%. |
| O único conteúdo fica na última coluna, à direita | A 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 board | Fora da vista, e o board inteiro desce quando ele abre. |
| Colunas pretas opacas sobre o fundo Glass | O vidro só aparece nas sobras. Na v2 as colunas não têm fundo e só os cards são opacos. |
| Peça | V2 | De onde veio |
|---|---|---|
| Abertura | Tí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 you | Lista 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 |
| Colunas | Sem poço de fundo. Cabeçalho com anel que preenche conforme a etapa, nome e número. | Foreman, Vee |
| Etapa vazia | Só o nome, sem coluna e sem o "0". Ao arrastar um card, vira um alvo "Drop in Review". | Harmony, usrnk1, Linear |
| Done | Só 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) |
| Card | Uma 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 Doing | Bolinhas e "2 agents at most". Acima do limite, só avisa: a regra trava agentes, não você. | GitHub Projects |
| Abrir um card | Gaveta à direita com o board visível, etapas clicáveis, agente, contexto, atividade e nota. | Linear (peek), Foreman |
| Arrastar | Card inclinado, vaga onde vai cair, coluna inteira acesa em luminosidade. Undo depois de soltar. | Balslev, Lauderdale, saasui |
| Erros | Título, uma frase e uma ação. O texto cru do servidor não aparece mais. | Foreman, regra da casa |
| Celular | Abas por etapa, uma coluna por vez, detalhe em folha, mover pelas etapas da folha. | Regra da casa |
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.

Entrou: estado do agente no topo do card; coluna recolhida.
Fora: borda lateral colorida, etiquetas de cor cheia.

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.

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.

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.

Entrou: a lista "Needs your approval" antes de tudo.
Fora: barras de progresso em porcentagem, que seriam inventadas: o agente não informa porcentagem.

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

Entrou: a coluna inteira acende ao receber o card.
Fora: o azul; aqui acende em luminosidade, sem cor.

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

Entrou: id pequeno acima do título, pouca coisa em cada card.
| Produto | O que a fonte diz | Como 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 Projects | Limite "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 Kanban | O 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 Agents | Agente 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.
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 tela | Vem de | Estado |
|---|---|---|
| Etapas recolhidas, Needs you, gaveta, arrastar, Undo, estados vazios | A página, com POST /move e /release que já existem | Existe |
| Há quanto tempo, "Ready for review 12 min ago" | updatedAt e history | Existe |
| Anel e "33 min left" | assignee.since, assignee.leaseUntil | Existe |
| Linha viva do agente | Última nota (note: no history) | Existe |
| "Waiting for your OK" | dispatch: filed for approval no history | Existe |
| Prioridade, etiquetas, "Blocked by" | priority, labels, blockedBy | Existe |
| Marca e nome da CLI; Working, Asking you | GET /api/ext/v1/agents já devolve cli, running e state | Uma linha: agents:read |
| Open agent, Open Inbox, Reconnect GitHub | Uma página aberta em Apps não tem como levar a pessoa a um agente, ao Inbox ou aos ajustes | Porta nova (D5) |
| Ordem manual dentro da coluna | O card não tem posição; a ordem é a do next: prioridade e depois id | Fora da v2 |
| Link do PR e diff no card | O sync só lê issues | Depois |
| Porcentagem de progresso | Nenhum agente informa | Recusado |
| Pessoa | Abre 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. |
| Agente | Nada 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. |
| Sistema | O 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. |
| Etapa | Condição | O card diz | Needs you | Ação |
|---|---|---|---|---|
| Ready | Despacho arquivado | Waiting for your OK | Sim | Open Inbox |
| Ready | Sem despacho | Só id e etiquetas | Não | Arrastar |
| Doing | Claim válido, agente trabalhando | Working | Não | Open agent |
| Doing | Claim válido, agente perguntou | Asking you | Sim | Open agent |
| Doing | Claim válido, agente parado | Idle | Não | Open agent |
| Doing | Claim vencido | Claim expired | Sim | Back to Ready |
| Doing | Sem agente (pessoa moveu) | No agent yet | Não | Arrastar |
| Review | Qualquer | Ready for review | Sim | Mark merged |
| Blocked | Com blockedBy | Blocked by #n | Não | Abrir o card |
| Done | Merge ou closed upstream | Linha compacta | Não | Abrir o card |
A recomendação vem primeiro. Um "ok, siga as recomendações" fecha todas.
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.
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.
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.
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.
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.
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.
Recomendo manter como é: pode, e a coluna só avisa ao passar de 2. O limite existe para os agentes não se atropelarem.
Recomendo sim. Sai barato e serve para backlog longo. Alternativa: só o quadro na primeira versão.
| Fase | O que entra | Toca no core? | Pronto quando |
|---|---|---|---|
| F1. A página | Nova ui/board.html com tudo do protótipo; agents:read e a junção no GET /board para nome, CLI e estado | Não | Numa 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ção | Se D5 for sim: Open agent, Open Inbox, Reconnect GitHub | Sim, emenda à ADR-0230 | make close verde; a página só navega depois de um clique |
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.
#26262f), mas não é o Mica de verdade. A Vidraça é uma simulação do fundo. Só o app no Windows confirma.