Communitygithub.com

WonJeong0913/paper-figure

Dibuja y corrige figuras de métodos, tuberías y arquitecturas de artículos de investigación como tableros editables de Claude Design, sin usar modelos generadores de imágenes. Preserva la estructura del autor, ajusta el tamaño del texto para la revista objetivo (ICML, NeurIPS, ICLR, ACL, AAAI, CVPR, IEEE, ACM, Nature), compara candidatos con figuras de referencia, mide al tamaño de impresión y exporta PDF vectorial y PNG a 300 ppp.

¿Qué es paper-figure?

Esta habilidad convierte a Claude en un experto en la creación y corrección de figuras para artículos de investigación, específicamente diagramas de métodos, tuberías y arquitecturas. En lugar de depender de modelos de generación de imágenes, el agente construye cada figura a partir de elementos editables y separados en un tablero de Claude Design (o HTML plano cuando la herramienta de canvas no está disponible). Esto garantiza que el autor pueda mover, cambiar el estilo y comentar cada componente. La habilidad asegura que la figura final cumpla con los estándares de las principales revistas y conferencias (ICML, NeurIPS, ICLR, ACL, AAAI, CVPR, IEEE, ACM, Nature) ajustando automáticamente el tamaño del texto según las reglas específicas de cada venue. El flujo de trabajo comienza con la construcción de un 'ledger de estructura' para preservar fielmente el diseño del sistema, seguido de la búsqueda de figuras de referencia, la creación de 2-3 candidatos con diferentes diseños, una auditoría rigurosa que mide el tamaño de impresión real y la comparación con las figuras originales. Finalmente, exporta un PDF vectorial con fuentes incrustadas y un PNG a 300 ppp, listos para su inclusión en LaTeX, Word o presentaciones. La habilidad se basa en scripts de Python (como `figure_audit.py` y `dc_export.py`) para medir, comparar y exportar, y sigue un estricto conjunto de principios para evitar errores comunes como texto ilegible, superposiciones o el uso de fuentes no incrustadas.

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

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

¿Qué hace paper-figure?

Dibuja una figura de artículo a partir de elementos editables colocados por separado, y luego mídela al tamaño en que se imprimirá.

Principios

  • Sin modelos de generación de imágenes. Tú o el autor dibujan cada elemento.
  • Entrega la figura como un tablero en un lienzo de Claude Design siempre que esa herramienta esté disponible. Esto es obligatorio. Crea o actualiza el tablero primero, para que el autor pueda mover, cambiar el estilo y comentar cada elemento. Nunca termines solo con un PNG, un PDF o un archivo HTML local. Dibuja tableros HTML simples solo en disco cuando la sesión no tenga herramienta de lienzo, y dilo en el informe (references/drawing-boards.md).
  • PDF y PNG son exportaciones, realizadas cuando el autor lo pide o la figura está finalizada: un PDF vectorial con texto vivo para LaTeX, y un PNG a 300 ppp generado a partir de él para Word y presentaciones.
  • El texto de la figura usa exactamente los nombres del cuerpo del artículo, en el idioma del artículo.
  • La estructura se preserva. Puedes cambiar formas y diseño. No puedes cambiar módulos, conexiones o límites sin preguntar (ver "Ledger de estructura").
  • Elige la revista objetivo antes de dibujar. Las revistas difieren: Nature limita el texto de la figura a 7 pt, AAAI requiere al menos 9 pt. Si el autor no ha elegido, elige la revista típica de su campo y dilo en el informe.
  • El estándar de calidad es una figura de revista de primer nivel. Mira primero las figuras de referencia, construye candidatos y deja que el autor elija. No te detengas en cajas y flechas.
  • Di "pasa" o "sin superposición" solo después de medir con scripts/figure_audit.py y de mirar el renderizado tú mismo. Esto anula cualquier valor predeterminado de "no verificar" de la superficie de dibujo.
  • La crítica visual es consultiva. Cuenta mal los elementos y omite conexiones. Juzga la estructura solo con el ledger y --compare.

Flujo de trabajo

  1. Lee las fuentes: borrador del artículo, código y la figura del propio autor. Vuelve a leerlas cada vez que el autor diga "rehacerlo".
  2. Construye el ledger de estructura.
  3. Escribe el resumen y elige la revista (references/venues.md).
  4. Abre 2-3 figuras de referencia y escribe la hoja de estilo.
  5. Dibuja 2-3 candidatos en el lienzo que difieran en diseño o vocabulario de formas, no en pequeños ajustes.
  6. Audita, mira, compara, critica. Corrige hasta que los errores sean cero.
  7. Muestra la hoja de comparación. El autor elige.
  8. Exporta una vez que el autor haya elegido, coloca la figura en el manuscrito y mira esa página.

