跳到主要内容

systematic-literature-review 精选

Use this skill when the user wants a systematic literature review, survey, or synthesis across multiple academic papers on a topic. Also covers annotated bibliographies and cross-paper comparisons. Searches arXiv and outputs reports in APA, IEEE, or BibTeX format. Not for single-paper tasks — use academic-paper-review for reviewing one paper.

在 GitHub 打开

安装方式

cp -r skills/public/systematic-literature-review ~/.claude/skills/systematic-literature-review

把该 skill 目录放进客户端 skills 目录。不同客户端的目录可能不同,Claude Code 默认是 ~/.claude/skills/

整仓一次性获取:git clone --depth 1 https://github.com/bytedance/deer-flow.git

依赖与权限

  • 无需 API Key
  • 需要联网访问外部服务
  • 依赖外部命令:python
  • 以上为按正文与 frontmatter 自动推断的信号,仅供参考;安装前建议先阅读原文。
触发场景
survey

SKILL.md 正文

来源 bytedance/deer-flow@b346b17 · 许可 MIT · 内容未修改

Systematic Literature Review Skill

Overview

This skill produces a structured systematic literature review (SLR) across multiple academic papers on a research topic. Given a topic query, it searches arXiv, extracts structured metadata (research question, methodology, key findings, limitations) from each paper in parallel, synthesizes themes across the full set, and emits a final report with consistent citations.

Distinct from academic-paper-review: that skill does deep peer review of a single paper. This skill does breadth-first synthesis across many papers. If the user hands you one paper URL and asks "review this paper", route to academic-paper-review instead.

When to Use This Skill

Use this skill when the user wants any of the following:

  • A literature survey on a topic ("survey transformer attention variants", "review the literature on diffusion models")
  • A synthesis across multiple papers ("what do recent papers say about X", "compare methodologies across papers on Y")
  • A systematic review with consistent citation format ("do an SLR on Z in APA format")
  • An annotated bibliography on a topic
  • An overview of research trends in a field over a time window

Do not use this skill when:

  • The user provides exactly one paper and asks to review it (use academic-paper-review)
  • The user asks a factual question that does not require synthesizing multiple sources (answer directly)
  • The user wants general web research without academic rigor (use standard web search)

Workflow

The workflow has five phases. Follow them in order.

Phase 1: Plan

Before doing any retrieval, confirm the following with the user. If any of these are unclear, ask one clarifying question that covers the missing pieces. Do not ask one question at a time.

  • Topic: the research area in plain English (e.g. "transformer attention variants").
  • Scope: how many papers (default 20, hard upper bound 50), optional time window (e.g. "last 2 years"), optional arXiv category (e.g. cs.CL, cs.CV).
  • Citation format: APA, IEEE, or BibTeX (default APA if the user does not specify and does not seem to be writing for a specific venue).
  • Output location: where to save the final report (default /mnt/user-data/outputs/).

If the user says "50+ papers", politely cap it at 50 and explain that synthesis quality degrades quickly past that — for larger surveys they should split by sub-topic.

Phase 2: Search arXiv

Call the bundled search script. Do not try to scrape arXiv by other means and do not write your own HTTP client — this script handles URL encoding, Atom XML parsing, and id normalization correctly.

python /mnt/skills/public/systematic-literature-review/scripts/arxiv_search.py \
  "<topic>" \
  --max-results <N> \
  [--category <cat>] \
  [--sort-by relevance] \
  [--start-date YYYY-MM-DD] \
  [--end-date YYYY-MM-DD]

IMPORTANT — extract 2-3 core keywords before searching. Do not pass the user's full topic description as the query. Before calling the script, mentally reduce the topic to its 2-3 most essential terms. Drop qualifiers like "in computer vision", "for NLP", "variants", "recent" — those belong in --category or --start-date, not in the query string.

Query phrasing — keep it short. The script wraps multi-word queries in double quotes for phrase matching on arXiv. This means:

  • "diffusion models" → searches for the exact phrase → good, returns relevant papers.
  • "diffusion models in computer vision" → searches for that exact 5-word phrase → too specific, likely returns 0 results because few papers contain that exact string.

Use 2-3 core keywords as the query, and use --category to narrow the field instead of stuffing field names into the query. Examples:

