Skip to content
Back to skills

Lit Review

BSecurity

Search and synthesize scientific literature from Zotero, arxiv, bioRxiv, Google Scholar, and Consensus. Use when framing a research question, designing methods, interpreting results, mapping the field landscape, or identifying future directions.

  • 63 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 29, 2026
ai-agentspythongobashapi

Works with

  • api
  • mcp

Security analysis

B75/100
  • criticalExfiltrates credentials via HTTP — exact pattern from Snyk ToxicSkills study
  • criticalDownloads and executes remote scripts — classic supply chain attack

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

Scanned September 29, 2026

npx -y skills add dgilford/ai-science-toolkit --skill lit-review --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Lit Review?

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

Security grade badge for Lit Review
[![Security: B — Skills Directory](https://www.skillsdirectory.com/api/skills/dgilford-lit-review/badge)](https://www.skillsdirectory.com/skills/dgilford-lit-review)

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: lit-review
description: Search and synthesize scientific literature from Zotero, arxiv, bioRxiv, Google Scholar, and Consensus. Use when framing a research question, designing methods, interpreting results, mapping the field landscape, or identifying future directions.
allowed-tools: mcp__zotero__zotero_search_items mcp__zotero__zotero_item_metadata mcp__zotero__zotero_item_fulltext mcp__arxiv__search_papers mcp__arxiv__semantic_search mcp__arxiv__get_abstract mcp__google-scholar__search_google_scholar_key_words mcp__google-scholar__search_google_scholar_advanced mcp__claude_ai_bioRxiv__search_preprints mcp__claude_ai_Consensus__authenticate mcp__claude_ai_Consensus__complete_authentication Bash Write Edit
catalog:
  order: 60
  summary: 'Search and synthesize scientific literature from Zotero, arxiv, bioRxiv, Google Scholar, and Consensus. Zotero write support needs `ZOTERO_*` env vars in `~/.claude/settings.json`.'
---

Conduct a literature search and deliver a structured scientific briefing. See [REFERENCE.md](REFERENCE.md) for mode-specific guidance.

## On invocation, ask the user

1. **Topic** — what are we searching for?
2. **Mode** — `frame` / `methods` / `interpret` / `landscape` / `synthesize`
3. **Starting point** (optional) — any known papers, authors, or search terms to seed from?

## Search order

1. **Zotero** — existing library first; note what's already there
2. **Consensus** — synthesized search for landscape and key claims
3. **Google Scholar** — seminal works, citation counts, author networks
4. **arxiv / bioRxiv** — recent and unpublished work

Stop adding sources once coverage is sufficient for the mode.

## Output structure

**1. High-level summary** — 1–2 paragraphs: what the field looks like, what is settled, what is contested. Tag findings as *established / debated / emerging* throughout.

**2. Topical review** — key ideas, findings, and debates organized by theme. Apply mode-specific guidance from REFERENCE.md. Distinguish what is well-established, actively debated, and absent.

**3. Papers** — for each paper:
- Full citation (authors, year, title, journal/venue)
- Peer-reviewed or preprint — flag explicitly
- Key contribution in 1–2 sentences
- Relevance to the current topic and mode

**4. Offers** — always prompt:

- **Save to `REFERENCES.md`?** — check if it exists and show existing entries first. Append using the template in REFERENCE.md. Never overwrite.
- **Add to Zotero?** — list papers not already in the library, then ask. If yes, execute the steps below.

## Adding papers to Zotero

**Required env vars** (set in `~/.claude/settings.json` → `env` block):
- `ZOTERO_USER_ID` — your numeric Zotero user ID (find it at zotero.org/settings/keys)
- `ZOTERO_API_KEY` — a Zotero API key with write access (same page)
- `ZOTERO_INBOX_COLLECTION` — name of the collection to file new papers into (e.g. `Inbox`)

If any required var is unset, skip the Zotero write step and tell the user what to configure.

**Step 1 — resolve the collection key:**
```bash
curl -s "https://api.zotero.org/users/$ZOTERO_USER_ID/collections?limit=100" \
  -H "Zotero-API-Key: $ZOTERO_API_KEY" \
  | python3 -c "
import sys, json, os
cols = json.load(sys.stdin)
target = os.environ.get('ZOTERO_INBOX_COLLECTION', 'Inbox')
for c in cols:
    if c['data']['name'] == target:
        print(c['key'])
"
```

**Step 2 — POST items.** Build a JSON array; one object per paper. Use `itemType` `journalArticle` for peer-reviewed, `preprint` for arxiv/bioRxiv. Include `collections: [\"<KEY>\"]` from Step 1.

Minimum required fields per item:
- `itemType`, `title`, `date`
- `creators`: `[{"creatorType": "author", "firstName": "...", "lastName": "..."}]`
- `DOI` or `url` (include both when available)
- `collections`: `["<inbox-key>"]`
- `tags`: `[{"tag": "lit-review"}]`

```bash
curl -s -X POST "https://api.zotero.org/users/$ZOTERO_USER_ID/items" \
  -H "Zotero-API-Key: $ZOTERO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '<JSON array>'
```

**Step 3 — report results.** Parse the response: list titles that succeeded (HTTP 200 `success` key) and any that failed (`failed` key). A paper already in the library does not need to be re-added.

Files in this skill

  • REFERENCE.md2.8 KB
  • SKILL.md4.2 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…