Community研究与数据分析github.com

来源分类

在阅读任何内容之前,先寻找特定主题的来源,并对每个来源进行分类:法律获取、AI代理实际可读的路径、完整性和质量。记录一份分类账,供其他研究技能使用。

来源分类 是什么?

来源分类(Source Triage)是一个用于Claude Code、Cursor或Codex等AI代理的高级研究技能,旨在在对每个来源进行深入分析之前,系统地识别、评估和分类它们。该工具通过回答四个关键问题来运作:该来源在法律上是否免费可获取(获取权限)、AI代理能否实际读取它以及通过何种方式(可达性)、它是否真实、最新且未被撤回(完整性),以及其质量和核心程度如何(等级与角色)。最终输出是一个结构化分类账(ledger),其他技能如`research-plan`和`evidence-check`会依赖于此。该技能强调了避免常见陷阱的关键原则,例如按路径而非按论文判断获取权限、验证HTTP 200是否真正返回了可读内容而非CAPTCHA或登录页面,以及严格禁止使用影子图书馆或绕过付费墙。它支持多个研究领域和平台,包括PubMed、Europe PMC、OpenAlex、arXiv和Semantic Scholar,并提供快速(深度8-15个来源)和深度(深度25个以上来源)两种工作模式,可适应不同的研究广度和深度需求。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Pushkar1-GitHub/D2D_Meta_Skills/tree/HEAD/skills/source-triage

Installed? Explore more 研究与数据分析 skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

来源分类 是做什么的?

寻找候选来源,然后在任何分析之前回答关于每个来源的四个问题:

  1. 它是否在法律上免费?(获取)
  2. 我,一个AI代理,是否真的能读取它,通过哪种途径?(可达)
  3. 它是否真实、最新且未被撤回?(完整性)
  4. 它有多好,有多核心?(等级、角色、⭐ 上下文精选)

输出是一个分类账。research-plan在此基础上构建,evidence-check据此进行审计,用户也可以独立使用它(“你能读哪些,哪些必须我下载?”)。适用于任何领域和非论文来源。

核心真理(来之不易;不要重新学习)

  • 获取权限是按路径而非按论文判断的。 一篇开放获取文章可能在出版商网站上被屏蔽,但可通过API读取,反之亦然。记录成功的路径。
  • HTTP 200 可能是假象。 CAPTCHA页面、登录墙、JS外壳、空内容XML以及报告“成功”但内容为空的工具,看起来都像是成功。检查你实际得到的内容。
  • WebFetch返回的是模型的提取结果,而非页面本身。 适合阅读和获取元数据;永远不能作为逐字引用的来源。逐字文本只能来自原始路径:通过shell(curl)获取的API XML/JSON、下载的PDF或用户提供的文件。
  • 被屏蔽 ≠ 不存在。 一个阻止你的页面会将来源标记为unchecked,而不是not_found。一个API若宕机,则忽略该信号,从不记录false。
  • Bronze ≠ 可读。 测试它。
  • 永远不要绕过。 没有影子图书馆、镜像站、缓存、绕过机器人/CAPTCHA的抓取或批量采集。
  • 永远不要凭记忆命名来源。 在测试中,两个模型初稿的参考文献都有错误的标题、错误的年份、错误的DOI,甚至有一篇根本不存在的论文。每个来源在出现之前都要先查找确认。

边做边写(检查点)

开始时创建 research/<slug>/ledger.md。每次搜索后,将查询行追加到搜索日志中。分类一个来源后,立即追加其行。长时间运行会丢失上下文;磁盘上的分类账就是内存。

步骤 0 — 框架(一条消息,然后开始)

用一行说明:问题 · 领域 · 年份范围(默认:最近10-15年 + 标志性的早期作品;“最近” = 5年) · 范围内的来源类型 · 请求中的硬约束(例如“评分标准需要2个书章节”) · 深度:

  • quick:保留8-15个来源。雪球滚雪球是可选的(从顶级评论向前滚雪球一次)。超过上限的记录被记录为 not carried forward (cap):只需计数,无需排除原因。
  • deep:保留25个以上,从3-5个最核心的作品向后和向前滚雪球。

除非用户纠正,否则继续。如果用户说“让我确认”/“逐步进行”,在每个 ◆ 处停止。否则直接运行并在最后列出你的选择。

步骤 1 — 优先检查本地库