User saysGood queryBad query
"diffusion models in computer vision""diffusion models" --category cs.CV"diffusion models in computer vision"
"transformer attention variants""transformer attention""transformer attention variants in NLP"
"graph neural networks for molecules""graph neural networks" --category cs.LG"graph neural networks for molecular property prediction"

The script prints a JSON array to stdout. Each paper has: id, title, authors, abstract, published, updated, categories, pdf_url, abs_url.

Sort strategy:

  • Always use relevance sorting — arXiv's BM25-style scoring ensures results are actually about the user's topic. submittedDate sorting returns the most recently submitted papers in the category regardless of topic relevance, which produces mostly off-topic results.
  • When the user asks for "recent" papers or gives a time window, use --sort-by relevance combined with --start-date to constrain the time range while keeping results on-topic. For example, "recent diffusion model papers" → --sort-by relevance --start-date 2024-01-01, not --sort-by submittedDate.
  • submittedDate sorting is only appropriate when the user explicitly asks for chronological order (e.g. "show me papers in the order they were published"). This is rare.
  • lastUpdatedDate is rarely useful; ignore it unless the user asks.

Run the search exactly once. Do not retry with modified queries if the results seem imperfect — arXiv's relevance ranking is what it is. Retrying with different query phrasings wastes tool calls and risks hitting the recursion limit. If the results are genuinely empty (0 papers), tell the user and suggest they broaden their topic or remove the category filter.

If the script returns fewer papers than requested, that is the real size of the arXiv result set for the query. Do not pad the list — report the actual count to the user and proceed.

If the script fails (network error, non-200 from arXiv), tell the user which error and stop. Do not try to fabricate paper metadata.

Do not save the search results to a file — the JSON stays in your context for Phase 3. The only file saved during the entire workflow is the final report in Phase 5.

Phase 3: Extract metadata in parallel

You MUST delegate extraction to subagents via the task tool — do not extract metadata yourself. This is non-negotiable. Specifically, do NOT do any of the following:

  • ❌ Write python -c "papers = [...]" or any Python/bash script to process papers
  • ❌ Extract metadata inline in your own context by reading abstracts one by one
  • ❌ Use any tool other than task for this phase

Instead, you MUST call the task tool to spawn subagents. The reason: extracting 10-50 papers in your own context consumes too many tokens and degrades synthesis quality in Phase 4. Each subagent runs in an isolated context with only its batch of papers, producing cleaner extractions.

Split papers into batches of ~5, then for each batch, call the task tool with subagent_type: "general-purpose". Each subagent receives the paper abstracts as text and returns structured JSON.

Concurrency limit: at most 3 subagents per turn. The DeerFlow runtime enforces MAX_CONCURRENT_SUBAGENTS = 3 and will silently drop any extra dispatches in the same turn — the LLM will not be told this happened, so strictly follow the round strategy below.

Round strategy — use this decision table, do not compute the split yourself:

Paper countBatches of ~5 papersRoundsPer-round subagent count
1–51 batch1 round1 subagent
6–102 batches1 round2 subagents
11–153 batches1 round3 subagents
16–204 batches2 rounds3 + 1
21–255 batches2 rounds3 + 2
26–306 batches2 rounds3 + 3
31–357 batches3 rounds3 + 3 + 1
36–408 batches3 rounds3 + 3 + 2
41–459 batches3 rounds3 + 3 + 3
46–5010 batches4 rounds3 + 3 + 3 + 1

Never dispatch more than 3 subagents in the same turn. When a row says "2 rounds (3 + 1)", that means: first turn dispatches 3 subagents in parallel, wait for all 3 to complete, then second turn dispatches 1 subagent. Rounds are strictly sequential at the main-agent level.

If the paper count lands between rows (e.g. 23 papers), round up to the next row's layout but only dispatch as many batches as you actually need — the decision table gives you the shape, not a rigid prescription.

Do the batching at the main-agent level: you already have every paper's abstract from Phase 2, so each subagent receives pure text input. Subagents should not need to access the network or the sandbox — their only job is to read text and return JSON. Do not ask subagents to re-run arxiv_search.py; that would waste tokens and risk rate-limiting.

What each subagent receives, as a structured prompt:

Execute this task: extract structured metadata and key findings from the
following arXiv papers.

