mcpField
P
ppw:literature

ppw:literature

github.com/lylll9436生产力39075 次安装31 周前更新
代码仓库

关于 ppw:literature

ppw:literature 通过 Semantic Scholar MCP 搜索学术论文,展示编号结果供用户选择,并据 MCP 返回的数据生成 BibTeX。适合文献检索和引用条目整理;它不撰写或改写论文内容,且 MCP 不可用时会停止工作。

主要功能

  1. 01检索学术论文并展示编号列表
  2. 02支持用户选择论文
  3. 03仅用 MCP 数据生成 BibTeX
  4. 04缺少字段时不补造信息
  5. 05检索前检查 MCP 是否可用

适用场景

  1. 01按主题查找学术论文
  2. 02从检索结果中选择引用文献
  3. 03为选定论文生成 BibTeX 条目

MCP 相关

依赖 Semantic Scholar MCP 搜索论文并获取摘要等元数据,再据其返回的数据构建 BibTeX。预检发现 MCP 不可用时会停止流程并提供配置说明。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/lylll9436/paper-polish-workflow-skill --skill ppw:literature

安装后在 Claude Code 中输入/ppw:literature确认已加载。

详细介绍

目的

此 Skill 使用 Semantic Scholar MCP 检索学术文献,展示一个可交互的编号结果列表(最多 10 篇论文),等待用户选择特定论文,然后仅使用 MCP 返回的数据生成经过验证的 BibTeX 条目。在开始任何工作流之前,会先执行预检,确认 MCP 是否可用;如果不可用,此 Skill 会立即拒绝继续,并提供设置说明,而不是在能力受限的情况下继续操作。用户选择论文后,会显示一条强制性的防幻觉验证提示,提醒用户在提交引用前确认论文的实际相关性。此 Skill 不会撰写或改写论文内容;它只会检索、选择论文并生成引用条目。

触发条件

用户提出以下请求时激活:

  • 搜索或查找某个主题的学术论文
  • 为某篇文献生成 BibTeX 或引用条目
  • 帮我找文献、检索相关论文、帮我生成引用格式

示例请求:

  • “找一些关于城市热岛的论文” / “帮我找关于城市热岛的文献”
  • “检索时空分析相关文献” / “检索时空分析相关文献”
  • “为一条引用生成 BibTeX” / “帮我生成BibTeX引用格式”

模式

模式默认行为
direct是单次搜索 → 结果列表 → 用户选择 → 生成 BibTeX;不迭代
batch不支持 — 每次搜索都需要用户在会话中选择

默认模式: direct。搜索只执行一次;如果结果不满意,用户需使用不同关键词重新触发此 Skill。

参考资料

必需(始终加载)

无。这是一项搜索任务,不需要表达模式文件。

叶级提示

无。

未加载参考文件。所有论文元数据均在运行时从 Semantic Scholar MCP 获取。

提问策略

此 Skill 通过对话收集搜索输入。最多提问两次:

  1. 搜索查询(必需):要搜索的主题或关键词——仅当触发消息中未提供时才询问。
  2. 结果数量(可选):要显示的结果数量。默认值:5。最多:10。

如果用户在触发消息中提供了主题,则跳过问题 1 并立即继续。

工作流

第 0 步:工作流记忆检查
  • 读取 .planning/workflow-memory.json。如果文件不存在或为空,则跳至第 1 步。
  • 检查最近 1–2 条日志记录是否构成一种包含 ppw:literature 的已识别模式,且该模式在日志中出现次数 >= 阈值。完整算法见 skill-conventions.md > Workflow Memory > Pattern Detection。
  • 如果找到模式,则通过 AskUserQuestion 提出建议:
    • 问题:“检测到常用流程:[pattern](已出现 N 次)。是否直接以 direct 模式运行 ppw:literature?”
    • 选项:“是,继续” / “否,按常规方式继续”
  • 如果用户接受:将模式设为 direct,跳过提问策略中的问题。
  • 如果用户拒绝或 AskUserQuestion 不可用:按常规模式继续。
第 1 步:MCP 预检
  1. 调用 mcp__semantic-scholar__papers-search-basic,参数为 {"query": "test", "limit": 1}。

  2. 如果调用成功:继续第 2 步。

  3. 如果调用失败或工具不可用:立即拒绝继续,并说明:

    “Semantic Scholar MCP 不可用。要使用此 Skill:

    1. 打开 Claude Code Settings → MCP Servers
    2. 添加 Semantic Scholar 服务(服务键:semanticscholar)
    3. 重启 Claude Code 并重试”

    如果 MCP 不可用,请勿继续执行后续步骤。

第 2 步:收集搜索查询
  1. 如果触发消息中包含搜索主题,则提取该主题。
  2. 如果未提供主题,则询问:“要搜索什么主题或关键词?”
  3. 确认结果数量(默认值:5)。
  • 记录工作流: 将 {"skill": "ppw:literature", "ts": "<ISO timestamp>"} 追加到 .planning/workflow-memory.json。如果文件不存在,则创建文件并写入 []。如果日志长度 >= 50,则删除最早的记录。
