CommunityRedacción y edicióngithub.com

Zane456/ieee-paper-search

Claude Code agent skill: IEEE-only paper survey — search, triage, translated-abstract cards, one-confirmation PDF fetch. Requires institutional IEEE Xplore network access.

¿Qué es ieee-paper-search?

ieee-paper-search is a Claude Code agent skill that claude Code agent skill: IEEE-only paper survey — search, triage, translated-abstract cards, one-confirmation PDF fetch. Requires institutional IEEE Xplore network access.

Compatible conClaude Code~Codex CLI~Cursor
npx skills add Zane456/ieee-paper-search

Installed? Explore more Redacción y edición skills: steipete/notion, affaan-m/seo, affaan-m/brand-voice · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

IEEE Paper Survey Skill

What it does

When asked "what papers are out there on X", run this pipeline: search → de-noise → rank → present cards → user picks → fetch full text.

What it does NOT do

  • Does not write survey articles (that is deep-research, if installed)
  • No citation graphs, no meta-analysis
  • Never bulk-downloads dozens of PDFs without user confirmation

Main flow

1. Tighten the query

If the user's keywords are too broad ("DAB converter"), add one qualifier ("DAB converter ZVS modulation"). A more specific query means less noise.

2. Search (hard constraint)

uv run --directory ~/paper-search-mcp paper-search search "<query>" \
  -n 8 -s openalex,semantic [-y <year>]

(Adjust --directory if paper-search-mcp is cloned elsewhere — see README.)

If this command cannot run — sandboxed or read-only environment, uv missing, backend not installed (note uv run writes a venv cache, which a read-only policy blocks) — say so and stop. Never silently substitute hand-rolled API calls: the source choice below is load-bearing, and a quiet fallback discards it without the user ever knowing.

Parameters:

  • -n 8: 8 hits per source (after dedup usually 8-15 papers, enough to triage)
  • -s openalex,semantic: hard constraint — do not use -s all, do not run crossref alone (rationale in references/sources.md)
  • -y <year>: year filter (Semantic Scholar side). Add proactively when the user says "last 3 years" / "latest" / "since 2022". Format 2022 or 2020-2024

Special case: add arxiv when preprints are wanted (-s openalex,semantic,arxiv).

3. De-noise + dedup + IEEE-only filter

Hard filter: keep only papers whose DOI prefix ∈ {10.1109/, 10.23919/}, drop everything else. Rationale — the only reliable full-text path in this skill is ieee-fetch; a non-IEEE paper survives triage but its PDF is unreachable, wasting the user's time.

Concretely, filter the papers[*] array of the paper-search JSON output:

keep iff paper.doi startswith "10.1109/" or "10.23919/"

Then on the survivors:

  • Drop off-domain hits (a DAB search must not include Cuk converters or NLP "converter" papers)
  • Dedup by DOI (the same IEEE paper may appear once each in openalex + semantic + arxiv; keep any one)

Tell the user: if too much got filtered (>50% of candidates dropped), proactively say "IEEE coverage of this direction is thin — switch to the generic paper-search skill for Elsevier/Springer?"

4. Rank

Priority order:

  1. Citation count (>50 anchor, >10 active, <10 judge by year)
  2. Venue tier (top journal > top conference > regular journal > preprint)
  3. Year (<3 years for SOTA, >5 years for foundational)
  4. Authors/affiliation (bonus for anchor groups in the field)

Detailed criteria: references/triage.md

5. Card-style presentation (critical — never use tables)

Card format, one per recommended paper:

### [N] Original paper title (keep English)

🔗 https://doi.org/10.1109/xxx
📅 <year> · 📍 <venue short name, e.g. TPEL / IECON> · 📊 citations <N>
👤 <first author; corresponding author (et al.)>

**Abstract (translated)**: <translate the English abstract into the user's
conversation language, 2-4 sentences, keeping method / key novelty /
experimental results / validation scale>

💡 **Verdict**: <must-read / representative / new-method / background / ...>
(one-sentence reason)

---

