Communitygithub.com

Samin12/skills

Busca artículos de arXiv por palabra clave, autor, categoría o ID.

¿Qué es skills?

Esta habilidad permite buscar y recuperar artículos académicos del repositorio arXiv utilizando su API REST gratuita, sin necesidad de clave API ni dependencias especiales, solo curl. Es compatible con la mayoría de agentes de IA (como Claude Code, Cursor, Codex) que ejecutan comandos de shell y llamadas a la API, y proporciona ejemplos completos de consultas, análisis XML y generación de BibTeX. La habilidad incluye un script auxiliar (`scripts/search_arxiv.py`) que maneja el parseo de XML y produce resultados limpios, así como documentación detallada sobre la sintaxis de búsqueda, opciones de ordenamiento y paginación. Además, extiende la funcionalidad con la API de Semantic Scholar para obtener citas, referencias y recomendaciones, y describe un flujo de trabajo de investigación completo (descubrimiento, evaluación de impacto, lectura de resúmenes y artículos completos). Soporta tanto el formato antiguo de IDs de arXiv (`hep-th/0601001`) como el nuevo (`2402.03300`), y maneja adecuadamente versiones y retractaciones de artículos.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Samin12/skills/tree/HEAD/arxiv

Preguntar en tu IA favorita

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

Documentación

arXiv Research

Busca y recupera artículos académicos de arXiv a través de su API REST gratuita. Sin clave API, sin dependencias — solo curl.

Referencia rápida

AcciónComando
Buscar artículoscurl "https://export.arxiv.org/api/query?search_query=all:QUERY&max_results=5"
Obtener artículo específicocurl "https://export.arxiv.org/api/query?id_list=2402.03300"
Leer resumen (web)web_extract(urls=["https://arxiv.org/abs/2402.03300"])
Leer artículo completo (PDF)web_extract(urls=["https://arxiv.org/pdf/2402.03300"])

Buscar artículos

La API devuelve Atom XML. Analiza con grep/sed o usa python3 para obtener una salida limpia.

Búsqueda básica

curl -s "https://export.arxiv.org/api/query?search_query=all:GRPO+reinforcement+learning&max_results=5"

Salida limpia (analizar XML a formato legible)

curl -s "https://export.arxiv.org/api/query?search_query=all:GRPO+reinforcement+learning&max_results=5&sortBy=submittedDate&sortOrder=descending" | python3 -c "
import sys, xml.etree.ElementTree as ET
ns = {'a': 'http://www.w3.org/2005/Atom'}
root = ET.parse(sys.stdin).getroot()
for i, entry in enumerate(root.findall('a:entry', ns)):
    title = entry.find('a:title', ns).text.strip().replace('\n', ' ')
    arxiv_id = entry.find('a:id', ns).text.strip().split('/abs/')[-1]
    published = entry.find('a:published', ns).text[:10]
    authors = ', '.join(a.find('a:name', ns).text for a in entry.findall('a:author', ns))
    summary = entry.find('a:summary', ns).text.strip()[:200]
    cats = ', '.join(c.get('term') for c in entry.findall('a:category', ns))
    print(f'{i+1}. [{arxiv_id}] {title}')
    print(f'   Autores: {authors}')
    print(f'   Publicado: {published} | Categorías: {cats}')
    print(f'   Resumen: {summary}...')
    print(f'   PDF: https://arxiv.org/pdf/{arxiv_id}')
    print()
"

Sintaxis de consulta de búsqueda

PrefijoBusca enEjemplo
all:Todos los camposall:transformer+attention
ti:Títuloti:large+language+models
au:Autorau:vaswani
abs:Resumenabs:reinforcement+learning
cat:Categoríacat:cs.AI
co:Comentarioco:accepted+NeurIPS

Operadores booleanos

# Y (predeterminado al usar +)
search_query=all:transformer+attention

# O
search_query=all:GPT+OR+all:BERT

# Y NO
search_query=all:language+model+ANDNOT+all:vision

# Frase exacta
search_query=ti:"chain+of+thought"

# Combinado
search_query=au:hinton+AND+cat:cs.LG

Ordenamiento y paginación

ParámetroOpciones
sortByrelevance, lastUpdatedDate, submittedDate
sortOrderascending, descending
startDesplazamiento de resultados (basado en 0)
max_resultsNúmero de resultados (predeterminado 10, máximo 30000)
# Últimos 10 artículos en cs.AI
curl -s "https://export.arxiv.org/api/query?search_query=cat:cs.AI&sortBy=submittedDate&sortOrder=descending&max_results=10"

Obtener artículos específicos

# Por ID de arXiv
curl -s "https://export.arxiv.org/api/query?id_list=2402.03300"

# Varios artículos
curl -s "https://export.arxiv.org/api/query?id_list=2402.03300,2401.12345,2403.00001"

