[
  {
    "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.84, "extraction": 0.82, "temporal": 1.0, "user_value": 0.80},
    "ops": {"latency_ms": 900, "cost_units": 1.4, "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"],
    "controls_present": ["redaction_plan", "retention_policy"],
    "risks": {"pii": true, "secret": false, "untrusted_content": false, "external_action": false, "licensed_source": false},
    "quality": {"grounding": 0.77, "extraction": 0.64, "temporal": 1.0, "user_value": 0.78},
    "ops": {"latency_ms": 1800, "cost_units": 4.8, "failure_rate": 0.035},
    "expected_decision": "review"
  },
  {
    "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", "grounded_answer_eval", "redaction_plan"],
    "controls_present": ["source_license_check", "taint_label"],
    "risks": {"pii": false, "secret": true, "untrusted_content": true, "external_action": false, "licensed_source": true},
    "quality": {"grounding": 0.69, "extraction": 0.74, "temporal": 1.0, "user_value": 0.76},
    "ops": {"latency_ms": 2100, "cost_units": 7.2, "failure_rate": 0.045},
    "expected_decision": "block"
  },
  {
    "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"],
    "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.76, "extraction": 0.73, "temporal": 0.82, "user_value": 0.81},
    "ops": {"latency_ms": 2600, "cost_units": 5.1, "failure_rate": 0.025},
    "expected_decision": "review"
  },
  {
    "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", "event_timeline", "redaction_plan"],
    "controls_present": ["retention_policy"],
    "risks": {"pii": true, "secret": false, "untrusted_content": false, "external_action": false, "licensed_source": false},
    "quality": {"grounding": 0.71, "extraction": 0.70, "temporal": 0.58, "user_value": 0.74},
    "ops": {"latency_ms": 3100, "cost_units": 8.8, "failure_rate": 0.055},
    "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": ["tool_trace", "policy_decision"],
    "controls_present": ["taint_label", "secret_scan"],
    "risks": {"pii": true, "secret": true, "untrusted_content": true, "external_action": true, "licensed_source": false},
    "quality": {"grounding": 0.74, "extraction": 0.79, "temporal": 1.0, "user_value": 0.80},
    "ops": {"latency_ms": 1700, "cost_units": 6.2, "failure_rate": 0.02},
    "expected_decision": "block"
  },
  {
    "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.80, "extraction": 0.78, "temporal": 1.0, "user_value": 0.79},
    "ops": {"latency_ms": 1900, "cost_units": 5.9, "failure_rate": 0.025},
    "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", "retrieval_manifest", "turn_log", "redaction_plan"],
    "controls_present": ["redaction_plan", "retention_policy", "taint_label"],
    "risks": {"pii": true, "secret": false, "untrusted_content": true, "external_action": false, "licensed_source": false},
    "quality": {"grounding": 0.67, "extraction": 0.69, "temporal": 0.72, "user_value": 0.82},
    "ops": {"latency_ms": 2400, "cost_units": 9.4, "failure_rate": 0.052},
    "expected_decision": "review"
  }
]
