{
  "lab_id": "DAT017-LAB1",
  "objective": "Prove bounded idempotent receipt under redelivery and an explicit stale-version rule.",
  "critical_dimensions": [
    "event_boundary",
    "stable_receipt_key",
    "idempotent_effect",
    "atomic_receipt",
    "ordering_limit"
  ],
  "required_evidence": [
    "positive first delivery",
    "duplicate redelivery with changed transport id",
    "non-atomic crash-window negative probe",
    "stale lower-version negative probe",
    "evidence completeness probe",
    "changed-context transfer",
    "residual risk statement"
  ],
  "runtime_rule": "Only the bundled disposable in-memory fixture may be observed. External network, broker, cloud service, production data, and production behavior are out of scope.",
  "decision_rule": "Runner writes raw local observations only; learner supplies final bounded reliability decision.",
  "safety": "Synthetic local data only; no external network, broker, cloud service or production credentials.",
  "stable_key_payload_rule": "Redelivery under the same event_key must preserve business_entity, version, and stock_delta. Divergent payload under an existing receipt key is an idempotency-key collision and must not be treated as a valid duplicate.",
  "probe_semantics_rule": "All five named probe IDs are contract data and must execute exactly once after complete learner predictions.",
  "prediction_completeness_rule": "All five required case predictions must be present before runtime execution.",
  "provenance_rule": "Local observations must bind baseline state, probe cases, golden policy, requirements, toolchain policy, event fixture, static preflight, and learner decision by SHA-256.",
  "crash_window_evidence_rule": "Crash-window observations must be computed from fixture state; hard-coded contradictory observation values are invalid."
}