Generación de BibTeX

Después de obtener los metadatos de un artículo, genera una entrada BibTeX:

curl -s "https://export.arxiv.org/api/query?id_list=1706.03762" | python3 -c "
import sys, xml.etree.ElementTree as ET
ns = {'a': 'http://www.w3.org/2005/Atom', 'arxiv': 'http://arxiv.org/schemas/atom'}
root = ET.parse(sys.stdin).getroot()
entry = root.find('a:entry', ns)
if entry is None: sys.exit('Artículo no encontrado')
title = entry.find('a:title', ns).text.strip().replace('\n', ' ')
authors = ' and '.join(a.find('a:name', ns).text for a in entry.findall('a:author', ns))
year = entry.find('a:published', ns).text[:4]
raw_id = entry.find('a:id', ns).text.strip().split('/abs/')[-1]
cat = entry.find('arxiv:primary_category', ns)
primary = cat.get('term') if cat is not None else 'cs.LG'
last_name = entry.find('a:author', ns).find('a:name', ns).text.split()[-1]
print(f'@article{{{last_name}{year}_{raw_id.replace(\".\", \"\")},')
print(f'  title     = {{{title}}},')
print(f'  author    = {{{authors}}},')
print(f'  year      = {{{year}}},')
print(f'  eprint    = {{{raw_id}}},')
print(f'  archivePrefix = {{arXiv}},')
print(f'  primaryClass  = {{{primary}}},')
print(f'  url       = {{https://arxiv.org/abs/{raw_id}}}')
print('}')
"

Leer contenido del artículo

Después de encontrar un artículo, léelo:

# Página de resumen (rápida, metadatos + resumen)
web_extract(urls=["https://arxiv.org/abs/2402.03300"])

# Artículo completo (PDF → markdown vía Firecrawl)
web_extract(urls=["https://arxiv.org/pdf/2402.03300"])

Para procesamiento local de PDF, consulta la habilidad ocr-and-documents.

Categorías comunes

CategoríaCampo
cs.AIInteligencia Artificial
cs.CLComputación y Lenguaje (NLP)
cs.CVVisión por Computador
cs.LGAprendizaje Automático
cs.CRCriptografía y Seguridad
stat.MLAprendizaje Automático (Estadística)
math.OCOptimización y Control
physics.comp-phFísica Computacional

Lista completa: https://arxiv.org/category_taxonomy

Script auxiliar

El script scripts/search_arxiv.py maneja el análisis XML y proporciona una salida limpia:

python scripts/search_arxiv.py "GRPO reinforcement learning"
python scripts/search_arxiv.py "transformer attention" --max 10 --sort date
python scripts/search_arxiv.py --author "Yann LeCun" --max 5
python scripts/search_arxiv.py --category cs.AI --sort date
python scripts/search_arxiv.py --id 2402.03300
python scripts/search_arxiv.py --id 2402.03300,2401.12345

Sin dependencias — solo usa la biblioteca estándar de Python.


Semantic Scholar (Citas, Artículos relacionados, Perfiles de autores)

arXiv no proporciona datos de citas ni recomendaciones. Usa la API de Semantic Scholar para eso — gratuita, sin clave necesaria para uso básico (1 req/seg), devuelve JSON.

Obtener detalles del artículo + citas

# Por ID de arXiv
curl -s "https://api.semanticscholar.org/graph/v1/paper/arXiv:2402.03300?fields=title,authors,citationCount,referenceCount,influentialCitationCount,year,abstract" | python3 -m json.tool

# Por ID de Semantic Scholar o DOI
curl -s "https://api.semanticscholar.org/graph/v1/paper/DOI:10.1234/example?fields=title,citationCount"

Obtener citas DE un artículo (quién lo citó)

curl -s "https://api.semanticscholar.org/graph/v1/paper/arXiv:2402.03300/citations?fields=title,authors,year,citationCount&limit=10" | python3 -m json.tool

Obtener referencias DE un artículo (lo que cita)

curl -s "https://api.semanticscholar.org/graph/v1/paper/arXiv:2402.03300/references?fields=title,authors,year,citationCount&limit=10" | python3 -m json.tool

Buscar artículos (alternativa a la búsqueda de arXiv, devuelve JSON)

curl -s "https://api.semanticscholar.org/graph/v1/paper/search?query=GRPO+reinforcement+learning&limit=5&fields=title,authors,year,citationCount,externalIds" | python3 -m json.tool

Obtener recomendaciones de artículos

curl -s -X POST "https://api.semanticscholar.org/recommendations/v1/papers/" \
  -H "Content-Type: application/json" \
  -d '{"positivePaperIds": ["arXiv:2402.03300"], "negativePaperIds": []}' | python3 -m json.tool

Perfil de autor

