Communitygithub.com

WonJeong0913/paper-figure

Dessine et corrige les figures de méthode, pipeline et architecture d'un article de recherche sous forme de tableaux Claude Design modifiables, sans modèles de génération d'images. Préserve la structure de l'auteur, dimensionne le texte pour la conférence cible (ICML, NeurIPS, ICLR, ACL, AAAI, CVPR, IEEE, ACM, Nature), compare les candidats avec les figures de référence, mesure à la taille d'impression et exporte en PDF vectoriel et PNG 300 dpi.

Qu'est-ce que paper-figure ?

Cette compétence (skill) permet aux agents d'IA de produire des figures de haute qualité pour des articles de recherche, respectant les normes des grandes conférences et revues, et ce sans recourir à des modèles de génération d'images. Elle repose sur un principe fondamental : l'auteur (ou l'agent) dessine chaque élément séparément, garantissant un contrôle total sur la structure et le style. L'agent construit la figure sur un canevas Claude Design (ou, en l'absence de cet outil, un tableau HTML brut), ce qui permet à l'auteur de modifier, commenter et repositionner chaque composant. Le flux de travail est rigoureux : il commence par l'extraction de la structure exacte du système (modules, connexions, limites) à partir du code et du brouillon de l'article, puis la création de plusieurs candidats basés sur des figures de référence, une boucle d'audit automatisée (via `scripts/figure_audit.py`) pour vérifier la taille du texte, les chevauchements et la conformité, et enfin l'exportation en PDF vectoriel (avec polices intégrées) et en PNG 300 dpi. L'outil interdit explicitement les noms de modules inventés, les connexions non vérifiées par le code, et les affirmations de lisibilité non mesurées. Il offre un cadre complet pour produire des figures de niveau publication, depuis le schéma de pipeline jusqu'au diagramme d'architecture détaillé.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/WonJeong0913/paper-figure/tree/HEAD

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait paper-figure ?

Dessine une figure d'article à partir d'éléments distincts et modifiables, puis mesure-la à la taille à laquelle elle sera imprimée.

