0x-Shashi/grok-skill-converter

Lleva tus skills de Claude a Grok.

¿Qué es grok-skill-converter?

Este skill permite a los agentes de IA buscar y recuperar artículos académicos del repositorio arXiv a través de su API REST gratuita, sin necesidad de API key ni dependencias externas más allá de curl y Python. Además, integra la API de Semantic Scholar para obtener datos de citas, trabajos relacionados y perfiles de autores, todo con respuestas en JSON y sin necesidad de autenticación básica. Es compatible con plataformas como Claude Code, Cursor y Codex, y proporciona ejemplos listos para usar que incluyen desde la búsqueda básica hasta la generación de BibTeX y la extracción de texto completo. El skill es útil para investigadores, desarrolladores y entusiastas del aprendizaje automático que necesitan realizar revisiones bibliográficas, evaluar el impacto de publicaciones o seguir el trabajo de autores clave, todo desde la línea de comandos o scripts automatizados.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add 0x-Shashi/grok-skill-converter

Installed? Explore more Investigación y análisis de datos skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

Preguntar en tu IA favorita

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

Documentación

Investigación en arXiv

Busca y recupera artículos académicos de arXiv a través de su API REST gratuita. Sin API key, 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"])

Búsqueda de artículos

La API devuelve Atom XML. Puedes procesarlo con grep/sed o canalizarlo a Python 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 (parsear 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" | python -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

Orden y paginación

ParámetroOpciones
sortByrelevance, lastUpdatedDate, submittedDate
sortOrderascending, descending
startDesplazamiento de resultados (desde 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"

Obtención de 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:

{% raw %}

curl -s "https://export.arxiv.org/api/query?id_list=1706.03762" | python -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('}')
"

{% endraw %}

Lectura del 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 a través de Firecrawl)
web_extract(urls=["https://arxiv.org/pdf/2402.03300"])

Para procesamiento local de PDF, consulta el skill ocr-and-documents.

Categorías comunes

CategoríaCampo
cs.AIInteligencia Artificial
cs.CLComputación y Lenguaje (NLP)
cs.CVVisión por Computadora
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 utiliza la biblioteca estándar de Python.


Semantic Scholar (Citas, trabajos relacionados, perfiles de autor)

arXiv no proporciona datos de citas ni recomendaciones. Usa la API de Semantic Scholar para eso: gratuita, sin clave para uso básico (1 req/segundo), 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" | python -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" | python -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" | python -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" | python -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": []}' | python -m json.tool

Perfil de autor

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

Campos útiles de Semantic Scholar

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


Flujo de trabajo completo de investigación

  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 velocidad

APIVelocidadAutenticación
arXiv~1 req / 3 segundosNinguna
Semantic Scholar1 req / segundoNinguna (100/segundo con clave)

Notas

  • arXiv devuelve Atom XML: usa el script auxiliar o el fragmento de análisis para una salida limpia
  • Semantic Scholar devuelve JSON: canaliza a través de python -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 el skill 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 desviaciones en las 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 retiro (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

Skills relacionados