Paper Review Loop:Revisión → Revisión → Re-revisión

Revisa un PDF de artículo como un revisor riguroso y constructivo, luego revisa el manuscrito según las críticas, regenera el PDF, y vuelve a revisar el ciclo tantas veces como sea posible dentro de un límite de tiempo especificado por el usuario.

¿Qué es Paper Review Loop:Revisión → Revisión → Re-revisión?

Este skill implementa un bucle automatizado de revisión por pares y mejora iterativa de manuscritos académicos, diseñado para agentes de IA como Claude. Al recibir un PDF de artículo, el agente actúa como un revisor experto y exigente, generando un informe detallado con resumen, fortalezas, debilidades, justificación, preguntas para el rebuttal, puntuación y confianza. Luego, basándose en esas críticas, revisa el manuscrito fuente (preferiblemente en LaTeX), reconstruye el PDF, y repite el ciclo de revisión hasta que se agota el tiempo límite o se resuelven todas las críticas subsanables. El skill incluye listas de verificación específicas para áreas como Aprendizaje Federado (no IID, participación parcial, privacidad), teoría de aprendizaje automático y experimentos a gran escala. Está optimizado para plataformas que soportan subagentes (como Claude Code, Cursor, Codex) y gestiona todo el estado del ciclo mediante scripts Python, permitiendo pausas y reanudaciones. El resultado final incluye el PDF revisado, informes de cada ronda, un rastreador de problemas, y una lista de tareas pendientes para el autor (como experimentos adicionales) que no pueden ser fabricadas por la IA.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/0x6869726f6b69/claude-skills/tree/HEAD/skills/paper-review-loop

Installed? Explore more Investigación y análisis de datos skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

Preguntar en tu IA favorita

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

Documentación

¿Qué hace Paper Review Loop:Revisión → Revisión → Re-revisión?

Revisa un PDF de artículo como experto y, siguiendo las observaciones, revisa el manuscrito, reconstruye el PDF y vuelve a revisar la versión revisada. Repite este ciclo tantas veces como sea posible dentro del límite de tiempo fijado por el usuario. Al final, se entregan tres cosas:

  • El PDF revisado (versión final) y los PDFs de cada ronda.
  • Los informes de revisión de cada ronda (7 ítems) y la evolución de las evaluaciones y el estado de las observaciones.
  • Una lista de tareas que solo el autor puede realizar (experimentos adicionales, etc.; se trasladan aquí en lugar de al texto para evitar la fabricación).

A continuación, <skill_dir> es el directorio donde se encuentra este SKILL.md, y <ws> es la carpeta de trabajo. Los nombres de scripts como loop_state.py se abrevian como python <skill_dir>/scripts/loop_state.py. En entornos sin python, usar python3.

0. Primero: Preguntar el límite de tiempo

  1. Identificar el PDF objetivo. Si no está en el mensaje, preguntar. Comprobar si en la misma ubicación del PDF o como adjunto hay código fuente LaTeX (carpeta, .zip, .tar.gz de arXiv, .tex). Tener el fuente mejora mucho la calidad y velocidad de la revisión.
  2. Preguntar el límite de tiempo. Si hay herramientas de pregunta (AskUserQuestion), usarlas; si no, preguntar por chat y esperar la respuesta. Si el mensaje de inicio ya especifica el tiempo, usarlo y no volver a preguntar.
    • Pregunta 1 "Límite de tiempo": Solo revisión (sin bucle de revisión) / 1 hora / 2 horas / 3 horas (también se puede "30 minutos", "5 horas", etc.)
    • Pregunta 2 "Destino de publicación / Criterios de evaluación" (agrupar en el mismo diálogo; omitir si ya se sabe): Sin especificar (criterios de conferencia internacional top) / NeurIPS・ICML・ICLR / Revista (Aceptar / Menor / Mayor / Rechazar)
  3. Inmediatamente después de recibir la respuesta, iniciar el cronómetro. El tiempo de configuración también está incluido en el presupuesto.
    python <skill_dir>/scripts/loop_state.py init <ws> --hours 2 --paper <pdf> --venue "<destino>"
    
    (También se pueden usar --minutes 90 o --review-only)
  4. Si hay herramientas anti-sueño (como keep-awake en Claude Desktop), activarlas por la duración del presupuesto. Si el PC se duerme, los bucles largos se detendrán.
  5. Informar al usuario en 2-3 líneas: hora límite, carpeta de trabajo, que a partir de ahora se ejecutará de forma autónoma sin confirmaciones, y que puede interrumpir en cualquier momento.

