Lit Search
Runs an exhaustive time-windowed literature search over a research topic and delivers a...
Install
npx skills add luwill/research-skills --skill lit-search -g -a claude-code -y- Repository
- luwill/research-skills877
- Category
- Writing
- Updated
- 10d ago
- License
- See repository
- Context cost
- Mediumabout 3,000 tokens
- Runs scripts
- Yes, review before use
What it does
Runs an exhaustive time-windowed literature search over a research topic and delivers a quality-tiered DOI list plus a matching formatted reference list, with measurable recall (gold-set recall, PRISMA counts, citation-closure saturation). Use for systematic reviews / SLR, the literature-retrieval half of 开题报告 (the writing half is the research-proposal skill, which consumes this skill's dois.md / references), 挑战赛调研, or any "把某方向近 N 年文献检索全/理一遍/梳理一遍/查全" request. Builds the corpus, not for reading or summarizing the papers themselves, and not for writing the review text. Not for casual "find me a few papers" lookups.
时间窗受限的高召回文献检索
驱动本目录 src/litsearch/ 的 lit CLI 流水线。核心前提:召回率不是提示词问题,是检索工程问题。
反复 WebSearch 得到的是"相关度排序的前若干条",既不可复现,也无法说明漏了什么。
工具位置与产物去向(第一步,别跳过)
CLI 就装在本 skill 目录里(src/litsearch/ + pyproject.toml)。
所有命令都要在这个目录下执行, , 它是 uv 找得到项目的地方:
SKILL_DIR=~/.claude/skills/lit-search # 本 SKILL.md 所在目录
cd "$SKILL_DIR" && uv run lit --help # 跑不通就先跑一次 ./install.sh
$LITSEARCH_HOME 若已设置则优先用它(把工具装在别处的人靠这个覆盖)。
两处都找不到 src/litsearch/cli.py → 问用户,不要猜。
产物必须写到用户的项目里,不是 skill 目录里。
--runs-root默认是相对路径runs/,而命令的工作目录是 skill 目录, , > 不显式指定的话,几百 MB 的采集结果会堆进~/.claude/skills/lit-search/runs/, 用户既找不到,也想不到要去那里清理。每一条命令都要带上绝对路径:
PROJ=/abs/path/to/用户的项目 # 开工前先跟用户确认这个位置
cd "$SKILL_DIR" && uv run lit harvest --topic "$PROJ/topics/<id>.yaml" \
--runs-root "$PROJ/runs" --depth standard
协议 YAML 同理, , 写在用户项目的 topics/ 下,不要写进 skill 目录。
本目录的 examples/ 有两份真实协议(生物医学、纯 CS 各一份)可以照抄。
下文命令块为了可读省略了这两个路径参数,实际执行时必须补上。
判断要不要用
用:系统综述、开题报告的文献检索部分、挑战赛调研, , 需要说得清召回边界的场合。
(开题报告的写作由 research-proposal skill 负责, , 它消费本 skill 的 dois.md/references.bib,不要在这里写正文。)
不用:用户只想快速看几篇代表作。那种情况直接 WebSearch 更快,别拖他走完整条流水线。
契约
输入:一句话研究主题 + 可选时间范围(不给就默认近 5 年)。 输出:
| 文件 | 内容 |
|---|---|
dois.md | 全量 DOI 清单,按质量层分节,每条带证据标记 |
references.md | 参考文献列表,顺序与 dois.md 一致 |
references.bib | BibTeX(--bibtex,需额外一遍抓取) |
PRISMA.md / coverage_report.md | 计数与召回率证据 |
全量交付,分层只决定顺序,不决定去留。
三份参考文件,按需读,不要预先读:
references/topic-template.yaml(写协议用)、
references/jev-profile-template.yaml(用 --model jev / lit triage / lit facets 前必读, , 判定 API 的阈值配置)、
references/evidence.md(下面每条规则背后的实测数字,用户追问或排查时才需要)。
阶段 0|写协议(这一步是模型的核心工作)
没有 lit init 命令, , 把主题变成协议需要判断力,不是代码。模板在
references/topic-template.yaml,复制到 topics/<id>.yaml 后按四步填。
① 拆概念块。 3, 5 块,标出哪些 required。
