From sci-brain
Indexes personal paper collections from Zotero libraries, PDF folders, or Google Scholar profiles into a survey registry with summary.md and references.bib files.
npx claudepluginhub quantumbfs/sci-brain --plugin sci-brainThis skill uses the workspace's default tool permissions.
Turn an existing paper collection into a structured survey registry (`summary.md` + `references.bib`). The output uses the same registry format as the `survey` skill — so personal and topic registries can be merged.
Surveys research topics by launching parallel web searches across user-selected strategies like landscape mapping, builds persistent BibTeX registry. Use for literature reviews.
Manages Paperpile library via CLI: add papers by DOI/URL/remote/local PDF, search library, apply/remove labels, edit metadata, trash/restore items, download PDFs, resolve citations to local files.
Operates research-hub CLI for literature discovery, source ingestion into Zotero/Obsidian/NotebookLM, reference organization, dashboard inspection, and vault maintenance. Use for finding papers, building knowledge bases, or generating research briefs.
Share bugs, ideas, or general feedback.
Turn an existing paper collection into a structured survey registry (summary.md + references.bib). The output uses the same registry format as the survey skill — so personal and topic registries can be merged.
Step 1 — Locate the source. Ask which source to index:
"Where are your papers?"
- (a) Zotero library
- (b) A PDF folder (give me the path)
- (c) Google Scholar profile (give me the URL)
Step 2 — Index the collection.
Zotero:
Locate zotero.sqlite — check in order: ~/Zotero/, ~/Library/Application Support/Zotero/, ~/snap/zotero-snap/common/Zotero/. If not found, use find ~ -maxdepth 4 -name "zotero.sqlite" as fallback. If still not found, ask for the path.
Run the bundled script:
python3 <skill-base-dir>/parse_zotero.py <path-to-zotero.sqlite> <output_dir>
The script handles: copying the DB to avoid locking, pivot queries to avoid cartesian products, author extraction, cite key deduplication, topic classification, and generating both summary.md and references.bib.
Review the output — the script's topic classification uses keyword matching and may need manual adjustment. Check the topic distribution it prints and offer to re-classify if the user's field isn't well covered by the default patterns.
For papers missing abstracts or DOIs, find the PDF via the itemAttachments table. PDFs are at <zotero-data-dir>/storage/<key>/<filename>.pdf. Read them to extract the abstract.
PDF folder:
pdfgrep -r -i "KEYWORD" <folder> (install via package manager if missing, e.g., apt install pdfgrep or brew install pdfgrep).Google Scholar:
Note: Google Scholar actively blocks automated access — WebFetch may hit CAPTCHAs or rate limits. If scraping fails, suggest alternatives: export BibTeX manually from the Scholar profile page (Scholar → select all → export BibTeX), use ORCID or DBLP profiles instead (both have machine-friendly APIs), or switch to the PDF folder method with downloaded papers.
Step 3 — Produce the registry. Output to the global registry path at <global-registry-root>/personal/ (e.g., ~/.claude/survey/personal/), containing:
1. summary.md — all papers listed by topic cluster, with BibTeX cite keys (e.g., [AuthorYear]) as indices.
2. references.bib — BibTeX entries. Only include entries that have at least a DOI or URL — skip the rest. Every included entry must contain:
abstract — the paper's abstractdoi or url — at least one identifier for retrievalProcessing tips:
parse_zotero.py for Zotero). Don't try to do it inline with shell commands — even for small libraries, a script is more reliable and easier to debug.TOPIC_PATTERNS in the script or ask the user to provide keywords for their domain.