1. Configuración

La carpeta de trabajo será <carpeta del PDF>/<nombre del PDF>_review_loop/ (si no se puede escribir, bajo el directorio de trabajo).

<ws>/
├── state.json          Registro del temporizador y cada fase (gestionado por loop_state.py)
├── original/           PDF y fuente recibidos. No modificar.
├── src/                Fuente para edición (main.tex, figures/, *.bib)
├── work/               Archivos temporales como imágenes de páginas
├── rounds/
│   ├── r01/            paper.pdf(=PDF original) paper.txt review.md issues.json response.md src/
│   ├── r02/            paper.pdf(1ª revisión) paper.txt review.md issues.json response.md src/ changes.diff
│   └── ...
├── issue_tracker.md    Evolución de evaluaciones y estado de observaciones (generado por loop_state.py summary)
├── author_todo.md      Problemas que solo el autor puede resolver (experimentos adicionales, etc.)
└── final_report.md
  1. loop_state.py start <ws> --round 0 --phase setup
  2. Copiar el PDF a original/ y rounds/r01/paper.pdf, y extraer el texto: python <skill_dir>/scripts/pdf_tools.py text <ws>/rounds/r01/paper.pdf -o <ws>/rounds/r01/paper.txt
  3. Preparar el fuente editable en src/ (omitir en modo solo revisión).
    • Si hay fuente LaTeX: Copiar/extraer en src/ (el archivo que contiene \documentclass y \begin{document} es el principal). Compilar una vez con build_pdf.py para confirmar que funciona.
    • Si solo hay PDF: Reconstruir el fuente LaTeX siguiendo el procedimiento de references/pdf_to_latex.md. Es el paso más pesado (de 20 a 40 minutos para 10 páginas), así que informar al usuario de que consumirá presupuesto.
  4. python <skill_dir>/scripts/snapshot.py <ws>/src <ws>/rounds/r01
  5. loop_state.py end <ws> --round 0 --phase setup

La revisión de la ronda 1 se realiza sobre el PDF original, por lo que puede ejecutarse en paralelo con la reconstrucción del fuente. Si se dispone de subagentes, lanzar simultáneamente el responsable de la revisión y el de la reconstrucción.

2. Bucle

División de roles y su motivo

  • La revisión se asigna a un subagente nuevo en cada ronda (herramienta Agent). Un revisor que no tiene el contexto de quien ha hecho la revisión juzga basándose únicamente en lo que realmente está escrito en el PDF, no en "lo que pretendía corregir". Si se autoevalúa en el mismo contexto, la evaluación se vuelve indulgente.
  • La revisión también se asigna a un subagente, y el agente principal se dedica exclusivamente a la orquestación (reloj, lanzamiento, verificación, agregación). De esta manera, incluso en bucles de varias horas, el contexto principal no se expande y todo el estado queda registrado en archivos.
  • En entornos sin subagentes, hacer todo secuencialmente por uno mismo. En ese caso, antes de cada revisión, extraer de nuevo el texto del nuevo PDF y leerlo, evaluando basándose en el papel, no en la memoria.

Ronda r (r = 1, 2, …)

(a) Revisión

  1. loop_state.py start <ws> --round r --phase review
  2. Iniciar el subagente con el "Mensaje de instrucción para el revisor" de abajo y esperar a que termine.
  3. Verificar la salida: que review.md contenga las secciones necesarias (para r≥2, también la sección 0) y que issues.json sea legible como JSON. Si falta algo, pedir al mismo revisor que lo corrija.
  4. loop_state.py end <ws> --round r --phase review, seguido de loop_state.py summary <ws> (actualiza issue_tracker.md).
  5. Dar al usuario una línea de progreso. Ejemplo: r02 Revisión completada: Global 3→4, Mayores sin resolver 5→2, tiempo restante 1h12m

