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:
Create 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.
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",
"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.