hf-sync — Local HF Dataset Mirror Sync
graph.jsonld を持つ research repo の HF dataset mirror を、手元から 1 コマンドで同期する skill。jsonld-knowledge-graph で encode した graph を HF Datasets 上の mirror に反映する operational layer。
When to use
release-doiの Phase 5 末尾、gh release create後の HF mirror 反映- Graph に手を加えた直後の ad-hoc resync(release を切らずに HF だけ更新したい)
- HF token を rotate した後の動作確認
When NOT to use
graph.jsonldを持たない repo(HF mirror が存在しない)- HF dataset 自体がまだ作成されていない project(先に
hf repo create <Owner/dataset> --repo-type datasetで repo を作る) - HF clone dir (
$HF_CLONE_BASE/<dataset>/) が存在しない(先にmkdir -p ~/MyAI_Lab/hf-datasets/<dataset>で staging dir を作る。HF 側の README.md と過去 snapshot がここに置かれる) hf loginしていない / token が write scope を持たない(先にhf auth loginで token を入れ直す)
Execution
bash ~/.claude/skills/hf-sync/sync.sh $ARGUMENTS
$ARGUMENTS は HF dataset の repo ID(例: Shimo4228/agent-knowledge-cycle)。
cwd 制約: graph.jsonld が存在する project root で実行する。
What it does
- cwd の
graph.jsonldの structural sanity check(@graphが array で non-empty) - Source の
graph.jsonldを HF clone dir ($HF_CLONE_BASE/<dataset>/, default~/MyAI_Lab/hf-datasets/<dataset>/) にコピー - HF clone 側で
jq -c '.["@graph"][]' graph.jsonld > graph.jsonlを生成(HF Dataset Viewer 用 1 node 1 行 flatten) 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- Success log + HF URL を表示
Source repo は汚さない: graph.jsonl は HF clone 側でだけ生成・存在し、source の git tree には残らない。
Auth は ~/.cache/huggingface/token(hf login で保存されたもの)を hf CLI が自動で読む。
Repo mapping
各 project の GitHub repo と HF dataset の対応は project ごとに違う。Skill 本体には embed しない(portability 保持)。Mapping は project の CLAUDE.md または同等の場所に記録しておき、起動時にコピペで引数に渡す。
shimo4228 系の現行 mapping は ~/MyAI_Lab/shimo4228/CLAUDE.md の "HF Datasets mirror" section を参照。
Related skills
jsonld-knowledge-graph—graph.jsonldの 設計 layer。本 skill はその operational mirror に対応release-doi— Zenodo DOI release flow。Phase 5 末尾で本 skill を呼ぶ
Failure modes
graph.jsonldnot found in cwd → project root に移動してから起動- HF clone dir not found →
mkdir -p $HF_CLONE_BASE/<dataset>/で staging dir を作成 (もし HF 側に既存ファイルがあれば手動で取得して置く、またはhf download <Owner/dataset> --local-dir <hf-clone>で初期 sync) @graphnot array / empty →graph.jsonldの構造を見直す(jsonld-knowledge-graphskill 参照)hf upload401 / 403 →hf auth whoamiで token 確認。write scope を持っていなければ HF settings で新規発行 →hf auth login- HF dataset repo が存在しない (404) → 先に
hf repo create <Owner/dataset> --repo-type datasetで repo を作る