(b) Decidir si continuar

  1. Ejecutar loop_state.py status <ws>. Como Claude no puede percibir el tiempo transcurrido, la decisión sobre el tiempo debe basarse estrictamente en esta salida.
  2. Si NEXT: STOP, ir a §3. La decisión se toma inmediatamente después de la revisión, por lo que el PDF final siempre estará revisado.
  3. Incluso si es CONTINUE, si en el último issues.json no quedan observaciones con status open / partially_resolved (todas están resolved o needs_author diferidas con [AUTHOR TODO]), se puede terminar. Si ya no hay nada que corregir en el texto, más rondas solo servirían para pulir la redacción. Explicar el motivo en el informe final.

(c) Revisión (correspondiente a la revisión de la ronda r, creando el PDF de r+1)

  1. loop_state.py start <ws> --round r --phase revise. Anotar la hora de revise by que aparece en el status.
  2. Iniciar el subagente con el "Mensaje de instrucción para el revisor" de abajo y esperar a que termine.
  3. Verificar: que existan rounds/r{r+1}/paper.pdf y paper.txt, que la compilación haya sido exitosa con cero referencias indefinidas, y que exista rounds/r{r}/response.md. Si la compilación falla, restaurar los archivos dañados desde rounds/r{r}/src/ y rehacer los cambios. Nunca pasar un PDF antiguo como versión revisada a la revisión.
  4. loop_state.py end <ws> --round r --phase revise → ir a (a) con r+1.

El responsable de la revisión no debe comenzar nuevas correcciones después de la hora revise by; debe completar la compilación y finalizar. Esto es para reservar tiempo para la siguiente revisión.

Mensaje de instrucción para el revisor

Eres el revisor de este artículo. Primero, lee <skill_dir>/references/reviewer_guide.md y
<skill_dir>/references/review_template.md hasta el final, y sigue el perfil del revisor, los criterios y el formato de salida.

- Objeto de revisión: <ws>/rounds/rNN/paper.pdf (texto extraído: <ws>/rounds/rNN/paper.txt)
- Ronda: NN
- Observaciones de la ronda anterior: <ws>/rounds/r(NN-1)/issues.json   ← solo a partir de la ronda 2
- Destino de publicación / Escala de evaluación: <venue o "Sin especificar">
- Idioma del informe de revisión: Español
- Salida: <ws>/rounds/rNN/review.md y <ws>/rounds/rNN/issues.json
- Ayuda: python <skill_dir>/scripts/pdf_tools.py (puedes usar render para convertir páginas con figuras/tablas en imágenes y consultarlas)

La justificación de la evaluación se basa ÚNICAMENTE en el contenido de este PDF. No se ha proporcionado la intención del revisor ni el documento de respuesta.
Las partes marcadas con [AUTHOR TODO] son meras promesas, trátalas como no resueltas.
Finalmente, devuelve en 4 líneas: "Evaluación global / Confianza / Número de problemas mayores sin resolver / Número de nuevas observaciones".

Mensaje de instrucción para el revisor

Eres el autor de este artículo y vas a revisar el manuscrito basándote en la revisión. Primero, lee
<skill_dir>/references/revision_guide.md hasta el final y, en particular, respeta la regla de "no fabricar".

- Fuente a editar: <ws>/src/ (principal: <main>.tex)
- Revisión actual: <ws>/rounds/rNN/review.md, <ws>/rounds/rNN/issues.json
- Evolución: <ws>/issue_tracker.md (solo lectura, generado automáticamente. No editarlo)
- Tareas del autor: <ws>/author_todo.md (crearlo si no existe; añadir y actualizar)
- Tiempo: Debes completar la compilación antes de <revise_by>. El tiempo restante se puede consultar con
  python <skill_dir>/scripts/loop_state.py status <ws>
