Communitygithub.com

WonJeong0913/paper-figure

Erstellt und korrigiert Methoden-, Pipeline- und Architektur-Abbildungen für Forschungspapiere als editierbare Claude Design Boards, ohne Bildgenerierungsmodelle. Bewahrt die Struktur des Autors, skaliert Text für die Zielkonferenz (ICML, NeurIPS, ICLR, ACL, AAAI, CVPR, IEEE, ACM, Nature), vergleicht Kandidaten mit Referenzabbildungen, misst in Druckgröße und exportiert als Vektor-PDF und 300-dpi-PNG.

Was ist paper-figure?

paper-figure ist ein Skill für KI-Assistenten (Claude Code, Cursor usw.), der entwickelt wurde, um hochwertige Methodenabbildungen für wissenschaftliche Publikationen zu erstellen. Der Skill arbeitet auf einer Claude Design-Leinwand, sodass der Autor jedes Element (Formen, Pfeile, Text) nachbearbeiten, umstellen oder kommentieren kann. Es werden keine Bildgenerierungsmodelle verwendet – jedes Element wird vom Assistenten oder Autor gezeichnet. Der Skill stellt sicher, dass die Abbildung die Struktur der Arbeit originalgetreu wiedergibt (ein Strukturprotokoll wird aus Code und Papier extrahiert). Die Textgröße wird automatisch auf die Anforderungen der Zielkonferenz (ICML, NeurIPS, ICLR, ACL, AAAI, CVPR, IEEE, ACM, Nature) angepasst. Der Workflow umfasst: Quellenanalyse, Strukturprotokoll, Erstellung mehrerer Layout-Kandidaten, Messung und Prüfung der Druckgröße mittels Skripten (`figure_audit.py`), detaillierte visuelle Kritik und Export als Vektor-PDF und 300-dpi-PNG. Der Skill ist besonders wertvoll für Forschende, Studierende und Autoren, die präzise, druckreife Abbildungen für Einreichungen benötigen, die manuell bearbeitet und auf ihre Struktur geprüft werden können.

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

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht paper-figure?

Erstelle eine Abbildung für ein Forschungspapier aus separat platzierten, editierbaren Elementen und miss sie dann in der Größe, in der sie gedruckt wird.

