Token导航 LogoToken导航

Agent Skill · 研究检索

wos-paper-detail(wos 论文细节)

wos-paper-detail 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

wos-paper-detail 是研究检索类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为需要联网;许可证信息还不明确,第三方扫描有未通过项,按安装量在研究检索类的 73,675 个 Skill 里排第 64,068。

总安装 306周安装 13GitHub Stars 36下载 107核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
unknown

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:wos-paper-detail(wos 论文细节)
来源仓库:https://github.com/cookjohn/wos-skills
仓库路径:skills/wos-paper-detail
安装命令:
npx skills add https://github.com/cookjohn/wos-skills --skill wos-paper-detail
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/cookjohn/wos-skills --skill wos-paper-detail

这个 Skill 是做什么的

研究检索类 Skill 主要解决「找资料、核对事实、把来源整理清楚」的问题,通常会让助手先检索再总结。

wos-paper-detail 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词快速定位候选结果时使用。适用于研究检索类任务,如论文信息提取或学术资料整理。通过 npx skills add 命令从指定 GitHub 仓库安装并使用。

安装前需确认权限范围和维护状态,注意可能触发联网或文件读写操作。建议结合原始 README 核验具体用法和功能边界。

来源仓库内路径:skills/wos-paper-detail

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/cookjohn/wos-skills --skill wos-paper-detail;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要需要联网,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

wos-paper-detail 怎么安装?

在终端执行 npx skills add https://github.com/cookjohn/wos-skills --skill wos-paper-detail。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

wos-paper-detail 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

wos-paper-detail 需要什么权限?

权限级别是需要联网。该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

wos-paper-detail 是免费的吗?

公开资料没有标注明确许可证,收费和商用限制都无法确认。正式使用前请到来源仓库核对授权说明。

wos-paper-detail 用的人多吗?

公开数据是累计安装 306 次,近一周安装 13 次,下载 107 次,GitHub 36 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

wos-paper-detail 安全吗?

第三方扫描有未通过项,风险较高。除非你确认过源码,否则不建议直接安装到常用环境。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。

先想清楚的地方

  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理研究检索类任务、又不想每次都手写提示词的人。

不太适合

  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

研究检索类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
find-skills

寻找技能 · Codex、Claude

31,199,81316,486操作浏览器MIT有提醒
self-improving-agent

自我改进 Agent · OpenClaw

16,464,0023,396接触敏感数据MIT-0通过
soultrace

灵魂追踪 · Codex、Claude

7,588,94412需要联网未明确有提醒
self-improving

自我完善 · OpenClaw

6,829,2841,046需要联网MIT-0通过
microsoft-foundry

微软代工厂 · Codex、Claude

6,614,144764调用外部服务未明确有提醒
wos-paper-detail

wos 论文细节 · 本页

30636需要联网未明确未通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

WoS Paper Detail

Navigate to a WoS full record page and extract comprehensive paper metadata.

Steps

Step 1: Parse Input

Accept either:

  • WoS Accession Number: WOS:000779183600001
  • Full URL: https://www.webofscience.com/wos/woscc/full-record/WOS:000779183600001

Extract the WoS ID if a full URL is provided.

Step 2: Navigate

navigate_page({
  url: "{BASE_URL}/wos/woscc/full-record/{WOS_ID}",
  initScript: "Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"
})

Step 3: Extract Full Record Data

