Voltar ao blog

Triagem de issues por teclado

Triagem de issues por teclado

Você passa o dia no terminal. Navega arquivos com movimentos vim, troca painéis tmux com teclas de prefixo e busca no histórico do shell com Ctrl-R. Então precisa fazer triagem do seu backlog, e todas as ferramentas de gestão de projetos do planeta querem que você pegue o mouse.

Jira precisa de um clique para abrir um issue. Outro clique para fechar o painel. Outro para trocar de projeto. Linear é mais rápido, mas continua sendo fundamentalmente mouse-first: você aponta, clica, rola. GitHub Issues requer um carregamento de página completo para cada issue que você abre. Essas ferramentas foram projetadas para product managers trabalhando em navegadores, não para desenvolvedores trabalhando em terminais.

A fricção é pequena por interação e enorme ao longo de um dia. Se você faz triagem de 30 issues em uma manhã, são 30 ciclos de pegar-o-mouse, clicar, ler, clicar-fechar. Suas mãos saem do teclado 60 vezes para o que deveria ser uma varredura sequencial de uma lista.

Construímos o Beadbox para desenvolvedores que acham isso absurdo.

O workflow completo de triagem por teclado

Beadbox é um app desktop nativo (construído com Tauri, não Electron) que renderiza um dashboard visual em tempo real para o issue tracker beads. Mostra árvores de épicos, badges de dependência, filtros de status e barras de progresso. E você pode navegar tudo sem tocar no mouse.

Veja como é uma sessão de triagem:

  1. Abra o Beadbox. Seu workspace mais recente carrega automaticamente. Issues aparecem em uma tabela com badges de status, indicadores de prioridade e colunas de responsável.

  2. Pressione j para descer na lista. Pressione k para subir. São movimentos estilo vim, a mesma memória muscular que você já tem. O destaque de seleção acompanha sua posição.

  3. Pressione Enter para abrir o painel de detalhes. O issue selecionado se expande em um painel lateral mostrando a descrição completa, comentários, dependências e metadados. Você lê sem perder seu lugar na lista.

  4. Pressione Escape para fechar o painel. Você está de volta na lista, cursor exatamente onde deixou. Pressione j para ir ao próximo issue.

  5. Pressione / para buscar. Uma barra de busca aparece. Digite uma palavra-chave ou ID de issue, e a lista filtra instantaneamente. Pressione Escape para limpar a busca e voltar à lista completa.

  6. Use as setas em árvores de épicos. Quando você está vendo um épico com filhos aninhados, setas esquerda e direita colapsam e expandem nós da árvore. h e l também funcionam (navegação horizontal estilo vim). Você escaneia um épico de 15 issues sem clicar em um único triângulo de expansão.

É isso. j/k para mover, Enter para abrir, Escape para fechar, / para buscar, setas para expandir árvores. Cinco teclas cobrem 90% da navegação de triagem.

Se você encontra um issue que precisa de mudança de status ou aumento de prioridade durante a triagem, desce para o terminal:

bd update bb-f8o --status in_progress --priority 1

Beadbox capta a mudança em milissegundos (via filesystem watch e WebSocket) e re-renderiza. Você vê o badge de status atualizado sem refresh ou clique. Então pressiona j e segue em frente.

Por que leituras e escritas estão separadas de propósito

É aqui que a maioria das ferramentas GUI erra. Elas tentam lidar com tudo: ler issues, editar campos, mudar status, gerenciar dependências. O resultado são formulários. Muitos formulários. Dropdowns para status. Campos de texto para descrições. Diálogos modais para gestão de dependências. Cada uma dessas interações requer um clique.

Beadbox tomou uma abordagem diferente. É uma interface pesada em leitura. O CLI lida com as escritas.

O CLI do beads (bd) já é a fonte da verdade para seus dados de issues. Agentes usam. Scripts usam. Sua automação usa. Construir um segundo caminho de escrita por um GUI cria um problema de sincronização e dobra a superfície de bugs.

Em vez disso, Beadbox otimiza implacavelmente para compreensão e navegação. Responde as perguntas para as quais terminais são piores: como é a árvore completa do épico? Quais issues estão bloqueados, e por quê? Quão avançada está essa feature? O que mudou na última hora? São perguntas visuais. A saída de texto plano do bd list pode tecnicamente respondê-las, mas uma árvore colapsável com barras de progresso responde de relance.

Os atalhos de teclado existem para tornar esse relance rápido. Você escaneia, lê, entende. Quando precisa agir, digita um comando bd. Duas ferramentas, cada uma fazendo o que faz melhor.

