Use this skill when the user wants to read, study, analyze, or deeply understand a research paper (PDF).
Invoke this skill with a paper PDF path.
Language Detection: Detect the user's language from their input and generate ALL materials in that language.
Primary Objective: Facilitate deep conceptual understanding and research-level thinking.
Secondary Objective: Create a structured, reusable paper knowledge system.
This workflow is not just for summarizing — it builds a learning environment around the paper.
if [ ! -f "${CLAUDE_PLUGIN_ROOT}/.installed" ]; then
echo "First run - installing dependencies..."
cd "${CLAUDE_PLUGIN_ROOT}"
npm install || exit 1
# Install Python dependencies for image extraction
python3 -m pip install pymupdf --user 2>/dev/null || pip3 install pymupdf --user 2>/dev/null || echo "Warning: Failed to install pymupdf"
touch "${CLAUDE_PLUGIN_ROOT}/.installed"
echo "Dependencies installed!"
fi
Recommended:
Supports multiple input formats:
~/Downloads/paper.pdfhttps://arxiv.org/pdf/1706.03762.pdfhttps://arxiv.org/abs/1706.03762USER_INPUT="<user-input>"
# Check if input is a URL (starts with http:// or https://)
if [[ "$USER_INPUT" =~ ^https?:// ]]; then
# Download PDF from URL
INPUT_PATH=$(node ${CLAUDE_PLUGIN_ROOT}/skills/study/scripts/download-pdf.cjs "$USER_INPUT")
else
# Use local path directly
INPUT_PATH="$USER_INPUT"
fi
For URLs, the download script will:
/tmp/claude-paper-downloads//abs/ URLs to PDF URLs automaticallyFor local paths, use the path directly without downloading.
Extract structured information:
node ${CLAUDE_PLUGIN_ROOT}/skills/study/scripts/parse-pdf.js "$INPUT_PATH"
Output includes:
Save to:
~/claude-papers/papers/{paper-slug}/meta.json
Copy original PDF:
cp <pdf-path> ~/claude-papers/papers/{paper-slug}/paper.pdf
Fallback: If structured parsing fails, extract raw text and continue with degraded structure.
Before generating any files, evaluate:
Difficulty Level
Paper Nature
Methodological Complexity
This assessment determines:
Before generating files, infer exactly 2 tags from semantic understanding of the paper.
Rules:
paper, research, ai, mlExamples:
machine translation, self-attention3d detection, bev transformerprotein folding, structure predictionPersist these 2 tags in both locations:
~/claude-papers/papers/{paper-slug}/meta.json as tags~/claude-papers/index.json entry as tagsCreate folder:
~/claude-papers/papers/{paper-slug}/
15 questions:
Use this format:
### Question
<details>
<summary>Answer</summary>
Detailed explanation.
</details>
---
Include:
At least one runnable demo must be created.
All code demos must be placed in:
~/claude-papers/papers/{paper-slug}/code/
Create the code directory first:
mkdir -p ~/claude-papers/papers/{paper-slug}/code
Guidelines:
Possible types:
Name descriptively:
Avoid generic names.
Create a single self-contained HTML file for interactively exploring the paper's core concepts.
Output path:
~/claude-papers/papers/{paper-slug}/index.html
Choose the interaction pattern that best fits the paper — architecture diagrams, parameter explorers, result dashboards, formula breakdowns, comparison matrices, etc. Let the paper's content dictate the format rather than forcing a fixed layout, focusing on the core ideas of the paper.
Every interactive control (slider, toggle, dropdown) should visibly change the visualization. Include brief explanatory text alongside interactive elements to teach concepts.
mkdir -p ~/claude-papers/papers/{paper-slug}/images
python3 ${CLAUDE_PLUGIN_ROOT}/skills/study/scripts/extract-images.py \
paper.pdf \
~/claude-papers/papers/{paper-slug}/images
Rename key images descriptively:
CRITICAL: Read existing index.json first, then append the new paper. Never overwrite the entire file.
If index.json does not exist, create:
{"papers": []}
Append new entry to the papers array:
{
"id": "paper-slug",
"title": "Paper Title",
"slug": "paper-slug",
"authors": ["Author 1", "Author 2"],
"abstract": "Paper abstract...",
"year": 2024,
"date": "2024-01-01",
"tags": ["tag-1", "tag-2"],
"githubLinks": ["https://github.com/..."],
"codeLinks": ["https://..."]
}
IMPORTANT: The index.json file must be located at:
~/claude-papers/index.json
Invoke:
/claude-paper:webui
After all files are generated:
Ask:
Allow user to:
Generate a new file inside the same folder:
Examples:
If iterated:
Create:
This makes the paper folder a growing knowledge node.