Bloc-notes Claude (tableau blanc)
Tableau blanc local servant de bloc-notes partagé : l'utilisateur dessine ses idées, Claude analyse sur la machine puis répond et dessine sur le tableau.
Le code se trouve directement dans le dossier de cette compétence ; ci-dessous WB désigne le chemin vers le dossier contenant ce fichier.
Démarrage
export WB_DATA="$PWD/.whiteboard" # optionnel : tableau dédié au projet courant (par défaut : WB/data)
WB/wb start [--port 8765] # crée automatiquement .venv (python3 -m venv --without-pip), sans paquet externe
- Donner l'URL à l'utilisateur (
http://127.0.0.1:8765), puis exécuterWB/wb wait --timeout 3300en arrière-plan (run_in_background). - Si
WB_DATAest défini, il doit être identique pour toutes les commandeswbsuivantes (à préciser directement dans la commande :WB_DATA=... WB/wb ...). - Si
WB_DATAest utilisé dans un dépôt git, ajouter.whiteboard/au.gitignore.
Boucle de service
- Quand
waitse termine avec le code 0 : lire la sortie. La sortie contient la question, la zone sélectionnée, les éléments dans la zone (texte suffisant) et le chemin PNG s'il y en a un. - N'ouvrir l'image PNG que si la sortie la mentionne (présente uniquement si la zone contient des traits, cadres, flèches ou formes). Ne pas lire l'intégralité du tableau ; pour plus de contexte, utiliser
wb look X Y W Houwb item ID. - Effectuer le travail sur la machine si nécessaire : lire des fichiers, exécuter des scripts, effectuer des calculs.
- Répondre avec
wb reply --file F --done, et dessiner sur le tableau si utile (voir ci-dessous). - Relancer
waiten arrière-plan. Le code 2 signifie que le temps est écoulé et qu'il n'y a pas de requête : il suffit de relancerwait, sans avertir l'utilisateur.
Quand l'utilisateur souhaite arrêter : WB/wb stop.
Règles de réponse
- Toute formule mathématique doit être écrite en LaTeX (
$…$en ligne,$$…$$en bloc), aussi bien dans le chat que sur le tableau. La page utilise MathJax pour le rendu, avec la macro prédéfinie :\Adv. - Pour un texte multiligne ou contenant
$, écrire dans un fichier temporaire, puis passer via--filepour éviter les erreurs de quoting du shell. - Le contenu est en Markdown-lite :
**gras**,*italique*,`code`, listes, tableaux|…|. - Les éléments créés par Claude sont par défaut en violet et placés à côté de la zone en cours de traitement ; utiliser
--at x,ypour les placer ailleurs.
Commandes de dessin
| Commande | Usage |
|---|---|
| `wb note [TEXT | --file F] [--color C] [--at x,y] [--w W]` |
| `wb tex [TEXT | --file F] [--size N]` |
wb svg --file F --title T [--w W --h H] | Schémas, graphiques, illustrations (SVG) |
wb rect X Y W H, wb arrow X Y DX DY | Cadres, flèches natives du tableau |
| `wb patch ID [--text | --file |
wb show [RID] [--pending], wb done [RID] | Révision ou clôture d'une demande |
Couleurs des notes : yellow, pink, sky, mint, violet. Couleurs des traits (rect, arrow) : ink, red, blue, green, amber, violet.
Dessiner des SVG économes en tokens
- Les images SVG sont affichées via
<img>(sûr, sans exécution de script), donc le LaTeX à l'intérieur d'un SVG n'est pas rendu. Pour une formule, dessiner le cadre et la flèche en SVG, puis placer les élémentstexpar-dessus. - Pour un graphique ou une forme avec de nombreux points : générer le SVG avec un court script Python, sans écrire les coordonnées à la main. Le coût est alors seulement la longueur du script, indépendante du nombre de points.
- Utiliser
<style>,<defs>et<marker>, arrondir les coordonnées. Pour quelques cadres et flèches, utiliserrect/arrow. - La lecture est quasiment gratuite :
waitn'affiche qu'une ligne de description pour chaque image SVG, sans le code source.
Détails d'architecture et API : WB/docs/.