Migration identity#
- Canonical identifier:
S02.1(GitHub issue type: subtask). - Legacy identifier:
C02.1(retained asold_identifier). - Parent epic:
E02. - Milestone:
M1 — IntentGuard Weekend MVP.
Objective#
Resolve an immutable PolyAI/banking77 revision and load it through one offline data boundary.
Rationale#
Dataset identity must be verifiable before any benchmark or split claim is valid.
Parent identifier#
E02.
Source task#
T-002.
Traceability#
Primary: T-002. Secondary: FR-001, AC-001.
Prerequisites#
U01 complete; network or verified cache available; upstream revision and license verified.
Likely files#
configs/default.toml, src/intentguard/data.py, scripts/prepare_data.py, tests/unit/test_data.py.
Implementation boundary#
Load BANKING77 by explicit revision; no substitute corpus or training behavior.
MUST scope#
Revision resolution, loader configuration, offline/cache error handling, and raw schema validation.
Explicit non-goals#
Synthetic fallback as strict data, augmentation, external OOD data, or model tokenization.
Acceptance criteria#
Loader records the exact revision and source, validates required fields, and fails with actionable diagnostics when neither source nor verified cache is usable.
Validation commands#
make data && uv run pytest tests/unit/test_data.py -q.
Expected evidence#
Resolved revision, source/license metadata, successful load summary, and deterministic failure tests.
Fallback and status consequence#
Verified cache is Implemented; synthetic data is Mocked/Partial and fails strict MVP.
Stop condition#
Stop for unresolved revision, incompatible schema, license conflict, or unverified cache.
Definition of ready#
U01 is done and revision verification can be performed without test leakage.
Definition of done#
The pinned loader passes and provenance contains an immutable revision.
Labels#
type:subtask, priority:MUST, area:data
Estimate#
0.5 hour.