Trocar de workspace sem perder contexto

Se você trabalha em múltiplos projetos, cada um com seu próprio banco de dados beads, a troca de workspace se torna um ponto de fricção diário. Na maioria das ferramentas de gestão de projetos, trocar de projeto significa navegar para uma URL diferente, fazer login em um workspace diferente ou abrir uma nova aba do navegador. Seus filtros resetam. Sua posição de scroll reseta. Você perde o contexto mental que tinha no projeto anterior.

Beadbox lida com isso de forma diferente. Um dropdown no header lista cada workspace detectado. Clique (ou navegue com o teclado), selecione um projeto diferente, e toda a view recarrega do banco de dados daquele projeto. O detalhe crucial: filtros e posição de scroll persistem por workspace. Quando você volta, tudo está exatamente onde deixou.

A detecção é automática. Beadbox escaneia ~/.beads/registry.json para workspaces registrados e descobre diretórios contendo bancos de dados .beads/. Adicione um novo projeto, rode bd init nele, e na próxima vez que abrir o Beadbox ele aparece no dropdown. Sem importação, sem tela de configuração, sem wizard de "adicionar workspace".

Para desenvolvedores que mantêm múltiplos serviços ou gerenciam agentes em vários repositórios, isso transforma o Beadbox em um painel único de todo o trabalho ativo. A alternativa é múltiplas janelas de terminal, cada uma rodando bd list contra um path --db diferente, e acompanhando qual janela aponta para qual projeto na sua cabeça.

Como as alternativas se comparam

Toda ferramenta importante de gestão de projetos requer interação com mouse para navegação básica:

Jira tem atalhos de teclado (j/k existem), mas navegam entre issues em uma view de lista que ainda requer clique para abrir detalhes, clique para trocar de projeto, e clique em menus profundamente aninhados para gerenciar épicos. Os atalhos parecem adicionados depois em vez de fundacionais.

Linear é a mais próxima de ser amigável ao teclado entre as ferramentas SaaS. Tem Cmd+K para paleta de comandos e alguns atalhos de navegação. Mas trocar de workspace ainda requer clique em um menu lateral, e a paleta de comandos é um modelo de interação search-first, não scan-first. Você precisa saber o que está procurando. Triagem é sobre escanear o que você ainda não sabe.

GitHub Issues não tem navegação de teclado significativa para triagem. Você clica em um issue para abri-lo (carregamento de página completo), clica no botão de voltar para retornar, e repete. Trocar entre repositórios é uma mudança de URL. Não há varredura de backlog por teclado.

Beadbox foi projetado em torno da triagem por teclado desde o início. Os atalhos não são um adendo sobre uma UI mouse-first. O modelo de navegação inteiro assume que suas mãos ficam no teclado. O mouse também funciona (tudo é clicável), mas é o fallback, não a interação principal.

O que você está realmente comparando

A diferença real não é "qual ferramenta tem mais atalhos de teclado." É o modelo de interação.

Ferramentas mouse-first otimizam para descobribilidade. Cada ação tem um botão visível. Isso é ótimo para onboarding e para usuários não técnicos que precisam encontrar funcionalidades. É péssimo para velocidade quando você já sabe o que está fazendo.

Ferramentas keyboard-first otimizam para throughput. Quando você aprende j/k/Enter/Escape, faz triagem na velocidade de leitura, não na velocidade de apontar. A contrapartida é uma curva de aprendizado inicial mais íngreme (você precisa saber que os atalhos existem). Para desenvolvedores que já usam movimentos vim no editor e terminal, essa curva é essencialmente plana.

Beadbox também faz uma contrapartida que ferramentas SaaS não podem: só funciona com beads. Você não obtém as integrações do Jira, os ciclos do Linear, nem os links de pull request do GitHub. Obtém um dashboard visual para um issue tracker nativo de Git que armazena tudo localmente, funciona offline, e permite que agentes de IA leiam e escrevam issues via pipes Unix. Se esse é seu stack, o workflow de teclado é incomparável. Se você precisa de notificações no Slack quando issues fecham, essa não é a ferramenta certa hoje.

Para começar

Instale o Beadbox com Homebrew:

brew tap beadbox/cask && brew install --cask beadbox

Se você já usa beads, o Beadbox detecta seus workspaces .beads/ automaticamente. Abra o app e comece a pressionar j.

Roda em macOS, Linux e Windows. Gratuito durante o beta.