managing-huggingface-assets · git:20261024.3106a82 · 2026-10-24 · sha256 6d1042fae7bcd9b2

managing-huggingface-assets git:20261024.3106a82A

Immutable. This exact content never changes and is served at /api/v1/blob/6d1042fae7bcd9b2.

---
name: managing-huggingface-assets
plugin: dev-utils
description: >
  Sets up, downloads from and uploads to HuggingFace repositories with credential hygiene
  and exponential backoff. Use to validate HuggingFace credentials and dataset structure,
  download files, snapshots or model weights, or upload files, folders, learning snapshots
  and JSONL traces. Not for searching the Hub or other storage providers.
allowed-tools: Bash, Read, Write
---

# Managing HuggingFace Assets (`managing-huggingface-assets`)

Three modes share one credential library (`scripts/hf_config.py`).

## Contents

- [Constraints](#constraints) • [Quick Start](#quick-start) • [Modes](#modes) • [Workflow](#workflow) • [Verification](#verification) • [References](#references)

## Constraints

- **Secret hygiene**: `HUGGING_FACE_TOKEN` comes only from the shell environment; never write it to `.env`, Git, arguments or logs.
- **Backoff**: retry HTTP 429/503 with exponential backoff, up to 5 attempts, then report the failure.
- **Init first**: uploads and downloads require a passing `init` validation; halt if credentials are invalid.
- **Remote layout**: datasets use `lineage/`, `data/` and `metadata/`.

## Dependencies

Requires Python 3.8+ (standard library only).

## Quick Start

```bash
python3 scripts/hf_init.py --validate-only
python3 scripts/hf_download.py --filename data/soul_traces.jsonl --local-dir ./local_data
python3 scripts/hf_upload.py --file lineage/sealed_trace.md --remote-path lineage/sealed_trace.md
```

## Modes

| Mode | Script | Use for | Reference |
|---|---|---|---|
| `init` | `scripts/hf_init.py` | Validate env vars, test connectivity, create dataset structure | [init.md](references/init.md) |
| `download` | `scripts/hf_download.py` | Files, folder snapshots, model weights | [download.md](references/download.md) |
| `upload` | `scripts/hf_upload.py` | Files, folders, soul snapshots, JSONL appends | [upload.md](references/upload.md) |

## Workflow

1. Pick the mode from the table and read its reference.
2. Run `init --validate-only` when credentials have not been verified this session.
3. Run the mode's script; follow [fallback-tree.md](references/fallback-tree.md) on any failure.
4. Confirm the result: files present and non-empty (download), or `HFUploadResult.success` (upload).

## Verification

```bash
python3 scripts/hf_config.py
```

Check the mode's section in [acceptance-criteria.md](references/acceptance-criteria.md).

## References

- [init.md](references/init.md) • [download.md](references/download.md) • [upload.md](references/upload.md)
- [acceptance-criteria.md](references/acceptance-criteria.md) • [fallback-tree.md](references/fallback-tree.md)