Skip to content
cccskills
FreePublished on GitHub

semantic-scholar

Find published journal and conference papers through Semantic Scholar, filtering by year, field, type, or citation count. Compare publication details and abstracts, with DOI links, short summaries, and open access PDFs when available.

OriginalShow the original description

Search published venue papers (IEEE, ACM, Springer, etc.) via Semantic Scholar API. Complements /arxiv (preprints) with citation counts, venue metadata, and TLDR. Use when user says "search semantic scholar", "find IEEE papers", "find journal papers", "venue papers", "citation search", or wants published literature beyond arXiv preprints.

Run score Not tested

See how to install

Good for

  • Find journal and conference papers on a research topic
  • Filter literature by year or citation count
  • Look up a specific paper by DOI
  • Add discovered papers to an existing research wiki

Files included (1)

  • SKILL.md10.7 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Semantic Scholar Paper Search

Search topic or paper ID: $ARGUMENTS

Role & Positioning

This skill is the published venue counterpart to /arxiv:

SkillSourceBest for
/arxivarXiv APILatest preprints, cutting-edge unrefereed work
/semantic-scholarSemantic Scholar APIPublished journal/conference papers (IEEE, ACM, Springer, etc.) with citation counts, venue info, TLDR

Do NOT duplicate arXiv's job. If results contain an externalIds.ArXiv field, the paper is also on arXiv — note this but do not re-fetch from arXiv.

Constants

  • MAX_RESULTS = 10 — Default number of search results.
  • S2_FETCHER — canonical name semantic_scholar_fetch.py, resolved per shared-references/integration-contract.md §2 (Policy D1 — primary + fallback cascade). If unresolved (canonical chain exhausted), fall back to the inline Python alternative documented in Step 2.
  • DEFAULT_FILTERS — For general research queries, apply these by default to reduce noise:
    • --fields-of-study "Computer Science,Engineering"
    • --publication-types JournalArticle,Conference

Overrides (append to arguments):

  • /semantic-scholar "topic" - max: 20 — return up to 20 results
  • /semantic-scholar "topic" - type: journal — only journal articles
  • /semantic-scholar "topic" - type: conference — only conference papers
  • /semantic-scholar "topic" - min-citations: 50 — only highly-cited papers
  • /semantic-scholar "topic" - year: 2022- — papers from 2022 onward
  • /semantic-scholar "topic" - fields: all — remove default field-of-study filter
  • /semantic-scholar "topic" - sort: citations — bulk search sorted by citation count
  • /semantic-scholar "DOI:10.1109/..." — fetch a single paper by DOI

Workflow

Step 1: Parse Arguments

Parse $ARGUMENTS for directives:

  • Query or ID: main search term, or a paper identifier:
    • DOI: 10.1109/TWC.2024.1234567
    • Semantic Scholar ID: f9314fd99be5f2b1b3efcfab87197d578160d553
    • ArXiv: ARXIV:2006.10685
    • Corpus: CorpusId:219792180
  • - max: N: override MAX_RESULTS
  • - type: journal|conference|review|all: map to --publication-types
  • - min-citations: N: map to --min-citations
  • - year: RANGE: map to --year (e.g. 2022-, 2020-2024)
  • - fields: FIELDS: override --fields-of-study (use all to remove filter)
  • - sort: citations|date: use search-bulk with --sort citationCount:desc or publicationDate:desc

If the argument matches a DOI pattern (10.XXXX/...), a Semantic Scholar ID (40-char hex), or a prefixed ID (ARXIV:..., CorpusId:...), skip search and go directly to Step 3.

Step 2: Search Papers

Resolve $S2_FETCHER via the canonical strict-safe chain (see shared-references/integration-contract.md §2):

cd "$(git rev-parse --show-toplevel 2>/dev/null || pwd)" || exit 1
if [ -z "${ARIS_REPO:-}" ] && [ -f .aris/installed-skills.txt ]; then
    ARIS_REPO=$(awk -F'\t' '$1=="repo_root"{print $2; exit}' .aris/installed-skills.txt 2>/dev/null) || true
fi
if [ -z "${ARIS_REPO:-}" ] && [ -f "$HOME/.aris/repo" ]; then
    ARIS_REPO=$(cat "$HOME/.aris/repo" 2>/dev/null) || true
fi
S2_FETCHER=".aris/tools/semantic_scholar_fetch.py"
[ -f "$S2_FETCHER" ] || S2_FETCHER="tools/semantic_scholar_fetch.py"
[ -f "$S2_FETCHER" ] || { [ -n "${ARIS_REPO:-}" ] && S2_FETCHER="$ARIS_REPO/tools/semantic_scholar_fetch.py"; }
[ -f "$S2_FETCHER" ] || S2_FETCHER=""

Standard search (default — relevance-ranked):

python3 "$S2_FETCHER" search "QUERY" --max MAX_RESULTS \
  --fields-of-study "Computer Science,Engineering" \
  --publication-types JournalArticle,Conference

Bulk search (when - sort: is specified, or MAX_RESULTS > 100):

python3 "$S2_FETCHER" search-bulk "QUERY" --max MAX_RESULTS \
  --sort citationCount:desc \
  --fields-of-study "Computer Science" \
  --year "2020-"

If $S2_FETCHER is empty (Policy D1 cascade), fall back to inline Python using urllib against https://api.semanticscholar.org/graph/v1/paper/search.

Recommended filter combos (from testing):

GoalFlags
High-quality journal papers--publication-types JournalArticle --min-citations 10
CS/EE papers, recent--fields-of-study "Computer Science,Engineering" --year "2022-"
Foundational / high-impactsearch-bulk --sort citationCount:desc --fields-of-study "Computer Science"
Conference papers only--publication-types Conference

Note: --venue requires exact venue names (e.g. "IEEE Transactions on Signal Processing"), not partial matches like "IEEE". Avoid using --venue in automated flows — prefer --publication-types + --fields-of-study.

Step 3: Fetch Details for a Specific Paper

When a single paper ID is requested:

python3 "$S2_FETCHER" paper "PAPER_ID"

Where PAPER_ID can be:

  • DOI: 10.1109/TSP.2021.3071210
  • ArXiv: ARXIV:2006.10685
  • CorpusId: CorpusId:219792180
  • S2 ID: f9314fd99be5f2b1b3efcfab87197d578160d553

Step 4: De-duplicate Against arXiv

For each result, check externalIds.ArXiv:

  • If present → paper is also on arXiv. Note this in output but do NOT re-fetch via /arxiv.
  • If absent → paper is venue-only (e.g. IEEE without preprint). This is the unique value of this skill.

Step 5: Present Results

Present results as a table:

| # | Title | Venue | Year | Citations | Authors | Type |
|---|-------|-------|------|-----------|---------|------|
| 1 | Deep Learning Enabled... | IEEE Trans. Signal Process. | 2021 | 1364 | Xie et al. | Journal |

For each paper, also show:

  • DOI link: https://doi.org/DOI (for IEEE/ACM papers, this is the canonical link)
  • Open Access PDF: if openAccessPdf.url is non-empty, show it
  • TLDR: if available, show the one-line summary
  • Also on arXiv: if externalIds.ArXiv exists, note the arXiv ID

Step 6: Detailed Summary

For each paper (or top 5 if many results):

## [Title]

- **Venue**: [venue name] ([publicationVenue.type]: journal/conference)
- **Year**: [year] | **Citations**: [citationCount]
- **Authors**: [full author list]
- **DOI**: [doi link]
- **Fields**: [fieldsOfStudy]
- **TLDR**: [tldr.text if available]
- **Abstract**: [abstract]
- **Open Access**: [openAccessPdf.url or "Not available"]
- **Also on arXiv**: [ArXiv ID if exists, else "No"]

Step 7: Update Research Wiki (if active)

Required when research-wiki/ exists in the project; skip silently otherwise. When the wiki dir exists, resolve $WIKI_SCRIPT per the canonical chain at shared-references/wiki-helper-resolution.md (Variant B — warn-and-skip). For results with an externalIds.ArXiv field, use --arxiv-id; for venue-only papers (no arXiv mirror — common for IEEE/ACM), fall back to manual metadata:

if [ -d research-wiki/ ]; then
  cd "$(git rev-parse --show-toplevel 2>/dev/null || pwd)" || exit 1
  ARIS_REPO="${ARIS_REPO:-$(awk -F'\t' '$1=="repo_root"{print $2; exit}' .aris/installed-skills.txt 2>/dev/null)}"
  if [ -z "${ARIS_REPO:-}" ] && [ -f "$HOME/.aris/repo" ]; then
    ARIS_REPO=$(cat "$HOME/.aris/repo" 2>/dev/null) || true
  fi
  WIKI_SCRIPT=".aris/tools/research_wiki.py"
  [ -f "$WIKI_SCRIPT" ] || WIKI_SCRIPT="tools/research_wiki.py"
  [ -f "$WIKI_SCRIPT" ] || { [ -n "${ARIS_REPO:-}" ] && WIKI_SCRIPT="$ARIS_REPO/tools/research_wiki.py"; }
  [ -f "$WIKI_SCRIPT" ] || {
    echo "WARN: research_wiki.py not found; semantic-scholar results delivered, wiki ingest skipped. Fix: bash tools/install_aris.sh or smart_update.sh (refreshes ~/.aris/repo), export ARIS_REPO, or cp <ARIS-repo>/tools/research_wiki.py tools/." >&2
    WIKI_SCRIPT=""
  }
  [ -n "$WIKI_SCRIPT" ] && for each paper in results:
        if paper.externalIds.ArXiv:
            python3 "$WIKI_SCRIPT" ingest_paper research-wiki/ \
                --arxiv-id "<ArXiv>"
        else:
            python3 "$WIKI_SCRIPT" ingest_paper research-wiki/ \
                --title "<title>" --authors "<authors joined by , >" \
                --year <year> --venue "<venue>" \
                [--external-id-doi "<externalIds.DOI>"]
