hf-sync — Synchronisation miroir locale de datasets HF Datasets
Skill pour synchroniser en une commande un miroir de dataset HF Datasets depuis un dépôt de recherche contenant un graph.jsonld. Couche opérationnelle pour refléter vers un miroir sur HF Datasets le graphe encodé avec jsonld-knowledge-graph.
Quand l'utiliser
- À la fin de la Phase 5 de
release-doi, aprèsgh release create, pour refléter le graphe vers HF - Pour une resynchronisation ad-hoc juste après avoir modifié le graphe (sans faire de release, on veut juste mettre à jour HF)
- Pour vérifier le fonctionnement après une rotation du jeton HF
Quand NE PAS l'utiliser
- Si le dépôt ne possède pas de
graph.jsonld(pas de miroir HF) - Si le dataset HF n'a pas encore été créé (il faut d'abord créer le dépôt avec
hf repo create <Owner/dataset> --repo-type dataset) - Si le répertoire clone HF (
$HF_CLONE_BASE/<dataset>/) n'existe pas (créer d'abord le répertoire de staging avecmkdir -p ~/MyAI_Lab/hf-datasets/<dataset>. LeREADME.mdet les précédents snapshots côté HF y seront placés) - Si vous n'êtes pas authentifié avec
hf loginou si votre jeton n'a pas les droits d'écriture (réauthentifiez-vous avechf auth login)
Exécution
bash ~/.claude/skills/hf-sync/sync.sh $ARGUMENTS
$ARGUMENTS est l'ID du dépôt du dataset HF (ex : Shimo4228/agent-knowledge-cycle).
Contrainte de cwd : exécuter depuis la racine du projet où se trouve graph.jsonld.
Ce qu'il fait
- Vérification structurelle de
graph.jsonlddans le cwd (@graphdoit être un tableau non vide) - Copie du
graph.jsonldsource vers le répertoire clone HF ($HF_CLONE_BASE/<dataset>/, par défaut~/MyAI_Lab/hf-datasets/<dataset>/) - Génération de
graph.jsonl(aplatissement 1 nœud par ligne pour le visualiseur HF Datasets) viajq -c '.["@graph"][]' graph.jsonld > graph.jsonldans le clone HF hf upload <Owner/dataset> <hf-clone>/graph.jsonld graph.jsonld --repo-type datasethf upload <Owner/dataset> <hf-clone>/graph.jsonl graph.jsonl --repo-type dataset- Affichage du journal de succès + URL HF
Le dépôt source n'est pas modifié : graph.jsonl est uniquement généré et conservé dans le clone HF, il ne reste pas dans l'arbre git source.
L'authentification repose sur ~/.cache/huggingface/token (enregistré par hf login) que la CLI hf lit automatiquement.
Correspondance des dépôts
La correspondance entre chaque dépôt GitHub et le dataset HF associé varie d'un projet à l'autre. Elle n'est pas intégrée au skill lui-même (pour rester portable). Cette correspondance est enregistrée dans le CLAUDE.md du projet ou un endroit équivalent, et passée en argument lors de l'exécution.
Pour les projets shimo4228, la correspondance actuelle se trouve dans la section "HF Datasets mirror" du fichier ~/MyAI_Lab/shimo4228/CLAUDE.md.
Skills associés
jsonld-knowledge-graph— couche de conception dugraph.jsonld. Ce skill correspond à son miroir opérationnelrelease-doi— flux de publication DOI via Zenodo. Appelle ce skill à la fin de la Phase 5
Modes d'échec
graph.jsonldintrouvable dans le cwd → déplacez-vous à la racine du projet avant de lancer- Répertoire clone HF introuvable → créez le répertoire de staging avec
mkdir -p $HF_CLONE_BASE/<dataset>/(si HF contient déjà des fichiers, récupérez-les et placez-les manuellement, ou faites une synchronisation initiale avechf download <Owner/dataset> --local-dir <hf-clone>) @graphn'est pas un tableau ou est vide → vérifiez la structure degraph.jsonld(consultez le skilljsonld-knowledge-graph)hf uploadretourne 401 / 403 → vérifiez votre jeton avechf auth whoami. S'il n'a pas les droits d'écriture, générez un nouveau jeton dans les paramètres HF puis exécutezhf auth login- Le dépôt HF n'existe pas (404) → créez-le d'abord avec
hf repo create <Owner/dataset> --repo-type dataset