[
  {
    "case_id": "catalog_alt_text",
    "title": "Generador de texto alternativo para catálogo",
    "capabilities": ["vision_language"],
    "chapter_refs": [1, 2, 4, 10],
    "user_story": "El equipo de contenidos quiere generar alt text para imágenes públicas de producto.",
    "modalities": ["image", "text"],
    "evidence_artifacts": ["request_contract", "golden_set", "slice_eval"],
    "controls_present": ["source_license_check"],
    "risks": {"pii": false, "secret": false, "untrusted_content": false, "external_action": false, "licensed_source": true},
    "quality": {"grounding": 0.86, "extraction": 0.84, "temporal": 1.0, "user_value": 0.82},
    "ops": {"latency_ms": 850, "cost_units": 1.3, "failure_rate": 0.01},
    "expected_decision": "pass"
  },
  {
    "case_id": "invoice_table_extraction",
    "title": "Extracción de importes en facturas escaneadas",
    "capabilities": ["document_ai"],
    "chapter_refs": [2, 5, 10, 11],
    "user_story": "Administración quiere extraer total, NIF y fecha de facturas escaneadas.",
    "modalities": ["pdf", "ocr", "table"],
    "evidence_artifacts": ["schema_contract", "source_page_refs", "table_eval"],
    "controls_present": ["redaction_plan", "retention_policy"],
    "risks": {"pii": true, "secret": false, "untrusted_content": false, "external_action": false, "licensed_source": false},
    "quality": {"grounding": 0.82, "extraction": 0.80, "temporal": 1.0, "user_value": 0.79},
    "ops": {"latency_ms": 1650, "cost_units": 4.3, "failure_rate": 0.025},
    "expected_decision": "pass"
  },
  {
    "case_id": "policy_rag_with_internal_slides",
    "title": "RAG multimodal sobre políticas con slides internas",
    "capabilities": ["multimodal_rag", "risk_ops"],
    "chapter_refs": [3, 5, 6, 10, 11],
    "user_story": "Soporte quiere responder dudas de becas usando PDFs públicos y capturas de slides internas.",
    "modalities": ["pdf", "image", "ocr", "text"],
    "evidence_artifacts": ["retrieval_manifest", "source_acl_check", "grounded_answer_eval", "redaction_plan", "policy_decision", "artifact_lineage"],
    "controls_present": ["source_license_check", "taint_label", "redaction_plan", "retention_policy"],
    "risks": {"pii": false, "secret": false, "untrusted_content": true, "external_action": false, "licensed_source": true},
    "quality": {"grounding": 0.81, "extraction": 0.76, "temporal": 1.0, "user_value": 0.78},
    "ops": {"latency_ms": 2000, "cost_units": 6.7, "failure_rate": 0.03},
    "expected_decision": "pass"
  },
  {
    "case_id": "voice_appointment_agent",
    "title": "Asistente de voz para cambiar citas",
    "capabilities": ["realtime_voice"],
    "chapter_refs": [7, 9, 10, 11],
    "user_story": "El contact center quiere que un asistente confirme identidad, detecte intención y proponga cambio de cita.",
    "modalities": ["audio", "transcript", "tool_call"],
    "evidence_artifacts": ["turn_log", "slot_eval", "latency_trace"],
    "controls_present": ["redaction_plan", "retention_policy", "approval_gate"],
    "risks": {"pii": true, "secret": false, "untrusted_content": false, "external_action": false, "licensed_source": false},
    "quality": {"grounding": 0.80, "extraction": 0.78, "temporal": 0.86, "user_value": 0.83},
    "ops": {"latency_ms": 1700, "cost_units": 4.6, "failure_rate": 0.02},
    "expected_decision": "pass"
  },
  {
    "case_id": "parking_video_event_triage",
    "title": "Vídeo para detectar accesos a parking",
    "capabilities": ["video_temporal", "risk_ops"],
    "chapter_refs": [2, 8, 10, 11],
    "user_story": "Operaciones quiere detectar eventos de acceso sin conservar matrículas ni caras.",
    "modalities": ["video", "frames", "event_timeline"],
    "evidence_artifacts": ["frame_sampling_policy", "temporal_eval", "event_timeline", "redaction_plan", "artifact_lineage"],
    "controls_present": ["retention_policy", "redaction_plan"],
    "risks": {"pii": true, "secret": false, "untrusted_content": false, "external_action": false, "licensed_source": false},
    "quality": {"grounding": 0.78, "extraction": 0.76, "temporal": 0.77, "user_value": 0.76},
    "ops": {"latency_ms": 2150, "cost_units": 8.1, "failure_rate": 0.035},
    "expected_decision": "review"
  },
  {
    "case_id": "computer_use_claim_submission",
    "title": "Agente que rellena un formulario externo con captura de pantalla",
    "capabilities": ["computer_use", "risk_ops"],
    "chapter_refs": [9, 10, 11],
    "user_story": "Un agente debe copiar datos de una incidencia y enviarlos a un portal de proveedor.",
    "modalities": ["screenshot", "dom", "tool_call"],
    "evidence_artifacts": ["approval_card", "tool_trace", "egress_policy", "policy_decision", "artifact_lineage", "redaction_plan"],
    "controls_present": ["taint_label", "secret_scan", "approval_gate", "egress_policy", "redaction_plan", "retention_policy"],
    "risks": {"pii": true, "secret": false, "untrusted_content": true, "external_action": true, "licensed_source": false},
    "quality": {"grounding": 0.80, "extraction": 0.82, "temporal": 1.0, "user_value": 0.82},
    "ops": {"latency_ms": 1750, "cost_units": 6.0, "failure_rate": 0.018},
    "expected_decision": "pass"
  },
  {
    "case_id": "visual_search_catalog",
    "title": "Buscador visual para documentación de producto",
    "capabilities": ["vision_language", "multimodal_rag"],
    "chapter_refs": [2, 3, 4, 6, 10],
    "user_story": "El equipo técnico quiere buscar imágenes de piezas y recuperar manuales relacionados.",
    "modalities": ["image", "embedding", "text", "pdf"],
    "evidence_artifacts": ["request_contract", "golden_set", "slice_eval", "retrieval_manifest", "source_acl_check", "grounded_answer_eval"],
    "controls_present": ["source_license_check", "taint_label"],
    "risks": {"pii": false, "secret": false, "untrusted_content": true, "external_action": false, "licensed_source": true},
    "quality": {"grounding": 0.82, "extraction": 0.80, "temporal": 1.0, "user_value": 0.81},
    "ops": {"latency_ms": 1800, "cost_units": 5.4, "failure_rate": 0.02},
    "expected_decision": "pass"
  },
  {
    "case_id": "student_multimodal_helpdesk",
    "title": "Helpdesk multimodal para alumnado",
    "capabilities": ["document_ai", "multimodal_rag", "realtime_voice", "risk_ops"],
    "chapter_refs": [5, 6, 7, 10, 11],
    "user_story": "Un sistema recibe PDFs, audios y capturas para responder trámites académicos.",
    "modalities": ["pdf", "audio", "image", "ocr", "rag"],
    "evidence_artifacts": ["schema_contract", "source_page_refs", "table_eval", "retrieval_manifest", "source_acl_check", "grounded_answer_eval", "turn_log", "slot_eval", "latency_trace", "redaction_plan", "policy_decision", "artifact_lineage"],
    "controls_present": ["redaction_plan", "retention_policy", "taint_label", "source_license_check"],
    "risks": {"pii": true, "secret": false, "untrusted_content": true, "external_action": false, "licensed_source": false},
    "quality": {"grounding": 0.80, "extraction": 0.78, "temporal": 0.78, "user_value": 0.84},
    "ops": {"latency_ms": 2100, "cost_units": 8.6, "failure_rate": 0.033},
    "expected_decision": "pass"
  }
]
