mcpField
O
openscite

openscite

github.com/mo7yw4ng生产力3146 次安装8 周前更新
代码仓库

关于 openscite

openscite 是用于分析引用用户所提供学术 PDF 的论文的可恢复工作流。它引导证据审查,并以用户指定语言生成报告,使用无需 API 密钥的 OpenAlex。

主要功能

  1. 01可恢复的引文分析工作流
  2. 02将引用论文与提供的 PDF 匹配
  3. 03按论点标注引用立场
  4. 04生成带覆盖情况的证据报告

适用场景

  1. 01审查引用目标论文的研究
  2. 02人工筛选后继续分析
  3. 03部分全文不可用时报告证据

安装

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

$npx skills add https://github.com/mo7yw4ng/openscite --skill openscite

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

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

LICENSE
README.md
README.zh-TW.md
.gitignore
agents/
openai.yaml
references/
labeling.md
fulltext-processing.md
providers.md
output-schema.md
ranking.md
user-interaction.md
scripts/
openscite.py
__init__.py
render_report.py
documents.py
openscite_core.py
tests/
test_openscite_core.py

详细介绍

OpenScite

分析引用一篇用户提供的学术 PDF 的论文。上传的 PDF 是目标论文,而不是要跟进其参考文献的来源。保留用户文件名,并以用户使用的语言撰写报告,同时保留标题和引文原文语言。使用无密钥的 OpenAlex。

使用可恢复运行器

将此技能的目录解析为 <skill-dir>。从用户的工作区运行命令,以便默认产物创建在该目录中。不要生成替代流水线脚本。

python "<skill-dir>/scripts/openscite.py" prepare "<target.pdf>" --language <zh-TW|en> [--n N] [--run-dir <dir>]

将 prepare 作为首个 PDF 操作。它会运行最新的本地 Anydoc 版本、缓存输出、按 DOI/标题匹配任意收件箱文件名,并且仅在其产物记录了提取失败时才使用回退方案。只有在需要精确页码定位时才添加 --require-page-aware;这会有意使用支持页码定位的回退方案。仅将 --rule-triage 用于诊断。

每次重试都使用相同的目标、运行目录、N、模式和语言。根据返回的状态执行:

  • needs_user_selection:如有需要,先创建 target-claims.json,然后读取 references/user-interaction.md,仅询问候选列表大小,并使用 --n N 重新运行。建议使用 20;如果已有正数 N,则直接复用,无需询问。
  • needs_target_claims:读取 target-analysis-packet.json,从目标论文中提取离散主张,将 JSON 数组写入 target-claims.json,然后重新运行。每项必须包含 claim_id、claim 和 source;在有依据时,纳入人群、干预/暴露、结果、方向和页码。不要向用户询问这项内部分析。
  • needs_abstract_triage:读取 references/ranking.md,加载一次 triage-context.json,并且仅分析 triage-pending.jsonl。如果可用子 Agent,则在一个并行批次中分派最多四个互不重叠的批次。将结果追加到 triage-results.jsonl,保留每项 ID/哈希,然后重新运行 prepare。
  • needs_analysis:读取 references/labeling.md,加载一次 analysis-context.json,并且仅分析 analysis-pending.jsonl。每组论文交由同一个工作者处理;如果可用子 Agent,则在一个并行批次中分派最多四组论文。将每条陈述的一个结果追加到 analysis-results.jsonl,保留 ID/哈希并设置 label_source: model,然后运行:
python "<skill-dir>/scripts/openscite.py" finalize --run-dir "<run-dir>"
  • needs_user_files:读取 references/user-interaction.md。如果可使用交互式浏览器功能,则询问一次是否使用用户当前的浏览器会话(包括机构/VPN 访问权限)下载 fulltext-requests.md 中列出的授权 PDF。若用户同意,则使用有界并行浏览器流程;否则提供链接,并接受附件或 fulltext/inbox/ 中的文件。保留原始文件名,并在文件到达后重新运行相同的 prepare 命令。
  • partial 或 complete:交付 report.md 并简要说明覆盖范围。如果无法获取全文或上下文未绑定的情况明确标记为 unknown,则 partial 也是有效的证据报告。

仅重试待处理行;有效的结果行仍可复用。如果 finalize 返回 needs_analysis,处理重新生成的待处理文件并重新运行它。

如果 fulltext-manifest.json 包含有歧义的匹配项,请读取 references/user-interaction.md 并提出一个映射问题。将确认的映射保存到 file-mappings.json:

{"mappings":[{"file_name":"original-name.pdf","citing_work_id":"W123"}]}

然后重新运行 prepare。子 Agent 将记录返回给主 Agent,不会询问用户或编辑共享产物。

证据和访问规则

提供方/开放获取问题请阅读 references/providers.md;解析或匹配失败请阅读 references/fulltext-processing.md;仅在扩展产物时阅读 references/output-schema.md。

使用用户提供的文件和合法的开放获取 URL。验证 PDF 文件标识;在进行托管 OCR 前征得明确同意。不要在 report.md 中包含诊断信息和排名内部信息。

针对每段与目标绑定的引文内容判定立场。仅出现在参考文献中的命中、仅涉及主题的命中以及缺少证据的情况均标记为 unknown;规则输出不得作为模型标签。

完成检查

必须包含 run.json、target.json、selection.json、citing-works.json、citations.json、fulltext-requests.md 和 report.md。每条非 unknown 声明都需要精确的上下文、不可变哈希、置信度、理由以及 label_source: model|human。报告中先列出论文数量,再列出段落数量,并使用用户的语言,不包含调试元数据。

评论

支持 Markdown