Requirements:

  • List only the recommended ones (already triaged); dropped papers get a one-line dismissal at the end
  • Always translate the abstract into the user's conversation language — never paste the raw English abstract
  • Link as https://doi.org/<doi> (directly clickable)

Full template and examples: references/output-template.md

6. Wait for the user to pick

No proactive bulk download. After the cards, ask "which ones do you want in full text / or change keywords?"

7. Fetch full text

Single path: ieee-fetch <arnumber|url>

Downloads to <skill-root>/downloads/ieee-<arnumber>.pdf by default. The script resolves its own location, so this lands beside the skill wherever it is installed; override with $IEEE_FETCH_DIR. It auto-appends a line (time / filename / size) to INDEX.md in the same directory. To see what has been downloaded, read that INDEX.md — never ls the whole PDF pile into context.

Your machine's IP must be inside your institution's IEEE Xplore-registered range (campus network or VPN). Detailed constraints: references/ieee-fetch.md.

Why not paper-search download: IEEE does not expose PDFs to paper-search's built-in downloader, even behind an institutional VPN. ieee-fetch is a session-warmed curl written specifically for IEEE, ~6 s per paper.

For IEEE preprints also hosted on arxiv (search result shows source arxiv + DOI 10.1109/...), the arxiv pdf_url is a fallback via plain curl (no VPN needed), but the preferred path is still ieee-fetch for the IEEE version of record.

8. (Optional) Read the PDF

Open the PDF with whatever capability the host agent has, in this order:

  1. A native PDF reader, if the agent has one (Claude Code: Read <path>.pdf renders pages into context)
  2. An installed pdf skill
  3. Poppler on the command line — pdftotext <path>.pdf - for text, pdftoppm -png -r 150 <path>.pdf <prefix> to render pages as images

9. Chain into other skills (recommend proactively)

After the PDFs land, check what is actually installed, then ask whether to chain. The rows below are intents to match against the host's skill list, not skills you may assume exist.

User intentLook for
Extract tables / figures / annotations / references from PDFsa PDF-processing skill
Turn several papers into a surveya deep-research / literature-review pipeline
Write a paper on top of these referencesan academic-writing skill

Ask format: "Downloaded. Continue with — A. / B. / C. something else?" If nothing relevant is installed, just ask what the user wants next. Never name a skill you have not confirmed, and never act silently.

Common pitfalls

See references/failure-modes.md. The three that bite most:

  1. Searching IEEE topics with crossref alone → all abstracts empty, triage impossible
  2. Searching with -s all → noise explosion (Hindi NLP, Cuk converter, other false hits)
  3. Running ieee-fetch without the institutional VPN → HTTP 502 "Temporarily Unavailable"

Golden case

A full end-to-end run kept as the reference benchmark: references/golden-case-dab-zvs.md ("DAB converter ZVS modulation" → 17 candidates → 12 IEEE papers).

Skills relacionados

steipete/notion

Notion CLI/API for pages, Markdown content, data sources, files, comments, search, Workers, and raw API calls.

community

affaan-m/seo

Audit, plan, and implement SEO improvements across technical SEO, on-page optimization, structured data, Core Web Vitals, and content strategy. Use when the user wants better search visibility, SEO remediation, schema markup, sitemap/robots work, or keyword mapping.

community

affaan-m/brand-voice

Build a source-derived writing style profile from real posts, essays, launch notes, docs, or site copy, then reuse that profile across content, outreach, and social workflows. Use when the user wants voice consistency without generic AI writing tropes.

community

affaan-m/crosspost

Multi-platform content distribution across X, LinkedIn, Threads, and Bluesky. Adapts content per platform using content-engine patterns. Never posts identical content cross-platform. Use when the user wants to distribute content across social platforms.

community

affaan-m/x-api

X/Twitter API integration for posting tweets, threads, reading timelines, search, and analytics. Covers OAuth auth patterns, rate limits, and platform-native content posting. Use when the user wants to interact with X programmatically.

community

affaan-m/content-engine

Create platform-native content systems for X, LinkedIn, TikTok, YouTube, newsletters, and repurposed multi-platform campaigns. Use when the user wants social posts, threads, scripts, content calendars, or one source asset adapted cleanly across platforms.

community