Papers:
[Paper 1]
arxiv_id: 1706.03762
title: Attention Is All You Need
authors: Ashish Vaswani, Noam Shazeer, ...
published: 2017-06-12
abstract: <full abstract text>

[Paper 2]
arxiv_id: ...
...

For each paper, return a JSON object with these fields:
- arxiv_id (string)
- title (string)
- authors (list of strings)
- published_date (string, YYYY-MM-DD)
- research_question (1 sentence, what problem the paper tackles)
- methodology (1-2 sentences, how they tackle it)
- key_findings (3-5 bullet points, what they actually found)
- limitations (1-2 sentences, what they acknowledge or what is obviously missing)

Return the result as a JSON array, one object per paper, in the same
order as the input. Do not include any text outside the JSON — no
preamble, no markdown fences, just the array.

Parsing subagent results: the task tool returns strings with a fixed prefix like Task Succeeded. Result: [...JSON...]. Strip the Task Succeeded. Result: prefix (or Task failed. / Task timed out. prefixes) before trying to parse JSON. If a batch fails or returns unparseable JSON, log it, note which papers were affected, and continue with the remaining batches — do not fail the whole synthesis on one bad batch.

After all rounds complete, flatten the per-batch arrays into a single list of paper metadata objects, preserving order.

Phase 4: Synthesize and format

Now produce the final SLR report. Two things happen here: cross-paper synthesis (thematic analysis) and citation formatting.

Cross-paper synthesis: the report must do more than list papers. At minimum, identify:

  • Themes: 3-6 recurring research directions, approaches, or problem framings across the set.
  • Convergences: findings that multiple papers agree on.
  • Disagreements: where papers reach different conclusions or use incompatible methodologies.
  • Gaps: what the collective literature does not yet address (often stated explicitly in the "limitations" fields).

If the paper set is too small or too heterogeneous to support thematic synthesis (e.g. 5 papers on wildly different sub-topics), say so explicitly in the report — do not force themes that are not there.

Citation formatting: the exact format depends on user preference. Read only the template file that matches the user's requested format, not all three:

  • [templates/apa.md](templates/apa.md) — APA 7th edition. Default for social sciences and most CS journals. Use when the user requests APA or does not specify a format.
  • [templates/ieee.md](templates/ieee.md) — IEEE numeric citations. Use when the user targets an IEEE conference or journal, or explicitly asks for IEEE.
  • [templates/bibtex.md](templates/bibtex.md) — BibTeX entries. Use when the user mentions BibTeX, LaTeX, or wants machine-readable references. Important: arXiv papers are cited as @misc, not @article — the BibTeX template covers this explicitly.

Each template contains both the citation rules and a full report structure (executive summary, themes, per-paper annotations, references, methodology section). Follow the template's structure verbatim for the report body, then fill in content from your Phase 3 metadata.

Phase 5: Save and present

Save the full report to /mnt/user-data/outputs/slr-<topic-slug>-<YYYYMMDD>.md where <topic-slug> is a lowercased hyphenated version of the topic (e.g. transformer-attention). Then call the present_files tool with that path so the user can download it.

In the chat message, show a short preview so the user immediately sees value without opening the file:

  1. Executive summary — the 3–5 sentence paragraph from the top of the report, verbatim.
  2. Themes list — bullet list of the themes you identified in Phase 4 synthesis (just the theme names + one-line gloss, not the full theme sections).
  3. Paper count + a pointer to the file — e.g. "Full report with 20 papers, per-paper annotations, and formatted references saved to slr-transformer-attention-20260409.md."

Do not dump the full 2000+ word report inline — per-paper annotations, references, and methodology belong in the file. The preview is there to let the user judge the report at a glance and decide whether to open it.

Examples

Example 1: Typical SLR request

User: "Do a systematic literature review of recent transformer attention variants, 20 papers, APA format."

Your flow:

  1. Phase 1: confirm topic (transformer attention variants), scope (20 papers, default time window), format (APA). Ask one clarification only if something is missing (e.g. "Any particular time window, or should I default to the last 3 years?").
  2. Phase 2: arxiv_search.py "transformer attention" --max-results 20 --sort-by relevance --start-date 2023-01-01.
  3. Phase 3: 20 papers → round 1 = 3 subagents × 5 papers = 15 covered, round 2 = 1 subagent × 5 papers = 5 covered. Aggregate.
  4. Phase 4: read templates/apa.md, write the report using its structure, fill in themes + per-paper annotations from Phase 3 metadata.
  5. Phase 5: save to slr-transformer-attention-20260409.md, call present_files.

