Communitygithub.com

Samin12/skills

Recherche d'articles arXiv par mot-clé, auteur, catégorie ou ID.

Qu'est-ce que skills ?

Cette compétence permet de rechercher et de récupérer des articles académiques depuis l'API REST gratuite d'arXiv, sans clé API ni dépendances supplémentaires. Elle prend en charge les requêtes par mot-clé, auteur (au:), catégorie (cat:) et ID, avec des options de tri par date de soumission, pertinence ou date de mise à jour. La compétence fournit également des extraits de code pour parser le XML Atom, générer des entrées BibTeX et interagir avec l'API Semantic Scholar afin d'obtenir des citations, des références, des recommandations et des profils d'auteurs. Elle est conçue pour les agents AI comme Claude Code, Cursor ou Codex, facilitant un flux de travail complet : découverte, évaluation de l'impact, lecture des résumés et articles complets, et exploration des travaux connexes.

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

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Recherche arXiv

Recherchez et récupérez des articles académiques depuis arXiv via leur API REST gratuite. Pas de clé API, pas de dépendances — juste curl.

Référence rapide

ActionCommande
Rechercher des articlescurl "https://export.arxiv.org/api/query?search_query=all:QUERY&max_results=5"
Obtenir un article spécifiquecurl "https://export.arxiv.org/api/query?id_list=2402.03300"
Lire le résumé (web)web_extract(urls=["https://arxiv.org/abs/2402.03300"])
Lire l'article complet (PDF)web_extract(urls=["https://arxiv.org/pdf/2402.03300"])

Recherche d'articles

L'API renvoie du XML Atom. Analysez-le avec grep/sed ou passez-le par python3 pour une sortie propre.

Recherche simple

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

Sortie propre (analyse XML vers un format lisible)

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'   Auteurs : {authors}')
    print(f'   Publié : {published} | Catégories : {cats}')
    print(f'   Résumé : {summary}...')
    print(f'   PDF : https://arxiv.org/pdf/{arxiv_id}')
    print()
"

Syntaxe des requêtes de recherche

PréfixeRechercheExemple
all:Tous les champsall:transformer+attention
ti:Titreti:large+language+models
au:Auteurau:vaswani
abs:Résuméabs:reinforcement+learning
cat:Catégoriecat:cs.AI
co:Commentaireco:accepted+NeurIPS

Opérateurs booléens

# ET (par défaut lorsqu'on utilise +)
search_query=all:transformer+attention

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

# ET NON
search_query=all:language+model+ANDNOT+all:vision

# Phrase exacte
search_query=ti:"chain+of+thought"

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

Tri et pagination

ParamètreOptions
sortByrelevance, lastUpdatedDate, submittedDate
sortOrderascending, descending
startDécalage des résultats (basé sur 0)
max_resultsNombre de résultats (défaut 10, max 30000)
# Les 10 derniers articles en cs.AI
curl -s "https://export.arxiv.org/api/query?search_query=cat:cs.AI&sortBy=submittedDate&sortOrder=descending&max_results=10"

Récupération d'articles spécifiques

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

# Plusieurs articles
curl -s "https://export.arxiv.org/api/query?id_list=2402.03300,2401.12345,2403.00001"

Génération BibTeX

Après avoir récupéré les métadonnées d'un article, générez une entrée 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('Article non trouvé')
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('}')
"

Lecture du contenu des articles

Après avoir trouvé un article, lisez-le :

# Page du résumé (rapide, métadonnées + résumé)
web_extract(urls=["https://arxiv.org/abs/2402.03300"])

# Article complet (PDF → markdown via Firecrawl)
web_extract(urls=["https://arxiv.org/pdf/2402.03300"])

Pour le traitement local de PDF, voir la compétence ocr-and-documents.

Catégories courantes

CatégorieDomaine
cs.AIIntelligence Artificielle
cs.CLLangage et Calcul (TAL)
cs.CVVision par Ordinateur
cs.LGApprentissage Automatique
cs.CRCryptographie et Sécurité
stat.MLApprentissage Automatique (Statistiques)
math.OCOptimisation et Contrôle
physics.comp-phPhysique Computationnelle

Liste complète : https://arxiv.org/category_taxonomy

Script d'aide

Le script scripts/search_arxiv.py gère l'analyse XML et fournit une sortie propre :

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

Aucune dépendance — utilise uniquement la bibliothèque standard Python.


Semantic Scholar (Citations, articles connexes, profils d'auteurs)

arXiv ne fournit pas de données de citations ni de recommandations. Utilisez l'API Semantic Scholar pour cela — gratuite, sans clé nécessaire pour une utilisation de base (1 requête/seconde), renvoie du JSON.

Obtenir les détails d'un article + citations

# Par ID 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

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

Obtenir les citations D'UN article (qui l'a 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

Obtenir les références D'UN article (ce qu'il cite)

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

Rechercher des articles (alternative à la recherche arXiv, renvoie du 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

Obtenir des recommandations d'articles

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

Profil d'auteur

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

Champs utiles de Semantic Scholar

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


Flux de travail complet de recherche

  1. Découvrir : python scripts/search_arxiv.py "votre sujet" --sort date --max 10
  2. Évaluer l'impact : curl -s "https://api.semanticscholar.org/graph/v1/paper/arXiv:ID?fields=citationCount,influentialCitationCount"
  3. Lire le résumé : web_extract(urls=["https://arxiv.org/abs/ID"])
  4. Lire l'article complet : web_extract(urls=["https://arxiv.org/pdf/ID"])
  5. Trouver les travaux connexes : curl -s "https://api.semanticscholar.org/graph/v1/paper/arXiv:ID/references?fields=title,citationCount&limit=20"
  6. Obtenir des recommandations : POST vers le point de terminaison de recommandations Semantic Scholar
  7. Suivre les auteurs : curl -s "https://api.semanticscholar.org/graph/v1/author/search?query=NOM"

Limites de débit

APIDébitAuthentification
arXiv~1 requête / 3 secondesAucune nécessaire
Semantic Scholar1 requête / secondeAucune (100/s avec clé API)

Remarques

  • arXiv renvoie du XML Atom — utilisez le script d'aide ou l'extrait d'analyse pour une sortie propre
  • Semantic Scholar renvoie du JSON — passez-le par python3 -m json.tool pour une meilleure lisibilité
  • IDs arXiv : format ancien (hep-th/0601001) vs nouveau (2402.03300)
  • PDF : https://arxiv.org/pdf/{id} — Résumé : https://arxiv.org/abs/{id}
  • HTML (lorsqu'il est disponible) : https://arxiv.org/html/{id}
  • Pour le traitement local de PDF, voir la compétence ocr-and-documents

Gestion des versions

  • arxiv.org/abs/1706.03762 redirige toujours vers la dernière version
  • arxiv.org/abs/1706.03762v1 pointe vers une version spécifique et immuable
  • Lors de la génération de citations, conservez le suffixe de version que vous avez réellement lu pour éviter la dérive de citation (une version ultérieure peut modifier le contenu de manière substantielle)
  • Le champ <id> de l'API renvoie l'URL versionnée (par ex., http://arxiv.org/abs/1706.03762v7)

Articles retirés

Les articles peuvent être retirés après soumission. Dans ce cas :

  • Le champ <summary> contient un avis de retrait (cherchez "withdrawn" ou "retracted")
  • Les champs de métadonnées peuvent être incomplets
  • Vérifiez toujours le résumé avant de traiter un résultat comme un article valide

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 associés