Digest paper
Skill VincenzoImp/academic-research-skills/skills/digest-paper
Use when adding, ingesting, or digesting a single paper into the SOTA — from a title, DOI, arXiv id, URL, or PDF — producing its folder, synthesis, bib entry, citation graph, and index row.From its SKILL.md
npx -y skills add VincenzoImp/academic-research-skills --skill digest-paperAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its file declares
Copied from the file, not written here
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
4.2 KB, ~1.0k tokens by cl100k_base, as published. Nobody here has run it
Digest Paper
Digest one paper end-to-end into sota/papers/<citekey>/. This is the
atomic unit of SOTA work: it either completes fully or it does not happen.
Never leave a partial digest.
Read First
sota/README.md— synthesis format and digestion rules (the scaffold owns the format)references/bibliography-rules.md— citekeys, version resolution, cross-validation
MCP Preflight (hard gate)
Before anything else, probe the scholarly MCP servers with one trivial query each (e.g., search a known title). The gate is by capability, never by API key — a missing key only throttles, it never blocks:
- Required:
arxiv(full text) must respond, AND at least one bibliographic source —semantic-scholar,dblp, oropenalex— must respond. - If those required capabilities are unavailable: STOP, report which servers failed, and ask the user to fix the MCP setup.
- If a reachable source is down but the gate is met, proceed and note the reduced cross-check in the synthesis.
Never fall back to model memory, web search, or scraping. A citation exists only if an MCP lookup produced it.
Procedure
- Resolve identity: from the given title/DOI/arXiv/PDF, find the paper via semantic-scholar (and dblp for CS work). Ask the user only if the match is genuinely ambiguous.
- Resolve the most authoritative version: published venue > latest arXiv
revision > other preprint, per
references/bibliography-rules.md. Record both DOI and arXiv id when both exist. - Choose the citekey (
<firstauthor><year><topicword>, lowercase) and check it is unused: not inreferences.bib, nosota/papers/<citekey>/folder. - Create
sota/papers/<citekey>/and fetch the full-text PDF aspaper.pdfthrough the fallback pipeline, most-authoritative/legal first: (1) arxiv MCP for arXiv papers; (2) otherwise paper-search, which falls back publisher/DOI open-access → Unpaywall → green-OA repositories (Europe PMC/PMC, CORE, OpenAIRE, Zenodo, HAL, SSRN, …) → Sci-Hub as the last resort. Record the resulting URL inmetadata.yaml(pdf_source). The PDF is only the reading copy: the citation and the authoritative version always come from the scholarly MCPs (reconciled by DOI), never from where the PDF was fetched. If even the last resort yields nothing, stop, remove the folder, and record the candidate insota/queue.mdwith decisionunresolvable-via-mcp. Abstract-only digestion is forbidden. - Read the full paper — the PDF, cover to cover, not the abstract.
- Write
synthesis.mdfollowing the exact section order insota/README.md. Verify every exact number and quotation against the PDF. - Write the BibTeX entry into the SOTA section of
references.bib, built from MCP-sourced fields cross-checked perreferences/bibliography-rules.md. Never write a field from memory. - Fetch citations via semantic-scholar: outgoing references and incoming
citations. Select the relevant ones, not all. Write
metadata.yamlwith every field from the schema insota/README.md, including the mandatoryverified:block. Use citekeys for papers already in the SOTA, external ids otherwise. - Append the row to
sota/index.mdwith statusdigested. - Add in-scope leads from
cites/cited_byand the synthesis "Citation leads" section tosota/queue.mdaspending, with provenance. - Run
make checkfrom the project root and fix anything it reports.
Rules
- All-or-nothing: if any step cannot complete, revert the partial folder
and record the paper in
queue.mdinstead. - One paper = one folder = one bib entry = one index row (1:1:1).
- While digesting, the only edit allowed in other papers' folders is
upgrading an external id to a citekey in their
cites/cited_bylists.
Done When
sota/papers/<citekey>/haspaper.pdf,synthesis.md,metadata.yamlreferences.bibandsota/index.mdeach gained exactly one entrymake checkpasses
What ships with it: 1 file
1.6 KB alongside SKILL.md
references/
- bibliography-rules.md1.6 KB