async () => {
  // Wait for full record to load
  for (let i = 0; i < 30; i++) {
    if (document.querySelector('[data-ta="FullRTa-fullRecordtitle-0"]')) break;
    await new Promise(r => setTimeout(r, 500));
  }
  await new Promise(r => setTimeout(r, 1500));

  // Check access
  if (document.body.innerText.includes('Sign in') && !document.querySelector('[data-ta="FullRTa-fullRecordtitle-0"]')) {
    return { status: 'login_required' };
  }

  // Helper: get value for a labeled field (h3 label -> parent's non-h3 children)
  const getField = (label) => {
    const h3 = [...document.querySelectorAll('h3')].find(h => h.textContent.trim() === label);
    if (!h3) return '';
    const parent = h3.parentElement;
    const valueEls = [...parent.children].filter(el => el.tagName !== 'H3');
    return valueEls.map(s => s.textContent?.trim()).join(' ').substring(0, 300) || '';
  };

  // Title
  const title = document.querySelector('[data-ta="FullRTa-fullRecordtitle-0"]')?.textContent?.trim() || '';

  // Authors
  const authors = [...document.querySelectorAll('[data-ta^="SumAuthTa-DisplayName-author-en"]')]
    .map(a => a.textContent?.trim());

  // Abstract
  const abstract = document.querySelector('div.abstract--instance')?.textContent?.trim() || '';

  // Source/Journal - extract only journal name from the JCR sidenav component
  let source = '';
  const sourceSpan = document.querySelector('h3[data-ta="FullRTa-sourceLabel"]')?.parentElement?.querySelector('span.section-label-data');
  if (sourceSpan) {
    // The span contains app-jcr-sidenav with journal name + popup. Get first text content before "arrow_back"
    const fullText = sourceSpan.textContent?.trim() || '';
    source = fullText.split('arrow_back')[0].trim();
  }
  if (!source) {
    source = document.querySelector('.summary-source-title-link')?.firstChild?.textContent?.trim() || '';
  }

  // DOI - try link first, fall back to h3 label extraction
  const doiEl = document.querySelector('a[href*="doi.org"]');
  const doi = doiEl?.textContent?.trim() || doiEl?.href?.replace(/.*doi\.org\//, '') || getField('DOI');

  // Metadata fields
  const volume = getField('Volume');
  const issue = getField('Issue');
  const pages = getField('Page');
  const published = getField('Published');
  const earlyAccess = getField('Early Access');
  const docType = getField('Document Type');
  const language = getField('Language');
  const accessionNumber = getField('Accession Number');
  const issn = getField('ISSN');
  const eissn = getField('eISSN');

  // Keywords - use parentElement.querySelectorAll('a') to get ALL keyword links
  const getKeywords = (label) => {
    const h3 = [...document.querySelectorAll('h3')].find(h => h.textContent.trim() === label);
    if (!h3) return [];
    return [...h3.parentElement.querySelectorAll('a')].map(a => a.textContent?.trim()).filter(Boolean);
  };
  const authorKeywords = getKeywords('Author Keywords');
  const keywordsPlus = getKeywords('Keywords Plus');

  // Categories
  const researchAreas = getField('Research Areas');
  const wosCategories = getField('Web of Science Categories');

  // Citations - full record page uses FullRRPTa selectors, NOT stat-number selectors
  const citedLinks = [...document.querySelectorAll('a[data-ta*="times-cited-count-link"]')];
  // WOSCC link text is "992 In Web of Science Core Collection" - extract leading number
  const extractNum = (text) => (text?.match(/^[\d,]+/) || ['0'])[0];
  const wosccCited = extractNum(citedLinks.find(a => a.getAttribute('data-ta')?.includes('-WOSCC'))?.textContent?.trim());
  const alldbCited = extractNum(citedLinks.find(a => a.getAttribute('data-ta')?.includes('-ALLDB'))?.textContent?.trim());
  const mainCited = extractNum(citedLinks.find(a => /^\d/.test(a.textContent?.trim()))?.textContent?.trim());
  const citedCount = wosccCited || mainCited || '0';

  // References
  const refsCount = document.querySelector('a[data-ta*="refCountLink"]')?.textContent?.trim() || '0';

  // JIF - extract from JCR popup/sidenav text content
  let jif = '', jifYear = '', jifFiveYear = '', jcrQuartile = '';
  const jcrPopup = document.querySelector('[class*="journal-content"], app-jcr-sidenav');
  if (jcrPopup) {
    const jcrText = jcrPopup.textContent || '';
    // Pattern: "Journal Impact Factor ™20242.8Five Year3.4"
    const jifMatch = jcrText.match(/Impact Factor\s*(?:™|TM)?\s*(\d{4})\s*([\d.]+)/);
    if (jifMatch) { jifYear = jifMatch[1]; jif = jifMatch[2]; }
    const fyMatch = jcrText.match(/Five Year\s*([\d.]+)/);
    if (fyMatch) jifFiveYear = fyMatch[1];
    // Quartile: "159/316 Q3" pattern in JCR summary
    const qMatch = jcrText.match(/\d+\/\d+\s*(Q[1-4])/);
    if (qMatch) jcrQuartile = qMatch[1];
  }

  // Full text links
  const ftLinks = [...document.querySelectorAll('a[data-ta^="FRLinkTa"]')].map(a => ({
    text: a.textContent?.trim()?.replace(/open_in_new/g, '').trim(),
    href: a.href
  })).filter(l => l.text);

  return {
    status: 'ok',
    title, authors, abstract, source, doi,
    volume, issue, pages, published, earlyAccess,
    docType, language, accessionNumber, issn, eissn,
    authorKeywords, keywordsPlus,
    researchAreas, wosCategories,
    citedCount, alldbCited, refsCount,
    jif, jifYear, jifFiveYear, jcrQuartile,
    ftLinks
  };
}

Step 4: Present Results

Format the output as a structured summary:

## {Title}

**Authors**: {authors joined by "; "}
**Source**: {source}, Vol. {volume}, Iss. {issue}, pp. {pages}
**Published**: {published}
**DOI**: {doi}
**Document Type**: {docType}
**WoS ID**: {accessionNumber}

### Abstract
{abstract}

### Keywords
- **Author Keywords**: {authorKeywords}
- **Keywords Plus**: {keywordsPlus}

### Metrics
- **Times Cited (WOSCC)**: {citedCount}
- **Times Cited (All DB)**: {alldbCited}
- **References**: {refsCount}
- **JIF ({jifYear})**: {jif} (Five Year: {jifFiveYear})
- **JCR Quartile**: {jcrQuartile}

### Classification
- **Research Areas**: {researchAreas}
- **WoS Categories**: {wosCategories}
- **ISSN**: {issn} | **eISSN**: {eissn}

### Full Text Links
{list of ftLinks}

Offer next actions:

  • "Use /wos-export {WoS ID} to export this paper"
  • "Use /wos-download {WoS ID} to download PDF"

Key CSS Selectors (Full Record Page)

ElementSelectorNotes
Title[data-ta="FullRTa-fullRecordtitle-0"]
Authors[data-ta^="SumAuthTa-DisplayName-author-en"]
Abstractdiv.abstract--instance
Source labelh3[data-ta="FullRTa-sourceLabel"]Parent span has JCR popup; split on "arrow_back"
DOIa[href*="doi.org"]
Author Keywordsh3#FRkeywordsTa-authorKeywordsLabel → parent a tagsUse parentElement.querySelectorAll('a')
Keywords PlusSame pattern with "Keywords Plus" label
Citations (WOSCC)a[data-ta*="times-cited-count-link-WOSCC"]Full record page only
Citations (All DB)a[data-ta*="times-cited-count-link-ALLDB"]Full record page only
Referencesa[data-ta*="refCountLink"]Full record page only
Metadata fieldsh3 label → parentElement → non-h3 childrenVolume, Issue, Page, Published, etc.
JIFInside app-jcr-sidenav text contentRegex: /Impact Factor\s*™?\s*(\d{4})\s*([\d.]+)/
Full text linksa[data-ta^="FRLinkTa"]

Notes

  • This skill uses 2 tool calls: navigate_page + evaluate_script
  • IMPORTANT: Full record page uses different citation selectors than search results page:

- Search results: a[data-ta="stat-number-citation-related-count"] - Full record: a[data-ta*="times-cited-count-link-WOSCC"]

  • Source extraction must split on "arrow_back" to avoid capturing JCR popup content
  • Keywords must use parentElement.querySelectorAll('a'), NOT nextElementSibling
  • JIF is embedded in JCR sidenav popup text, not in a standalone element

平台分布

Codex

33.25%
按下载量换算36

Claude

28.12%
按下载量换算30

Cursor

19.8%
按下载量换算21

Gemini CLI

10.3%
按下载量换算11

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

未通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills