Generate or audit structured reading notes from academic paper PDFs for a literature review knowledge base. Use this skill whenever the user uploads a PDF of a research paper and wants reading notes, a paper summary following their template, or asks to "read this paper", "take notes on this paper", "精读这篇论文", "生成笔记", or similar requests involving academic paper analysis. Also trigger when the user mentions paper priority (P0/P1/P2), reading passes, asks whether an existing note truly meets Pass 2, wants to double check citations against the PDF, or wants knowledge base updates in the context of paper notes. This skill produces or audits a structured markdown note with extracted evidence, design choices, limitations, and gap signals — not a generic summary.
Transform an uploaded academic paper PDF into a structured reading note that follows a specific research methodology template. The note serves as an entry in the researcher's knowledge base for writing a survey and eventually a top-venue paper.
The key insight: this is NOT a generic paper summary. It's an evidence extraction task. Every section of the output must trace back to specific locations in the paper (Section + page number). The researcher will use these notes to build argumentation chains (Claim → Evidence → Reasoning) for their survey.
Pass 2There are two valid entry modes:
Pass 2In Audit mode, read the existing note first and treat the Pass 2 label as untrusted until the audit confirms it.
First, read the PDF skill for file handling:
view /mnt/skills/public/pdf/SKILL.md
Then locate the original PDF. Prefer the repo copy under papers/source/ when available. If the user uploaded a PDF for this turn, use that copy.
Extract the full text from the PDF. Use pdfplumber for text extraction as it preserves layout better:
import pdfplumber
with pdfplumber.open("/mnt/user-data/uploads/<filename>.pdf") as pdf:
full_text = ""
for i, page in enumerate(pdf.pages):
text = page.extract_text()
if text:
full_text += f"\n--- Page {i+1} ---\n{text}"
Also extract tables separately — they contain key experimental results:
all_tables = []
for i, page in enumerate(pdf.pages):
tables = page.extract_tables()
for j, table in enumerate(tables):
all_tables.append({"page": i+1, "table_index": j, "data": table})
If you are re-reading the PDF for quote verification or Pass 2 audit, keep a clean extracted text file under the same topic's papers/ tree so future quote checks do not require fresh extraction.
Preferred location:
<topic>/papers/text/<pdf-stem>_clean.txt
Rules for the clean text file:
--- Page N ---_layout, _raw, _debug unless the user explicitly askspapers/text/ does not exist, create itview /mnt/skills/paper-reading-notes/references/note-template.md
view /mnt/skills/paper-reading-notes/references/quality-checklist.md
view /mnt/skills/paper-reading-notes/references/style-guide.md
The template defines the output structure. The checklist defines whether the note can remain Pass 1, be promoted to Pass 2, or be downgraded from an existing Pass 2 label after audit. The style guide defines the note's positioning and language contract. Read all three before writing.
Work through the template section by section. Here are the extraction strategies for each:
arXiv:XXXX.XXXXX in headers or footers.P1 and Pass 1. The user will adjust.Format: [System/Method name] [does what] on [which benchmarks], achieving [key metric improvement over baseline].
Extract from Abstract + Conclusion. Be specific with numbers.
This is critical — find the exact quotes where the authors state:
Always include Section references and page numbers: (Section 1, p.2)
this_method - strongest_baselineSearch the paper for:
Each gap signal MUST have a direct quote or data point with location.
In Audit mode, do not rewrite everything blindly. First identify which claims are decision-critical for Pass 2:
Only reopen and patch the sections whose evidence chain is weak, missing, or suspicious.
Treat the reading note as a research intermediate artifact, not as:
Follow this language contract:
Default rule:
Chinese for analysis, English for evidence fidelity.
Required style constraints:
Relation to My Research like a generic survey paragraphIf uncertainty remains:
原文未明确说明当前判断基于 Table X + Section Y 的间接证据instead of leaving vague placeholders or guesses.
Example of correct style:
## Limitations
- **Author-stated limitations**: "Our method requires pre-defined action spaces and cannot handle novel UI elements" (Section 6, p.9)
- **My observed limitations**:
1. 该方法只在 Android 平台验证,跨平台泛化仍未证明。
2. 实验任务平均步骤数较短,因此对长序列任务的支持证据不足。
- **Experimental design gaps**: 缺少与更强 recent baseline 的统一重跑对比。
After the draft note is filled, run the checklist in:
view /mnt/skills/paper-reading-notes/references/quality-checklist.md
Apply these rules strictly:
Pass 1 unless the audit proves otherwise.Pass 2 must also pass the same audit again; do not trust the old label by default.Pass 2 just because every section in the template is non-empty.Pass 2 only if every Hard Gate passes and the note is strong enough to support comparison-matrix / gap-tracker updates without reopening the PDF.Hard Gate fails, keep or change the note to Pass 1 and record the blocking items for the user.Pass 1 unless the inference is clearly labeled and the supporting quote/data is still present.When auditing an existing Pass 2 note, use a skeptical standard:
comparison-matrix / gap-tracker, re-check the PDF unless the note already contains exact supporting quote/dataPass 2Typical blockers for Pass 2:
Necessary conclusion for a true Pass 2 note:
comparison-matrix and gap-tracker can be updated from the note without reopening the PDFSave the completed note to: /mnt/user-data/outputs/<short-name>-notes.md
Where <short-name> is a lowercase-hyphenated version of the paper's short name or system name (e.g., appagent-notes.md, awm-notes.md).
After saving, use present_files to share with the user.
After presenting the file, remind the user:
笔记已生成。
- 如果这是 `Pass 1` 草稿:请重点检查 `My observed limitations`、`Relation to My Research` 和 `Gap Signals` 是否需要进一步收口。
- 如果这是 `Pass 2` 笔记:它应已可直接支持 KB 同步,不应再残留未收口占位。
Also report the audit result in plain language:
Pass 2 audit: passed + 2-3 reasons it passedPass 2 audit: not yet + the blocking checklist itemsPass 2 note that fails: Pass 2 audit: failed on re-check + whether the note was downgraded to Pass 1Minimum quality checks before delivery:
For Pass 2 decisions, use the full audit in references/quality-checklist.md rather than only this short list.
Pass 2 is a readiness judgment, not a formatting judgment. A complete-looking note can still be only Pass 1.Pass 2 re-audits, prefer false-negative over false-positive. If evidence feels shaky, re-open the PDF and verify.⚠️ NEEDS YOUR INPUT. Placeholders are acceptable only for genuine unresolved researcher decisions, not as the default output style.