sjqsgg/paperwise/paperwise
Claude Code and agent skill by sjqsgg/paperwise
- community
Checking that the SKILL.md file is still in the repository.
Academic paper workflow — find, read/annotate (HTML), daily digest, cite. Use when user invokes /paper, needs paper annotation, literature search, citation generation, or daily paper discovery.
Install
npx vskill@latest install sjqsgg/paperwise/paperwiseSKILL.md
The same SKILL.md was published earlier as diskixix0-collab/paperwise/paperwise.
/paper — Academic Paper Workflow
Default Config
Edit this section to customize for your project.
Override any config value in your project's CLAUDE.md using keys: paper_output_dir, paper_venues, paper_keywords, paper_annotation_lang.
Subcommands
| Command | Usage | Description | |
|---|---|---|---|
find | /paper find "cognitive load LLM" | Search papers → Digest HTML with top N cards | |
read | /paper read /path/to/file.pdf | Annotate a single PDF → full dual-column HTML | |
digest | /paper digest | Daily new papers from arxiv (used by cron) | |
cite | /paper cite [[note-name]] | Generate APA + BibTeX citation from existing annotation |
Flags:
--context "ML课第3周"— override project context--questions "Q1:... Q2:..."— switch to Question mode (Mode A)--questions— interactive question mode (Claude asks you)--output /path/— override output directory for this run--top N— return N results (default: 5 for find, daily_max for digest); also accepts bare number after query--lang en— override annotation language for this run--source arxiv— search only arxiv (latest preprints, no citation filter)--source venues— search only papers from configvenueslist (citation-weighted ranking)--local /path/— read local PDFs from folder (no API calls); or--local a.pdf b.pdffor specific files
Flags can be written with or without `--`. Claude accepts natural language equivalents (e.g. `top 5`, `source venues`, `local /path/`, `questions "..."`).
Context Resolution (in priority order)
--contextflag in command- Current directory's
CLAUDE.md(auto-loaded by Claude Code) - No context → use Mode B directly (zero-config, logic analysis mode)
Data Sources
Primary: OpenAlex
Free, no API key required, 10 req/s rate limit.
After fetching: immediately extract and keep only — title, first author, year, cited_by_count, venue name (primary_location.source.display_name), DOI. Discard all other fields from the response before further processing.
Secondary: Semantic Scholar (only if semantic_scholar_api_key is set)
Header: x-api-key: {semantic_scholar_api_key}
Tertiary: arxiv (fallback + digest source)
Note: arxiv papers have no citation count. Label as preprint.
Rate Limit Handling
If a source returns 429: check Retry-After header → wait that many seconds. If no header: wait 2s → 5s → 10s (3 retries). After 3 failures → skip source, move to next in priority. Note which source was skipped in output.
Subcommand: find
- Parse flags: topic query,
--top N(default: 5),--lang,--source(default: mixed),--local(path or file list)
--top Nalso accepts a bare number immediately after the query string (e.g./paper find "query" 10→ top 10)
- Resolve source strategy:
--source / flag | API calls | Ranking formula | |
|---|---|---|---|
| (default, mixed) | Single OpenAlex call sort=cited_by_count:desc; arxiv fallback if <3 results | 0.5 × relevance_rank + 0.3 × log(cited_by_count+1) + 0.2 × recency_score | |
arxiv | arxiv API only (sortBy=submittedDate); no min_citations filter | 0.5 × relevance_rank + 0.5 × recency_score | |
venues | Single OpenAlex call; keep only papers where venue name matches any entry in config venues list (case-insensitive partial match on primary_location.source.display_name) | 0.5 × relevance_rank + 0.5 × log(cited_by_count+1) | |
--local /path/ or --local a.pdf b.pdf | No API calls — read local PDFs only | Take first --top N files (alphabetical order) |
`--local` and `--source` are mutually exclusive. If both are given, return an error.
- If `--local` flag present — execute local PDF steps instead of steps 3–6:
- Scan the given folder for all
.pdffiles, or use the explicitly listed files directly - If file count >
--top N, take first N (alphabetical order) - For each PDF, extract: title, authors, year, abstract (first 300 words), conclusion paragraph (last 300 words)
- Generate a Digest Card per PDF (same 4-sentence format: 研究问题 / 核心方法 / 关键发现 / 相关性)
- Citation badge: fixed as
📄 Local PDF(no OpenAlex lookup) - Card bottom link:
/paper read /absolute/path/to/file.pdf 精读(use absolute path) - Save to:
{output_dir}/FindResults/find-local-YYYY-MM-DD-HHmm-{folder-slug}.html - Print summary and exit — skip steps 4–8 below
3b. Fetch papers (online mode):
- Add
&filter=cited_by_count:>{min_citations}for default/venues mode (skip for arxiv) - After fetch: immediately discard all fields except title, first author, year, cited_by_count, venue name, DOI
- On any source failure → follow Rate Limit Handling
- Deduplicate against existing files:
- Check
{output_dir}/FindResults/and{output_dir}/root for[FirstAuthor-YYYY-slug].html - Mark existing papers as
[已有], include in summary with their path, skip card generation
- Rank top N using the formula for the active source strategy
- Generate Digest HTML — a single self-contained HTML file containing N paper cards.
Digest Card format (one card per paper): `` [Title] — [First Author] et al., [Year] — [Venue or arXiv] [Citation badge] [Source tag] 研究问题: [1 sentence — what problem does this paper solve?] 核心方法: [1 sentence — what approach do they use?] 关键发现: [1 sentence — what is the main result?] 相关性: [1 sentence — why this matters for your research, based on CLAUDE.md context] [DOI link if available] · → /paper read <doi_or_path> 精读 ``
- Citation badge uses tier logic from Paper Quality Bar section
- Annotation language for cards follows
annotation_langconfig (or--langflag) - HTML structure: simple cards layout, embed
references/template.cssin<style>
- Save Digest HTML to:
{output_dir}/FindResults/find-YYYY-MM-DD-HHmm-{query-slug}.html
- Create subdirectory automatically if it doesn't exist
- Print summary:
``` Found N papers via {source}. Digest saved: → 30_Research/FindResults/find-2026-03-14-1430-cognitive-load-llm.html
Papers included:
- Jin-2025-llm-teachable-agent [⭐ 47 citations · CHI]
- Cai-2025-intrinsic-load [📄 preprint · arXiv]
- Klepsch-2017-two-types-icl [已有 → 30_Research/FindResults/...]
```
Subcommand: read
- Read the PDF at provided path
- Extract: title, authors, year, venue/journal, abstract, full text
- Resolve mode:
- No
--questions→ Mode B (logic analysis) --questions "..."→ Mode A (inline). Parse questions using these rules:- Strip optional
Q1:/Q2:etc. prefixes (they are decorative, not required) - Split on: comma
,/ semicolon;/ newline /Q\d+pattern boundaries - Extract up to 6 questions; if more are given, take first 6 and warn the user
- Accept any of these formats:
`` "Q1: 方法? Q2: 与 baseline 比较?" ← Q-label + colon "方法?, 与 baseline 比较?" ← comma-separated "方法?; 与 baseline 比较?" ← semicolon-separated ``
--questions(no argument) → Mode A (interactive):
Output exactly: 请输入你的阅读问题(每行一个,或逗号分隔,最多6个): Wait for user input, then parse using the same rules above, then proceed with Mode A
- Resolve annotation language:
--langflag >annotation_langconfig - Generate full dual-column HTML annotation (see HTML Template section)
- Paper Quality Bar: omit (no citation data from local PDF unless found in text)
- Save to
{output_dir}/[FirstAuthorLastName-YYYY-keyword].html
- Write directly to path; do not ls the directory beforehand
- Output: file path + brief summary of key arguments found
Subcommand: digest
- Check cache: if
{output_dir}/PaperDigests/YYYY-MM-DD-digest.htmlexists today → skip fetch, output cached path - Fetch arxiv: same URL as Data Sources section above
- Filter: keep top
daily_maxmost relevant to config keywords (semantic match on title+abstract) - Deduplicate: skip arxiv IDs seen in previous 7 days' digests
- Annotate: for each paper, run Mode B annotation (brief version); annotation language follows config
- Combine: all annotations → single HTML digest file; each paper has a compact Paper Quality Bar
- Save:
{output_dir}/PaperDigests/YYYY-MM-DD-digest.html - Update daily note: append to
10_Daily/YYYY-MM-DD.md:
`` ## Paper Digest → [[30_Research/PaperDigests/YYYY-MM-DD-digest|Today's Paper Digest]] (N papers) ``
Subcommand: cite
- Parse note name from user input (e.g.,
[[Klepsch-2017-annotation]]or file path) - Find HTML or MD file in
{output_dir}/or vault root - Extract metadata: title, authors, year, venue, DOI/URL
- Output directly (no file saved):
- APA 7th:
Author, A., & Author, B. (Year). Title. *Venue*, *vol*(issue), pages. https://doi.org/... - BibTeX:
``bibtex @article{key, author = {...}, title = {...}, journal = {...}, year = {...}, doi = {...} } ``
HTML Annotation Template
Paper Quality Bar (find/digest only — between navbar and section-nav)
Shows: {source_icon} {source} | {venue} | {year} | {citation_badge} | {venue_type_tag}
Citation tiers:
| Condition | Badge | CSS class | |
|---|---|---|---|
| cited_by_count ≥ 100 | 🔥 高引 N citations | badge-high | |
| 20–99 | ⭐ N citations | badge-important | |
| 5–19 | ✓ N citations | badge-valid | |
| < 5 or no data | 📄 Preprint | badge-preprint |
Venue type tag: A* 会议 (top venues: CHI/NeurIPS/ACL/EMNLP/ICML/ICLR/SIGIR/CSCW) | 会议/期刊 (other config venues) | Workshop | Preprint
Source icon: 🔍 OpenAlex | 📚 Semantic Scholar | 📄 arXiv
CSS: see references/template.css (.quality-bar, .badge-*, .qb-* classes).
Mode B: Logic Analysis (Default)
Generate a complete, self-contained HTML file. CSS: embed references/template.css as <style> in <head>. Google Fonts: import Lora + IBM Plex Sans.
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingSKILL.md
Popularity
- Repository stars
- 114
- Repository forks
- 6
- 7-day trend score
- 24
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/sjqsgg/paperwise/paperwise)