Skip to content
Conduit

skill

paper-discovery

Bugliiiiii/paper-discoverycommunitylistedunreviewed

Set up

Skills are installed by placing their folder where your agent loads skills.

The download comes from github.com/Bugliiiiii/paper-discovery itself, not from our server, so what you get is exactly what its author published.

Install instructions come from the README

Skills do not use an MCP config. Follow the steps in the README below.

README

synced Oct 26, 2026

Paper Discovery

中文 | English

paper-discovery 是一个通用 agent skill(Hermes / Codex / 任意 .agents 式 skill runner 通用),用于从公开学术元数据源中发现、核验和整理论文。它适合用于文献综述、相关工作、研究计划、选题探索,以及按年份、期刊或 ISSN 限定的论文检索。

内置脚本 scripts/discover_papers.py 只使用 Python 标准库,可直接查询 Crossref、OpenAlex、PubMed、DBLP 等数据源,并通过 ISSN 白名单过滤 SCI/SSCI 期刊论文,输出 Markdown / JSON / BibTeX / RIS / CSL-JSON,也可选择直接写入本地 Zotero 库。

功能

  • 从 Crossref、OpenAlex、PubMed、DBLP(期刊子集)检索论文元数据;arXiv 需显式 --sources arxiv 开启;Semantic Scholar 在有 SEMANTIC_SCHOLAR_API_KEY 时使用,否则自动跳过。
  • 支持关键词查询、年份范围、期刊名称、ISSN、来源选择。
  • 按 DOI 和规范化标题去重。
  • SCI/SSCI 保证:内置 SCImago 期刊 ISSN 种子白名单,可用 --scisci-list 覆盖;默认标注非索引刊,--scisci-strict 丢弃。
  • 给候选论文计算本地相关性分数并记录匹配原因。
  • 输出 APA 风格引用、DOI 链接、摘要片段和来源信息。
  • 导出 BibTeX / RIS / CSL-JSON,便于进入 Zotero 或 Pandoc 引用链;可选 --zotero-sqlite 直接写入本地 Zotero 库(默认不进集合,需 --yes 确认)。

仓库结构

paper-discovery/
├── SKILL.md
├── agents/
│   └── openai.yaml
├── references/
│   ├── sources.md
│   └── scopus-ssci-issn.txt
├── scripts/
│   └── discover_papers.py
└── tests/

安装(通用 agent skill)

推荐用 npx skills 全局安装:

npx skills add Bugliiiiii/paper-discovery -g -y

若你的 agent(如 Hermes)未被该 CLI 自动识别,可改为手动软链到其 skills 目录,例如 Hermes:

# 手动软链兜底(Hermes)
ln -s "$(pwd)" "$HOME/AppData/Local/hermes/skills/paper-discovery"
# 或 Windows PowerShell:
# New-Item -ItemType Junction -Path "$env:LOCALAPPDATA\hermes\skills\paper-discovery" -Target "D:\Workspace\paper-discovery"

安装后,在 agent 中提出类似请求即可触发(也支持 SCI/SSCI、期刊、Zotero、BibTeX 等触发词):

Find recent SCI/SSCI papers on multimodal short video engagement in health emergencies, and export BibTeX.

直接运行脚本

要求:Python 3.10+。不需要安装第三方 Python 包。

检索并导出 BibTeX(默认含 SCI/SSCI 过滤):

python .\scripts\discover_papers.py --query "short video multimodal user engagement health emergency" --years 2020:2026 --max-results 30 --format bibtex --output papers.bib

限定期刊和 ISSN(并严格只保留 SCI/SSCI):

python .\scripts\discover_papers.py --query "short video comments user perception engagement" --years 2020:2026 --issn 0306-4573 --journal "Information Processing & Management" --scisci-strict --format md --output ipm-papers.md

参数

参数说明
--query检索关键词,必填。
--years年份范围,例如 2020:2026、2024、:2026。
--sources数据源,可选 crossref、openalex、pubmed、dblp、arxiv、semantic_scholar(默认不含 arxiv)。
--journal期刊名称过滤或偏好。
--issnISSN 过滤,期刊限定检索时推荐使用。
--max-results去重和排序后的最大输出数量。
--fetch-rows每个数据源抓取的原始候选数量。
--min-score最低本地相关性分数。
--format输出格式:md、json、bibtex、ris、csljson。
--scisci-listSCI/SSCI 期刊 ISSN 白名单文件(覆盖内置种子)。
--scisci-strict只保留白名单内论文,丢弃非索引刊。
--cache缓存目录,命中则离线重放,省额度。
--zotero-sqlite本地 Zotero 库路径,写入条目(默认不进集合)。
--zotero-collection指定写入的集合名(需显式)。
--zotero-tags逗号分隔的标签(需显式)。
--yes跳过 Zotero 写入确认(否则只打印 dry-run)。
--group-by-sectionMarkdown 下按 Introduction/Related Work/Methods/Discussion 分组(需 LLM,默认关)。
--output输出文件路径。
--sleep请求之间的等待秒数,用于降低 API 压力。

使用建议

  • 先把研究问题拆成 2-4 组具体查询词,再分别检索。
  • 要拿 SCI/SSCI 期刊论文,依赖 --scisci-list 白名单;内置种子是合理子集,精确学科覆盖请用机构 WoS/Scopus 导出覆盖。
  • 期刊限定检索优先使用 ISSN,而不是只用期刊名。
  • 最终引用优先保留 DOI 完整、期刊信息清晰、主题高度相关的论文。
  • 不要只按关键词堆论文;如果真正相关的论文少于预期,应说明检索范围和筛选理由。
  • 写入 Zotero 前务必先关 Zotero 进程;脚本已对 synced、syncCache 和 8 位合法 key 做护栏,并硬编码排除「本科毕设」子树。
  • 当不同来源的年份或期刊信息冲突时,应以 DOI 元数据或出版社记录为准,并标记不确定性。

