关于 ppw:literature
ppw:literature 通过 Semantic Scholar MCP 搜索学术论文,展示编号结果供用户选择,并据 MCP 返回的数据生成 BibTeX。适合文献检索和引用条目整理;它不撰写或改写论文内容,且 MCP 不可用时会停止工作。
主要功能
- 01检索学术论文并展示编号列表
- 02支持用户选择论文
- 03仅用 MCP 数据生成 BibTeX
- 04缺少字段时不补造信息
- 05检索前检查 MCP 是否可用
适用场景
- 01按主题查找学术论文
- 02从检索结果中选择引用文献
- 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 通过对话收集搜索输入。最多提问两次:
- 搜索查询(必需):要搜索的主题或关键词——仅当触发消息中未提供时才询问。
- 结果数量(可选):要显示的结果数量。默认值: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 预检
-
调用
mcp__semantic-scholar__papers-search-basic,参数为{"query": "test", "limit": 1}。 -
如果调用成功:继续第 2 步。
-
如果调用失败或工具不可用:立即拒绝继续,并说明:
“Semantic Scholar MCP 不可用。要使用此 Skill:
- 打开 Claude Code Settings → MCP Servers
- 添加 Semantic Scholar 服务(服务键:
semanticscholar) - 重启 Claude Code 并重试”
如果 MCP 不可用,请勿继续执行后续步骤。
第 2 步:收集搜索查询
- 如果触发消息中包含搜索主题,则提取该主题。
- 如果未提供主题,则询问:“要搜索什么主题或关键词?”
- 确认结果数量(默认值:5)。
- 记录工作流: 将
{"skill": "ppw:literature", "ts": "<ISO timestamp>"}追加到.planning/workflow-memory.json。如果文件不存在,则创建文件并写入[]。如果日志长度 >= 50,则删除最早的记录。
步骤 3:执行搜索并构建结果卡片
-
使用用户的查询和结果数量调用
mcp__semantic-scholar__papers-search-basic。 -
对于每篇返回的论文:如果搜索结果中的摘要字段为空,则调用
mcp__semantic-scholar__get-paper-abstract获取摘要摘录。 -
按照以下确切格式显示带编号的结果卡片:
**[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" -
在显示内容末尾添加:“请选择一篇论文(输入编号),或输入 'none' 取消。”
步骤 4:用户选择
-
等待用户输入编号或 "none"。
-
如果输入 "none":回复“搜索已取消。”并结束会话。
-
如果输入的编号超出范围:请用户从显示的列表中重新输入有效编号。
-
如果编号有效:复述论文标题以确认选择。
-
显示必需的验证提示(绝不可省略):
“请确认所选论文确实支持你引用的论点——不要仅凭标题判断。”
步骤 5:生成 BibTeX
-
仅使用 MCP 为所选论文返回的字段构造 BibTeX 条目。
-
引用键格式:
firstAuthorLastnameLowercaseYYYYfirstKeyword(例如:smith2023urban)。 -
期刊论文使用
@article,会议论文使用@inproceedings,预印本使用@misc——遵循 MCP 返回的论文类型。 -
如果 MCP 未返回某个字段(volume、pages、DOI),则省略该字段——绝不可根据已有知识补充。
-
在代码围栏中显示 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_entry | BibTeX 代码块(@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