Example 2: Small-set request with ambiguity

User: "Survey a few papers on diffusion models for me."

Your flow:

  1. Phase 1: "a few" is ambiguous. Ask one question: "How many papers would you like — 10, 20, or 30? And any citation format preference (APA is the default)?"
  2. User responds "10, BibTeX".
  3. Phase 2: arxiv_search.py "diffusion models" --max-results 10 --category cs.CV.
  4. Phase 3: 10 papers → single round, 2 subagents × 5 papers.
  5. Phase 4: read templates/bibtex.md, format with @misc entries (not @article).
  6. Phase 5: save and present.

Example 3: Out-of-scope request

User: "Here's one paper (https://arxiv.org/abs/1706.03762). Can you review it?"

This is a single-paper peer review, not a literature survey. Do not use this skill. Route to academic-paper-review instead.

Notes

  • Prerequisite: subagent_enabled must be true. Phase 3 requires the task tool for parallel metadata extraction. This tool is only loaded when subagent_enabled is set to true in the runtime config (config.configurable.subagent_enabled). Without it, the task tool will not appear in the available tools and Phase 3 cannot execute as designed.
  • arXiv only, by design. This skill does not query Semantic Scholar, PubMed, or Google Scholar. arXiv covers the bulk of CS/ML/physics/math preprints, which is what DeerFlow users most often want to survey. Multi-source academic search belongs in a dedicated MCP server, not inside this skill.
  • Hard upper bound of 50 papers. This is tied to the Phase 3 concurrency strategy (max 3 subagents per round, ~5 papers each, at most ~3 rounds). Surveys larger than 50 papers degrade in synthesis quality and are better done by splitting into sub-topics.
  • Phase 3 requires subagents to be enabled. This skill's parallel extraction step hard-requires the task tool, which is only available when subagent_enabled=true at runtime. If subagents are unavailable, do not claim to execute the Phase 3 parallel plan; instead, tell the user that subagents must be enabled for the full workflow, or offer to narrow/split the request into a smaller manual review.
  • Subagent results are strings, not objects. Always strip the Task Succeeded. Result: / Task failed. / Task timed out. prefixes before parsing the JSON payload.
  • The id field is a bare arXiv id (e.g. 1706.03762), not a URL and not with a version suffix. abs_url / pdf_url hold the full URLs if you need them.
  • Synthesis, not listing. The final report must identify themes and compare findings across papers. A report that only lists papers one after another is a failure mode — if you cannot find themes, say so explicitly instead of faking them.

质量与来源

所属仓库
bytedance/deer-flow
仓库星标
8.4 万
最近更新
今天
采集时间
今天
commit
b346b17fce89
内容指纹
sha256:9fe4891e86b29d0
文件路径
skills/public/systematic-literature-review/SKILL.md

同仓库其它 Skill