检查用户已有的资源:连接的PDF文件夹、之前的 research/*/ 分类账、.bib或Zotero/CSL导出。已有的来源标记为 held: library。将其DOI传递给搜索作为“已有”。

步骤 2 — 发现

每个概念设置一组术语,用OR连接:同义词、缩写、旧名称、英式/美式拼写、方法名称。对于生命科学,添加MeSH + 入口术语、基因符号、酶名称 + EC编号、拉丁文 + 常用生物名称。查询方法而非作者。 每次查询使用2-3个概念组;更多AND条件会返回0条结果。

需求主要数据库辅助数据库
生物医学 / 生命科学PubMed (MeSH)Europe PMC REST(SRC:"PPR" 查找bioRxiv/medRxiv预印本;HAS_FT:y = 有全文)、OpenAlex
任何领域,广泛OpenAlex(主题/概念过滤器优于原始搜索)Semantic Scholar、Crossref
CS / ML / 物理 / 定量生物学arXiv(按相关性排序)Semantic Scholar、alphaXiv / Scholar Feed
预印本Europe PMC SRC:"PPR" 或 OpenAlex type:preprintbioRxiv连接器没有关键字搜索:仅用于获取已知DOI的详细信息和已发表版本
书章节OpenAlex type:book-chapter、出版商目录、WebSearch验证其容器(参见步骤4)
声明 / 评论快速搜索Consensus、Elicit(如果连接)通过DOI验证每条结果
非论文来源首先查看所有者的官方文档/规格/代码其余使用WebSearch
  • 灵敏度检查: 如果已知关键论文,确认你的查询能找到它们。
  • 结果数量: 数万条结果意味着范围太宽;0-1条意味着约束过度,需要重新措辞。重新措辞一个零结果查询属于同一轮操作。
  • 记录: 标题、作者、年份、期刊、类型、DOI · PMID · PMCID · arXiv · URL、found_via。
  • 去重: DOI → 其他ID → 标准化标题 + 年份。合并预印本和已发表版本。
  • 边界: 在约1,000条记录或约50次调用前询问。

◆ 检查点:术语、查询、结果数量。

步骤 3 — 获取分类(在阅读任何内容之前)

3a. 法律获取(批量处理)

对于每个保留的来源,调用OpenAlex get_work(搜索结果省略了许可证)。精确复制其 oa_status 值:gold · diamond · hybrid · green · bronze · closed。同时记录 license 和 oa_url/pdf_url。Europe PMC license 字段和PubMed get_copyright_status 是备选方案。Unpaywall(version、host_type)需要一个真实的邮箱:仅使用用户为此目的批准的邮箱;否则跳过。

  • 无数据 → unknown。永远不要发明 oa、? 后缀或出版商名称作为访问值。
  • 非论文来源 → web。
  • 许可证未知 → 在重新分发时视为 local-only。

3b. 代理可达性:路径阶梯(在第一个成功处停止)

  1. 已有:在用户的库或之前的运行中。
  2. Europe PMC REST,原始方式,通过shell curl,且shell可以访问:
    • 搜索:…/rest/search?query=DOI:"a" OR DOI:"b"&format=json,每次调用最多8个DOI,间隔至少1秒;
    • 全文:…/rest/{PMCID}/fullTextXML。 这是最佳的逐字引用路径。仅在shell无法访问时才使用WebFetch;WebFetch会拒绝长URL并受速率限制。
    • 429 → 等待,重试一次。5xx → blocked:http-5xx,转到下一条路径。
  3. PubMed get_full_text_article:仅当 full_text 非空时有效。空 → blocked:empty-body。
  4. 预印本服务器:arXiv、bioRxiv/medRxiv .full 页面。
  5. OA位置:OpenAlex oa_url/pdf_url(直接PDF URL可能在文章页面失败时成功)、Semantic Scholar openAccessPdf、CORE、Crossref TDM链接。
  6. 出版商页面:每个主机仅尝试一次。跟随DOI重定向即为该次尝试。永远不要进入robots.txt禁止的主机(ScienceDirect / Elsevier linkinghub)。
  7. 作者或机构仓库,通过WebSearch "<exact title>" pdf。尊重“禁止文本和数据挖掘 / AI使用”的通知。
  8. 无任何成功:记录原因并将来源路由给用户。

2026年10月观察(重新测试;这些可能会变化):

  • 原始方式正常:通过curl访问Europe PMC REST。
  • 提取方式正常:Nature OA、Frontiers、MDPI、bioRxiv .full、arXiv、来自OpenAlex的Springer PDF URL。
  • 被屏蔽:ScienceDirect(robots.txt)、Wiley(包括OA,获取错误)、Springer文章页面、BMC PDF端点、PMC网站(CAPTCHA)、Annual Reviews、Science。
  • 不可靠:PubMed全文工具(经常为空)、Europe PMC fullTextXML(某些PMCID返回HTTP 500)、通过WebFetch访问Europe PMC(受速率限制)。

在调用任何可读内容之前进行验证:

  • 正文内容超出摘要;
  • 不是CAPTCHA/登录/访问受限页面;
  • 不是空或仅元数据的XML。
  • 一个下载的文件仅当以 %PDF- 开头、不是HTML且大于约10KB时才有效。
reach含义
readable:<route>获得全文:readable:europepmc-xml(原始) · readable:pdf(原始) · readable:webfetch(提取,不能用于逐字引用)
abstract-only仅可获得摘要(典型付费墙)
blocked:<reason>paywall(连摘要都没有) · robots · captcha · login · http-4xx · http-5xx · fetch-error · rate-limited · empty-body · js-shell
unchecked未尝试(预算/上限)。从不写“not tested”。

标签规则: 控制词在前,完全按照这些表格。注释可放在括号中,例如 verified (Crossref DOI)。

在将来源标记为 blocked 或 abstract-only 之前,寻找可免费获取的副本。一个在法律状态上为 gold/hybrid/green/bronze但对你的代理 blocked 的来源,应放在“免费但对AI代理被屏蔽”部分。

步骤 4 — 完整性(批量处理;在命名任何内容之前)

在发现后立即对每个你将命名的来源运行此步骤:包括在计划中、作为⭐ 选择或作为推荐。这不是最终步骤。

  • 存在性: 判定 verified · partial · mismatch · not_found · unchecked。使用Reference Checker check_references + OpenAlex resolve_references。当工具不一致时,在Crossref或OpenAlex中精确DOI匹配优先于基于标题搜索的 not_found;两者都记录。
  • 书章节: 验证容器,而不仅仅是DOI:来自Crossref记录的书名、编辑、页码和出版商(api.crossref.org/works/<doi> → container-title、page)。在测试中,DOI正确但书名错误的情况出现过。
  • 撤回: check_retractions。Clear仅表示“未发现撤回通知”。
  • 同行评审: 将预印本标记为(peer: preprint)在分类账中;在源文件条目中标记为`preprint`;如果存在已发表版本,引用它。
  • 污染: 一个2024年后的预印本如果在≥2个索引中无匹配,则存在造假风险。重新验证或丢弃。
  • 掠夺性期刊标记;灰色文献:URL + 访问日期 + Wayback链接。

步骤 5 — 等级、角色、⭐

等级A–F: 根据其自身领域的适用性、方法论、同行评审、时效性、数据、冲突的综合中位数。完整性失败将等级上限设为D。未读或仅摘要的来源获得临时等级(B?)。 角色: evidence · background · method · tool/data · counter。 非论文来源层级: T1 所有者文档/规格/代码/法规 · T2 机构 · T3 专家新闻 · T4 社区 · T5 供应商营销。

⭐ 上下文精选(5-10个选择):如果本地存储,最能改善正在构建的内容的来源。获取权限无关紧要。每个选择需要:

  • 为什么重要;
  • 如何获取(OA链接/VIT图书馆登录/馆际互借/联系作者);
  • 保存为名称 <firstauthor>-<year>-<keyword>.pdf;
  • 可重新分发: ok(CC-BY / CC0 / 公共领域)或 local-only(其他所有情况,包括未知许可证)。

偏差检查: 某一维度上已知值 ≥70% → 说明并给出计数。

步骤 6 — 分类账

research/<slug>/ledger.md:第一张表,每个来源一行,列按此顺序: # · Short cite · Type · Role · Grade · access · licence · version · reach · held · read · integrity · retraction · peer · ⭐ · Save as · Link · found_via

  • read 初始为 not-read;research-plan 会填充 full · sections:<which> · abstract · metadata。
  • ⭐ = 对于精选是 ok 或 local-only,否则为 -。
  • 排除的行使用ID E1…。

在表格下方:

  • 搜索日志: 数据库 · 日期 · 查询 · 命中数 · 哪些术语找到了什么。
  • 计数: 已识别 → 去重后 → 未向前推进(上限) → 保留 → 排除(注明原因)。任何计数行中的 total = 所有分类账行,包括排除的行。

运行捆绑的检查器:python3 <此技能文件夹>/scripts/research_checks.py ledger research/<slug>/ledger.md(标准库Python,在你的沙箱中运行),并在移交前修复错误。独立使用时,将分类账渲染为research-plan中描述的源文件。

隐私

仅使用主题词进行搜索,绝不使用用户未发表作品中的句子。用户的电子邮件仅用于Unpaywall,且仅在其同意的情况下使用。

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

相关技能