leonardodalinky/scider/literature-review-agent
Claude Code and agent skill by leonardodalinky/scider
- community
Checking that the SKILL.md file is still in the repository.
Step 3 of the PaperOrchestra pipeline (arXiv:2604.05018). Execute the literature search strategy from outline.json — discover candidate papers via web search, verify them through Semantic Scholar (Levenshtein > 70 fuzzy title match, temporal cutoff, dedup by paperId), build a BibTeX file, and draft Introduction + Related Work using ≥90% of the verified pool. Runs in parallel with the plotting-agent. TRIGGER when the orchestrator delegates Step 3 or when the user asks to "find citations for my paper", "draft the related work", or "build the bibliography".
Install
npx vskill@latest install leonardodalinky/scider/literature-review-agentSKILL.md
Literature Review Agent (Step 3)
Faithful implementation of the Hybrid Literature Agent from PaperOrchestra (Song et al., 2026, arXiv:2604.05018, §4 Step 3, App. D.3, App. F.1 p.46).
Cost: ~20–30 LLM calls. This is one of the two longest steps (the other is plotting). Wall-time floor is set by Semantic Scholar's 1 QPS verification limit.
Inputs
workspace/outline.json— specificallyintro_related_work_planwith the
Introduction search directions and the 2-4 Related Work methodology clusters
workspace/inputs/conference_guidelines.md— used to derivecutoff_dateworkspace/inputs/idea.md,workspace/inputs/experimental_log.md— for
framing the Intro and grounding the Related Work positioning
Outputs
workspace/citation_pool.json— verified Semantic Scholar metadata for
every paper that survived verification
workspace/refs.bib— BibTeX file generated from the verified poolworkspace/drafts/intro_relwork.tex— drafted Introduction and Related
Work sections, written into the template, with the rest of the template preserved verbatim
Two-phase pipeline (App. D.3)
The host agent does the LLM/web work; the deterministic helpers in scripts/ do the math.
Step-by-step
0. Derive cutoff_date
Parse conference_guidelines.md for the submission deadline. The paper aligns research cutoff with venue submission deadline (App. D.1):
| Venue | Cutoff | |
|---|---|---|
| CVPR 2025 | Nov 2024 | |
| ICLR 2025 | Oct 2024 | |
| Other | One month before the stated submission deadline |
Encode as YYYY-MM-DD. Months default to day-1 (e.g., 2024-10-01).
1. Phase 1: Parallel Candidate Discovery
From outline.json:
- All
introduction_strategy.search_directions(3-5 queries) - For each cluster in
related_work_strategy.subsections: - The cluster's
sota_investigation_missionbecomes a search query - All
limitation_search_queries(1-3 each)
For each query, use your host's web search tool (e.g., WebSearch in Claude Code, @web in Cursor, the search tool in Antigravity). Collect the top ~10 candidates per query: title, abstract snippet, source URL.
If your host supports parallel sub-tasks, fire up to 10 concurrent search queries. If not, run sequentially — slower but functionally equivalent.
Optional: Exa as a Phase 1 backend
If your host has no native web search, OR you want a research-paper-focused backend with better signal-to-noise, you can use Exa via the bundled scripts/exa_search.py helper. It is opt-in and reads EXA_API_KEY from the environment — the repo never commits a key.
Output is a normalized candidate list ready to merge into raw_candidates.json. Phase 2 verification (Semantic Scholar fuzzy match, cutoff, dedup) is unchanged. See references/exa-search-cookbook.md for the full recipe, query patterns, cost estimates, and security notes.
Combine all discovered candidates into a single working list. Tag each with the originating query ID so you can later attribute it to "intro" vs "related_work[i]".
1.5. Pre-dedup before Phase 2
Always run this before starting Phase 2. Multiple search queries routinely return the same papers (e.g., "Attention is All You Need" appears in almost every NLP discovery query). Verifying duplicates wastes 30-40% of S2 quota at 1 QPS.
Use workspace/deduped_candidates.json as input to Phase 2.
2. Phase 2: Sequential Verification via Semantic Scholar (with cache)
For each candidate in deduped_candidates.json, in sequential order:
Step A — check cache first (no S2 call, no throttle needed):
Step B — live S2 request (cache MISS only, throttle to 1 QPS):
Preferred: use the bundled scripts/s2_search.py helper — it handles auth, retries, and 429 back-off automatically:
Check whether the key is configured before starting Phase 2:
Fallback: if you prefer your host's URL fetch tool, GET:
Add header x-api-key: <SEMANTIC_SCHOLAR_API_KEY> if the env var is set. Be polite: ≤1 request per second for live requests. Cache hits are free.
Step C — store in cache (after every successful live request):
For the top hit:
Then check the temporal cutoff:
If both checks pass AND the abstract is non-empty, append the paper's full S2 metadata to the verified pool.
3. Dedup and assemble the pool
After all candidates are verified:
The dedupe script keys on paperId (Semantic Scholar's internal unique ID), falling back to externalIds.DOI, then externalIds.ArXiv, then a normalized title.
The script also computes and writes min_cite_paper_count = floor(0.9 * len(papers)) — the minimum number of papers the writing step must cite (the paper's ≥90% integration rule, App. D.3).
Immediately after dedupe_by_id.py, validate and auto-fix the pool schema:
4. Build the BibTeX file
The script generates citation keys deterministically from `firstauthor + year
- first significant word of title
(e.g.,vaswani2017attention`). It writes
out only @article / @inproceedings / @misc entries — never invents fields. It also writes the canonical bibtex_key back into each paper record in citation_pool.json.
Immediately after bibtex_format.py, sync keys in intro_relwork.tex:
These two steps replace the manual Python snippets that were previously required. The pipeline is now:
5. Draft Introduction + Related Work
This is where you (the host agent) actually write text. Load the verbatim Literature Review Agent prompt at references/prompt.md. Substitute the template placeholders:
| Placeholder | Value | |
|---|---|---|
intro_related_work_plan | full JSON object from outline.json | |
project_idea | contents of idea.md | |
project_experimental_log | contents of experimental_log.md | |
citation_checklist | the BibTeX keys from refs.bib | |
collected_papers | list of {key, title, abstract} from citation_pool.json | |
paper_count | len(citation_pool.papers) | |
min_cite_paper_count | from citation_pool.json | |
cutoff_date | the date you derived in Step 0 |
Also prepend the Anti-Leakage Prompt from ../paper-orchestra/references/anti-leakage-prompt.md.
Run your LLM with the combined prompt against template.tex. The agent's job is to fill in the empty Introduction and Related Work sections of the template and leave everything else untouched. Output: the full template.tex with those two sections filled. Save to workspace/drafts/intro_relwork.tex.
6. Verify ≥90% citation coverage
If the gate fails, re-prompt the writing step explicitly listing the missing keys and asking the agent to integrate them where contextually appropriate.
Critical rules from the prompt
These are excerpted from references/prompt.md. The host agent MUST honor them on the writing call:
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryChecking.scider/skills/literature-review-agent/SKILL.md
Popularity
- Repository stars
- 88
- Repository forks
- 7
- 7-day trend score
- 22
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/leonardodalinky/scider/literature-review-agent)