- Al terminar:
  1. python <skill_dir>/scripts/build_pdf.py <ws>/src/<main>.tex --out <ws>/rounds/r(NN+1)/paper.pdf
     (corregir hasta que no haya errores ni referencias indefinidas)
  2. python <skill_dir>/scripts/pdf_tools.py text <ws>/rounds/r(NN+1)/paper.pdf -o <ws>/rounds/r(NN+1)/paper.txt
  3. python <skill_dir>/scripts/snapshot.py <ws>/src <ws>/rounds/r(NN+1) --prev <ws>/rounds/rNN
  4. Escribir <ws>/rounds/rNN/response.md (formato según revision_guide.md)
Finalmente, devuelve: "IDs de observaciones atendidas / IDs transferidos a tareas del autor / Resultado de compilación (número de páginas, referencias indefinidas, número de AUTHOR TODO)".

Si se encarga la reconstrucción desde PDF, indicar: "Lee <skill_dir>/references/pdf_to_latex.md, reconstruye <ws>/original/<name>.pdf en <ws>/src/, guarda el PDF compilado en <ws>/rounds/r01/reconstructed.pdf, y escribe las diferencias en <ws>/src/RECONSTRUCTION_NOTES.md".

3. Finalización

  1. loop_state.py finish <ws> --reason "<Límite de tiempo / No quedan observaciones subsanables en el texto / Solo revisión>" → loop_state.py summary <ws>
  2. Si se ha realizado al menos una revisión, copiar el PDF más reciente como <ws>/<nombre del PDF>_revised.pdf.
  3. Escribir <ws>/final_report.md:
# Informe de revisión y corrección: <título del artículo>
- Límite de tiempo / Tiempo empleado / Número de rondas / Motivo de finalización
## Evolución de la evaluación            (tabla de issue_tracker.md)
## Resumen de la revisión del manuscrito original (r01)   (resumen de Justification y debilidades principales)
## Principales observaciones resueltas con las correcciones
## Problemas restantes
### Los que se pueden solucionar modificando el texto pero no se terminaron a tiempo
### Los que requieren trabajo del autor (prioridades altas de author_todo.md)
## Evaluación de la última ronda y condiciones para inclinar la balanza hacia la aceptación
## Lista de archivos
  1. La respuesta al usuario debe ser breve: número de rondas, evolución de la evaluación, principales observaciones resueltas, problemas importantes restantes y las 3 tareas principales del autor, y ubicación de los archivos. No pegar la revisión completa, solo indicar los archivos. En modo solo revisión, incluir en la respuesta los puntos clave de la revisión de r01 (Justification, Rating, debilidades principales, preguntas para el Rebuttal).

Reanudación tras interrupción

Si existe <ws>/state.json y el status es running, consultar loop_state.py status <ws> y el contenido de rounds/, y reanudar desde la fase siguiente a la última completada. Si se vuelve a ejecutar init, el reloj se reinicia, por lo que solo se debe hacer con --force cuando el usuario quiera un nuevo presupuesto.

Principios y su motivo

  • No fabricar: No crear resultados experimentales, números, datos, citas ni demostraciones. Se trata de un manuscrito de investigación real; si se introduce un solo número inventado, constituiría una falta de integridad científica y causaría un daño grave al usuario. Para las observaciones que requieran nuevos resultados, ajustar las afirmaciones del texto al alcance de la evidencia y trasladar los experimentos necesarios a [AUTHOR TODO] y author_todo.md.
  • No relajar los criterios de revisión: Evaluar con los mismos criterios aunque avancen las rondas. [AUTHOR TODO] sigue sin resolverse; solo reformular no constituye nueva evidencia. La evaluación solo mejora cuando el problema se resuelve en el papel. De lo contrario, este bucle se convertiría en un mero trabajo para inflar la puntuación aparente.
  • Dejar las decisiones sobre el tiempo al script: No intuir el tiempo transcurrido. Consultar status en cada ronda.
  • No pedir confirmación al usuario entre rondas: Al recibir el límite de tiempo, se aprueba la ejecución de todo el bucle. Los informes se limitan a una línea de progreso; solo detenerse para consultar en caso de bloqueadores (compilación imposible de arreglar, PDF ilegible, etc.).
  • No modificar los archivos originales: Tratar original/ como solo lectura; las ediciones se realizan en copias dentro de src/.

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

