Journal-Club Review
Turn any paper (arXiv ID/URL, PDF, text, or a local LaTeX source) into a
journal-club presentation: a warm, accurate, discussion-oriented walkthrough in
nine sections, with LaTeX math, the paper's real figures (when source is
available), and two optional infographic figures. This is a teaching/discussion
artifact, not a referee report: no scores, no accept/reject.
When to use
- "Give me a journal-club review of 2401.00001"
- "Review this PDF like a journal club" / "make presentation notes for this paper"
- "이 논문 저널클럽 리뷰 만들어줘" / "발표자료처럼 정리해줘"
- Any text or markdown draft the user wants walked through for a reading group.
If the user wants a peer-review referee report (rating, confidence, weaknesses
for OpenReview) use workshop-paper-review. For an adversarial pre-submission
audit of their own draft use adversarial-review.
Inputs
One of:
- arXiv id (
2401.00001, 2401.00001v2, hep-ph/0101001) or arXiv URL
- a local PDF path
- a local
.md / .txt path, or pasted text
- a local LaTeX source: a
.tex file or a project directory (e.g. an Overleaf
checkout). Figures referenced by the source are harvested automatically.
Workflow
1. Ingest the source
Run the extractor to get a uniform working directory with source.md:
uv run scripts/extract_text.py "<arxiv-id | url | path>"
(scripts/extract_text.py is relative to this skill's base directory; pass an
absolute path if your cwd is elsewhere.)
It prints a JSON summary (slug, title, authors, categories, out_dir,
source_md, n_chars, plus n_figures, figures_dir, figures_manifest)
and writes <out_dir>/source.md (default ./reviews/<slug>/). For pasted text,
save it to a .md file first, then pass that path.
For arXiv ids and local PDF paths it also keeps the paper itself at
<out_dir>/source.pdf. That file is part of the deliverable: source.md is a
lossy text dump with the LaTeX gone, so any verbatim quote you plan to reuse
should be checked against source.pdf, and step 6 archives it alongside the
review. Text and LaTeX inputs have no PDF to keep, which is fine.
When LaTeX source is available (arXiv e-print tarball, or a local .tex/dir
input), the extractor also converts the paper's figures to PNG under
<out_dir>/figures/paper/ and writes <out_dir>/figures_manifest.json
(n_figures > 0). For PDF-only or plain-text inputs there are no source
figures (n_figures is 0); that is fine, just skip step 3.
Read source.md. If extraction yielded little text (scanned PDF, n_chars
small), tell the user and proceed with whatever is available (abstract-level).
2. Detect language and write the review
Read references/style-and-math.md, references/section-pipeline.md.
- Detect the source language; write the review in that language unless the user
asked otherwise (see
style-and-math.md).
- Produce all nine sections in order, grounded in
source.md with section /
equation / figure citations. Render all math as LaTeX ($...$, $$...$$).
- Build a
method figure brief inside section 4 and a results figure brief
inside section 5 (schema in references/figure-generation.md).
- Follow the output skeleton in
section-pipeline.md. Save the draft to
<out_dir>/review.md (leave figure image lines out until steps 3-4 confirm
which figures exist).
3. Embed the paper's real figures (when source available)
If n_figures > 0, read references/figure-generation.md ("Real source
figures") and <out_dir>/figures_manifest.json. Curate the most relevant
figures and embed them into the matching sections with their captions
(figures/paper/<name>.png): overview/architecture/schematic into How It
Works, result plots into Key Results. Verify each embedded PNG is
non-empty before referencing it. Do not dump every figure; note any a reader
might expect that you skipped.
Skip if n_figures is 0 (PDF/text input).
4. Generate infographics (optional, on by default)
Read references/figure-generation.md ("Generated infographics"). Check
codex login status. If logged in, compose the two friendly-whiteboard prompts
from the briefs and launch both codex exec jobs in parallel into
<out_dir>/figures/. After they finish, embed
 and
 for whichever PNGs are non-empty; note any
that were skipped. These coexist with the real figures from step 3.
Skip this step if the user passed --no-figures / "no images" / "text only", or
if codex is not logged in (then say so and keep the review text-only).
5. Deliver
- Final file:
<out_dir>/review.md (with figures alongside in
<out_dir>/figures/: real figures in figures/paper/, infographics in
figures/).
- Tell the user the path and give a 1-2 line summary.
6. Export PDF and file into the JournalClub archive (default)
Every finished review is exported to PDF and mirrored into the user's
~/Dropbox/JournalClub archive. Do this automatically, do not wait to be asked.
- Export the PDF with the
md2pdf-typora skill on <out_dir>/review.md,
producing <out_dir>/review.pdf. (This runs regardless of the review
language; the Whitey theme handles Korean and English both.)
- Pick the topic folder. The archive is organised as
~/Dropbox/JournalClub/<Topic>/reviews/<slug>/. List the existing topics
(ls ~/Dropbox/JournalClub) and choose the one that fits the paper. If none
fits, ask the user which topic to use or whether to create a new one (e.g.
SpectralGeometry, InverseProblem); create it only after they confirm the
name. Do not silently invent a topic.
- Copy the artifacts into
~/Dropbox/JournalClub/<Topic>/reviews/<slug>/: review.md, review.pdf,
source.md, source.pdf (the original paper, when the input produced one),
figures_manifest.json (when it exists), and the figures/ directory (both
figures/paper/ real figures and the generated figures/*.png infographics).
Match the existing layout in sibling review folders. The archive is the
long-lived copy, so the original PDF belongs there: a text extraction cannot
settle a page reference, an equation number, or a figure panel later.
- Confirm the destination path and file sizes to the user.
Notes
- This skill is self-contained: it does not require the arXiv Explorer app. It
reuses that project's journal-club section design and figure style, but Claude
itself does the analysis here.
- For arXiv inputs the extractor uses the PDF for text and the e-print tarball
for figures. If you have the LaTeX source already, pass the
.tex/dir path
instead for cleaner math and section structure plus the same figure harvest.
- Real-figure conversion uses whatever rasterizer is on PATH (
pdftoppm,
magick/convert, or gs); if none is present, vector figures are skipped
and only raster (PNG/JPG) figures survive.
- Generated infographics depend on a logged-in bundled
codex runtime (ChatGPT
OAuth). Without it the review still renders, just text-only.
Files
scripts/extract_text.py: arXiv/PDF/text/LaTeX -> source.md + JSON metadata,
and source.pdf for arXiv/PDF inputs (arXiv is downloaded, a local PDF is
copied); harvests real figures to figures/paper/ + figures_manifest.json
when LaTeX source is available (PEP 723 inline deps: pdfplumber, httpx,
feedparser; uses system pdftoppm/magick/gs for conversion; run with uv run).
references/section-pipeline.md: the nine sections and output skeleton.
references/figure-generation.md: real-figure embedding policy, infographic
briefs, style block, codex command.
references/style-and-math.md: language rule, LaTeX math, tone, anti-patterns.
1---2name: journal-club-review3description: Produce a journal-club-style paper presentation (9 sections: TL;DR, Problem, Key Idea, How It Works, Key Results, Why It Matters, Strengths/Limitations/Open Questions, Discussion Questions, Takeaways) from an arXiv ID/URL, a PDF, raw text/markdown, or a local LaTeX source (.tex / project dir). Helps a reading group UNDERSTAND and DISCUSS the paper — not score or accept/reject it. Grounds every claim in the source, renders math as LaTeX, auto-matches the source language (Korean source -> Korean review). When LaTeX source is available (arXiv e-print or local .tex), embeds the paper's real figures with captions; optionally generates two friendly-whiteboard infographic figures via the bundled codex image_generation tool. Use when the user wants a journal-club review, paper walkthrough/presentation, or paper explainer, to "review this PDF/paper like a journal club", or 논문 저널클럽 리뷰/발표자료/논문 설명. For an OpenReview referee report use workshop-paper-review; for an adversarial pre-submission audit use adversarial-review.4---56# Journal-Club Review78Turn any paper (arXiv ID/URL, PDF, text, or a local LaTeX source) into a9journal-club presentation: a warm, accurate, discussion-oriented walkthrough in10nine sections, with LaTeX math, the paper's real figures (when source is11available), and two optional infographic figures. This is a teaching/discussion12artifact, not a referee report: no scores, no accept/reject.1314## When to use1516- "Give me a journal-club review of 2401.00001"17- "Review this PDF like a journal club" / "make presentation notes for this paper"18- "이 논문 저널클럽 리뷰 만들어줘" / "발표자료처럼 정리해줘"19- Any text or markdown draft the user wants walked through for a reading group.2021If the user wants a peer-review referee report (rating, confidence, weaknesses22for OpenReview) use `workshop-paper-review`. For an adversarial pre-submission23audit of their own draft use `adversarial-review`.2425## Inputs2627One of:28- arXiv id (`2401.00001`, `2401.00001v2`, `hep-ph/0101001`) or arXiv URL29- a local PDF path30- a local `.md` / `.txt` path, or pasted text31- a local LaTeX source: a `.tex` file or a project directory (e.g. an Overleaf32 checkout). Figures referenced by the source are harvested automatically.3334## Workflow3536### 1. Ingest the source3738Run the extractor to get a uniform working directory with `source.md`:3940```bash41uv run scripts/extract_text.py "<arxiv-id | url | path>"42```4344(`scripts/extract_text.py` is relative to this skill's base directory; pass an45absolute path if your cwd is elsewhere.)4647It prints a JSON summary (`slug`, `title`, `authors`, `categories`, `out_dir`,48`source_md`, `n_chars`, plus `n_figures`, `figures_dir`, `figures_manifest`)49and writes `<out_dir>/source.md` (default `./reviews/<slug>/`). For pasted text,50save it to a `.md` file first, then pass that path.5152For arXiv ids and local PDF paths it also keeps the paper itself at53`<out_dir>/source.pdf`. That file is part of the deliverable: `source.md` is a54lossy text dump with the LaTeX gone, so any verbatim quote you plan to reuse55should be checked against `source.pdf`, and step 6 archives it alongside the56review. Text and LaTeX inputs have no PDF to keep, which is fine.5758When LaTeX source is available (arXiv e-print tarball, or a local `.tex`/dir59input), the extractor also converts the paper's figures to PNG under60`<out_dir>/figures/paper/` and writes `<out_dir>/figures_manifest.json`61(`n_figures` > 0). For PDF-only or plain-text inputs there are no source62figures (`n_figures` is 0); that is fine, just skip step 3.6364Read `source.md`. If extraction yielded little text (scanned PDF, `n_chars`65small), tell the user and proceed with whatever is available (abstract-level).6667### 2. Detect language and write the review6869Read `references/style-and-math.md`, `references/section-pipeline.md`.7071- Detect the source language; write the review in that language unless the user72 asked otherwise (see `style-and-math.md`).73- Produce all nine sections in order, grounded in `source.md` with section /74 equation / figure citations. Render all math as LaTeX (`$...$`, `$$...$$`).75- Build a `method` figure brief inside section 4 and a `results` figure brief76 inside section 5 (schema in `references/figure-generation.md`).77- Follow the output skeleton in `section-pipeline.md`. Save the draft to78 `<out_dir>/review.md` (leave figure image lines out until steps 3-4 confirm79 which figures exist).8081### 3. Embed the paper's real figures (when source available)8283If `n_figures` > 0, read `references/figure-generation.md` ("Real source84figures") and `<out_dir>/figures_manifest.json`. Curate the most relevant85figures and embed them into the matching sections with their captions86(`figures/paper/<name>.png`): overview/architecture/schematic into **How It87Works**, result plots into **Key Results**. Verify each embedded PNG is88non-empty before referencing it. Do not dump every figure; note any a reader89might expect that you skipped.9091Skip if `n_figures` is 0 (PDF/text input).9293### 4. Generate infographics (optional, on by default)9495Read `references/figure-generation.md` ("Generated infographics"). Check96`codex login status`. If logged in, compose the two friendly-whiteboard prompts97from the briefs and launch both `codex exec` jobs in parallel into98`<out_dir>/figures/`. After they finish, embed99`` and100`` for whichever PNGs are non-empty; note any101that were skipped. These coexist with the real figures from step 3.102103Skip this step if the user passed `--no-figures` / "no images" / "text only", or104if codex is not logged in (then say so and keep the review text-only).105106### 5. Deliver107108- Final file: `<out_dir>/review.md` (with figures alongside in109 `<out_dir>/figures/`: real figures in `figures/paper/`, infographics in110 `figures/`).111- Tell the user the path and give a 1-2 line summary.112113### 6. Export PDF and file into the JournalClub archive (default)114115Every finished review is exported to PDF and mirrored into the user's116`~/Dropbox/JournalClub` archive. Do this automatically, do not wait to be asked.1171181. **Export the PDF** with the `md2pdf-typora` skill on `<out_dir>/review.md`,119 producing `<out_dir>/review.pdf`. (This runs regardless of the review120 language; the Whitey theme handles Korean and English both.)1212. **Pick the topic folder.** The archive is organised as122 `~/Dropbox/JournalClub/<Topic>/reviews/<slug>/`. List the existing topics123 (`ls ~/Dropbox/JournalClub`) and choose the one that fits the paper. If none124 fits, ask the user which topic to use or whether to create a new one (e.g.125 `SpectralGeometry`, `InverseProblem`); create it only after they confirm the126 name. Do not silently invent a topic.1273. **Copy the artifacts** into128 `~/Dropbox/JournalClub/<Topic>/reviews/<slug>/`: `review.md`, `review.pdf`,129 `source.md`, `source.pdf` (the original paper, when the input produced one),130 `figures_manifest.json` (when it exists), and the `figures/` directory (both131 `figures/paper/` real figures and the generated `figures/*.png` infographics).132 Match the existing layout in sibling review folders. The archive is the133 long-lived copy, so the original PDF belongs there: a text extraction cannot134 settle a page reference, an equation number, or a figure panel later.1354. **Confirm** the destination path and file sizes to the user.136137## Notes138139- This skill is self-contained: it does not require the arXiv Explorer app. It140 reuses that project's journal-club section design and figure style, but Claude141 itself does the analysis here.142- For arXiv inputs the extractor uses the PDF for text and the e-print tarball143 for figures. If you have the LaTeX source already, pass the `.tex`/dir path144 instead for cleaner math and section structure plus the same figure harvest.145- Real-figure conversion uses whatever rasterizer is on PATH (`pdftoppm`,146 `magick`/`convert`, or `gs`); if none is present, vector figures are skipped147 and only raster (PNG/JPG) figures survive.148- Generated infographics depend on a logged-in bundled `codex` runtime (ChatGPT149 OAuth). Without it the review still renders, just text-only.150151## Files152153- `scripts/extract_text.py`: arXiv/PDF/text/LaTeX -> `source.md` + JSON metadata,154 and `source.pdf` for arXiv/PDF inputs (arXiv is downloaded, a local PDF is155 copied); harvests real figures to `figures/paper/` + `figures_manifest.json`156 when LaTeX source is available (PEP 723 inline deps: pdfplumber, httpx,157 feedparser; uses system pdftoppm/magick/gs for conversion; run with `uv run`).158- `references/section-pipeline.md`: the nine sections and output skeleton.159- `references/figure-generation.md`: real-figure embedding policy, infographic160 briefs, style block, codex command.161- `references/style-and-math.md`: language rule, LaTeX math, tone, anti-patterns.