{
  "schema": "DAT009_LAB_MODEL_CONTRACT_v1",
  "fixture": "support_catalog_hybrid_retrieval",
  "objective": "Build and falsify one bounded pgvector + PostgreSQL FTS hybrid retrieval pipeline while separating database observations from relevance judgment.",
  "required_dimensions": [
    "exact_baseline",
    "ann_tradeoff",
    "metric_contract",
    "hybrid_fusion",
    "filter_boundary",
    "embedding_provenance"
  ],
  "starter_decisions_left_open": [
    "distance_metric",
    "ann_index_family",
    "ann_query_parameter",
    "fusion_parameter_or_method",
    "acceptance_decision"
  ],
  "must_capture": [
    "embedding_version",
    "query_vector_dimension",
    "distance_metric",
    "distance_operator",
    "index_operator_class",
    "exact_vector_top_k",
    "ann_top_k",
    "recall_at_k_numerator_denominator",
    "lexical_rank",
    "fusion_method_and_parameters",
    "fused_rank",
    "filter_exact_baseline",
    "filter_ann_observation",
    "latency_context",
    "failure_probe",
    "runtime_binding",
    "runtime_receipt_provenance",
    "changed_context_transfer",
    "residual_limit",
    "cleanup_status"
  ],
  "must_not_claim": [
    "nearest_vector_is_semantic_truth",
    "hnsw_universally_best",
    "ann_has_perfect_recall",
    "fusion_rule_universally_optimal",
    "pgvector_validates_embedding_quality",
    "runtime_evidence_without_execution"
  ],
  "safety": "disposable loopback PostgreSQL resources only; no production database or external embedding service",
  "runtime_execution_gate": {
    "runner": "learner/src/run_local_lab.py",
    "confirmation_env": "MAKNOW_DAT009_CONFIRM_DISPOSABLE=YES",
    "database_url_env": "MAKNOW_DAT009_DATABASE_URL",
    "database_name_prefix": "maknow_dat009_",
    "allowed_hosts": [
      "localhost",
      "127.0.0.1",
      "::1"
    ],
    "postgresql_major": "18",
    "pgvector_version": "0.8.6",
    "dependency_installation_forbidden": true,
    "submission_required": true,
    "cleanup_required": true,
    "runtime_claim_requires": "real PostgreSQL 18 + pgvector 0.8.6 execution, required evidence markers, receipt hashes, and cleanup success"
  }
}
