honest-scholar meta-spec; realized in this repo (skills + CLI).
Sub-spec of 00-meta-spec.md. Builds on the asset substrate of sub-spec 4 §2 and feeds the experiment-backend contract (§3). Governed by the ⚑ agency (§2.1) and Understanding (§2.2) principles. Grounding: dataset-management-standards, dataset-tooling-mirror.
1. The dataset skill
One skill, verbs init | register | fetch | verify | mirror | audit. It is
upstream of the experiment backend: runs declare the datasets they need; the
skill materializes + verifies them; the id + version + sha256 fingerprint flows
into the backend’s provenance stamp (sub-spec 4 §3), so every result resolves to
exact bytes.
Agency & Understanding: the skill fetches, verifies, and reports; it never
decides which dataset is appropriate for a claim (a scientific judgement) — that
is the researcher’s, and a
defend methodology/claim probe may ask them to
justify the choice.
2. Registry — datasets.yml
A thin, repo-owned YAML manifest (not DVC’s machinery — its dependency mass
fails the light posture). Field names map onto schema.org / Croissant +
DataCite so an entry can ingest and emit a Croissant file (venue-mandated
at NeurIPS D&B). Extends the substrate base record (sub-spec 4 §2.1) with:
tier— A/B/Cretrievalrecipe —kind: http | doi | openml | git-lfs | manual, url/params, or acquisitioninstructionsdatasheet— path/URL to the Gebru-style datasheet (required; may be “N/A + reason”)sensitivity— flag (required if PII/confidential)
id, version, tier, license, redistributable, access, files[](path + sha256), datasheet; source/retrieval
for B, instructions for C.
3. Storage tiers — (redistribution license × access automation)
Hard rule (from the standards digest): a private mirror is storage, not a
redistribution grant. Tier and
redistributable are set by the license, never
by mirror presence; the skill refuses to promote to Tier A on mirror existence and
never surfaces mirror contents publicly. Basis: FAIR A1.2/A2 (metadata stays open
even when bytes are gated) supports Tier C.
Tier assignment is proposed by the skill (from license + size + access) but
confirmed by the human on register (a license/tier judgement).
4. Retrieval, mirror & fixity
Uses the substrate mechanism (sub-spec 4 §2.3–2.4): the resolution chain (cache → private mirror → public source → gated instructions), SHA-256 authoritative in the manifest with rclone’s native hash only as a transport check, content-addressed mirror keys (sha256/<hash>). Tier-B public fetch uses pooch (3 pure-Python
deps; HTTP/FTP/SFTP + doi:); Tier-A uses git/LFS; Tier-C is instruct-drop-verify.
huggingface_hub is used opportunistically for HF-hosted/gated datasets.
5. Provenance → evidence & datasheets
- Provenance: on each run, the backend’s stamp copies
id + version + sha256per dataset (sub-spec 4 §3);verifygates a run as valid before its evidence counts. - Datasheet (Gebru et al.) per entry closes the loop with the rigor kit’s
per-dataset datasheets (meta-spec §3.5) and is a
defendmethodologytarget (“what are this dataset’s known biases / collection limits?”). - Croissant emit/ingest is the interop seam; DataCite
citation+ DOI make a dataset citable (and DOI-archivable at Zenodo/Dryad iff redistributable).
6. Plugin vs. consumer
- Plugin: the
datasetskill; thedatasets.ymlschema + loader/validator; tier policy; the Tier-B (pooch) / Tier-A (git-LFS) / Tier-C (drop-verify) fetchers; Croissant import/export; datasheet template; the substrate resolution chain + rclone mirror. Deps:pyyaml+pooch(+ substrate rclone). Not in the publishedmononetwheel. - Consumer: the
datasets.ymlentries + SHA-256 checksums; Tier-A blobs; rclone remote config (untracked/CI); the gitignored cache; any heavy loaders (datasets, pandas) — kept out of the plugin.
7. Open items
- Mirror hash — settled in sub-spec 4: SHA-256 authoritative, rclone native hash as transport check only.
- Croissant version — target the current MLCommons spec; treat as export format, registry is the superset source of truth.
.datasets-cache/vs.honest-scholar/— confirm cache directory placement with the meta-spec.honest-scholar/decision.