步骤 3:执行搜索并构建结果卡片
  1. 使用用户的查询和结果数量调用 mcp__semantic-scholar__papers-search-basic。

  2. 对于每篇返回的论文:如果搜索结果中的摘要字段为空,则调用 mcp__semantic-scholar__get-paper-abstract 获取摘要摘录。

  3. 按照以下确切格式显示带编号的结果卡片:

    **[1] Title of the Paper**
    Authors: Smith, J.; Lee, K. · Year: 2023 · Citations: 142
    > "One sentence from abstract describing the core contribution..."
    
    **[2] Another Relevant Paper**
    Authors: Zhang, W. · Year: 2022 · Citations: 89
    > "Abstract not available"
    
  4. 在显示内容末尾添加:“请选择一篇论文(输入编号),或输入 'none' 取消。”

步骤 4:用户选择
  1. 等待用户输入编号或 "none"。

  2. 如果输入 "none":回复“搜索已取消。”并结束会话。

  3. 如果输入的编号超出范围:请用户从显示的列表中重新输入有效编号。

  4. 如果编号有效:复述论文标题以确认选择。

  5. 显示必需的验证提示(绝不可省略):

    “请确认所选论文确实支持你引用的论点——不要仅凭标题判断。”

步骤 5:生成 BibTeX
  1. 仅使用 MCP 为所选论文返回的字段构造 BibTeX 条目。

  2. 引用键格式:firstAuthorLastnameLowercaseYYYYfirstKeyword(例如:smith2023urban)。

  3. 期刊论文使用 @article,会议论文使用 @inproceedings,预印本使用 @misc——遵循 MCP 返回的论文类型。

  4. 如果 MCP 未返回某个字段(volume、pages、DOI),则省略该字段——绝不可根据已有知识补充。

  5. 在代码围栏中显示 BibTeX:

    @article{smith2023urban,
      title     = {Full title from MCP},
      author    = {Last, First and Last2, First2},
      journal   = {Journal name from MCP},
      year      = {2023},
      volume    = {101},
      pages     = {101943},
      doi       = {10.1016/j.compenvurbsys.2023.101943}
    }
    

输出约定

输出格式条件
bibtex_entryBibTeX 代码块(@article、@inproceedings 或 @misc)用户选择论文后

所有字段值都必须来自 MCP 返回的论文记录。绝不可根据已有知识补充缺失字段——应将其省略。

BibTeX 示例(所有字段均来自 MCP 数据):

@article{li2022spatiotemporal,
  title  = {Spatiotemporal Analysis of Urban Land Use Change},
  author = {Li, Wei and Wang, Fang},
  journal = {Computers, Environment and Urban Systems},
  year   = {2022},
  volume = {95},
  pages  = {101812},
  doi    = {10.1016/j.compenvurbsys.2022.101812}
}

边缘情况

情况处理方式
MCP 预检失败严格按照步骤 1 中的设置说明拒绝;不得继续搜索
搜索结果为零“未找到与‘[query]’相关的论文。请尝试更宽泛的关键词,或使用其他词语重新触发。”
结果缺少摘要字段在结果卡片中显示“摘要不可用”;不得跳过该论文
用户选择的编号超出范围请用户从显示的列表中重新输入有效编号
用户输入 "none"“搜索已取消。”——结束会话
MCP 返回的类型不是期刊论文视情况使用 @inproceedings 或 @misc;不得强行使用 @article
MCP 未返回 DOI省略 doi 字段;添加注释:% DOI not available — please verify manually

后备方案

场景后备方案
Semantic Scholar MCP 不可用立即根据设置指南(步骤 1)拒绝;不提供部分后备模式
对某篇论文调用 get-paper-abstract 失败将摘要标记为“摘要不可用”;继续显示其余结果
结构化交互不可用以纯文本问题询问搜索查询;在对话中使用带编号列表继续
基本搜索结果不理想告知用户:“如果结果不理想,请使用更具体的关键词重新触发 Skill”(仅单次执行)

示例

用户:“查找有关城市热岛缓解的论文”

Skill:[预检静默通过] → 使用 {"query": "urban heat island mitigation", "limit": 5} 调用 mcp__semantic-scholar__papers-search-basic → 显示结果:

**[1] Urban Heat Island Mitigation through Green Infrastructure**
Authors: Smith, J.; Lee, K. · Year: 2023 · Citations: 142
> "This study evaluates green roof and tree-planting strategies for reducing UHI intensity in dense urban cores."

**[2] Cool Pavements and Their Effect on Urban Thermal Comfort**
Authors: Zhang, W.; Chen, L. · Year: 2022 · Citations: 89
> "A field experiment comparing reflective pavement materials across five climate zones."

请选择一篇论文(输入编号),或输入 "none" 取消。

用户:“1”

Skill:“你选择了:Urban Heat Island Mitigation through Green Infrastructure (Smith, J.; Lee, K., 2023)。”

“请确认所选论文确实支持你引用的论点——不要仅凭标题判断。”

Skill(用户确认后):

@article{smith2023urban,
  title   = {Urban Heat Island Mitigation through Green Infrastructure},
  author  = {Smith, John and Lee, Kwang-Ho},
  journal = {Computers, Environment and Urban Systems},
  year    = {2023},
  volume  = {101},
  pages   = {101943},
  doi     = {10.1016/j.compenvurbsys.2023.101943}
}

Skill:literature-skill 约定:references/skill-conventions.md

评论

支持 Markdown