Ledger de estructura (antes de cualquier edición)

Una figura muestra el sistema que el autor diseñó. Extrae cada elemento a continuación de la figura del autor, el artículo y el código en una tabla.

TipoElementosFuente
Módulos (cajas)nombres exactosfigura original / ruta de código / sección del artículo
Conexiones (flechas)emisor → receptor : nombre del datoel código que produce ese dato
Límiteslo que encierra cada sistema, habilidad o herramientafigura original / código
Estado y recursosestado compartido, presupuestos, modelo compartido, corpus, parámetros aprendidosfigura original / código
Decisiones y buclesresultados de decisiones, caminos de retroalimentación y recurrenciafunción de política / algoritmo
Entradas y salidasentrada del usuario, salida final, tensores de entrada y salidafigura original / código

Al dibujar el método de otra persona, construye el ledger a partir del algoritmo del artículo original y el código oficial, y cítalos.

  • Nada en el ledger puede desaparecer, renombrarse ni moverse a través de un límite. Si debe cambiar (por ejemplo, la figura no coincide con el código), pregunta al autor antes de editar.
  • No inventes módulos ni flechas, y no elimines conexiones para simplificar. Anota las omisiones deliberadas en el pie de foto o en el informe.
  • El diseño puede cambiar. La dirección del flujo y la contención no.
  • Las figuras de detalle dividen la figura de visión general. Los nombres, colores y límites deben coincidir con ella.
  • Verifica cada flecha contra el código: debe salir del módulo que realmente produce esos datos.
  • Después de editar, verifica el ledger línea por línea y ejecuta: python3 scripts/figure_audit.py NUEVO --venue icml --compare ORIGINAL. El script no puede ver flechas sin etiqueta; compáralas con el ledger manualmente.
  • Comienza el informe con "Cambios de estructura: ninguno" o la lista de cambios y si el autor los aprobó.

Trabajar con el autor

  • El dibujo del autor es la línea de base. Elimina y alinea sobre él. No reemplaces su estructura o estilo por completo.
  • Nunca sobrescribas el original. Coloca cada nueva versión al lado (Fig2_v2). El autor confirma.
  • Si el autor editó el tablero a mano, vuelve a leer el archivo más reciente y trabaja sobre él.
  • Añade un tipo de elemento a la vez. Añadir paneles de etapa, píldoras y cajas de salida a la vez hace que la figura sea demasiado complicada.
  • Mantén las etapas vecinas como cajas discontinuas con sus nombres reales. No las elimines ni las reduzcas a una flecha o texto gris.
  • Informa solo lo que cambió, por figura. Si encuentras una discrepancia con el artículo o el código, dilo antes de editar la figura.

Resumen, referencias, hoja de estilo

Resumen (uno por figura)

Rol:               visión general (estructura + procedimiento) / detalle de etapa / bloque de arquitectura
Tipo de figura:    A tubería de sistema o agente / B modelo o arquitectura
Revista:           establece el ancho colocado y el px de texto (references/venues.md)
Conclusión del lector: una línea
Hechos a mantener:  el ledger de estructura
Omitir:            números de resultados, oraciones que pertenecen al cuerpo, configuraciones como nombres de modelos

Figuras de referencia (2-3)

  • Orden de preferencia: el artículo original del método o su repositorio oficial; un artículo reciente en la misma revista con el mismo tipo de figura; las figuras anteriores del autor.
  • Abre cada una y anota: vocabulario de formas, qué significa cada color, fuentes y notación de variables, esqueleto del diseño, cantidad de texto, y qué no imitar.
  • Toma solo convenciones. Nunca redibujes una figura de referencia ni reproduzcas su paleta y composición.

Hoja de estilo (una por artículo)

  • Cada figura en un artículo usa un vocabulario visual: fuente, px de texto, colores y sus significados, formas, grosor de línea y borde, radio de esquina, puntas de flecha.
  • Con scripts/dc_board.py, el diccionario STYLE es la hoja de estilo. Cámbialo allí, nunca por elemento.

