Search for related academic work, download and read key papers, and produce a structured literature survey. Use when asked to find prior art, related papers, competing approaches, or known results for a research topic.
Search for related academic work, download and deeply read the most important papers, and produce a structured literature survey organized by relationship to the research goal.
Invoke this skill by name with the research topic as a quoted string. On slash-command hosts, prefix with / (e.g. /review-literature "<topic>").
review-literature "post-quantum threshold signatures"
Read reaper-workspace/notes/paper-summary.md if it exists. Extract:
Combine with the research goal to formulate search queries.
Delegate all paper search to the /search-paper skill. It decides which archives to hit (arXiv, IACR ePrint, …), which categories or filters apply for the topic, and returns structured results the caller can merge. The caller's job is to supply good queries, not pick archives.
Query types (generate at least one query per type):
Spawn parallel subagents (using your host's parallel-spawn primitive — e.g. Claude Code's Agent tool — or run sequentially if unavailable) for concurrent search — one subagent per query type, each invoking /search-paper. Run the WebSearch fallback (step 3) as an additional parallel subagent.
Context efficiency: Do NOT pass the full paper-summary.md to each search subagent. Instead, extract the key search terms (topic, author names, 3-5 key concepts) and pass those as a brief JSON object (~100 words). Each subagent only needs the terms to formulate queries, not the full paper analysis.
Each subagent runs its searches and returns structured JSON results.
Use WebSearch for results that structured APIs may miss:
This runs as a parallel subagent alongside the structured searches.
For the seed paper (from paper-summary.md) and the top 3 most relevant results, invoke the /search-paper skill to traverse the citation graph (pass the arXiv ID and request up to 20 citations in each direction — forward and backward).
This returns both:
Deduplicate results across all search sources.
Note: Citation graph requires an arXiv ID. For ePrint-only papers, use WebSearch to find citing works.
For fast-moving areas, invoke the /search-paper skill to pull the most-recently-posted papers in the area (e.g. top 10). Scan titles/abstracts for relevance to the research goal and include any relevant recent papers that the main search may have missed.
For each result found, assess relevance to the research goal. Classify each paper into one of two categories:
Weight results heavily toward top venues. A peer-reviewed top-conference paper is far more trustworthy than an unreviewed preprint. Consult the /reaper skill's references/venue-tiers.md for the domain-appropriate venue tier table and author weighting criteria.
When two papers make competing claims, prefer the one from the higher-tier venue by authors with more domain-specific expertise. When a preprint contradicts a published top-venue result, flag it but do not treat the preprint as authoritative without independent verification.
Within each category (same-goal / same-approach), assess relevance:
Keep high and medium relevance results. Discard low unless it's a seminal work or by a tier-1 venue / leading author in the area.
For every kept paper, resolve the actual publication venue (CRYPTO, S&P, PODC, …) — an arXiv or ePrint ID is not a venue. Invoke the /search-paper skill's Venue Resolution Protocol with the best identifier available — arXiv ID preferred, else ePrint ID, else title plus first-author surname. /search-paper walks the layered Semantic Scholar → author-supplied field → DBLP → OpenAlex ladder and returns either a resolved venue or the explicit (preprint) label.
Record the resolved venue inline in your scratch notes so downstream steps and re-runs don't repeat the work. Never guess a venue from topic or affiliation — if /search-paper returns (preprint), use that label verbatim.
Spawn parallel subagents (one per kept paper, using your host's parallel-spawn primitive) to resolve venues concurrently — each lookup is independent.
For all high-relevance papers (and medium-relevance papers that seem particularly important), invoke the /search-paper skill to download each PDF into reaper-workspace/papers/ (pass the arXiv ID or ePrint ID).
After downloading, delegate paper reading to /analyze-paper. For each downloaded paper, invoke the /analyze-paper skill with:
reaper-workspace/papers/<filename>.pdf --goal "<research-goal>" --output reaper-workspace/papers/<id>-notes.md
(On Claude Code: /analyze-paper <args>. On other agents: invoke by skill name with the same arguments.)
Spawn parallel subagents (using your host's parallel-spawn primitive — e.g. Claude Code's Agent tool — or run sequentially if unavailable) to analyze multiple papers concurrently — each paper is independent.
The /analyze-paper skill handles the multi-pass reading (calibrating depth by relevance to the goal) and writes per-paper notes to reaper-workspace/papers/<id>-notes.md. Passing --goal ensures the output includes a relevance assessment.
These notes serve as a durable reference for the investigate step. They are evolving files — update inline if revisited during mid-investigation search.
Using the per-paper notes produced by /analyze-paper in the previous step, check whether the paper under analysis correctly cites and uses each high-relevance work:
Document any discrepancies in the per-paper notes (<id>-notes.md) under a ### Discrepancies with Paper Under Analysis heading. Summarize all discrepancies in the ## Gaps Identified section of the output file — these are high-priority inputs for the formalize-problem step.
Write to reaper-workspace/notes/literature.md:
# Literature Review
## Landscape Summary
[2-3 paragraphs summarizing the state of the art. What approaches exist? What's been proven? What's open? How does the paper under analysis fit into this landscape?]
## Same-Goal Works
Papers that address the same or a closely related research goal.
| # | Title | Authors | Year | Venue | Key Contribution | Relation to Our Goal | Link | Local Path |
|---|-------|---------|------|-------|-----------------|---------------------|------|------------|
| 1 | ... | ... | ... | CRYPTO 2023 *or* `(preprint)` | [1-sentence] | [how this relates to our specific goal] | [arXiv](https://arxiv.org/abs/XXXX.XXXXX) or [ePrint](https://eprint.iacr.org/YYYY/NNNN) | `papers/<filename>` |
The `Venue` column holds the resolved publication venue from Step 7 — never the archive ID. Use `(preprint)` only when `/search-paper` returned no venue.
## Same-Approach Works
Papers that apply similar techniques or approaches to different problems.
| # | Title | Authors | Year | Venue | Key Contribution | Shared Technique | Link | Local Path |
|---|-------|---------|------|-------|-----------------|-----------------|------|------------|
| 1 | ... | ... | ... | CRYPTO 2023 *or* `(preprint)` | [1-sentence] | [what technique/approach we share and how they use it] | [arXiv](https://arxiv.org/abs/XXXX.XXXXX) or [ePrint](https://eprint.iacr.org/YYYY/NNNN) | `papers/<filename>` |
## Citation Graph
[Summary of citation graph traversal findings. What are the foundational works this area builds on? What are the most active follow-up directions?]
## Key Prior Results
[Bullet list of the most important known results that constrain or inform our investigation. E.g., impossibility results, lower bounds, existing attacks. Include precise theorem statements where possible, referencing the per-paper notes.]
## Gaps Identified
[What hasn't been done? What combinations of assumptions/properties/techniques are unexplored? This feeds into formalize-problem.]
## Paper Index
Summary of all downloaded papers and their local paths for quick reference during investigation.
| Paper | Link | Local PDF | Notes |
|-------|------|----------|-------|
| [Short title] | [arXiv](https://arxiv.org/abs/XXXX.XXXXX) or [ePrint](https://eprint.iacr.org/YYYY/NNNN) | `papers/<filename>.pdf` | `papers/<id>-notes.md` |
/search-paper can fail at any step independently (search, citation graph, venue resolution, download). Apply the right fallback per step:
literature.md: > **Note**: structured paper search via /search-paper was unavailable for this review (error: ...). Results are from web search only.(preprint) in the Venue column rather than blocking the review.Local Path as "unavailable" and proceed with abstract-level understanding for that paper.In every case, the review still proceeds. Only the quality criteria that depend on the failed step are relaxed (see Quality Criteria below).
Content criteria (always required):
/search-paper download succeeds) and analyzed via analyze-paper --goal, with per-paper notes in reaper-workspace/papers//analyze-paper) contain structured analysis with key results, strengths/weaknesses, and relevance assessment — not just abstract-level summaries(preprint) label — never just an arXiv/ePrint IDNormal-mode criteria (required unless explicitly degraded):
/search-paper (not WebSearch alone) — waived when the /search-paper availability note is present