Principes

  • Pas de modèles de génération d'images. C'est vous (ou l'auteur) qui dessinez chaque élément.
  • Livrez la figure sous forme de tableau sur un canevas Claude Design dès que cet outil est disponible. C'est obligatoire. Créez ou mettez à jour le tableau d'abord, afin que l'auteur puisse déplacer, restyler et commenter chaque élément. Ne terminez jamais avec seulement un PNG, un PDF ou un fichier HTML local. Dessinez des tableaux HTML bruts sur le disque uniquement lorsque la session ne dispose pas de l'outil canevas, et mentionnez-le dans le rapport (references/drawing-boards.md).
  • Le PDF et le PNG sont des exportations, réalisées lorsque l'auteur le demande ou que la figure est finale : un PDF vectoriel avec du texte modifiable pour LaTeX, et un PNG 300 dpi généré à partir de celui-ci pour Word et les diapositives.
  • Le texte de la figure utilise exactement les noms du corps de l'article, dans la langue de l'article.
  • La structure est préservée. Vous pouvez modifier les formes et la disposition. Vous ne pouvez pas modifier les modules, les connexions ou les limites sans demander (voir "Registre de structure").
  • Choisissez la conférence cible avant de dessiner. Les conférences divergent : Nature limite le texte des figures à 7 pt, AAAI exige au moins 9 pt. Si l'auteur n'a pas choisi, sélectionnez la conférence typique de son domaine et mentionnez-le dans le rapport.
  • La barre de qualité est celle d'une figure de grande conférence. Regardez d'abord les figures de référence, construisez des candidats, et laissez l'auteur choisir. Ne vous arrêtez pas à des boîtes et des flèches.
  • Dites "passe" ou "aucun chevauchement" seulement après avoir mesuré avec scripts/figure_audit.py et avoir examiné le rendu vous-même. Cela remplace toute valeur par défaut "ne pas vérifier" de la surface de dessin.
  • La critique visuelle est consultative. Elle compte mal les éléments et manque les connexions. Jugez la structure uniquement avec le registre et --compare.

Flux de travail

  1. Lisez les sources : le brouillon de l'article, le code, et la propre figure de l'auteur. Relisez-les chaque fois que l'auteur dit "refaites-le".
  2. Construisez le registre de structure.
  3. Rédigez le brief et choisissez la conférence (references/venues.md).
  4. Ouvrez 2 à 3 figures de référence et rédigez la feuille de style.
  5. Dessinez 2 à 3 candidats sur le canevas qui diffèrent par la disposition ou le vocabulaire des formes, pas par des modifications mineures.
  6. Auditez, regardez, comparez, critiquerez. Corrigez jusqu'à ce que les erreurs soient nulles.
  7. Affichez la feuille de comparaison. L'auteur choisit.
  8. Exportez une fois que l'auteur a choisi, placez la figure dans le manuscrit, et examinez cette page.

Registre de structure (avant toute modification)

Une figure représente le système conçu par l'auteur. Extrayez chaque élément ci-dessous de la figure de l'auteur, de l'article et du code dans un tableau.

TypeÉlémentsSource
Modules (boîtes)noms exactsfigure originale / chemin du code / section de l'article
Connexions (flèches)expéditeur → récepteur : nom de la donnéele code qui produit cette donnée
Limitesce que chaque système, compétence ou outil englobefigure originale / code
État et ressourcesétat partagé, budgets, modèle partagé, corpus, paramètres apprisfigure originale / code
Décisions et bouclesrésultats de décision, chemins de rétroaction et de récurrencefonction de politique / algorithme
Entrées et sortiesentrée utilisateur, sortie finale, tenseurs d'entrée et de sortiefigure originale / code

Lorsque vous dessinez la méthode de quelqu'un d'autre, construisez le registre à partir de l'algorithme de l'article original et du code officiel, et citez-les.

  • Rien dans le registre ne peut disparaître, être renommé ou franchir une limite. Si cela doit changer (par exemple, la figure est en désaccord avec le code), demandez à l'auteur avant de modifier.
  • N'inventez pas de modules ou de flèches, et ne supprimez pas de connexions pour simplifier. Notez les omissions délibérées dans la légende ou le rapport.
  • La disposition peut changer. La direction du flux et le confinement ne le peuvent pas.
  • Les figures de détail fractionnent la figure d'ensemble. Les noms, les couleurs et les limites doivent correspondre.
  • Vérifiez chaque flèche par rapport au code : elle doit partir du module qui produit réellement ces données.
  • Après modification, vérifiez le registre ligne par ligne et exécutez python3 scripts/figure_audit.py NEW --venue icml --compare ORIGINAL. Le script ne peut pas voir les flèches non étiquetées ; vérifiez-les par rapport au registre manuellement.
  • Commencez le rapport par "Modifications de structure : aucune" ou la liste des modifications et si l'auteur les a approuvées.

Travailler avec l'auteur

  • Le propre dessin de l'auteur est la référence de base. Supprimez et alignez-vous par-dessus. Ne remplacez pas sa structure ou son style en bloc.
  • N'écrasez jamais l'original. Placez chaque nouvelle version à côté (Fig2_v2). L'auteur confirme.
  • Si l'auteur a modifié le tableau à la main, relisez le dernier fichier et travaillez dessus.
  • Ajoutez un type d'élément à la fois. Ajouter des panneaux d'étape, des pastilles et des boîtes de sortie en même temps rend la figure trop complexe.
  • Conservez les étapes voisines sous forme de boîtes en pointillés avec leurs vrais noms. Ne les supprimez pas et ne les réduisez pas à une flèche ou à un texte gris.
  • Signalez uniquement ce qui a changé, par figure. Si vous trouvez une divergence avec l'article ou le code, dites-le avant de modifier la figure.

Brief, références, feuille de style

Brief (un par figure)

Rôle :            vue d'ensemble (structure + procédure) / détail d'étape / bloc d'architecture
Type de figure :  A pipeline système ou agent / B modèle ou architecture
Conférence :      définit la largeur placée et le px du texte (references/venues.md)
Point à retenir : une ligne
Faits à garder :  le registre de structure
Laisser de côté :  les chiffres de résultat, les phrases qui appartiennent au corps, les paramètres tels que les noms de modèles

Figures de référence (2 à 3)

  • Ordre de préférence : l'article original de la méthode ou le dépôt officiel ; un article récent dans la même conférence avec le même type de figure ; les figures antérieures de l'auteur.
  • Ouvrez chacune et notez : le vocabulaire des formes, la signification de chaque couleur, les polices et la notation des variables, le squelette de la disposition, la quantité de texte, et ce qu'il ne faut pas imiter.
  • Ne reprenez que les conventions. Ne redessinez jamais une figure de référence et ne reproduisez pas sa palette et sa composition.

Feuille de style (une par article)

  • Chaque figure d'un article utilise un vocabulaire visuel unique : police, px du texte, couleurs et leurs significations, formes, épaisseurs de trait et de bordure, rayon de coin, pointes de flèche.
  • Avec scripts/dc_board.py, le dictionnaire STYLE est la feuille de style. Modifiez-le là, jamais par élément.

Règles de composition

  • Une boîte ne contient qu'un nom de fonction. Les phrases explicatives vont dans le texte du corps.
  • Une flèche porte une étiquette de nom de donnée. Ne numérotez pas les données.
  • Pas de noms génériques comme A/B/C ou "Vers B / Depuis A". Utilisez les vrais noms de modules.
  • Une limite n'englobe que la partie qui effectue réellement ce travail.
  • Le texte des boîtes sont des mots-clés : pas de phrases, rien de plus de 15 mots, pas de texte de corps collé, pas de listes d'équations. Un court exemple de donnée est l'exception.
  • Pas de badges de numéro d'étape sur les étapes. Pas de titre à l'intérieur de la figure ; le titre est la légende.
  • Une vue d'ensemble montre la structure et la procédure ensemble : entrée → processus → sortie se lit de gauche à droite en quelques secondes, les boucles de rétroaction sont en pointillés, et la sortie est clairement visible.
  • Faites passer un exemple concret à travers toutes les figures de détail, sous forme de petites puces à l'intérieur des boîtes.
  • Envisagez de fusionner la vue d'ensemble et le détail en panneaux a et b d'une seule figure (empilés ou lignes de zoom macro-micro). Construisez les deux comme candidats.
  • En cas de conflit entre les règles, décidez dans cet ordre : les relations et la direction correspondent au code et à l'article → le flux se lit en quelques secondes → lisible à la taille d'impression → alignement → esthétique.

Vocabulaire des formes, polices, couleurs et traits : references/style.md. Choisissez le vocabulaire A (pipelines système : cartes d'icônes, puces, panneaux) ou B (architectures : la forme indique le type) et ne les mélangez pas dans un même article.

Taille

Texte imprimé (pt) = px du texte × largeur placée (pt) ÷ largeur du tableau (px). Le même tableau s'imprime à des tailles différentes dans différentes conférences, donc remesurez à chaque changement de conférence. Préréglages et tailles en px : references/venues.md.

  • Gardez les tailles de texte presque uniformes dans une figure. Ne réduisez pas certains textes pour les faire entrer : déplacez le texte vers la légende, agrandissez la boîte ou le tableau, coupez la ligne, ou fractionnez la figure.
  • Le texte ne doit pas sortir de sa boîte ni se trouver à moins de 6 px de la bordure.
  • Cinq boîtes ou plus dans une rangée manquent de largeur : coupez les titres sur 2 à 3 lignes, puis passez à deux rangées.
  • Une figure large va à pleine largeur de texte (figure*). Dans une colonne, son texte est réduit de moitié.
  • Avec plusieurs panneaux, alignez les rangées exactement ou séparez-les de 7 px ou plus.

Boucle d'audit

Configuration : pip install playwright numpy pillow && python3 -m playwright install chromium (poppler-utils permet la vérification PDF).

python3 scripts/figure_audit.py project/Fig2.dc.html --venue icml --png fig2.png     # mesurer + rendre
python3 scripts/figure_audit.py project/Fig2.dc.html --venue nature --column         # figure sur une colonne
python3 scripts/figure_audit.py project/Fig2.dc.html --placed-mm 165 --min-pt 8      # conférence sans préréglage
python3 scripts/figure_audit.py project/Fig2.dc.html --venue icml --cvd fig2         # gris + daltonien
python3 scripts/figure_audit.py project/Fig2_v2.dc.html --venue icml --compare project/Fig2.dc.html   # étiquettes conservées ?
  1. Corrigez jusqu'à ce que ERROR soit 0 : texte en dessous ou au-dessus des limites, texte hors de sa boîte, texte qui se chevauche, texte hors du canevas, étiquette manquante par rapport à l'original. Pour chaque WARN (texte touchant une bordure, texte traversant une ligne, glyphes de secours, texte sur fond gris, traits en dessous du minimum, alignement approximatif), zoomez sur le rendu et décidez.
  2. Regardez le rendu à la taille placée, et les trois images --cvd.
  3. Vérifiez à nouveau les flèches et les étiquettes par rapport au registre, au code et à l'article.
  4. Notez avec le tableau de critique et comparez avec les figures de référence.
  5. Conservez le fichier précédent à chaque tour et enregistrez uniquement ce qui a changé.

Ordre de correction (empêche les reprises) : canevas et marges → grandes régions et ordre d'empilement → tailles des formes → remplissages et bordures → extrémités des connecteurs → texte → décoration.

Terminé signifie les trois : l'audit passe, vous avez regardé la taille placée, et la critique atteint la note de passage. Un audit réussi seul ne suffit pas. Si des problèmes persistent après cinq tours, la disposition elle-même est erronée : dites-le à l'auteur et décidez ensemble.

Candidats et critique

Créez 2 à 3 tableaux avec la même structure et une disposition ou un vocabulaire différent (panneaux a/b vs lignes de zoom, gauche à droite vs bas en haut, vocabulaire A vs B). Empilez les candidats et les figures de référence en une seule image et montrez-la :

from PIL import Image
ims = [Image.open(p).convert("RGB") for p in ["vA.png", "vB.png", "ref.png"]]
W = 1584; ims = [im.resize((W, round(im.size[1] * W / im.size[0]))) for im in ims]
sheet = Image.new("RGB", (W, sum(im.size[1] + 30 for im in ims)), "white"); y = 0
for im in ims: sheet.paste(im, (0, y)); y += im.size[1] + 30
sheet.save("compare_sheet.png")

Notez chaque dimension de 0 à 2,5 (total 10). Tout veto met cette dimension à 0.

DimensionSignificationVeto
Fidélitémontre la méthode dans le cadre de la légende ; une simplification raisonnable est acceptablemodule ou connexion inventé, flux inversé, connexion obligatoire manquante, hors cadre, texte cassé ou formules fausses
Concisionun résumé visuel avec un bon rapport signal/bruitphrases dans les boîtes (plus de 15 mots), texte du corps collé, listes d'équations
Lisibilitéflux en un coup d'œil, texte lisibletitre ou légende à l'intérieur de la figure, étiquettes redondantes, chevauchements, texte minuscule ou inégal, flux embrouillé
Esthétiquefinition de grande conférenceartefacts de grille, formes cassées, couleurs néon ou criardes, clip art, polices mélangées, mauvais alignement, fond noir

Notes de passage : journal 8,5, conférence 8,0, thèse 8,0, poster 7,0, diapositives 6,5. Pour chaque dimension, écrivez aussi "meilleur / égal / pire que la référence" avec une ligne de raisonnement.

Exportation

python3 scripts/dc_export.py <root> Fig2.dc.html --out paperfigs --venue icml
  • Écrit Fig2.pdf (vectoriel, taille du tableau) et Fig2.png (300 dpi à la largeur placée).
  • La vérification PDF doit passer : toutes les polices intégrées, pas de polices Type 3, pas d'images matricielles. En cas d'échec, corrigez d'abord la liste des polices (references/style.md).
  • LaTeX : \includegraphics[width=\textwidth]{figures/fig2.pdf} à l'intérieur de figure*. Ne réduisez pas avec \resizebox ou scale=. Les figures sur une colonne utilisent figure et \columnwidth.
  • Word et diapositives : insérez le PNG à la largeur de la figure, puis vérifiez cette page pour les chevauchements et les sauts de page.
  • Sauvegardez la figure précédente avant de la remplacer dans le manuscrit, et ne remplacez qu'après la décision de l'auteur.
  • Les légendes suivent le modèle de la conférence. Indiquez dans la légende ce que signifient les symboles d'exemple, ce qui a été volontairement omis et que l'exemple est illustratif.

Interdictions

  • Ajouter, supprimer ou renommer un module, une connexion ou une limite sans la confirmation de l'auteur.
  • Utiliser un modèle de génération d'images, livrer une figure finale uniquement matricielle, ou copier une figure de référence.
  • Terminer avec seulement un PNG, un PDF ou un fichier local lorsqu'un outil canevas est disponible.
  • Mettre des chiffres de résultat dans une figure de méthode, ou varier les règles de couleur, la taille du texte ou le vocabulaire entre les figures d'un même article.
  • Mettre du texte sur fond gris, utiliser des bordures CSS en px fractionnaires, ou livrer un PDF avec des polices Type 3.
  • Écraser l'original de l'auteur, intervertir une figure dans le manuscrit sans demande, ou choisir le candidat pour l'auteur.
  • Prétendre "lisible" ou "aucun chevauchement" sans avoir mesuré.

Fichiers

FichierUtilisation
scripts/dc_board.pyconstruit des tableaux à partir de Python court : cartes, cartes d'icônes, trapèzes, cercles d'opération, tenseurs, panneaux, flèches
scripts/figure_audit.pymesure une figure à la taille d'impression ; --venue, --compare, --cvd
scripts/dc_export.pytableau → PDF vectoriel + PNG 300 dpi, avec vérification des polices et des images matricielles PDF
references/venues.mdpréréglages des conférences : largeurs, règles énoncées, plus petit texte en px
references/style.mdvocabulaires de formes A et B, polices, couleurs, traits, densité
references/drawing-boards.mddessin sur un canevas Claude Design ou sous forme de tableaux HTML bruts ; appels à dc_board.py ; notes TikZ
references/credits.mdsources des procédures empruntées et leurs licences
examples/figures exécutables qui passent l'audit : react-agent (vocabulaire A), transformer-block (vocabulaire B), rag-pipeline (minimal)

Skills associés