The input is the paper the user provides. It takes an arXiv ID or URL, DOI, PDF path, title, or 분야:주제If there is nothing, ask which paper it is.
Turn one paper into a commentary that reads like a community info post. Every fact in the writing is verified against the original text and the fact ledger.
The goal is to write so that even someone who hasn't read the paper follows along at once. For that, there must be no missing steps in the explanation. Where the paper states only the conclusion and skips over something, fill in that step and unpack it, and for difficult concepts, show the scene first and then attach the name. The format follows the best Korean community info posts. The basics are eumseum-che with one breath per line, a chronology with years stamped in, and images attached every few lines. No profanity is used.
Criteria for a good report
All seven must be present. The grading criteria are in references/rubric.md.
- Accuracy: every fact is grounded in the original text. The original's level of confidence and conditions are also carried over as is.
- Coherence: start with a single question and follow the spine (chain of questions). Pay off earlier setups later, and at the end return to the first question, answer it, then close by showing the present and the future.
- Fun: show the gap between expectation and result, hidden details, and character crossovers as punches after setups. Don't declare that it's fun.
- Explanatory power: unpack the paper intuitively. Wherever a first-time reader would ask "why?", the answer must be on the page, and leaps are explained by filling in the steps. Don't paper over explanations with parentheses.
- Expertise: pair easy explanations with precise ones side by side, and cover the expert material suited to the paper type (metrics, setups, comparative experiments, measurement methods, etc.).
- Social context: introduce it according to how much the reader knows about the subject, and point out with date-stamped facts where this research stands right now.
- Tone: unify in eumseum-che and write with one breath per line. The community tone is an outer garment, and underneath is writing by a person. Don't leave AI tells like template-stamped lists, wrap-up remarks, or formulaic closings.
Deliverables
The deliverables gather in the working folder reports/<slug>/.
| File | Content |
|---|---|
paper.pdf, meta.json, text.txt |
Original text, metadata, body text with page markers |
lineage.md |
Reference ranking, citation context sentences, follow-up work, author information |
ledger.md |
Fact ledger. The basis for every factual claim in the report |
outline.md |
Plan. Type, opening question, spine, setups and payoffs, part list |
figures/ |
Original figures/tables, crops quoting original paragraphs, figures from previous and follow-up work, one map of the opening section |
report.md |
Manuscript. Parts are divided into --- lines |
viewer.html, post.html |
White-background post |
gallery.html |
A meme mode that flips through part images one at a time |
social/NN_k.png |
4:5 image for sharing on X/Threads (1080×1350) |
cards/NN.png, post_NN.png |
Part-by-part images that look like phone screenshots (430px wide, 3x scale), a long stitched-together image |
Prerequisites and scripts
uvand Chrome (or Chromium) are required. Optionally, S2_API_KEY, OPENALEX_API_KEY, CHROME_PATHis used. The script is in scripts/in the folder where this SKILL.md is located. In the command below, ${CLAUDE_SKILL_DIR}is that folder. Claude Code fills in this value automatically. In other agents, ${CLAUDE_SKILL_DIR}if it appears literally, replace it with the path to the skill folder and run.
# 원문 PDF, 메타데이터, 텍스트
uv run ${CLAUDE_SKILL_DIR}/scripts/fetch_paper.py <입력> [--out reports] [--pdf 로컬PDF]
# 그림 자동 크롭 + 페이지 렌더 (기본 40쪽까지, --max-pages로 조정)
uv run ${CLAUDE_SKILL_DIR}/scripts/extract_figures.py <폴더>
# 수동 크롭. --bbox는 페이지 비율(0~1) x0,y0,x1,y1. --dest를 주면 그 폴더의 figures/에 저장
uv run ${CLAUDE_SKILL_DIR}/scripts/extract_figures.py <폴더> crop --page 3 --bbox 0.1,0.2,0.9,0.55 --name 이름 [--rotate 90] [--dest 본레포트폴더]
# 원문 문단 인용 크롭. --start 줄부터 --end 줄까지, 같은 단 안에서 줄 단위로 자름
uv run ${CLAUDE_SKILL_DIR}/scripts/extract_figures.py <폴더> quote --page 13 --start "첫 줄 구절" --end "끝 줄 구절" --name q_이름 [--full-width]
# 참고문헌 순위, 인용 문맥, 후속작, 저자
uv run ${CLAUDE_SKILL_DIR}/scripts/lineage.py <폴더> [--skip-s2] [--skip-openalex]
# 계보 타임라인이나 척추 지도 이미지 (레포트당 1장, 앞부분에만)
uv run ${CLAUDE_SKILL_DIR}/scripts/make_graphic.py <폴더> spec.json ...
# 말투, 그림, 팩트 추적 검사
uv run ${CLAUDE_SKILL_DIR}/scripts/check_report.py <폴더>
# 파트 PNG, 게시글, 짤 모드, 웹 게시용 파일
uv run ${CLAUDE_SKILL_DIR}/scripts/build_cards.py <폴더> --png --long --gallery --social [--artifact --artifact-title 이름]
Procedure
Do not skip steps. Do not start planning (5) without the ledger (4), and do not start writing (6) without planning.
1. Obtain and read the original text closely
If you only received the title, find the arXiv ID or DOI by searching. fetch_paper.pyreceive it as. If the PDF cannot be obtained, ask the user and stop. Do not write based only on the abstract.
text.txtread from beginning to end. While reading, write down the following separately. What to look for is in references/planning.md Section 6.
- Fun material: hidden details, internal inconsistencies, counterintuitive results
- Expertise material: setup, comparative experiments, design rationale
- Leap points: places where the paper states only the conclusion and puts the reasons in the appendix, footnotes, or references. Fill in the missing steps when writing.
- Concrete examples: examples from the paper or real-world cases to use for each abstract concept
2. Prepare figures
extract_figures.pyextract the original figures and open and check the figures you will use. Figures are basically citations from the paper. Use original figures/tables, quote crops cut directly from explanatory sentences (quote), figures from previous/follow-up works, equations, and title sections. Self-made summary images are limited to one map-like image at the beginning of the article. references/figures.mdfollow.
3. Investigate lineage and people
lineage.pyrun and lineage.mdread, then supplement with the web. references/lineage.md와 references/people-context.mdfollow. Cross-compare the author lists of previous works, this paper, and follow-up works, and also investigate where this research stands in society now (usage, scale, landscape). If there are many branches, you may launch subagents in parallel. Those results must also go into the ledger.
4. Fact ledger
references/fact-check.md write ledger.mdin the format. Write all numbers, dates, affiliations, relationships, citation counts, and statements that will go into the report with IDs (F main text, L lineage, P people, W web) and original quotes, locations.
5. Planning
references/planning.mddecide according to and outline.mdwrite in.
- Choose the paper type (solution type, discovery type, measurement/data type, theory type, rebuttal type, review type, proposal/perspective type). Decide based on the first claim asserted by the abstract/introduction.
- Judge reader familiarity and where this research stands in society now, and decide the introductory question.
- Build a spine suited to the type and decide the name to call at each joint in the main text. Do not copy the framework of the example paper.
- Set 2–3 pairs of setups and payoffs, the fun material in this paper, and the type-specific expertise material and decisive evidence.
- Decide the ending. In the final answer part, answer the opening question more precisely. In the closing part, connect to the present and bring back one scene written earlier. Point to what will be confirmed next, then close with a three-line summary. Do not re-list the spine in numerical order or end every time with the same outlook phrasing.
- Lay out the part list (first line, connected spine segment or setup, gist, figure, ledger ID). 10–26 parts. No subheadings, and the first line picks up the previous part.
outline.mdIf you cannot fill in the slots in , go back to research.
6. Writing
references/style-guide.mdread again and outline.mdwrite according to . In particular, follow Section 0, "Storyteller Principles."
- Do not use subheadings within a part. The first line of each part picks up the end of the previous part and continues.
- At the end of a line stating a fact, add
<!-- F3 -->a ledger ID like . It is deleted at build time. - Write figures as
and note on the preceding line what to look at. Do not write the capture method or usage permission. - Carry over the paper's level of confidence and conditions as they are.
7. Verification and Scoring
check_report.pyMake ERRORs 0 with , and judge WARNs one by one.- Independent fact-check. To a subagent, give
report.md,ledger.md,text.txt, the original text of the previous work, andreferences/fact-check.mdhave it inspect with the instructions in . If you cannot use a subagent, directly redo the ledger comparison part by part. Verify pointed-out issues against the original text before fixing them. - Flow and explanation review.
references/rubric.mdWith the instructions in , from the perspective of a first-time reader, find connections at part boundaries, leaps, parenthetical explanations, and labels without setups. Fix all "breaks" and leaps. - Polishing. Leave the -style endings and one-line-per-breath line breaks as they are, and remove only the AI feel.
references/rubric.mdAfter having a subagent read the manuscript with the AI-feel review instructions in , fix the flagged lines according toreferences/style-guide.mdSection 4. Fix only the flagged lines. Do not raise reservations to assertions or plant new metaphors. If the user wants to use the humanize-korean(im-not-ai) skill, it may be run at this stage. Set the condition to preserve the -style endings, line breaks, and<!-- F3 -->tags. After running it, runcheck_report.pyagain and check that the tags and number tracking are unchanged. references/rubric.mdScore the seven items with . Keep fixing until accuracy is 3 points and the rest are 2 points or higher.
8. Build
build_cards.py <폴더> --png --long --gallery --socialRun and open a few images to check. If asked to show it on the web, when an Artifact publishing tool is available, add --artifact --artifact-title "<짧은 이름>"and publish viewer_artifact.html(post) or gallery_artifact.html(meme mode). If neither is specified, publish the post and let them know meme mode and shareable images are also available. If there is no tool, tell them the file path.
9. Report
Announce the title, number of parts, location of the output, grading results, and what was fixed in fact-checking. If there is content that was omitted because it could not be verified, write at the very beginning what was omitted and why. To publish the output, inform them to check the license of the paper figures.
Field mode ("field:topic")
- Survey papers and
lineage.pyselect 4–8 landmark papers in chronological order. - After showing the list, repeat steps 1–9 for each paper. Create a separate folder for each paper.
reports/<분야>/series.mdwrite the paper order, one-line summary, and relationships between papers (ledger L items). Also plant bait and payoffs between papers.
Absolute rules
- No fact that is not in the ledger appears in the report.
- Do not use profanity, hate speech, or mockery of specific individuals. Criticism is limited to limitations stated in the original text and sourced counterarguments.
- Use the "eumsum" style consistently.
- Attach a reference date to information that changes, such as citation counts and affiliations.
Reference documents
| Document | When to read |
|---|---|
references/planning.md |
When reading closely (finding materials), when planning |
references/style-guide.md |
Immediately before writing, immediately before polishing |
references/figures.md |
When preparing figures |
references/fact-check.md |
When writing the ledger, when verifying |
references/lineage.md |
When investigating lineage |
references/people-context.md |
When writing authors, institutions, and backstories |
references/rubric.md |
When grading after writing |
examples/transformer/ |
Once when writing for the first time. A planning document, manuscript, and ledger example for a solution-type paper. Do not copy the template |