IntentGuard

S02.3 — Integrate make data and enforce the data contract

Planning / historicaltaskdelivery

Historical

Planning material. It summarizes and links to the authoritative specification and the current measured state — it does not replace either, and it is not current engineering truth.

Migration identity#

  • Canonical identifier: S02.3 (GitHub issue type: subtask).
  • Legacy identifier: C02.3 (retained as old_identifier).
  • Parent epic: E02.
  • Milestone: M1 — IntentGuard Weekend MVP.

Objective#

Wire the data script to the Make contract and add acceptance tests that fail on provenance, split, schema, or label drift.

Rationale#

The data boundary needs an executable, regression-resistant acceptance gate.

Parent identifier#

E02.

Source task#

T-002.

Traceability#

Primary: AC-001. Secondary: FR-001, FR-010.

Prerequisites#

C02.1 and C02.2 complete with stable outputs.

Likely files#

Makefile, scripts/prepare_data.py, tests/contract/test_data_contract.py, data/README.md.

Implementation boundary#

Command orchestration and contract tests; do not train a tokenizer or model.

MUST scope#

Idempotent command, actionable errors, output validation, and exact acceptance assertions.

Explicit non-goals#

Network retries platform, data version server, synthetic success path, or benchmarks.

Acceptance criteria#

make data exits zero only for a validated pinned dataset and the contract test catches wrong counts, labels, overlap, revision, or fingerprints.

Validation commands#

make data && uv run pytest tests/contract/test_data_contract.py -q.

Expected evidence#

Command output, provenance file, passing positive tests, and controlled negative-test failures.

Fallback and status consequence#

Cached execution is valid only with verified provenance; a dummy success makes AC-001 fail.

Stop condition#

Stop if the command can pass without validated outputs or if tests depend on uncontrolled network state.

Definition of ready#

Data output schema and paths are frozen.

Definition of done#

The command and contract suite establish AC-001 with reproducible evidence.

Labels#

type:subtask, priority:MUST, area:data

Estimate#

0.75 hour.

Related in repository

Open in full graph →
DOCUMENTED_BYDOCUMENTED_BY — source: docs/backlog/tasks/C02.3-data-command-contract-tests.md § S02.3 — Integrate make data and enforce the data contractREFERENCESREFERENCES — source: docs/backlog/tasks/C02.3-data-command-contract-tests.mdREFERENCESREFERENCES — source: docs/backlog/tasks/C02.3-data-command-contract-tests.mdREFERENCESREFERENCES — source: docs/backlog/tasks/C02.3-data-command-contract-tests.mdREFERENCESREFERENCES — source: docs/backlog/tasks/C02.3-data-command-contract-tests.mdREFERENCESREFERENCES — source: docs/backlog/tasks/C02.3-data-command-contract-tests.mdREFERENCESREFERENCES — source: docs/backlog/tasks/C02.3-data-command-contract-tests.mdPART_OF — source: docs/backlog/TRACEABILITY.md § Acceptance criteriaPART_OF — source: docs/backlog/TRACEABILITY.md § Acceptance criteriaREFERENCES — source: docs/backlog/tasks/C02.3-data-command-contract-tests.md § TraceabilityREFERENCES — source: docs/backlog/tasks/C02.3-data-command-contract-tests.md § TraceabilityREFERENCES — source: docs/backlog/tasks/C02.3-data-command-contract-tests.md § TraceabilitySATISFIES — source: docs/specification/docs/TRACEABILITY.md § Functional traceabilityREFERENCES — source: docs/backlog/umbrellas/U02-banking77-data-contract.md § TraceabilityREFERENCES — source: docs/backlog/umbrellas/U02-banking77-data-contract.md § TraceabilityREFERENCES — source: docs/backlog/umbrellas/U02-banking77-data-contract.md § TraceabilityCURRENTdocument: S02.3 — Integrate make data and enforce the data contractS02.3task: S02.3AC-001 — Data contractacceptance-criterion: AC-001 — Data contractE02epic: E02FR-001 — Dataset prepara…requirement: FR-001 — Dataset preparationFR-010 — Reproducible co…requirement: FR-010 — Reproducible commandsT-002 — Pinned dataset p…task: T-002 — Pinned dataset provenance and validated splits
Hover an edge for its provenance · click a node to open it7 nodes · 16 edges