بنقرة واحدة
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.