0x6869726f6b69/claude-skills

英語で書かれた学術論文・原稿のPDFを、プロの英文校正者として校正するスキル。学術出版ガイド(Olson, Guide to Academic and Scientific Publication)に基づくチェックリストで、英文法・語法、US/UK綴り、略語、句読点、時制、代名詞、用語の一貫性、図表、引用と文献リスト、タイトル・要旨・キーワード、投稿規定への適合を確認し、修正案つきのレポートと赤入れ(注釈付き)PDFを作る。モードは2つ:「1回校正」(指定したPDFを1回校正)と「loop」(校正→原稿に反映してPDFを再生成→再校正を、指摘が無くなるまで繰り返す)。使い方は `/academic-writing-loop 1回校正 paper.pdf` または `/academic-writing-loop loop paper.pdf`。英語論文のPDFについて「英文校正して」「英語をチェック/添削して」「ネイティブチェック」「文法を直して」「proofreadして」「投稿前に英語を磨きたい」などと頼まれたら、スキル名が出ていなくても使うこと(内容の査読は paper-review-loop、技術的な誤りの検証は deep-review-modoki の担当)。Use for English proofreading/copyediting of academic paper PDFs, single pass or iterative proofread→revise→re-proofread loops.

0x6869726f6b69/claude-skills

Google の Deep Review(旧 Paper Assistant Tool, PAT)を模した、論文・技術文書の深い検証レビュー。文書を論理セグメントに分け、情報密度に応じて検証の深さ(Light/Medium/High)を配分し、セグメントごとに観点の異なる検証サブエージェントを並列に走らせる(証明の逐行検証・反例探索・数値の再計算・実験設計・主張と証拠の対応・新規性の文献確認)。候補は逐語引用で照合・重複排除し、反証検証で誤検出を落としたうえで、Overall Feedback と Detailed Feedback(Major concerns / Minor corrections / Suggestions)の Markdown・HTML レポートにまとめる。スコアは付けない。「Deep Reviewして」「ディープレビュー」「PATみたいに」「論文の誤りや証明の穴を徹底的に探して」「投稿前に技術的なミスを洗い出して」「数式・証明・実験を検証して」などと頼まれたら、スキル名が出ていなくても使うこと。設計書・技術報告など論文以外の技術文書にも使える。採点つきの会議形式の査読や、査読→改訂のループは paper-review-loop を使う。Use for deep, agentic error-finding review of a paper or technical document in the style of Google's Deep Review / PAT.

0x6869726f6b69/claude-skills

分析結果(グラフ画像・CSV/NPZ等のデータ・解析スクリプト・ノートブック)を、Nature系ジャーナルに採択されるレベルの多パネルFigure・Table・Captionにまとめるスキル。起動後に「どの結果を1枚のFigureにまとめるか」をユーザーに確認し、指示がなければ科学的ストーリー(What→How→Why→Performance→Impact)に沿って結果の取捨選択・パネル配置・配色まで自分で設計し、Arial 5–7 pt・89/183 mm幅・統一配色のベクターPDF/SVGを作ってQAまで行う。「結果を図にまとめて」「論文用のFigureを作って」「複数のグラフを1枚に」「Figure 1の概要図」「図を綺麗に/投稿用に整えて」「配色やフォントを統一」「Figure captionを書いて」「結果の表を作って」など、研究・分析結果を論文・投稿・発表用の図表に仕上げる依頼では、Natureと明示されていなくても必ずこのスキルを使うこと。Also use for any request in English for publication-quality, multi-panel or journal-ready figures from analysis results.

Skills relacionados