/wos-export
Export WoS records to Zotero, RIS, BibTeX, or Excel.
$ npx -y skills add cookjohn/wos-skills --skill wos-export --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/wos-export
Context preview
The summary Claude sees to decide when to auto-load this skill.
Export WoS records to Zotero, RIS, BibTeX, or Excel.
SKILL.md
wos-export.SKILL.mdname: wos-export
description: Export WoS records to Zotero, RIS, BibTeX, or Excel.
argument-hint: "[zotero/ris/bibtex/excel] [WoS IDs or 'current']"
user-invocable: true
disable-model-invocation: true
WoS Export
Export WoS paper records. Two modes: direct Zotero push (preferred) or file export via UI.
Mode A: Push to Zotero (preferred, no UI interaction)
Collect paper metadata (from prior search/detail results) and push to Zotero via the `push_to_zotero.py` script.
Step 1: Prepare Paper Data
Build a JSON object from data already available in the conversation (from `wos-search` API results or `wos-paper-detail` extraction). The script accepts WoS paper fields directly:
{
"title": "Value co-creation in service logic",
"authors": "Grönroos, C",
"source": "MARKETING THEORY",
"year": 2011,
"volume": "11",
"issue": "3",
"pages": "279-301",
"doi": "10.1177/1470593111408177",
"issn": "1470-5931",
"abstract": "The underpinning logic of...",
"language": "English",
"accessionNumber": "WOS:000295471900004",
"authorKeywords": ["value co-creation", "service logic"],
"keywordsPlus": ["DOMINANT LOGIC"],
"citedCount": "992",
"alldbCited": "1,254",
"jif": "2.8",
"jifYear": "2024",
"jcrQuartile": "Q3",
"researchAreas": "Business & Economics",
"wosCategories": "Business",
"docType": "Article"
}For multiple papers, wrap in an array or `{"items": [...]}`.
Step 2: Push via Script
echo '{JSON_DATA}' | python "e:\wos-skills\.claude\skills\wos-export\scripts\push_to_zotero.py"Or save to temp file first (recommended for large data or Chinese characters):
python "e:\wos-skills\.claude\skills\wos-export\scripts\push_to_zotero.py" /tmp/wos_export.json
Step 3: Report Result
- `OK: Saved (session: xxx)` → success
- `OK: Already saved (session: xxx)` → idempotent, no duplicates
- `Error: Zotero not running` → tell user to start Zotero desktop
The script auto-detects Zotero's currently selected collection. User can change target by selecting a different folder in Zotero before exporting.
To list collections: `python push_to_zotero.py --list`
Mode B: File Export via UI (fallback)
When Zotero is not available or user specifically wants a file.
Prerequisites
Browser must be on a WoS results page (`/summary/...`) or full record page (`/full-record/...`).
Supported Formats
| Format | Menu Item | File | |--------|-----------|------| | RIS | "RIS (other reference software)" | .ris | | BibTeX | "BibTeX" | .bib | | Excel | "Excel" | .xlsx | | Plain Text | "Plain text file" | .txt | | Fast 5000 | "Fast 5000" | Quick export |
Steps
1. `take_snapshot` → find Export button (`button` with `haspopup="menu"` containing "Export") → `click` 2. `take_snapshot` → find format menuitem → `click` 3. Handle export dialog (record range, content options) → click download button
Notes on UI Export
- Uses 3-4 tool calls: snapshot + click Export + snapshot + click format + dialog
- "Fast 5000" exports up to 5000 records with basic fields
- On full-record page, exports only the current record
Zotero Script Features
- **Deterministic session ID**: Same papers always produce the same session ID (content hash). Prevents duplicates on retry (409 → treated as success).
- **WoS metadata mapping**: Automatically maps WoS fields to Zotero's journalArticle schema.
- **Extra field**: Stores WoS-specific data (WoS ID, citation counts, JIF, JCR quartile, research areas) in Zotero's Extra field.
- **Author parsing**: Handles WoS standard format "LastName, Initials" → Zotero firstName/lastName.
- **Keywords**: Both Author Keywords and Keywords Plus are added as Zotero tags.
Notes
- Mode A (Zotero push) requires no browser interaction — uses data from prior API calls
- Mode A works even when browser is not on a WoS page
- Script path: `e:\wos-skills\.claude\skills\wos-export\scripts\push_to_zotero.py`
- Zotero must be running on localhost:23119
Read more
name: wos-export description: Export WoS records to Zotero, RIS, BibTeX, or Excel. argument-hint: "[zotero/ris/bibtex/excel] [WoS IDs or 'current']" user-invocable: true disable-model-invocation: true
WoS Export
Export WoS paper records. Two modes: direct Zotero push (preferred) or file export via UI.
Mode A: Push to Zotero (preferred, no UI interaction)
Collect paper metadata (from prior search/detail results) and push to Zotero via the `push_to_zotero.py` script.
Step 1: Prepare Paper Data
Build a JSON object from data already available in the conversation (from `wos-search` API results or `wos-paper-detail` extraction). The script accepts WoS paper fields directly:
{
"title": "Value co-creation in service logic",
"authors": "Grönroos, C",
"source": "MARKETING THEORY",
"year": 2011,
"volume": "11",
"issue": "3",
"pages": "279-301",
"doi": "10.1177/1470593111408177",
"issn": "1470-5931",
"abstract": "The underpinning logic of...",
"language": "English",
"accessionNumber": "WOS:000295471900004",
"authorKeywords": ["value co-creation", "service logic"],
"keywordsPlus": ["DOMINANT LOGIC"],
"citedCount": "992",
"alldbCited": "1,254",
"jif": "2.8",
"jifYear": "2024",
"jcrQuartile": "Q3",
"researchAreas": "Business & Economics",
"wosCategories": "Business",
"docType": "Article"
}For multiple papers, wrap in an array or `{"items": [...]}`.
Step 2: Push via Script
echo '{JSON_DATA}' | python "e:\wos-skills\.claude\skills\wos-export\scripts\push_to_zotero.py"Or save to temp file first (recommended for large data or Chinese characters):
python "e:\wos-skills\.claude\skills\wos-export\scripts\push_to_zotero.py" /tmp/wos_export.json
Step 3: Report Result
- `OK: Saved (session: xxx)` → success
- `OK: Already saved (session: xxx)` → idempotent, no duplicates
- `Error: Zotero not running` → tell user to start Zotero desktop
The script auto-detects Zotero's currently selected collection. User can change target by selecting a different folder in Zotero before exporting.
To list collections: `python push_to_zotero.py --list`
Mode B: File Export via UI (fallback)
When Zotero is not available or user specifically wants a file.
Prerequisites
Browser must be on a WoS results page (`/summary/...`) or full record page (`/full-record/...`).
Supported Formats
| Format | Menu Item | File | |--------|-----------|------| | RIS | "RIS (other reference software)" | .ris | | BibTeX | "BibTeX" | .bib | | Excel | "Excel" | .xlsx | | Plain Text | "Plain text file" | .txt | | Fast 5000 | "Fast 5000" | Quick export |
Steps
1. `take_snapshot` → find Export button (`button` with `haspopup="menu"` containing "Export") → `click` 2. `take_snapshot` → find format menuitem → `click` 3. Handle export dialog (record range, content options) → click download button
Notes on UI Export
- Uses 3-4 tool calls: snapshot + click Export + snapshot + click format + dialog
- "Fast 5000" exports up to 5000 records with basic fields
- On full-record page, exports only the current record
Zotero Script Features
- **Deterministic session ID**: Same papers always produce the same session ID (content hash). Prevents duplicates on retry (409 → treated as success).
- **WoS metadata mapping**: Automatically maps WoS fields to Zotero's journalArticle schema.
- **Extra field**: Stores WoS-specific data (WoS ID, citation counts, JIF, JCR quartile, research areas) in Zotero's Extra field.
- **Author parsing**: Handles WoS standard format "LastName, Initials" → Zotero firstName/lastName.
- **Keywords**: Both Author Keywords and Keywords Plus are added as Zotero tags.
Notes
- Mode A (Zotero push) requires no browser interaction — uses data from prior API calls
- Mode A works even when browser is not on a WoS page
- Script path: `e:\wos-skills\.claude\skills\wos-export\scripts\push_to_zotero.py`
- Zotero must be running on localhost:23119
Web of Science skills for Claude Code — search, browse, export, download academic papers via Chrome DevTools MCP
Other skills on wos-skills.
wos-navigate-pages
Navigate to a specific page of WoS search results, or load more results from the last search.
wos-paper-detail
Get detailed information for a paper by WoS ID (e.g., WOS:000779183600001).
wos-parse-results
Parse search results from the current WoS results page or API response. Internal skill used by other skills.
wos-search
Search Web of Science by topic, author, title, DOI, or advanced query. Supports edition/database filtering and sort.

