Skip to content
Back to skills

New Source

ASecurity

Add a literature source beyond ACL Anthology and arXiv (e.g. Semantic Scholar, ACM DL, OpenReview, PubMed) as a project skill with its own adapter.

  • 3 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 7, 2026
ai-agentspythongoapi

Works with

  • api

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned November 7, 2026

npx -y skills add NilsHellwig/acl-paper-skills --skill new-source --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of New Source?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for New Source
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/nilshellwig-new-source/badge)](https://www.skillsdirectory.com/skills/nilshellwig-new-source)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: new-source
description: Add a literature source beyond ACL Anthology and arXiv (e.g. Semantic Scholar, ACM DL, OpenReview, PubMed) as a project skill with its own adapter.
disable-model-invocation: true
argument-hint: "Which source? (name or URL)"
---

Build a project-local source: an adapter the core scripts call, plus a skill that tells the agent when and how to use it. It lives in the paper project, not in the plugin.

`PK` means `python3 ${CLAUDE_PLUGIN_ROOT}/scripts/paperkit.py`, run from the project root.

## 1. Pin down the source

Research the source's public API: search endpoint, how to get a PDF, and where an **authoritative BibTeX entry** comes from (an export endpoint, a DOI resolved via `https://doi.org/<doi>` with `Accept: application/x-bibtex`, DBLP). A source without an authoritative BibTeX route cannot be added as is: say so and offer the fallback (search and PDF here, entries pasted by the user via `bib-paste`).

Also find the source's rate limits, API key requirements and terms of use. Show the user what you found and agree on the source name (kebab-case, e.g. `semantic-scholar`) before writing code. An API key goes in an environment variable the adapter reads, never in a file.

## 2. Write the adapter

Copy `${CLAUDE_SKILL_DIR}/adapter_template.py` to `.claude/skills/<name>-source/adapter.py` and implement the three functions. The docstring of `${CLAUDE_PLUGIN_ROOT}/scripts/paperkit/sources.py` defines the contract, and `${CLAUDE_PLUGIN_ROOT}/scripts/sources/arxiv_source.py` is a worked example. Keep the adapter to fetching: duplicate checks, files, notes and bib handling belong to the core.

Third-party packages go in `REQUIRES`. Ask before installing them into the project env (`python` in `paper.config.json`).

## 3. Register and test

Add `"<name>": ".claude/skills/<name>-source/adapter.py"` under `sources` in `paper.config.json`. Ask the user for a paper they know is on the source, then run:

```
PK test-source <name> "<query matching that paper>" <its id>
```

Every line must read ✅. `PK doctor` must list the source without ⚠️.

## 4. Write the project skill

Create `.claude/skills/<name>-source/SKILL.md`, modelled on `${CLAUDE_PLUGIN_ROOT}/skills/arxiv/SKILL.md`:

- frontmatter `name: <name>-source` and a description that names the source and the cases that should reach it (paper types, id formats, URLs)
- the search command with the query syntax the source supports and its rate limit
- the add command, and a pointer to the `literature` skill for reading and citing

Finish by showing the user the two files and the config change.

Files in this skill

  • SKILL.md2.6 KB
  • adapter_template.py1 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.