当用户只需要检索候选论文、建立可审计文献池、为研究选题或其它下游证据任务准备候选文献时使用。执行查询契约校验、多源检索、规范化、去重、来源追踪并输出可验证 manifest bundle;不负责相关性评分、最终选文、综述写作、BibTeX 或 PDF/Word 导出。也可被 research-literature-review 作为必需依赖调用。
66
80%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Fix and improve this skill with Tessl
tessl review fix ./skills/research-literature-search/SKILL.md本 Skill 是文献检索生产者:把主题和 5–25 条查询转换为一个可复核的候选文献 bundle。它只负责召回、字段规范化、canonical 去重、来源审计和可选摘要补全;评分、纳入/排除判断、子主题、参考文献配额、正文和导出交给下游 Skill。
research-literature-review 必须通过本 Skill 的 manifest 和 canonical 候选消费检索结果,不得在阶段 1/2 复制 provider 或再次改变 canonical 去重结果。
topic 和显式查询 JSON(--query-file/--queries)。支持 {"queries": [...]}、对象数组、字符串数组。domain、年份/文献类型/预印本过滤、provider 顺序、每查询/总量上限、scope root。按用户请求和配置文件提供必要输入;缺失信息应明确列出并停止依赖该输入的步骤。
# 独立检索,生成 manifest bundle
python3 skills/research-literature-search/scripts/search_runner.py run \
--topic "HER2 antibody-drug conjugates in breast cancer" \
--query-file ./queries.json \
--output-dir ./.bensz-api/search-bundle
# 对选文后的 JSONL 做可选摘要状态整理
python3 skills/research-literature-search/scripts/search_runner.py enrich-abstracts \
--input selected_papers.jsonl --output selected_papers_enriched.jsonl
# 校验交接包(review 消费前必须通过)
python3 skills/research-literature-search/scripts/search_runner.py validate \
--bundle ./.bensz-api/search-bundlerun 默认不对全量候选强制补全。使用 enrich-abstracts 对 selected 或指定子集处理;输出 abstract_status、abstract_provenance、缺失摘要 warning 和统计。综述仍在选文后调用该能力,以保持请求量和选文行为兼容。
每次运行都生成独立目录,manifest.json 是唯一入口:
manifest.json
candidates_raw.jsonl # 脱敏的最小 provider 命中信封
candidates_normalized.jsonl # rls.paper.v1,去重前
candidates_deduped.jsonl # canonical 候选池,下游默认读取
provenance.jsonl # provider/query/rank 到 canonical 的映射
dedupe_map.json # 合并边及 canonical 选择依据
search_log.json # 兼容旧 Search Log 字段的可读日志候选 schema 版本为 rls.paper.v1,必须有非空 title、字符串数组 authors、identifiers、abstract_status、publication、sources、query_matches 和 quality_warnings;同时在边界生成 doi/abstract/venue/year/url/source 等旧扁平字段。缺失值用 null/[],不填虚构占位文本。
manifest 的 status 只有三种语义:success(完整成功)、partial_success(仍有可用候选但存在失败/跳过/截断/字段缺失)、failed(输入、路径、provider 或产物不可消费)。research-literature-review 只接受前两者,并校验 artifact hash、schema 和数量。
临时产物写入任务工作区,正式交付物写入项目约定位置;未经授权不覆盖或删除已有文件。
完成后执行 Skill 已有的静态检查、脚本验证或人工复核,并记录通过标准。
默认行为锁定为 OpenAlex 主力;结果不足时按策略补充 Semantic Scholar/Crossref。mcp 与 duckduckgo 在纯 Python runner 中记录为 skipped/host tool required,不能伪装成功。每次尝试都写入 manifest attempts 和 Search Log。新 provider 或 union 召回策略需要升级 contract,不在本版本隐式引入。manifest contract 常量由独立命名的 rls_contract.py 提供,避免被下游 review skill 的同名模块遮蔽。
Provider 返回 null 结果或列表中混入 null / 非对象条目时,边界层必须跳过无效条目而不能调用 .get();合法条目继续参与召回、规范化和去重。每次尝试在 attempts 中记录 empty_records / invalid_records,运行级 counts 同步累计并写入 warning。若没有任何合法候选,使用 no_valid_candidates 说明是数据无效导致的失败;不得静默丢弃或把空记录计入召回配额。
title/year/id 记录只能通过显式 legacy adapter 适配,并附加 legacy_adapted warning;不能冒充新 schema。./.bensz-api/task-{yyyymmdd-hhmm}-{简短描述}/ 根目录;共享材料放入 shared/,Skill 专属材料放入该 Skill 的 input/、output/、log/。config.yaml:skill_info.version;公开 API、协议、目录或配置变更同步文档与 CHANGELOG.md。bensz-collect-bugs;先脱敏写入 ~/.bensz-skills/bugs/,当前任务不中断,只有用户明确要求才公开上报,禁止直接修改用户已安装的 Skill 源码。不得超出本 Skill description 和上方流程所声明的范围;不将未验证的信息伪装成确定结论。
dd19421
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.