MrNhoiBong/WhiteBoard

Cria e serve o "Claude Scratchpad", um quadro branco local (servidor Python da biblioteca padrão, executado em venv) para os usuários desenharem ou escreverem LaTeX, selecionarem uma região e fazerem perguntas; o Claude no terminal lê essa região e responde ou desenha de volta no quadro.

O que é WhiteBoard?

Esta skill fornece um quadro branco local compartilhado que atua como um rascunho colaborativo entre o usuário e o Claude. O servidor é escrito em Python puro (bibliotecas padrão), executado em um ambiente virtual (venv) e gerenciado por scripts shell (wb). Os usuários podem desenhar à mão livre, escrever fórmulas LaTeX e destacar áreas específicas para fazer perguntas. O Claude no terminal lê o conteúdo dessas regiões, processa a solicitação (por exemplo, lendo arquivos, executando scripts, calculando) e responde com texto e/ou desenhando de volta no quadro. A skill suporta comandos para criar notas, desenhar formas geométricas (retângulos, setas), inserir diagramas SVG e gerenciar itens no quadro branco. O ciclo de serviço é orientado a eventos: o Claude executa um comando `wait` em segundo plano, que retorna quando o usuário faz uma nova solicitação ou o tempo limite expira. A resposta é fornecida através do comando `reply`, e o loop continua. Esta skill é ideal para sessões de brainstorming, resolução de problemas visuais e iterações de design onde a comunicação em tempo real com feedback visual é benéfica.

Funciona com✓Claude Code~Codex CLI~Cursor
npx skills add MrNhoiBong/WhiteBorad

Installed? Explore more Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Rascunho Claude (quadro branco)

Quadro branco local usado como rascunho compartilhado: o usuário desenha ideias, o Claude analisa no computador e responde desenhando no quadro. O código está na própria pasta desta skill; abaixo, WB é o caminho para a pasta que contém este arquivo.

Inicialização

export WB_DATA="$PWD/.whiteboard"   # opcional: quadro separado para o projeto atual (padrão: WB/data)
WB/wb start [--port 8765]           # cria automaticamente .venv (python3 -m venv --without-pip), sem pacotes externos
  • Forneça ao usuário a URL (http://127.0.0.1:8765) e execute WB/wb wait --timeout 3300 em segundo plano (run_in_background).
  • Se WB_DATA for definido, use o mesmo valor para todos os comandos wb subsequentes (especifique no comando: WB_DATA=... WB/wb ...).
  • Se usar WB_DATA dentro de um repositório git, adicione .whiteboard/ ao .gitignore.

Ciclo de serviço

  1. Quando wait termina com código 0: leia a saída. A saída contém a pergunta, a região selecionada, os itens na região (conteúdo de texto suficiente) e o caminho do PNG, se houver.
  2. Abra a imagem PNG apenas quando a saída a listar (somente quando a região contém traços à mão, molduras, setas ou formas). Não leia o quadro inteiro; se precisar de mais contexto, use wb look X Y W H ou wb item ID.
  3. Trabalhe no computador, se necessário: leia arquivos, execute scripts, faça cálculos.
  4. Responda usando wb reply --file F --done e desenhe no quadro se for útil (veja abaixo).
  5. Execute wait novamente em segundo plano. Código 2 significa tempo esgotado, sem solicitação: apenas execute wait novamente, não é necessário informar o usuário.

Quando o usuário quiser parar: WB/wb stop.

Regras de resposta

  • Toda fórmula matemática deve ser escrita em LaTeX ($…$ inline, $$…$$ display), tanto no chat quanto no quadro. A página usa MathJax para renderizar, macro disponível: \Adv.
  • Texto com várias linhas ou com $ deve ser gravado em um arquivo na pasta temporária e depois passado via --file para evitar erros de quoting do shell.
  • O conteúdo é Markdown-lite: **negrito**, *itálico*, `código`, listas, tabelas |…|.
  • Itens criados pelo Claude são, por padrão, roxos e posicionados ao lado da região sendo processada; use --at x,y para posicionar em outro lugar.

Comandos de desenho

ComandoUso
wb note [TEXT|--file F] [--color C] [--at x,y] [--w W]Nota em forma de cartão (Markdown + LaTeX)
wb tex [TEXT|--file F] [--size N]Texto ou fórmula sem moldura
wb svg --file F --title T [--w W --h H]Diagramas, gráficos, ilustrações (SVG)
wb rect X Y W H, wb arrow X Y DX DYMolduras, setas nativas do quadro
wb patch ID [--text|--file|--svgfile|--at|--color], wb rm ID…Editar, excluir
wb show [RID] [--pending], wb done [RID]Revisar ou fechar solicitação

Cores da nota: yellow, pink, sky, mint, violet. Cores do traço (rect, arrow): ink, red, blue, green, amber, violet.

Desenho SVG econômico em tokens

  • As imagens SVG são exibidas via <img> (seguro, sem execução de scripts), então LaTeX dentro do SVG não é renderizado. Se precisar de fórmulas, desenhe molduras e setas com SVG e coloque itens tex por cima.
  • Gráficos ou imagens com muitos pontos: gere o SVG com um script Python curto, não escreva as coordenadas manualmente. O custo será apenas o comprimento do script, não dependendo do número de pontos.
  • Use <style>, <defs> e <marker>, arredondando coordenadas. Se precisar apenas de algumas molduras e setas, use rect/arrow.
  • A leitura é quase gratuita: wait imprime apenas uma linha de descrição para cada imagem SVG, não o código fonte.

Detalhes da arquitetura e API: WB/docs/.

Habilidades Relacionadas