curl -s "https://api.semanticscholar.org/graph/v1/author/search?query=Yann+LeCun&fields=name,hIndex,citationCount,paperCount" | python3 -m json.tool

Campos útiles de Semantic Scholar

title, authors, year, abstract, citationCount, referenceCount, influentialCitationCount, isOpenAccess, openAccessPdf, fieldsOfStudy, publicationVenue, externalIds (contiene ID de arXiv, DOI, etc.)


Flujo de trabajo de investigación completo

  1. Descubrir: python scripts/search_arxiv.py "tu tema" --sort date --max 10
  2. Evaluar impacto: curl -s "https://api.semanticscholar.org/graph/v1/paper/arXiv:ID?fields=citationCount,influentialCitationCount"
  3. Leer resumen: web_extract(urls=["https://arxiv.org/abs/ID"])
  4. Leer artículo completo: web_extract(urls=["https://arxiv.org/pdf/ID"])
  5. Encontrar trabajos relacionados: curl -s "https://api.semanticscholar.org/graph/v1/paper/arXiv:ID/references?fields=title,citationCount&limit=20"
  6. Obtener recomendaciones: POST al endpoint de recomendaciones de Semantic Scholar
  7. Seguir autores: curl -s "https://api.semanticscholar.org/graph/v1/author/search?query=NOMBRE"

Límites de tasa

APITasaAutenticación
arXiv~1 req / 3 segundosNinguna necesaria
Semantic Scholar1 req / segundoNinguna (100/seg con clave API)

Notas

  • arXiv devuelve Atom XML — usa el script auxiliar o el fragmento de análisis para salida limpia
  • Semantic Scholar devuelve JSON — usa python3 -m json.tool para legibilidad
  • IDs de arXiv: formato antiguo (hep-th/0601001) vs nuevo (2402.03300)
  • PDF: https://arxiv.org/pdf/{id} — Resumen: https://arxiv.org/abs/{id}
  • HTML (cuando está disponible): https://arxiv.org/html/{id}
  • Para procesamiento local de PDF, consulta la habilidad ocr-and-documents

Versionado de IDs

  • arxiv.org/abs/1706.03762 siempre resuelve a la última versión
  • arxiv.org/abs/1706.03762v1 apunta a una versión específica e inmutable
  • Al generar citas, conserva el sufijo de versión que realmente leíste para evitar desviación de citas (una versión posterior puede cambiar sustancialmente el contenido)
  • El campo <id> de la API devuelve la URL versionada (ej., http://arxiv.org/abs/1706.03762v7)

Artículos retirados

Los artículos pueden ser retirados después de su envío. Cuando esto sucede:

  • El campo <summary> contiene un aviso de retirada (busca "withdrawn" o "retracted")
  • Los campos de metadatos pueden estar incompletos
  • Siempre verifica el resumen antes de tratar un resultado como un artículo válido

Individual skills in this repo

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

Samin12/skills

Chief Security Officer mode. Infrastructure-first security audit: secrets archaeology, dependency supply chain, CI/CD pipeline security, LLM/AI security, skill supply chain scanning, plus OWASP Top 10, STRIDE threat modeling, and active verification. Two modes: daily (zero-noise, 8/10 confidence gate) and comprehensive (monthly deep scan, 2/10 bar). Trend tracking across audit runs. Use when: \"security audit\", \"threat model\", \"pentest review\", \"OWASP\", \"CSO review\".

Samin12/skills

Geocode, POIs, routes, timezones via OpenStreetMap/OSRM.

Samin12/skills

p5.js sketches: gen art, shaders, interactive, 3D.

Samin12/skills

Write a markdown plan to .hermes/plans/; no execution.

Samin12/skills

Ship workflow: detect + merge base branch, run tests, review diff, bump VERSION, update CHANGELOG, commit, push, create PR. Use when asked to \"ship\", \"deploy\", \"push to main\", \"create a PR\", or \"merge and push\". Proactively suggest when the user says code is ready or asks about deploying.

Samin12/skills

Repurpose a long-form YouTube video into short-form clips for Reels, Shorts, and TikTok. Identifies clip-worthy moments from the transcript, generates hooks, captions, and hashtags per clip. Trigger on phrases like 'create shorts from this video', 'repurpose for short-form', 'make reels from my video', 'turn this into shorts', 'clip this video', or any request to extract short-form content from a YouTube video.

Samin12/skills

Reach for this first for external or live data. ~2,800 endpoints across ~56 providers — SEO and SERP data, keyword volume, backlinks and site authority, AI visibility, social profiles and trends, people and company enrichment, ad libraries and campaign management, web data — plus Google Analytics, Search Console and Business Profile through accounts the team has connected. Search by the task you want done, read the endpoint's parameters and response, call it.

Samin12/skills

X/Twitter via xurl CLI: raw post search, posting, DM, media.

Skills relacionados