Reglas de composición

  • Una caja contiene solo un nombre de función. Las oraciones explicativas van en el cuerpo del texto.
  • Una flecha lleva una etiqueta del nombre del dato. No numeres los datos.
  • Sin nombres genéricos como A/B/C o "A B / Desde A". Usa los nombres reales del módulo.
  • Un límite encierra solo la parte que realmente realiza ese trabajo.
  • El texto de la caja son palabras clave: sin oraciones, nada de más de 15 palabras, sin texto del cuerpo pegado, sin listas de ecuaciones. Una breve muestra de datos es la excepción.
  • Sin insignias de número de paso en las etapas. Sin título dentro de la figura; el título es el pie de foto.
  • Una visión general muestra estructura y procedimiento juntos: entrada → proceso → salida se lee de izquierda a derecha en unos segundos, los bucles de retroalimentación son discontinuos y la salida es claramente visible.
  • Ejecuta un ejemplo de trabajo a través de todas las figuras de detalle, como pequeñas fichas dentro de las cajas.
  • Considera fusionar la visión general y el detalle en los paneles a y b de una figura (apilados o líneas de zoom macro-micro). Construye ambos como candidatos.
  • Cuando las reglas entren en conflicto, decide en este orden: las relaciones y la dirección coinciden con el código y el artículo → el flujo se lee en segundos → legible al tamaño de impresión → alineación → apariencia.

Vocabulario de formas, fuentes, colores y líneas: references/style.md. Elige el vocabulario A (tuberías de sistema: tarjetas de icono, fichas, paneles) o B (arquitecturas: la forma indica el tipo) y no los mezcles en un mismo artículo.

Tamaño

Texto impreso (pt) = px de texto × ancho colocado (pt) ÷ ancho del tablero (px). El mismo tablero se imprime a diferentes tamaños en diferentes revistas, así que vuelve a medir cada vez que cambie la revista. Valores predefinidos y tamaños en px: references/venues.md.

  • Mantén los tamaños de texto casi uniformes en una figura. No reduzcas el tamaño de algún texto para que quepa: mueve el texto al pie de foto, agranda la caja o el tablero, divide la línea o divide la figura.
  • El texto no debe salir de su caja ni estar a menos de 6 px del borde.
  • Cinco o más cajas en una fila se quedan sin ancho: divide los títulos en 2-3 líneas, luego pasa a dos filas.
  • Una figura ancha va al ancho completo del texto (figure*). En una columna su texto se reduce a la mitad.
  • Con varios paneles, alinea las filas exactamente o sepáralas por 7 px o más.

Bucle de auditoría

Configuración: pip install playwright numpy pillow && python3 -m playwright install chromium (poppler-utils habilita la verificación de PDF).

python3 scripts/figure_audit.py project/Fig2.dc.html --venue icml --png fig2.png     # medir + renderizar
python3 scripts/figure_audit.py project/Fig2.dc.html --venue nature --column         # figura de una columna
python3 scripts/figure_audit.py project/Fig2.dc.html --placed-mm 165 --min-pt 8      # revista sin valor predefinido
python3 scripts/figure_audit.py project/Fig2.dc.html --venue icml --cvd fig2         # gris + daltonismo
python3 scripts/figure_audit.py project/Fig2_v2.dc.html --venue icml --compare project/Fig2.dc.html   # ¿se conservaron las etiquetas?
  1. Corrige hasta que ERROR sea 0: texto por debajo o por encima de los límites, texto fuera de su caja, texto superpuesto, texto fuera del lienzo, una etiqueta faltante del original. Para cada ADVERTENCIA (texto rozando un borde, texto cruzando una línea, glifos de respaldo, texto sobre gris, líneas por debajo del mínimo, alineación casi correcta), acerca el zoom al renderizado y decide.
  2. Mira el renderizado al tamaño colocado, y las tres imágenes --cvd.
  3. Vuelve a verificar las flechas y etiquetas contra el ledger, el código y el artículo.
  4. Puntúa con la tabla de crítica y compara con las figuras de referencia.
  5. Conserva el archivo anterior en cada ronda y registra solo lo que cambió.

Orden de corrección (evita retrabajo): lienzo y márgenes → regiones grandes y orden de apilamiento → tamaños de formas → rellenos y bordes → puntos finales de conectores → texto → decoración.

Terminado significa las tres cosas: la auditoría pasa, miraste el tamaño colocado y la crítica supera la marca de aprobación. Solo una auditoría aprobada no es suficiente. Si después de cinco rondas quedan problemas, el diseño en sí está mal: díselo al autor y decidan juntos.

