ieee-journal-browse
SKILL.md
IEEE Xplore Journal/Conference Browse
Browse journal or conference information, metrics, and articles on IEEE Xplore.
URL Patterns
| Page | URL |
|---|---|
| Journal home | {BASE_URL}/xpl/RecentIssue.jsp?punumber={PUNUMBER} |
| Popular articles | {BASE_URL}/xpl/topAccessedArticles.jsp?punumber={PUNUMBER} |
| Current issue | {BASE_URL}/xpl/mostRecentIssue.jsp?punumber={PUNUMBER} |
| All issues | {BASE_URL}/xpl/issues?punumber={PUNUMBER} |
| About journal | {BASE_URL}/xpl/aboutJournal.jsp?punumber={PUNUMBER} |
| Early access | {BASE_URL}/xpl/tocresult.jsp?isnumber={ISNUMBER} |
| Conference home | {BASE_URL}/xpl/conhome/{PUNUMBER}/proceeding |
The punumber (publication number) is the unique identifier for journals and conferences on IEEE Xplore.
Common Journal PUNUMBERs
| Journal | punumber |
|---|---|
| IEEE Trans. Pattern Analysis and Machine Intelligence (TPAMI) | 34 |
| IEEE Trans. Neural Networks and Learning Systems (TNNLS) | 5962 |
| IEEE Trans. Image Processing (TIP) | 83 |
| IEEE Access | 6287639 |
| IEEE Trans. Information Forensics and Security (TIFS) | 10206 |
| IEEE Communications Surveys & Tutorials | 9739 |
| IEEE Internet of Things Journal | 6488907 |
If the user provides a journal name instead of a punumber, search for the journal first, or try constructing the URL from the name.
Steps
Step 1: Navigate to journal page
Use navigate_page with initScript:
navigate_page({
url: "{BASE_URL}/xpl/RecentIssue.jsp?punumber={PUNUMBER}",
initScript: "Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"
})
For conferences, use:
{BASE_URL}/xpl/conhome/{PUNUMBER}/proceeding
Step 2: Extract journal info
Use evaluate_script with built-in waiting. Do NOT use wait_for.
async () => {
// Wait for journal content to load (up to 15s)
for (let i = 0; i < 30; i++) {
if (document.querySelector('h1') && document.querySelectorAll('a[href*="/document/"]').length > 0) break;
await new Promise(r => setTimeout(r, 500));
}
const result = {};
// Journal name
result.name = document.querySelector('h1')?.textContent?.trim() || '';
// Metrics
const metricsContainer = document.querySelector('[class*="publication-info"]') || document.body;
const allText = metricsContainer.innerText || '';
const ifMatch = allText.match(/([\d.]+)\s*Impact Factor/);
const efMatch = allText.match(/([\d.]+)\s*Eigenfactor/);
const aiMatch = allText.match(/([\d.]+)\s*Article Influence/);
const csMatch = allText.match(/([\d.]+)\s*CiteScore/);
result.impactFactor = ifMatch ? ifMatch[1] : '';
result.eigenfactor = efMatch ? efMatch[1] : '';
result.articleInfluence = aiMatch ? aiMatch[1] : '';
result.citeScore = csMatch ? csMatch[1] : '';
// Tabs available
const tabs = [...document.querySelectorAll('.tabs a, .nav-tabs a, [class*="tab-link"]')];
result.tabs = tabs.map(a => ({
text: a.textContent.trim(),
href: a.href || ''
})).filter(t => t.text).slice(0, 10);
// Latest/popular articles on the page
result.articles = [];
const articleLinks = document.querySelectorAll('a[href*="/document/"]');
const seen = new Set();
articleLinks.forEach(link => {
const title = link.textContent.trim();
const arnumber = link.href.match(/\/document\/(\d+)/)?.[1] || '';
if (title && arnumber && !seen.has(arnumber) && title.length > 10) {
seen.add(arnumber);
result.articles.push({ title: title.substring(0, 150), arnumber, url: link.href });
}
});
result.articles = result.articles.slice(0, 15);
// ISSN from page
const pageText = document.body.innerText;
const issnMatch = pageText.match(/ISSN[:\s]*([\d-X]+)/i);
result.issn = issnMatch ? issnMatch[1] : '';
// Publication number
const urlMatch = window.location.href.match(/punumber=(\d+)/);
result.punumber = urlMatch ? urlMatch[1] : '';
return result;
}
Step 3: Present journal info
## {name}
**Impact Factor**: {impactFactor}
**CiteScore**: {citeScore}
**Eigenfactor**: {eigenfactor}
**Article Influence Score**: {articleInfluence}
**ISSN**: {issn}
**PUNUMBER**: {punumber}
### Available Sections
{tabs}
### Articles
1. {title} (Article #: {arnumber})
2. ...
Browsing a specific issue
If the user asks for a specific volume/issue, navigate to {BASE_URL}/xpl/tocresult.jsp?punumber={PUNUMBER}&isnumber={ISNUMBER} and extract the article list.
To find issue numbers, navigate to the "All Issues" page first:
{BASE_URL}/xpl/issues?punumber={PUNUMBER}
Notes
punumberis the primary identifier for journals and conferences on IEEE Xplore.- Journal pages show latest published articles, early access, popular articles, etc.
- Conference pages show proceedings grouped by conference year.
- Always include
initScripton everynavigate_pagecall. - Use 2 tool calls:
navigate_page+evaluate_script.
Weekly Installs
1
Repository
cookjohn/ieee-skillsGitHub Stars
1
First Seen
3 days ago
Security Audits
Installed on
amp1
cline1
openclaw1
opencode1
cursor1
kimi-cli1