查看全部 32 个
blocking-io-guard
Ensure async-path backend code that could block the asyncio event loop is protected by a teeth-verified runtime anchor in tests/blocking_io/. Use when changing backend Python under app/, packages/harness/deerflow/, or scripts/, when running a blocking-IO triage round over the whole repo, or when a reviewer/CI asks for blocking-IO coverage. Runs a deterministic scan (changed-lines or full-repo), routes each candidate, drafts/extends an anchor, and proves it fails when the blocking IO regresses.
精选 bytedance/deer-flow 8.4 万 原文
Codex CLIMCP 客户端
deerflow-maintainer-orchestrator
Use when a DeerFlow maintainer needs comment-only GitHub issue or PR handling: resolve issue/PR scopes with gh, analyze issues, post or draft issue comments, perform PR review comments, review PR or issue batches, compare competing PRs that target the same issue, give fix strategy, risk classification, and validation guidance. Intended for maintainers and trusted local agents, not general contributors.
精选 bytedance/deer-flow 8.4 万 原文
Codex CLIMCP 客户端
engineer-system-change
Evaluate and carry out non-trivial software-system changes from first principles. Use when assessing RFCs, issues, designs, features, refactors, migrations, dependency changes, or proposed fields, events, APIs, modules, and services whose need, consumers, system fit, validation, or rollback require scrutiny. Read the actual system, identify the concrete problem and named semantic consumers, choose the smallest sufficient solution, reject pseudo-requirements and speculative abstractions, and require evidence proportional to risk. Do not use for mechanical edits, source-code explanation, or a dedicated review of an already-complete diff.
精选 bytedance/deer-flow 8.4 万 原文
Codex CLIMCP 客户端
smoke-test
End-to-end smoke test skill for DeerFlow. Guides through: 1) Pulling latest code, 2) Docker OR Local installation and deployment (user preference, default to Local if Docker network issues), 3) Service availability verification, 4) Health check, 5) Final test report. Use when the user says "run smoke test", "smoke test deployment", "verify installation", "test service availability", "end-to-end test", or similar.
精选 bytedance/deer-flow 8.4 万 原文
Codex CLIMCP 客户端
academic-paper-review
Use this skill when the user requests to review, analyze, critique, or summarize academic papers, research articles, preprints, or scientific publications. Supports comprehensive structured reviews covering methodology assessment, contribution evaluation, literature positioning, and constructive feedback generation. Trigger on queries involving paper URLs, uploaded PDFs, arXiv links, or requests like "review this paper", "analyze this research", "summarize this study", or "write a peer review".
精选 bytedance/deer-flow 8.4 万 原文
Codex CLIMCP 客户端
bootstrap
Generate a personalized SOUL.md through a warm, adaptive onboarding conversation. Trigger when the user wants to create, set up, or initialize their AI partner's identity — e.g., "create my SOUL.md", "bootstrap my agent", "set up my AI partner", "define who you are", "let's do onboarding", "personalize this AI", "make you mine", or when a SOUL.md is missing. Also trigger for updates: "update my SOUL.md", "change my AI's personality", "tweak the soul".
精选 bytedance/deer-flow 8.4 万 原文
Codex CLIMCP 客户端

相似 Skill