Grundsätze

  • Keine Bildgenerierungsmodelle. Du oder der Autor zeichnet jedes Element.
  • Liefere die Abbildung als Board auf einer Claude Design-Leinwand, wann immer dieses Werkzeug verfügbar ist. Dies ist erforderlich. Erstelle oder aktualisiere zuerst das Board, damit der Autor jedes Element verschieben, umgestalten und kommentieren kann. Gib niemals nur eine PNG-, PDF- oder lokale HTML-Datei als Ergebnis ab. Zeichne nur dann einfache HTML-Boards auf der Festplatte, wenn die Sitzung kein Leinwand-Werkzeug hat, und vermerke dies im Bericht (referenzen/zeichnungs-boards.md).
  • PDF und PNG sind Exporte, die erstellt werden, wenn der Autor darum bittet oder die Abbildung fertig ist: ein Vektor-PDF mit Live-Text für LaTeX und ein daraus erstelltes 300-dpi-PNG für Word und Folien.
  • Der Text in der Abbildung verwendet genau die Namen aus dem Haupttext des Papiers, in der Sprache des Papiers.
  • Die Struktur bleibt erhalten. Du darfst Formen und Layout ändern. Du darfst keine Module, Verbindungen oder Grenzen ohne Rückfrage ändern (siehe „Strukturprotokoll").
  • Wähle die Zielkonferenz vor dem Zeichnen aus. Konferenzen sind uneinig: Nature begrenzt den Text in Abbildungen auf 7 pt, AAAI erfordert mindestens 9 pt. Wenn der Autor keine Wahl getroffen hat, wähle die für sein Fachgebiet typische Konferenz aus und nenne dies im Bericht.
  • Die Qualitätslatte ist eine Abbildung auf Top-Konferenz-Niveau. Sieh dir zuerst Referenzabbildungen an, baue Kandidaten und lass den Autor wählen. Hör nicht bei Kisten und Pfeilen auf.
  • Sage „bestanden" oder „keine Überlappung" erst nach dem Messen mit scripts/figure_audit.py und nachdem du dir das Rendering selbst angesehen hast. Dies überschreibt jede „nicht verifizieren"-Voreinstellung der Zeichenfläche.
  • Visuelle Kritik ist beratend. Sie zählt Elemente falsch und übersieht Verbindungen. Beurteile die Struktur nur mit dem Protokoll und --compare.

Arbeitsablauf

  1. Lies die Quellen: Papiervorabzug, Code und die eigene Abbildung des Autors. Lies sie jedes Mal erneut, wenn der Autor sagt „mach es neu".
  2. Erstelle das Strukturprotokoll.
  3. Schreibe das Briefing und wähle die Konferenz (referenzen/konferenzen.md).
  4. Öffne 2–3 Referenzabbildungen und schreibe das Stylesheet.
  5. Zeichne 2–3 Kandidaten auf der Leinwand, die sich im Layout oder in der Formsprache unterscheiden, nicht in kleinen Anpassungen.
  6. Prüfe, sieh nach, vergleiche, kritisiere. Korrigiere, bis die Fehlerzahl null ist.
  7. Zeige das Vergleichsblatt. Der Autor wählt aus.
  8. Exportieren, sobald der Autor gewählt hat, platziere die Abbildung im Manuskript und sieh dir diese Seite an.

Strukturprotokoll (vor jeder Bearbeitung)

Eine Abbildung zeigt das System, das der Autor entworfen hat. Extrahiere jeden der folgenden Punkte aus der Abbildung des Autors, dem Papier und dem Code in eine Tabelle.

ArtElementeQuelle
Module (Kästchen)exakte NamenOriginalabbildung / Codepfad / Papierabschnitt
Verbindungen (Pfeile)Sender → Empfänger : DatennameDer Code, der diese Daten produziert
GrenzenWas jedes System, jeder Skill oder jedes Werkzeug umschließtOriginalabbildung / Code
Zustand und Ressourcengeteilter Zustand, Budgets, geteiltes Modell, Korpus, gelernte ParameterOriginalabbildung / Code
Entscheidungen und SchleifenEntscheidungsergebnisse, Feedback- und RekurrenzpfadeRichtlinienfunktion / Algorithmus
Eingaben und AusgabenBenutzereingabe, endgültige Ausgabe, Eingabe- und Ausgabe-TensorenOriginalabbildung / Code

Wenn du die Methode einer anderen Person zeichnest, erstelle das Protokoll aus dem Algorithmus des Originalpapiers und dem offiziellen Code und zitiere diese.

  • Nichts im Protokoll darf verschwinden, umbenannt werden oder eine Grenze überschreiten. Wenn es sich ändern muss (z. B. wenn die Abbildung nicht mit dem Code übereinstimmt), frage den Autor vor der Bearbeitung.
  • Erfinde keine Module oder Pfeile und lasse keine Verbindungen weg, um es zu vereinfachen. Notiere bewusste Auslassungen in der Bildunterschrift oder im Bericht.
  • Das Layout darf sich ändern. Die Flussrichtung und die Begrenzung nicht.
  • Detailabbildungen unterteilen die Übersichtsabbildung. Namen, Farben und Grenzen müssen übereinstimmen.
  • Überprüfe jeden Pfeil am Code: Er muss das Modul verlassen, das diese Daten tatsächlich produziert.
  • Überprüfe nach der Bearbeitung das Protokoll Zeile für Zeile und führe aus: python3 scripts/figure_audit.py NEU --venue icml --compare ORIGINAL Das Skript kann unbeschriftete Pfeile nicht sehen; überprüfe diese manuell am Protokoll.
  • Beginne den Bericht mit „Strukturänderungen: keine" oder der Liste der Änderungen und ob der Autor sie genehmigt hat.

Zusammenarbeit mit dem Autor

  • Die eigene Zeichnung des Autors ist die Grundlage. Entferne sie und richte dich daran aus. Ersetze nicht ihre Struktur oder ihren Stil vollständig.
  • Überschreibe niemals das Original. Platziere jede neue Version daneben (Fig2_v2). Der Autor bestätigt.
  • Wenn der Autor das Board von Hand bearbeitet hat, lies die neueste Datei erneut und arbeite daran.
  • Füge jeweils eine Elementart hinzu. Das gleichzeitige Hinzufügen von Stufenpanels, Pillen und Ausgabekästchen macht die Abbildung zu kompliziert.
  • Behalte benachbarte Stufen als gestrichelte Kästchen mit ihren echten Namen. Lösche sie nicht und reduziere sie nicht auf einen Pfeil oder grauen Text.
  • Berichte nur, was sich geändert hat, pro Abbildung. Wenn du eine Diskrepanz zum Papier oder Code findest, sage dies, bevor du die Abbildung bearbeitest.

Briefing, Referenzen, Stylesheet

Briefing (eines pro Abbildung)

Rolle:             Übersicht (Struktur + Ablauf) / Stufendetail / Architekturblock
Abbildungstyp:     A System- oder Agenten-Pipeline / B Modell oder Architektur
Konferenz:         legt die Platzierungsbreite und die Text-px fest (referenzen/konferenzen.md)
Leser-Erkenntnis:  ein Satz
Fakten, die bleiben:  das Strukturprotokoll
Weglassen:         Ergebnisszahlen, Sätze, die in den Haupttext gehören, Einstellungen wie Modellnamen

Referenzabbildungen (2–3)

  • Präferenzreihenfolge: Das Originalpapier der Methode oder das offizielle Repository; ein aktuelles Papier auf derselben Konferenz mit demselben Abbildungstyp; frühere Abbildungen des Autors.
  • Öffne jede und notiere: Formvokabular, was jede Farbe bedeutet, Schriftarten und Variablenschreibweise, Layout-Gerüst, Textmenge und was nicht nachgeahmt werden soll.
  • Übernimm nur Konventionen. Zeichne niemals eine Referenzabbildung neu und reproduziere nicht ihre Palette und Komposition.

Stylesheet (eines pro Papier)

  • Jede Abbildung in einem Papier verwendet eine visuelle Sprache: Schriftart, Text-px, Farben und ihre Bedeutung, Formen, Linien- und Rahmenbreiten, Eckenradius, Pfeilspitzen.
  • Mit scripts/dc_board.py ist das STYLE-Diktat das Stylesheet. Ändere es dort, niemals pro Element.

Kompositionsregeln

  • Ein Kästchen enthält nur einen Funktionsnamen. Erklärende Sätze gehören in den Haupttext.
  • Ein Pfeil trägt eine Datenname-Beschriftung. Nummeriere keine Daten.
  • Keine Platzhalternamen wie A/B/C oder „An B / Von A". Verwende die echten Modulnamen.
  • Eine Grenze umschließt nur den Teil, der diese Arbeit tatsächlich erledigt.
  • Kastentext sind Schlüsselwörter: keine Sätze, nichts über 15 Wörter, kein eingefügter Haupttext, keine Gleichungslisten. Ein kurzes Datenbeispiel ist die Ausnahme.
  • Keine Schrittnummern-Aufkleber auf Stufen. Kein Titel innerhalb der Abbildung; der Titel ist die Bildunterschrift.
  • Eine Übersicht zeigt Struktur und Ablauf gemeinsam: Eingabe → Verarbeitung → Ausgabe liest sich in wenigen Sekunden von links nach rechts, Rückkopplungsschleifen sind gestrichelt, und die Ausgabe ist deutlich sichtbar.
  • Führe ein durchgerechnetes Beispiel durch alle Detailabbildungen, als kleine Chips innerhalb von Kästchen.
  • Erwäge, Übersicht und Detail in den Panels a und b einer Abbildung zusammenzuführen (gestapelt oder Makro-Mikro-Zoomlinien). Erstelle beide als Kandidaten.
  • Wenn Regeln in Konflikt geraten, entscheide in dieser Reihenfolge: Beziehungen und Richtung stimmen mit Code und Papier überein → Fluss ist in Sekunden lesbar → lesbar in Druckgröße → Ausrichtung → Aussehen.

Formvokabular, Schriftarten, Farben und Linien: referenzen/stil.md. Wähle Vokabular A (Systempipelines: Symbolkarten, Chips, Panels) oder B (Architekturen: Form sagt Typ) und mische sie nicht in einem Papier.

Größe

Gedruckter Text (pt) = Text-px × Platzierungsbreite (pt) ÷ Boardbreite (px). Dasselbe Board wird in verschiedenen Konferenzen unterschiedlich groß gedruckt. Miss daher immer neu, wenn sich die Konferenz ändert. Voreinstellungen und px-Größen: referenzen/konferenzen.md.

  • Halte die Textgrößen in einer Abbildung nahezu einheitlich. Verkleinere keinen Text, damit er passt: Verschiebe Text in die Bildunterschrift, vergrößere das Kästchen oder Board, brich die Zeile um oder teile die Abbildung.
  • Text darf sein Kästchen nicht verlassen oder innerhalb von 6 px an der Grenze sitzen.
  • Fünf oder mehr Kästchen in einer Reihe haben nicht genug Breite: Brich Titel in 2–3 Zeilen um, dann gehe zu zwei Reihen über.
  • Eine breite Abbildung wird in voller Textbreite platziert (figure*). In einer Spalte halbiert sich ihr Text.
  • Bei mehreren Panels richte die Reihen exakt aus oder trenne sie durch 7 px oder mehr.

Prüfschleife

Einrichtung: pip install playwright numpy pillow && python3 -m playwright install chromium (poppler-utils ermöglicht die PDF-Prüfung).

python3 scripts/figure_audit.py project/Fig2.dc.html --venue icml --png fig2.png     # messen + rendern
python3 scripts/figure_audit.py project/Fig2.dc.html --venue nature --column         # einspaltige Abbildung
python3 scripts/figure_audit.py project/Fig2.dc.html --placed-mm 165 --min-pt 8      # Konferenz ohne Voreinstellung
python3 scripts/figure_audit.py project/Fig2.dc.html --venue icml --cvd fig2         # grau + farbenblind
python3 scripts/figure_audit.py project/Fig2_v2.dc.html --venue icml --compare project/Fig2.dc.html   # Beschriftungen behalten?
  1. Korrigiere, bis FEHLER 0 ist: Text unter oder über den Grenzen, Text außerhalb seines Kästchens, überlappender Text, Text außerhalb der Leinwand, eine fehlende Beschriftung aus dem Original. Zoome für jede WARNUNG (Text an einer Grenze, Text, der eine Linie kreuzt, Fallback-Glyphen, Text auf Grau, Linien unter dem Minimum, Beinahe-Ausrichtung) in das Rendering und entscheide.
  2. Sieh dir das Rendering in Platzierungsgröße und die drei --cvd-Bilder an.
  3. Überprüfe Pfeile und Beschriftungen erneut am Protokoll, am Code und am Papier.
  4. Bewerte mit der Kritiktabelle und vergleiche mit den Referenzabbildungen.
  5. Behalte die vorherige Datei für jede Runde und notiere nur, was sich geändert hat.

Korrekturreihenfolge (verhindert Nacharbeit): Leinwand und Ränder → große Bereiche und Stapelreihenfolge → Formgrößen → Füllungen und Rahmen → Verbinderendpunkte → Text → Dekoration.

Fertig bedeutet alle drei: Die Prüfung besteht, du hast die Platzierungsgröße gesehen und die Kritik überschreitet die Bestehensgrenze. Eine bestandene Prüfung allein reicht nicht. Wenn nach fünf Runden noch Probleme bestehen, ist das Layout selbst falsch: Sag es dem Autor und entscheidet gemeinsam.

Kandidaten und Kritik

Erstelle 2–3 Boards mit derselben Struktur und einem anderen Layout oder Vokabular (Panels a/b versus Zoomlinien, links-nach-rechts versus unten-nach-oben, Vokabular A versus B). Staple die Kandidaten und die Referenzabbildungen in einem Bild und zeige es:

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")

Bewerte jede Dimension mit 0–2,5 (insgesamt 10). Jedes Veto setzt diese Dimension auf 0.

DimensionBedeutungVeto
OriginaltreueZeigt die Methode im Rahmen der Bildunterschrift; angemessene Vereinfachung ist in OrdnungErfundenes Modul oder Verbindung, umgekehrter Fluss, fehlende erforderliche Verbindung, außerhalb des Rahmens, defekter Text oder gefälschte Formeln
PrägnanzEine visuelle Zusammenfassung mit hohem Signal-Rausch-VerhältnisSätze in Kästchen (über 15 Wörter), eingefügter Haupttext, Gleichungslisten
LesbarkeitFluss auf einen Blick, lesbarer TextTitel oder Bildunterschrift innerhalb der Abbildung, redundante Beschriftungen, Überlappungen, winziger oder ungleichmäßiger Text, verworrener Fluss
ÄsthetikHochglanzpolish auf Top-Konferenz-NiveauRasterartefakte, kaputte Formen, Neon- oder grelle Farben, Clipart, gemischte Schriftarten, Fehlausrichtung, schwarzer Hintergrund

Bestehensgrenzen: Zeitschrift 8,5, Konferenz 8,0, Abschlussarbeit 8,0, Poster 7,0, Folien 6,5. Schreibe für jede Dimension auch „besser / gleich / schlechter als die Referenz" mit einer Zeile Begründung.

Export

python3 scripts/dc_export.py <root> Fig2.dc.html --out paperfigs --venue icml
  • Schreibt Fig2.pdf (Vektor, Boardgröße) und Fig2.png (300 dpi bei der Platzierungsbreite).
  • Die PDF-Prüfung muss bestehen: alle Schriftarten eingebettet, keine Type-3-Schriftarten, keine Rasterbilder. Wenn sie fehlschlägt, korrigiere zuerst die Schriftartenliste (referenzen/stil.md).
  • LaTeX: \includegraphics[width=\textwidth]{figures/fig2.pdf} innerhalb von figure*. Nicht mit \resizebox oder scale= verkleinern. Einspaltige Abbildungen verwenden figure und \columnwidth.
  • Word und Folien: Füge das PNG in der Abbildungsbreite ein und überprüfe dann diese Seite auf Überlappungen und Seitenumbrüche.
  • Sichere die vorherige Abbildung, bevor du sie im Manuskript ersetzt, und ersetze sie erst, nachdem der Autor entschieden hat.
  • Bildunterschriften folgen der Konferenzvorlage. Gib in der Bildunterschrift an, was Beispielsymbole bedeuten, was absichtlich weggelassen wurde und dass ein Beispiel illustrativ ist.

Niemals

  • Ein Modul, eine Verbindung oder eine Grenze ohne Bestätigung des Autors hinzufügen, entfernen oder umbenennen.
  • Ein Bildgenerierungsmodell verwenden, eine endgültige Abbildung nur als Bitmap ausliefern oder eine Referenzabbildung kopieren.
  • Nur mit einer PNG-, PDF- oder lokalen Datei abschließen, wenn ein Leinwand-Werkzeug verfügbar ist.
  • Ergebnisszahlen in eine Methodenabbildung setzen oder die Farbregeln, Textgröße oder das Vokabular zwischen Abbildungen eines Papiers variieren.
  • Text auf Grau setzen, CSS-Rahmen mit Bruch-px verwenden oder ein PDF mit Type-3-Schriftarten ausliefern.
  • Das Original des Autors überschreiben, ungefragt eine Abbildung im Manuskript austauschen oder den Kandidaten für den Autor auswählen.
  • „Lesbar" oder „keine Überlappung" ohne Messung behaupten.

Dateien

DateiVerwendung
scripts/dc_board.pyErstellt Boards aus kurzem Python: Karten, Symbolkarten, Trapeze, Operationskreise, Tensoren, Panels, Pfeile
scripts/figure_audit.pyMisst eine Abbildung in Druckgröße; --venue, --compare, --cvd
scripts/dc_export.pyBoard → Vektor-PDF + 300-dpi-PNG, mit PDF-Schriftart- und Rasterprüfungen
referenzen/konferenzen.mdKonferenzvoreinstellungen: Breiten, angegebene Regeln, kleinster Text in px
referenzen/stil.mdFormvokabulare A und B, Schriftarten, Farben, Linien, Dichte
referenzen/zeichnungs-boards.mdZeichnen auf einer Claude Design-Leinwand oder als einfache HTML-Boards; Aufrufe von dc_board.py; TikZ-Notizen
referenzen/credits.mdQuellen der entlehnten Verfahren und ihre Lizenzen
beispiele/Ausführbare Abbildungen, die die Prüfung bestehen: react-agent (Vokabular A), transformer-block (Vokabular B), rag-pipeline (minimal)

Verwandte Skills