원클릭으로
gather-readings
Use when you need to gather PDFs from Paperpile into a project's articles/ folder.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Use when you need to gather PDFs from Paperpile into a project's articles/ folder.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Use when you need to audit a research project against the init-project-research template.
Use when you need to validate a paper's bibliography — cross-references \cite{} keys against .bib files or embedded \bibitem entries, finds missing/unused/typo'd keys, and checks every key against the Paperpile library via the local resolver. Deep verification mode spawns parallel agents for DOI/metadata validation at scale. Fix mode rekeys drifted keys to canonical and stages missing entries for Paperpile.
Use when you need to bootstrap a full research project with directory scaffold and Overleaf symlink.
Use when you need to create a preprint / working-paper variant of a paper currently in conference or journal format. Forks the existing Overleaf project — adds a `preprint/` subfolder using the user's `your-template` Template, ports the body content from the source paper. The preprint is accessed locally via the existing `paper-{venue}/paper/preprint/` path (subfolder under the conference paper's symlink); no separate `paper-wp/` directory. Trigger on "set up a working paper", "create a preprint", "WP version", "arXiv-ready version", "ready to preprint". Never creates a new top-level Overleaf project — always nests inside the existing one. Never uses the conference's own style (.sty / .cls); always swaps to `your-template`.
Use when you need academic proofreading of a LaTeX paper (11 check categories).
Use when you need to assemble, anonymize, or audit a replication package.
| name | gather-readings |
| description | Use when you need to gather PDFs from Paperpile into a project's articles/ folder. |
| allowed-tools | Read, Write, Edit, Glob, Grep, Bash(ls*), Bash(cp*), Bash(mkdir*), Bash(python*), Bash(uv*), Bash(paperpile*) |
| argument-hint | [.bib file, Paperpile label name, or search queries] |
Copy PDFs from your Paperpile library (Google Drive) into a project's
articles/folder with clean filenames. Bridges the gap between "papers in Paperpile" and "corpus ready for analysis."
/theory-mapper, /method-audit, /weakness-scanner, /quote-mining, /replication-audit, /evolution-timeline, /future-research-agenda, /interdisciplinary-bridge).bib file exists but the PDFs are scattered across Paperpile's Google Drive folder/literature first, stage as BibTeX for Paperpile import, then gather/split-pdf directly or paperpile get-pdf-text/split-pdf, which handles acquisitionThe user provides one of:
.bib file — match each entry to a Paperpile item by DOI, title, or author+year.tex files for \cite{} keys, match against .bib, then gatherIf ambiguous, ask: "Which papers should I gather? Point me to a .bib file, name a Paperpile label, or list search terms."
From a .bib file:
.bib to extract entries (DOI, title, author, year)paperpile lookup-by-doi (most reliable match)paperpile search-library by titleDispatch rule for ≥5 entries. Per _shared/cli-dispatch-policy.md: if the .bib has 5 or more entries, DO NOT loop in main context. Batch entries into groups of 5 and dispatch each group to a Bash sub-agent. Each sub-agent runs the lookup loop for its batch and writes matches to /tmp/gather-readings-<n>.json. Main context merges. For <5 entries, sequential lookup in main context is fine.
From a Paperpile label:
paperpile get-labels to find the labelpaperpile get-items-by-label to get items in that labelFrom search queries:
paperpile search-libraryFrom cited papers:
.tex files in the project, extract \cite{key} commands.bib filePDFs live in the local rclone mirror of the Paperpile library (path from ~/.config/task-mgmt/paperpile-pdfs, currently /Volumes/SSD/paperpile-pdfs). This is the same canonical mirror RefPile ingests — kept fresh by the sync-paperpile cron (4×/day) and more complete than the Google Drive Desktop copy. The mirror has the All Papers/ level stripped, so attachment filenames like All Papers/Other/Foo.pdf resolve to <paperpile-pdfs>/Other/Foo.pdf.
For each matched Paperpile item:
paperpile get-item with the citekey to get full metadata, including attachments[].filename<paperpile-pdfs>/ (strip the leading All Papers/ prefix Paperpile uses). This is the authoritative source of the path.<paperpile-pdfs>/All Papers/ subdirectories by author + year patternpaperpile get-pdf-text returns the cleaned Markdown text, NOT a path — use it only to confirm a PDF is extractable, never to locate the filearticles/ in the project directory if it doesn't existarticles/ with a clean filename:Filename convention: author_year_shorttitle.pdf
author: first author's surname, lowercase, no accents (e.g., santanna)year: 4-digit yearshorttitle: first 3-4 meaningful words of the title, lowercase, joined with hyphens (e.g., doubly-robust-did)santanna_2020_doubly-robust-did.pdfIf the .bib key is available, prefer using it as the filename (e.g., santanna2020doubly.pdf) for consistency with citations. Ask the user which convention they prefer on first run.
Collision handling: If a file with the same name already exists in articles/:
-v2 to the new filePrint a summary table:
## Gather Report
**Target:** [source — .bib file / label / queries]
**Found:** X/Y papers with PDFs
**Copied:** Z new PDFs to articles/
**Skipped:** W (already in articles/)
| # | Author (Year) | Title | Status | Filename |
|---|--------------|-------|--------|----------|
| 1 | Smith (2020) | Paper Title | Copied | smith_2020_paper-title.pdf |
| 2 | Jones (2019) | Another Paper | Already exists | jones_2019_another-paper.pdf |
| 3 | Lee (2021) | Missing Paper | No PDF in Paperpile | — |
### Missing PDFs
These papers are in Paperpile but have no PDF:
- Lee (2021) — "Missing Paper" — DOI: 10.xxxx/yyyy
→ Try: `scholarly unpaywall-find-pdf` or download manually
### Not Found in Paperpile
These .bib entries had no Paperpile match:
- `bibkey2023` — "Unmatched Paper" — DOI: 10.xxxx/zzzz
→ Stage as BibTeX for Paperpile import, or download via `/split-pdf`
Write the report to articles/GATHER-REPORT.md for reference.
After gathering, suggest next steps:
"articles/ now has [N] PDFs ready for analysis. You can run:
/theory-mapper articles/— map the theoretical landscape/method-audit articles/— compare empirical methods/weakness-scanner articles/— find vulnerable arguments/split-pdf articles/<file>.pdf— deep-read a specific paper"
articles/ are working copies — Paperpile remains the source of trutharticles/ is inside paper/ (Overleaf symlink), flag the Overleaf separation rule and suggest moving to project root| Skill | When to use instead/alongside |
|---|---|
/split-pdf | To deep-read individual papers after gathering |
/literature | To find NEW papers (this skill gathers papers already in Paperpile) |
/bib-coverage | To compare .bib against Paperpile labels (audit, not gather) |
/theory-mapper | Run on articles/ after gathering |
/method-audit | Run on articles/ after gathering |
/weakness-scanner | Run on articles/ after gathering |
\cite{key}, verify with paperpile get-item key and paperpile export-bib key.refpile semantic search → Paperpile verify.\CiteTodo{slug}{title/author/year/DOI hint} — never a guessed key..bib; only the orchestrator regenerates it from Paperpile exports..paperpile-import/ for manual Paperpile import; don't cite until Paperpile mints the key.scripts/bib/citation_lint.py before commit; zero placeholders, zero non-Paperpile keys, zero hand-authored metadata.See rules/paperpile-citations.md for the full workflow.