hf-sync — ローカル HF データセットミラー同期
graph.jsonld を持つ研究リポジトリの HF データセットミラーを、手元から1コマンドで同期するスキル。jsonld-knowledge-graph でエンコードしたグラフを HF Datasets 上のミラーに反映する運用レイヤー。
使用するタイミング
release-doiの Phase 5 末尾、gh release create後の HF ミラー反映- グラフに手を加えた直後のアドホックな再同期(リリースを切らずに HF だけ更新したい場合)
- HF トークンをローテートした後の動作確認
使用しないタイミング
graph.jsonldを持たないリポジトリ(HF ミラーが存在しない)- HF データセット自体がまだ作成されていないプロジェクト(先に
hf repo create <Owner/dataset> --repo-type datasetでリポジトリを作成する) - HF クローンディレクトリ(
$HF_CLONE_BASE/<dataset>/)が存在しない(先にmkdir -p ~/MyAI_Lab/hf-datasets/<dataset>で staging ディレクトリを作成する。HF 側の README.md と過去のスナップショットがここに配置される) hf loginしていない / トークンが write スコープを持っていない(先にhf auth loginでトークンを再設定する)
実行方法
bash ~/.claude/skills/hf-sync/sync.sh $ARGUMENTS
$ARGUMENTS は HF データセットのリポジトリ ID(例:Shimo4228/agent-knowledge-cycle)。
カレントワーキングディレクトリ制約: graph.jsonld が存在するプロジェクトルートで実行する。
処理内容
- cwd の
graph.jsonldの構造的健全性チェック(@graphが配列かつ空でない) - ソースの
graph.jsonldを HF クローンディレクトリ($HF_CLONE_BASE/<dataset>/、デフォルト~/MyAI_Lab/hf-datasets/<dataset>/)にコピー - HF クローン側で
jq -c '.["@graph"][]' graph.jsonld > graph.jsonlを生成(HF Dataset Viewer 用、1ノード1行のフラット化) 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- 成功ログと HF URL を表示
ソースリポジトリは汚さない: graph.jsonl は HF クローン側でのみ生成・存在し、ソースの git ツリーには残らない。
認証は ~/.cache/huggingface/token(hf login で保存されたもの)を hf CLI が自動で読み取る。
リポジトリマッピング
各プロジェクトの GitHub リポジトリと HF データセットの対応はプロジェクトごとに異なる。スキル本体には埋め込まない(移植性を維持)。マッピングはプロジェクトの CLAUDE.md または同等の場所に記録し、起動時にコピー&ペーストで引数として渡す。
shimo4228 系の現在のマッピングは ~/MyAI_Lab/shimo4228/CLAUDE.md の「HF Datasets mirror」セクションを参照。
関連スキル
jsonld-knowledge-graph—graph.jsonldの設計レイヤー。本スキルはその運用ミラーに対応release-doi— Zenodo DOI リリースフロー。Phase 5 末尾で本スキルを呼び出す
障害モード
graph.jsonldが cwd に見つからない → プロジェクトルートに移動してから起動- HF クローンディレクトリが見つからない →
mkdir -p $HF_CLONE_BASE/<dataset>/で staging ディレクトリを作成(HF 側に既存ファイルがあれば手動で取得して配置するか、hf download <Owner/dataset> --local-dir <hf-clone>で初期同期) @graphが配列でない / 空 →graph.jsonldの構造を見直す(jsonld-knowledge-graphスキル参照)hf uploadが 401 / 403 を返す →hf auth whoamiでトークンを確認。write スコープを持っていなければ HF 設定で新規発行 →hf auth login- HF データセットリポジトリが存在しない (404) → 先に
hf repo create <Owner/dataset> --repo-type datasetでリポジトリを作成