许可证

本项目使用 Apache-2.0 License。详见 LICENSE。


English

中文 | English

paper-discovery is a general-purpose agent skill (works with Hermes / Codex / any .agents-style skill runner). It finds, verifies, and curates academic papers from public scholarly metadata sources, for literature reviews, related-work sections, research planning, topic exploration, and paper searches constrained by year, journal, or ISSN.

The bundled script scripts/discover_papers.py uses only the Python standard library. It queries Crossref, OpenAlex, PubMed, and DBLP (journal subset), filters for SCI/SSCI journal articles via an ISSN allowlist, and exports curated candidates as Markdown / JSON / BibTeX / RIS / CSL-JSON — or optionally writes them into a local Zotero library.

Features

  • Search metadata from Crossref, OpenAlex, PubMed, DBLP (journal subset); arXiv is opt-in via --sources arxiv; Semantic Scholar is used when SEMANTIC_SCHOLAR_API_KEY is set, otherwise skipped automatically.
  • Filter by query, year range, journal name, ISSN, and source.
  • Deduplicate by DOI first, then normalized title.
  • SCI/SSCI guarantee: a bundled SCImago journal-ISSN seed list, overridable with --scisci-list; non-indexed papers are flagged by default, dropped with --scisci-strict.
  • Score local relevance and explain why a paper matched.
  • Export APA-style citations, DOI links, abstract snippets, and source metadata.
  • Export BibTeX / RIS / CSL-JSON for Zotero / Pandoc citation chains; optional --zotero-sqlite writes into a local Zotero library (no collection by default, requires --yes).

Repository Layout

paper-discovery/
├── SKILL.md
├── agents/
│   └── openai.yaml
├── references/
│   ├── sources.md
│   └── scopus-ssci-issn.txt
├── scripts/
│   └── discover_papers.py
└── tests/

Install (general agent skill)

Install globally with npx skills:

npx skills add Bugliiiiii/paper-discovery -g -y

If your agent (e.g. Hermes) is not auto-detected by that CLI, symlink the repo into its skills directory instead, e.g. for Hermes:

# Manual symlink fallback (Hermes)
ln -s "$(pwd)" "$HOME/AppData/Local/hermes/skills/paper-discovery"
# or Windows PowerShell:
# New-Item -ItemType Junction -Path "$env:LOCALAPPDATA\hermes\skills\paper-discovery" -Target "D:\Workspace\paper-discovery"

After installation, ask your agent something like (SCI/SSCI, journal, Zotero, BibTeX also trigger it):

Find recent SCI/SSCI papers on multimodal short video engagement in health emergencies, and export BibTeX.

Run the Script Directly

Requirement: Python 3.10+. No third-party Python packages are required.

Search and export BibTeX (SCI/SSCI filtering on by default):

python .\scripts\discover_papers.py --query "short video multimodal user engagement health emergency" --years 2020:2026 --max-results 30 --format bibtex --output papers.bib

Journal and ISSN constrained search (strict SCI/SSCI only):

python .\scripts\discover_papers.py --query "short video comments user perception engagement" --years 2020:2026 --issn 0306-4573 --journal "Information Processing & Management" --scisci-strict --format md --output ipm-papers.md

Arguments

ArgumentDescription
--querySearch query string. Required.
--yearsYear range, such as 2020:2026, 2024, or :2026.
--sourcesSources: crossref, openalex, pubmed, dblp, arxiv, semantic_scholar (arxiv not in default).
--journalJournal name filter or preference.
--issnISSN filter, recommended for journal-specific discovery.
--max-resultsMaximum output count after deduplication and ranking.
--fetch-rowsRaw candidate rows to fetch from each source.
--min-scoreMinimum local relevance score.
--formatOutput format: md, json, bibtex, ris, csljson.
--scisci-listSCI/SSCI journal ISSN allowlist file (overrides the bundled seed).
--scisci-strictKeep only allowlisted papers; drop non-indexed.
--cacheCache directory; replay offline on hit to save quota.
--zotero-sqliteLocal Zotero library path; ingests entries (no collection by default).
--zotero-collectionTarget collection name (explicit opt-in).
--zotero-tagsComma-separated tags (explicit opt-in).
--yesSkip Zotero write confirmation (otherwise prints a dry-run).
--group-by-sectionGroup Markdown by Introduction/Related Work/Methods/Discussion (needs LLM, off by default).
--outputOutput file path.
--sleepDelay in seconds between requests to reduce API pressure.

Usage Notes

  • Translate the research need into 2-4 concrete query variants before searching.
  • For SCI/SSCI journal papers, rely on the --scisci-list allowlist; the bundled seed is a reasonable subset — supply your institution's WoS/Scopus export for exact discipline coverage.
  • Prefer ISSN over journal-name text matching for journal-specific searches.
  • For final citations, prefer papers with a DOI, clear venue metadata, and strong conceptual fit.
  • Do not pad bibliographies with weak keyword matches. If fewer papers are truly relevant, state the search coverage and filtering rationale.
  • Before writing to Zotero, close Zotero first; the script guards synced, syncCache, and 8-char valid keys, and hard-excludes the 本科毕设 subtree.
  • When sources disagree on year or venue metadata, prefer DOI or publisher metadata and flag uncertainty.

License

This project is licensed under the Apache-2.0 License. See LICENSE.

↑↓ navigate openesc close