Candidatos y crítica

Haz 2-3 tableros con la misma estructura y un diseño o vocabulario diferente (paneles a/b versus líneas de zoom, izquierda a derecha versus abajo-arriba, vocabulario A versus B). Apila los candidatos y las figuras de referencia en una imagen y muéstrala:

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

Puntúa cada dimensión de 0 a 2.5 (total 10). Cualquier veto establece esa dimensión en 0.

DimensiónSignificadoVeto
Fidelidadmuestra el método dentro del alcance del pie de foto; la simplificación razonable está bienmódulo o conexión inventado, flujo invertido, falta una conexión requerida, fuera de alcance, texto roto o fórmulas falsas
Concisiónun resumen visual con alta relación señal-ruidooraciones en cajas (más de 15 palabras), texto del cuerpo pegado, listas de ecuaciones
Legibilidadflujo de un vistazo, texto legibletítulo o pie de foto dentro de la figura, etiquetas redundantes, superposiciones, texto diminuto o desigual, flujo enredado
Estéticapulido de revista de primer nivelartefactos de cuadrícula, formas rotas, colores neón o que chocan, clip art, fuentes mezcladas, desalineación, fondo negro

Notas de aprobación: revista 8.5, conferencia 8.0, tesis 8.0, póster 7.0, diapositivas 6.5. Para cada dimensión, también escribe "mejor / igual / peor que la referencia" con una línea de razonamiento.

Exportación

python3 scripts/dc_export.py <root> Fig2.dc.html --out paperfigs --venue icml
  • Escribe Fig2.pdf (vectorial, tamaño del tablero) y Fig2.png (300 ppp al ancho colocado).
  • La verificación de PDF debe pasar: todas las fuentes incrustadas, sin fuentes Tipo 3, sin imágenes rasterizadas. Si falla, corrige primero la lista de fuentes (references/style.md).
  • LaTeX: \includegraphics[width=\textwidth]{figures/fig2.pdf} dentro de figure*. No reduzcas con \resizebox o scale=. Las figuras de una columna usan figure y \columnwidth.
  • Word y presentaciones: inserta el PNG al ancho de la figura, luego verifica esa página en busca de superposiciones y saltos de página.
  • Haz una copia de seguridad de la figura anterior antes de reemplazarla en el manuscrito, y reemplázala solo después de que el autor decida.
  • Los pies de foto siguen la plantilla de la revista. Indica en el pie de foto qué significan los símbolos de ejemplo, qué se omitió a propósito y que un ejemplo es ilustrativo.

Nunca

  • Añadir, eliminar o renombrar un módulo, conexión o límite sin la confirmación del autor.
  • Usar un modelo de generación de imágenes, entregar una figura final solo de mapa de bits o copiar una figura de referencia.
  • Terminar solo con un PNG, un PDF o un archivo local cuando una herramienta de lienzo esté disponible.
  • Poner números de resultados en una figura de método, o variar reglas de color, tamaño de texto o vocabulario entre figuras de un mismo artículo.
  • Poner texto sobre gris, usar bordes CSS de px fraccionarios o enviar un PDF con fuentes Tipo 3.
  • Sobrescribir el original del autor, intercambiar una figura en el manuscrito sin permiso o elegir el candidato por el autor.
  • Afirmar "legible" o "sin superposición" sin medir.

Archivos

ArchivoUso
scripts/dc_board.pyconstruye tableros desde Python breve: tarjetas, tarjetas de icono, trapezoides, círculos de operación, tensores, paneles, flechas
scripts/figure_audit.pymide una figura al tamaño de impresión; --venue, --compare, --cvd
scripts/dc_export.pytablero → PDF vectorial + PNG a 300 ppp, con verificación de fuentes PDF y raster
references/venues.mdvalores predefinidos de revista: anchos, reglas establecidas, texto más pequeño en px
references/style.mdvocabularios de formas A y B, fuentes, colores, líneas, densidad
references/drawing-boards.mddibujo en un lienzo de Claude Design o como tableros HTML simples; llamadas a dc_board.py; notas sobre TikZ
references/credits.mdfuentes de los procedimientos tomados prestados y sus licencias
examples/figuras ejecutables que pasan la auditoría: react-agent (vocabulario A), transformer-block (vocabulario B), rag-pipeline (mínimo)

Skills relacionados