fi

The helper handles slug / dedup / page / index / log — do not handwrite papers/<slug>.md. See shared-references/integration-contract.md. Backfill with /research-wiki sync --arxiv-ids <id1>,<id2>,... for arXiv-available papers.

Step 8: Final Output

Summarize what was done:

  • Found N published papers for "query"
  • Filters applied: [publication types, fields, year range, etc.]
  • N papers are venue-only (not on arXiv)
  • Wiki-ingested N papers (if research-wiki/ was present)

Suggest follow-up skills:

/arxiv "topic"           - search arXiv preprints (complements this search)
/research-lit "topic"    - multi-source review: Zotero + local PDFs + arXiv + S2
/novelty-check "idea"    - verify novelty against literature

Key Rules

  • Default to filtered search: Always apply --fields-of-study and --publication-types unless user says - fields: all. Without filters, S2 returns cross-discipline noise (linguistics, psychology, etc.).
  • Citation count is gold: S2's citation data is its main advantage over arXiv. Always show citationCount prominently and use it to rank/prioritize results.
  • Venue metadata matters: Show venue and publicationVenue.type (journal vs conference) — this helps users assess paper quality.
  • DOI is the canonical ID for published papers: Always show DOI links for IEEE/ACM/Springer papers.
  • Rate limiting: S2 API without key is heavily rate-limited (~1 req/s, strict cooldown). If HTTP 429 occurs, wait and retry. Recommend users set SEMANTIC_SCHOLAR_API_KEY env var for higher limits (free at https://www.semanticscholar.org/product/api#api-key-form).
  • TLDR may be null: Some publishers (notably IEEE) elide the TLDR field. Fall back to showing the first sentence of the abstract.
  • openAccessPdf may be empty: Many IEEE papers are closed access. Always provide the DOI link as fallback.
  • If the S2 API is unreachable, suggest using /arxiv or /research-lit "topic" - sources: web as fallback.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

ablation-planner

FreeSummary

Plan ablation studies, experiments that remove or replace parts of a machine learning method to test their contribution. Define reviewer questions, expected outcomes, priorities, execution order, and compute estimates, then implement experiments and record findings.

  • Testing the contribution of individual method components
  • Planning additional experiments before paper submission
  • Prioritizing experiments within a GPU budget
wanshuiyin/Auto-claude-code-research-in-sleep18KUpdated Oct 22, 2026

ablation-planner

FreeSummary

Plan and run ablation studies, experiments that remove or replace parts of a method to test their contribution. Organize reviewer questions, priorities, expected outcomes, and compute costs, then record results and findings.

  • Test how much each component contributes
  • Plan experiments that address reviewer questions
  • Prioritize comparisons within a compute budget
wanshuiyin/Auto-claude-code-research-in-sleep18KUpdated Oct 22, 2026

alphaxiv

FreeSummary

Understand a single arXiv paper through an AlphaXiv summary, with full text and LaTeX source available when needed. Use it to identify key findings or ask specific questions about methods, experiments, and equations.

  • Get a quick overview of a paper from its URL
  • Check a paper's methods and experimental results
  • Ask about equations, proofs, or appendix details
wanshuiyin/Auto-claude-code-research-in-sleep18KUpdated Oct 22, 2026

analyze-results

FreeSummary

Compare machine learning experiment results from JSON or CSV files. Calculate improvements over a baseline, summarize variation across repeated runs, identify trends and unusual results, and suggest experiments to test possible explanations.

  • Compare model performance across experimental conditions
  • Check variation across runs with different random seeds
  • Identify trends as a parameter changes
wanshuiyin/Auto-claude-code-research-in-sleep18KUpdated Oct 22, 2026

arxiv

FreeSummary

Search arXiv papers by topic or paper ID, review authors and abstracts, and summarize contributions stated in the abstracts. Download selected papers or all search results as PDFs to build a local paper library.

  • Find arXiv papers on a research topic
  • Retrieve details for a known arXiv paper ID
  • Download all PDFs from a set of search results
wanshuiyin/Auto-claude-code-research-in-sleep18KUpdated Oct 22, 2026

Improve an existing LaTeX paper through two rounds of Gemini review, targeted edits, and PDF rebuilding. Check whether claims match the evidence, resolve notation and presentation issues, and retain review logs and PDF versions.

  • Review and revise a completed paper draft
  • Align claims with supporting evidence
  • Resolve notation and explanation inconsistencies
wanshuiyin/Auto-claude-code-research-in-sleep18KUpdated Oct 22, 2026

See all skills by wanshuiyin

Report a problem with this skill