# Lit Review

> 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.

- **Type:** Skill
- **Install:** `agentstack add skill-dgilford-ai-science-toolkit-lit-review`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [dgilford](https://agentstack.voostack.com/s/dgilford)
- **Installs:** 0
- **Category:** [AI & ML](https://agentstack.voostack.com/c/ai-and-ml)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [dgilford](https://github.com/dgilford)
- **Source:** https://github.com/dgilford/ai-science-toolkit/tree/main/skills/lit-review

## Install

```sh
agentstack add skill-dgilford-ai-science-toolkit-lit-review
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

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: [\"\"]` from Step 1.

Minimum required fields per item:
- `itemType`, `title`, `date`
- `creators`: `[{"creatorType": "author", "firstName": "...", "lastName": "..."}]`
- `DOI` or `url` (include both when available)
- `collections`: `[""]`
- `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 ''
```

**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.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [dgilford](https://github.com/dgilford)
- **Source:** [dgilford/ai-science-toolkit](https://github.com/dgilford/ai-science-toolkit)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** yes
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** yes
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-dgilford-ai-science-toolkit-lit-review
- Seller: https://agentstack.voostack.com/s/dgilford
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
