Paper-Compass-Learnpath
Do one thing: produce an actionable prerequisite learning path before the user reads a paper.
Language Interface
- Supported parameter:
lang=zh|en
- Default output language:
zh
- If
lang is not provided, output in Chinese.
- If
lang=en, output all report sections and notes in English.
- If
lang=zh, all report section titles must be Chinese.
- Keep technical terms unchanged when translation could reduce precision.
Constraints
C0: Evidence First
- Every prerequisite concept must include at least 1 evidence anchor.
- Evidence format:
[Section] "short quote".
- Keep quotes short: at most 25 English words (or similarly short in other languages).
- If direct evidence is missing, mark
evidence=indirect and lower confidence.
- Do not put non-evidenced concepts into the
Must Learn section.
C1: Prerequisite-Oriented Scope
- Include only concepts required to understand the paper.
- Order by dependency: foundation -> bridge -> paper-specific.
- For each concept, provide star difficulty and a minimum learning goal.
- Star difficulty format:
- 1 ->
⭐
- 2 ->
⭐⭐
- 3 ->
⭐⭐⭐
- 4 ->
⭐⭐⭐⭐
- 5 ->
⭐⭐⭐⭐⭐
C2: Personalization First
- If user provides
memory=<path>, read that file first.
- If not provided, try
~/Documents/know/memory.md.
- If the file does not exist, continue and mark memory as not loaded.
- Do not reteach mastered knowledge unless needed for paper-specific deltas.
C3: Honesty First
- Explicitly write
信息不足 (for zh) or insufficient information (for en) when needed.
- Never fabricate sections, quotes, or resource links.
- Use
low-confidence when certainty is limited.
C4: Impact and Venue Verification
- For ALL papers: Must fetch venue and impact information via API.
- NEVER claim "preprint" or "unpublished" without verification.
- For recent arXiv papers (within past 2 years): These are HIGH PRIORITY for venue verification:
- Many arXiv papers get published at conferences (NeurIPS, ICLR, ICML, ACL, etc.) within months
- Conference cycles: NeurIPS (Dec), ICLR (May), ICML (Jul), ACL (May-Aug)
- Impact data: Fetch via Semantic Scholar API (Bash + curl):
- Citation count
- Venue name
- TLDR (one-line summary)
- If API fails: Mark as
venue待验证 or citations待验证, NOT "preprint/unpublished"
C5: Output Structure Compliance
Input Normalization
| User Input |
Rule |
2010.11929 or arxiv:2010.11929 |
Convert to arXiv ID, use multi-source fallback |
https://arxiv.org/abs/... |
Extract ID, use multi-source fallback |
https://arxiv.org/pdf/... |
Extract ID, use multi-source fallback |
https://arxiv.org/html/... |
Extract ID, use multi-source fallback |
| Local PDF path |
Parse directly with Read tool |
| Other paper URL |
Fetch and parse if readable |
arXiv Paper Access Strategy (Multi-Source Fallback)
arXiv resources (PDF, HTML, abs) are PRIMARY - always use first:
- arXiv API (abs): Fetch
https://export.arxiv.org/api/query?id_list={id} → get title, authors, abstract, year
- Stable PDF download with retry: use
curl with redirect-following, retry, timeout, and a browser-like user agent
- HTML fallback: if PDF still fails, fetch
https://arxiv.org/html/{id} when available
- Semantic Scholar API (supplement):
curl -s "https://api.semanticscholar.org/graph/v1/paper/ARXIV:{id}?fields=venue,citationCount,tldr" → get venue, citations
Priority Order:
Priority 1: arXiv API → metadata (title, authors, abstract, year)
Priority 2: Stable PDF download + Read tool → full paper content (sections, quotes, methods)
Priority 3: arXiv HTML fallback → recover readable sections when PDF fails
Priority 4: Semantic Scholar API via curl → venue, citations, TLDR (supplement)
CRITICAL:
- NEVER use WebSearch - it only works in US and will fail in other regions
- For arXiv full-text access, prefer direct arXiv/API access first;
semantic-scholar is only a metadata supplement, not the primary full-text path
- NEVER use WebFetch for arxiv.org - domain verification will block it; use curl/download instead
- arXiv PDF is the BEST source for full paper content, but downloads may intermittently fail; always use retry before giving up
- Prefer
https://arxiv.org/pdf/{id} over hardcoding .pdf suffix when downloading
- A successful PDF download must leave a non-empty local file before continuing
- NEVER download to
/tmp or other system temp paths; always save files under the current working directory in ./papers/
- When using Read, always read
./papers/{id}.pdf or ./papers/{id}.html from the current workspace so Windows path resolution does not fail
Workflow
Step 1: Fetch Paper Metadata and Content
Use Bash + Python/curl for arXiv access and full-text retrieval (no WebSearch, no WebFetch for arxiv.org):
# 1. Get arXiv metadata
python3 -c "
import urllib.request, xml.etree.ElementTree as ET, json
NS = 'http://www.w3.org/2005/Atom'
url = 'https://export.arxiv.org/api/query?id_list=ARXIV_ID'
with urllib.request.urlopen(url, timeout=30) as r:
root = ET.fromstring(r.read())
# Extract title, authors, abstract, year, pdf_url...
"
# 2. Always download to the current workspace under ./papers/
mkdir -p papers
curl -L --retry 5 --retry-delay 2 --retry-all-errors \
--connect-timeout 15 --max-time 120 \
-A "Mozilla/5.0" \
-o ./papers/ARXIV_ID.pdf https://arxiv.org/pdf/ARXIV_ID
# 3. Verify local PDF exists and is non-trivial
test -s ./papers/ARXIV_ID.pdf
# 4. If PDF failed, try HTML fallback
curl -L --retry 3 --retry-delay 2 --retry-all-errors \
--connect-timeout 15 --max-time 60 \
-A "Mozilla/5.0" \
-o ./papers/ARXIV_ID.html https://arxiv.org/html/ARXIV_ID
# 5. Get Semantic Scholar metadata (venue, citations)
curl -s "https://api.semanticscholar.org/graph/v1/paper/ARXIV:ARXIV_ID?fields=venue,citationCount,publicationVenue,tldr"
Then read content:
# Prefer Read tool on ./papers/ARXIV_ID.pdf
# If the PDF download failed but HTML exists, parse ./papers/ARXIV_ID.html instead
# Do not read /tmp/... paths on Windows
Extract and record:
- Title, authors, year (from arXiv API)
- Publication metadata:
- venue name (from Semantic Scholar API via curl)
- JCR quartile (journal-only; otherwise
N/A)
- CCF rank (if applicable; otherwise
N/A)
- Impact data (from Semantic Scholar API via curl):
- Citation count
- TLDR (one-line summary)
- Section titles and quotes (prefer PDF via Read tool, fallback to HTML)
- Key areas: method, experimental setup, critical appendix details
When download or APIs fail:
- If arXiv API fails, stop claiming verified title/year metadata
- If PDF fails but HTML works, continue with lowered confidence for quote extraction
- Mark section-level evidence as
信息不足 if neither PDF nor HTML is accessible
- Mark venue/citations as
待验证 if Semantic Scholar API fails
- Still produce a valid report with available information
- If direct Semantic Scholar API lookup is weak or ambiguous, you may use
/semantic-scholar only as a metadata cross-check for venue, citations, DOI, and TLDR
Step 2: Load User Prior Knowledge (memory.md)
Read references/memory-format.md, then classify user knowledge into:
mastered
familiar
basic
unknown
If a concept is not present, default to unknown.
Step 3: Extract Prerequisite Candidates
Use these signals:
- Core modules, operators, and training strategies in method sections
- Required prior models/theory (e.g., Transformer, contrastive learning, quantization)
- Experimental settings that materially affect conclusions
Tag each candidate:
role=must: essential to understand the main method
role=bridge: helps with key details
role=optional: useful but not required
Step 4: Bind Evidence and Section Usage
For each must/bridge concept, bind at least one evidence item:
section: section name or number
quote: short original quote
usage: one-sentence explanation of usage in this paper
If the concept appears across multiple sections, include multiple evidence anchors.
Step 5: Build Learning Order and Difficulty
Topologically sort by dependencies to produce order.
Difficulty levels:
1: term-level, ~30-60 minutes
2: standard module-level, ~1-2 hours
3: mechanism reasoning-level, ~2-4 hours
4: implementation/theory detail-level, ~4-8 hours
5: cross-paper synthesis-level, >8 hours
For each concept provide:
minimum_goal: what "good enough" means
estimated_time: suggested time investment
Step 6: Prune with Memory
mastered and not central to this paper's novel delta: downgrade to skip/review-optional
familiar: keep a minimal refresher path
basic/unknown: keep in primary path
Explicitly state:
- Which concepts are skipped and why
- Which familiar concepts are still kept due to paper-specific novelty
Step 7: Recommend Resources (Paper + Video)
For each must concept recommend:
- At least 1 paper/survey link
- At least 1 video link (lecture/talk/tutorial)
Follow references/resource-sourcing.md.
When lang=zh:
- Keep original paper links as mandatory references.
- Add more Chinese-learning links when relevant:
- bilibili lectures/tutorials
- Zhihu columns/answers with technical depth
- CSDN posts only when they are implementation-useful and not low-quality copy.
- Anthropic official docs/blog articles can be included when they clarify core concepts.
- Prefer high-signal Chinese resources over generic summaries.
Step 8: Generate Report
Select template by language:
lang=zh -> references/template.zh.md
lang=en -> references/template.en.md
- fallback ->
references/template.md
Read selected template and write:
- File name:
{timestamp}--paper-compass-learnpath-{short-title}__learnpath.md
- Path: current working directory (
./)
After writing, report the absolute output path to the user.
Output Quality Checklist
- Every
Must Learn item includes section-grounded evidence.
- Learning order is executable (no dependency inversion).
- Difficulty and time estimates are internally consistent.
- Resource links are valid and concept-relevant.
- Personalization clearly explains memory-driven differences.
Source: cenzihan/paper-compass-skill — distributed by TomeVault.
1---2name: paper-compass-learnpath3description: Paper Compass Learnpath. Build prerequisite learning paths before reading a paper. Extract concepts, anchor evidence to sections, rank order and difficulty, recommend resources. Use when user gives arXiv ID/link/PDF and asks what to learn first. Use when this capability is needed.4---56# Paper-Compass-Learnpath78Do one thing: produce an actionable prerequisite learning path before the user reads a paper.910## Language Interface1112- Supported parameter: `lang=zh|en`13- Default output language: `zh`14- If `lang` is not provided, output in Chinese.15- If `lang=en`, output all report sections and notes in English.16- If `lang=zh`, all report section titles must be Chinese.17- Keep technical terms unchanged when translation could reduce precision.1819## Constraints2021### C0: Evidence First2223- Every prerequisite concept must include at least 1 evidence anchor.24- Evidence format: `[Section] "short quote"`.25- Keep quotes short: at most 25 English words (or similarly short in other languages).26- If direct evidence is missing, mark `evidence=indirect` and lower confidence.27- Do not put non-evidenced concepts into the `Must Learn` section.2829### C1: Prerequisite-Oriented Scope3031- Include only concepts required to understand the paper.32- Order by dependency: foundation -> bridge -> paper-specific.33- For each concept, provide star difficulty and a minimum learning goal.34- Star difficulty format:35 - 1 -> `⭐`36 - 2 -> `⭐⭐`37 - 3 -> `⭐⭐⭐`38 - 4 -> `⭐⭐⭐⭐`39 - 5 -> `⭐⭐⭐⭐⭐`4041### C2: Personalization First4243- If user provides `memory=<path>`, read that file first.44- If not provided, try `~/Documents/know/memory.md`.45- If the file does not exist, continue and mark memory as not loaded.46- Do not reteach mastered knowledge unless needed for paper-specific deltas.4748### C3: Honesty First4950- Explicitly write `信息不足` (for zh) or `insufficient information` (for en) when needed.51- Never fabricate sections, quotes, or resource links.52- Use `low-confidence` when certainty is limited.5354### C4: Impact and Venue Verification5556- **For ALL papers**: Must fetch venue and impact information via API.57- **NEVER claim "preprint" or "unpublished" without verification**.58- **For recent arXiv papers (within past 2 years)**: These are HIGH PRIORITY for venue verification:59 - Many arXiv papers get published at conferences (NeurIPS, ICLR, ICML, ACL, etc.) within months60 - Conference cycles: NeurIPS (Dec), ICLR (May), ICML (Jul), ACL (May-Aug)61- **Impact data**: Fetch via Semantic Scholar API (Bash + curl):62 - Citation count63 - Venue name64 - TLDR (one-line summary)65- **If API fails**: Mark as `venue待验证` or `citations待验证`, NOT "preprint/unpublished"6667### C5: Output Structure Compliance6869- Section 0 (论文快照) must follow this exact structure:70 ```71 - 标题: {title}72 - 作者: {authors}73 - 年份: {year}74 - 发表信息与venue: {venue_name} | JCR 分区: {Q1/Q2/Q3/Q4/N/A} | CCF 等级: {A/B/C/N/A}75 - 来源: {paper_url_or_path}76 - **影响力**: {citation_count_and_awards_if_known_or_search_online}77 ```78- Section 6 (30 分钟快速起步) must only contain:79 - `关键实验结论: {1-3 sentences summarizing key findings}`80 - No numbered steps, no formulas, no extra content81- Section 7 must be `## 7. **Sources**:` followed by reference links8283## Input Normalization8485| User Input | Rule |86|---|---|87| `2010.11929` or `arxiv:2010.11929` | Convert to arXiv ID, use multi-source fallback |88| `https://arxiv.org/abs/...` | Extract ID, use multi-source fallback |89| `https://arxiv.org/pdf/...` | Extract ID, use multi-source fallback |90| `https://arxiv.org/html/...` | Extract ID, use multi-source fallback |91| Local PDF path | Parse directly with Read tool |92| Other paper URL | Fetch and parse if readable |9394### arXiv Paper Access Strategy (Multi-Source Fallback)9596**arXiv resources (PDF, HTML, abs) are PRIMARY - always use first:**97981. **arXiv API (abs)**: Fetch `https://export.arxiv.org/api/query?id_list={id}` → get title, authors, abstract, year992. **Stable PDF download with retry**: use `curl` with redirect-following, retry, timeout, and a browser-like user agent1003. **HTML fallback**: if PDF still fails, fetch `https://arxiv.org/html/{id}` when available1014. **Semantic Scholar API (supplement)**: `curl -s "https://api.semanticscholar.org/graph/v1/paper/ARXIV:{id}?fields=venue,citationCount,tldr"` → get venue, citations102103**Priority Order:**104```105Priority 1: arXiv API → metadata (title, authors, abstract, year)106Priority 2: Stable PDF download + Read tool → full paper content (sections, quotes, methods)107Priority 3: arXiv HTML fallback → recover readable sections when PDF fails108Priority 4: Semantic Scholar API via curl → venue, citations, TLDR (supplement)109```110111**CRITICAL**: 112- **NEVER use WebSearch** - it only works in US and will fail in other regions113- For arXiv full-text access, prefer direct arXiv/API access first; `semantic-scholar` is only a metadata supplement, not the primary full-text path114- **NEVER use WebFetch for arxiv.org** - domain verification will block it; use curl/download instead115- arXiv PDF is the BEST source for full paper content, but downloads may intermittently fail; always use retry before giving up116- Prefer `https://arxiv.org/pdf/{id}` over hardcoding `.pdf` suffix when downloading117- A successful PDF download must leave a non-empty local file before continuing118- **NEVER download to `/tmp` or other system temp paths**; always save files under the current working directory in `./papers/`119- When using Read, always read `./papers/{id}.pdf` or `./papers/{id}.html` from the current workspace so Windows path resolution does not fail120121## Workflow122123### Step 1: Fetch Paper Metadata and Content124125**Use Bash + Python/curl for arXiv access and full-text retrieval** (no WebSearch, no WebFetch for arxiv.org):126127```bash128# 1. Get arXiv metadata129python3 -c "130import urllib.request, xml.etree.ElementTree as ET, json131NS = 'http://www.w3.org/2005/Atom'132url = 'https://export.arxiv.org/api/query?id_list=ARXIV_ID'133with urllib.request.urlopen(url, timeout=30) as r:134 root = ET.fromstring(r.read())135# Extract title, authors, abstract, year, pdf_url...136"137138# 2. Always download to the current workspace under ./papers/139mkdir -p papers140curl -L --retry 5 --retry-delay 2 --retry-all-errors \141 --connect-timeout 15 --max-time 120 \142 -A "Mozilla/5.0" \143 -o ./papers/ARXIV_ID.pdf https://arxiv.org/pdf/ARXIV_ID144145# 3. Verify local PDF exists and is non-trivial146test -s ./papers/ARXIV_ID.pdf147148# 4. If PDF failed, try HTML fallback149curl -L --retry 3 --retry-delay 2 --retry-all-errors \150 --connect-timeout 15 --max-time 60 \151 -A "Mozilla/5.0" \152 -o ./papers/ARXIV_ID.html https://arxiv.org/html/ARXIV_ID153154# 5. Get Semantic Scholar metadata (venue, citations)155curl -s "https://api.semanticscholar.org/graph/v1/paper/ARXIV:ARXIV_ID?fields=venue,citationCount,publicationVenue,tldr"156```157158**Then read content**:159```bash160# Prefer Read tool on ./papers/ARXIV_ID.pdf161# If the PDF download failed but HTML exists, parse ./papers/ARXIV_ID.html instead162# Do not read /tmp/... paths on Windows163```164165Extract and record:166167- Title, authors, year (from arXiv API)168- Publication metadata:169 - venue name (from Semantic Scholar API via curl)170 - JCR quartile (journal-only; otherwise `N/A`)171 - CCF rank (if applicable; otherwise `N/A`)172- Impact data (from Semantic Scholar API via curl):173 - Citation count174 - TLDR (one-line summary)175- Section titles and quotes (prefer PDF via Read tool, fallback to HTML)176- Key areas: method, experimental setup, critical appendix details177178**When download or APIs fail**:179- If arXiv API fails, stop claiming verified title/year metadata180- If PDF fails but HTML works, continue with lowered confidence for quote extraction181- Mark section-level evidence as `信息不足` if neither PDF nor HTML is accessible182- Mark venue/citations as `待验证` if Semantic Scholar API fails183- Still produce a valid report with available information184- If direct Semantic Scholar API lookup is weak or ambiguous, you may use `/semantic-scholar` only as a metadata cross-check for venue, citations, DOI, and TLDR185186### Step 2: Load User Prior Knowledge (`memory.md`)187188Read `references/memory-format.md`, then classify user knowledge into:189190- `mastered`191- `familiar`192- `basic`193- `unknown`194195If a concept is not present, default to `unknown`.196197### Step 3: Extract Prerequisite Candidates198199Use these signals:200201- Core modules, operators, and training strategies in method sections202- Required prior models/theory (e.g., Transformer, contrastive learning, quantization)203- Experimental settings that materially affect conclusions204205Tag each candidate:206207- `role=must`: essential to understand the main method208- `role=bridge`: helps with key details209- `role=optional`: useful but not required210211### Step 4: Bind Evidence and Section Usage212213For each `must/bridge` concept, bind at least one evidence item:214215- `section`: section name or number216- `quote`: short original quote217- `usage`: one-sentence explanation of usage in this paper218219If the concept appears across multiple sections, include multiple evidence anchors.220221### Step 5: Build Learning Order and Difficulty222223Topologically sort by dependencies to produce `order`.224225Difficulty levels:226227- `1`: term-level, ~30-60 minutes228- `2`: standard module-level, ~1-2 hours229- `3`: mechanism reasoning-level, ~2-4 hours230- `4`: implementation/theory detail-level, ~4-8 hours231- `5`: cross-paper synthesis-level, >8 hours232233For each concept provide:234235- `minimum_goal`: what "good enough" means236- `estimated_time`: suggested time investment237238### Step 6: Prune with Memory239240- `mastered` and not central to this paper's novel delta: downgrade to `skip/review-optional`241- `familiar`: keep a minimal refresher path242- `basic/unknown`: keep in primary path243244Explicitly state:245246- Which concepts are skipped and why247- Which familiar concepts are still kept due to paper-specific novelty248249### Step 7: Recommend Resources (Paper + Video)250251For each `must` concept recommend:252253- At least 1 paper/survey link254- At least 1 video link (lecture/talk/tutorial)255256Follow `references/resource-sourcing.md`.257258When `lang=zh`:259260- Keep original paper links as mandatory references.261- Add more Chinese-learning links when relevant:262 - bilibili lectures/tutorials263 - Zhihu columns/answers with technical depth264 - CSDN posts only when they are implementation-useful and not low-quality copy.265- Anthropic official docs/blog articles can be included when they clarify core concepts.266- Prefer high-signal Chinese resources over generic summaries.267268### Step 8: Generate Report269270Select template by language:271272- `lang=zh` -> `references/template.zh.md`273- `lang=en` -> `references/template.en.md`274- fallback -> `references/template.md`275276Read selected template and write:277278- File name: `{timestamp}--paper-compass-learnpath-{short-title}__learnpath.md`279- Path: current working directory (`./`)280281After writing, report the absolute output path to the user.282283## Output Quality Checklist284285- Every `Must Learn` item includes section-grounded evidence.286- Learning order is executable (no dependency inversion).287- Difficulty and time estimates are internally consistent.288- Resource links are valid and concept-relevant.289- Personalization clearly explains memory-driven differences.290291---292> Source: [cenzihan/paper-compass-skill](https://github.com/cenzihan/paper-compass-skill) — distributed by [TomeVault](https://tomevault.io).293<!-- tomevault:4.0:skill_md:2026-06-24 -->