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 executeWB/wb wait --timeout 3300em segundo plano (run_in_background). - Se
WB_DATAfor definido, use o mesmo valor para todos os comandoswbsubsequentes (especifique no comando:WB_DATA=... WB/wb ...). - Se usar
WB_DATAdentro de um repositório git, adicione.whiteboard/ao.gitignore.
Ciclo de serviço
- Quando
waittermina 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. - 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 Houwb item ID. - Trabalhe no computador, se necessário: leia arquivos, execute scripts, faça cálculos.
- Responda usando
wb reply --file F --donee desenhe no quadro se for útil (veja abaixo). - Execute
waitnovamente em segundo plano. Código 2 significa tempo esgotado, sem solicitação: apenas executewaitnovamente, 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--filepara 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,ypara posicionar em outro lugar.
Comandos de desenho
| Comando | Uso |
|---|---|
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 DY | Molduras, 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 itenstexpor 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, userect/arrow. - A leitura é quase gratuita:
waitimprime apenas uma linha de descrição para cada imagem SVG, não o código fonte.
Detalhes da arquitetura e API: WB/docs/.