更多「研究」
last30days
Research what people actually say about any topic in the last 30 days. Pulls posts and engagement from Reddit, X, YouTube, TikTok, Hacker News, Polymarket, GitHub, and the web. Includes a doctor health check to diagnose broken or missing sources.
精选 mvanhorn/last30days-skill 6.4 万 原文
Claude CodeCodex CLIMCP 客户端
agent-reach
MUST USE when user wants to 调研/research/搜索/search/查/找/look up anything on the internet — e.g. 全网调研 X / 帮我调研一下 X / 查一下 X / 搜搜 X / 看看大家怎么评价 X / X 上有什么讨论 / research this topic。 Also MUST USE when user mentions any platform or shares any URL/链接: 小红书/xiaohongshu/xhs, Twitter/推特/X, B站/bilibili, Reddit, Facebook, Instagram, V2EX, LinkedIn/领英/Boss直聘/招聘/求职/jobs, YouTube, GitHub code search, 小宇宙播客, 雪球/股票行情, RSS feeds, or any web URL. 16 platforms, multi-backend routing (OpenCLI / per-platform CLIs / APIs). Zero config for 6 channels. Run `agent-reach doctor --json` to see which backend serves each platform right now. NOT for: 写报告/数据分析/翻译等内容加工(本 skill 只负责从互联网获取内容); 发帖/评论/点赞等写操作;已有专门 skill 的平台(先用专门 skill)。 【路由方式】SKILL.md 包含路由表和常用命令,复杂场景需按需阅读对应分类的 references/*.md。 分类:search / social (小红书/推特/B站/V2EX/Reddit/Facebook/Instagram) / career(LinkedIn/Boss直聘) / dev(github) / web(网页/文章/RSS) / video(YouTube/B站/播客) / finance(雪球/股票)。
精选 Panniantong/Agent-Reach 9.6 万 原文
Claude CodeCursorMCP 客户端
academic-paper-reviewer
Multi-perspective academic paper review with dynamic reviewer personas. Runs a 5-seat, role-separated review panel (Journal-Fit Reviewer + 3 peer-review roles + Devil's Advocate) with field-specific expertise; role separation is not a claim of independent error processes. Supports full review, re-review (verification), quick assessment, methodology focus, Socratic guided, and calibration modes. Triggers on: review paper, peer review, manuscript review, referee report, review my paper, critique paper, simulate review, editorial review, calibrate reviewer, reviewer calibration, measure reviewer accuracy, 審查論文, 論文審查, 模擬審查, 同儕審查, 幫我審這篇, 以審查人角度評估, 審查者校準, 논문 심사, 동료 심사, 모의 심사, 심사자 관점에서 평가, 심사자 보정, revisar artículo, revisión entre pares, revisión de manuscrito, informe de árbitro, revisa mi artículo, criticar artículo, simular revisión, revisión editorial, calibrar revisor.
精选 Imbad0202/academic-research-skills 5.2 万 原文
Claude Code
academic-paper
12-agent academic paper writing pipeline. 11 modes (full/plan/outline/revision/revision-coach/abstract/lit-review/format-convert/citation-check/disclosure/rebuttal-audit). 6 paper types, 5 citation formats, bilingual abstracts, LaTeX/DOCX-via-Pandoc/PDF output. Style Calibration + Writing Quality Check + Anti-Patterns with IRON RULE markers. Triggers: write paper, academic paper, guide my paper, parse reviews, I got reviewer comments, revision roadmap, should we push back, conference rebuttal, grant panel response, audit my rebuttal, check my response draft, AI disclosure, check citations, citation check, check my references, verify references, look over the refs, 寫論文, 學術論文, 引導我寫論文, 審查意見, 我收到審查意見, 修訂路線圖, 評估回覆, 檢查引用, 引用檢查, 檢查參考文獻, 核對文獻, 논문 작성, 초록 작성, 논문 수정, 논문 계획을 도와줘, 심사 의견을 받았어, 심사 의견 반영, 답변서 점검, AI 사용 고지, 인용 확인, 인용 형식 검사, enmendar mi artículo, redactar artículo, guía mi artículo, analizar reseñas, auditar mi respuesta, verificar borrador de respuesta, verificar citas, divulgación de IA.
精选 Imbad0202/academic-research-skills 5.2 万 原文
Claude Code
academic-pipeline
Orchestrator for the full academic research pipeline: research -> write -> integrity check -> review -> revise -> re-review -> re-revise -> final integrity check -> finalize. Coordinates deep-research, academic-paper, and academic-paper-reviewer into a seamless 10-stage workflow with mandatory, coverage-bounded integrity checks, two-stage peer review, and auditable quality-assurance artifacts. Triggers on: academic pipeline, research to paper, full paper workflow, paper pipeline, end-to-end paper, research-to-publication, complete paper workflow, 연구부터 논문까지, 연구 주제 설정부터 논문 완성까지, 논문 전체 워크플로, flujo de trabajo académico, investigación a artículo, flujo completo de artículo, pipeline de investigación completa, publicación de investigación, flujo de trabajo completo del artículo.
精选 Imbad0202/academic-research-skills 5.2 万 原文
Claude Code
deep-research
Universal deep research agent team. 13-agent pipeline for rigorous academic research on any topic. 8 modes: full research, quick brief, paper review, lit-review, fact-check, three-way literature scan, Socratic guided research dialogue, and systematic review with optional meta-analysis. Covers research question formulation, Socratic mentoring, methodology design, systematic literature search, source verification, cross-source synthesis, risk of bias assessment, meta-analysis, APA 7.0 report compilation, editorial review, devil's advocate challenges, ethics review, and post-research literature monitoring. Triggers on: research, deep research, literature review, systematic review, meta-analysis, PRISMA, evidence synthesis, fact-check, WHY HOW WHAT papers, 3W literature scan, guide my research, help me think through, 研究, 深度研究, 文獻回顧, 文獻探討, 系統性回顧, 後設分析, 事實查核, 三段式文獻掃描, 引導我的研究, 幫我釐清, 幫我想想, 我不確定要研究什麼, 研究方向, 研究主題, 심층 연구, 문헌 조사, 체계적 문헌고찰, 메타분석, 사실 확인, 연구 방향을 잡아줘, 연구 주제 정하는 것을 도와줘, revisión de literatura, metaanálisis
精选 Imbad0202/academic-research-skills 5.2 万 原文
Claude Code