Ir al contenido

AssuranceProgram / OSCAL

✅ Estable

El AssuranceProgram es la fuente declarativa del sistema de gestión de riesgos Art. 9 del EU AI Act: contiene los riesgos del sistema, las medidas de control, la evaluación y la residualidad. Es lo que sei compile transforma en el assessment_plan.oscal.yaml — el contrato del gate de riesgo.

El AssuranceProgram no es un fichero separado: es la sección risk del manifiesto sei.yaml (junto con context.applicable_standards y system.potential_misuses). Un repositorio gobierna un solo sistema con un único sei.yaml. sei compile lee la sección risk directamente del manifiesto:

sei.yaml (extracto)
context:
applicable_standards: # estándares aplicables (el primero, prioritario)
- eu/pren-18228@2026
- iso/23894@2023
risk: # programa de aseguramiento Art.9 (sei compile lo lee de aquí)
appetite: { individual: MEDIUM, society: MEDIUM, organization: HIGH }
criteria: { scale: "5x5" }
overall_residual_criterion: HIGH
risks: [ ... ]
applicability: {}

Ver referencia/sei-yaml para la especificación completa del manifiesto.


La sección risk de sei.yaml tiene el siguiente esqueleto de primer nivel:

sei.yaml — sección risk (esqueleto)
risk:
appetite: # apetito por dimensión de impacto (umbral de evaluación 6.4.4)
individual: MEDIUM
society: MEDIUM
organization: HIGH
criteria: { scale: "5x5" } # escala de la matriz de análisis
overall_residual_criterion: HIGH # criterio del residual GLOBAL (prEN 18228 cl. 10)
risks: # riesgos concretos con su tratamiento y sus measures
applicability: {} # Declaración de Aplicabilidad de controles

El marco regulatorio se declara fuera de risk, en context.applicable_standards; el mal uso previsible, en system.potential_misuses. Ver referencia/sei-yaml.

Los ids canónicos de estándares que sei conformance admite con catálogo:

Id canónicoEstándar
eu/pren-18228@2026prEN 18228 — gestión de riesgos de IA (Art. 9)
iso/23894@2023ISO/IEC 23894 — gestión de riesgos de IA

Cada entrada de risk.risks sigue esta estructura (campos reales del manifiesto loan/sei.yaml):

sei.yaml — risk.risks (extracto real)
risk:
risks:
- id: risk.unfair-credit-exclusion
title: "Unfair Credit Exclusion of Minorities"
impact:
individual: HIGH
society: HIGH
organization: HIGH
likelihood: LIKELY # análisis ISO 6.4.3 — inherente LIKELY×HIGH = HIGH
treat:
- method: REDUCE
action: "Acotar la paridad demográfica de la decisión y el balance de clase por grupo."
controls: [eu/ai-act@2024#art-15]
residual_likelihood: UNLIKELY # objetivo 6.5: confirmado por el control bloqueante
measures:
- id: unfair-credit-exclusion
metric: demographic_parity_diff
constraint: "< 0.03"
severity: high
enforcement: gate # gate → bloqueante; audit → advisory
lifecycle: [validation]
article: "15"
frameworks: [eu/dora@2022#art-6]
control_tier: protective
standard_clauses:
- "eu/pren-18228@2026#9.2"
- "eu/pren-18228@2026#7"
- "iso/23894@2023#6.5"
inputs: { prediction: prediction, dimension: gender }
CampoDescripción
idIdentificador único del riesgo; sei reconstruct lo traza por git log -S
titleTítulo legible
impactImpacto por dimensión (individual, society, organization): NEGLIGIBLE / LOW / MEDIUM / HIGH / CRITICAL
likelihoodProbabilidad inherente antes del tratamiento: RARE / UNLIKELY / POSSIBLE / LIKELY / ALMOST_CERTAIN
treat[].methodMétodo de tratamiento: REDUCE / AVOID / TRANSFER / ACCEPT
treat[].residual_likelihoodProbabilidad objetivo post-tratamiento (ISO 23894 §6.5); el control bloqueante la confirma
CampoDescripción
idId de la medida; enlaza con los control_results del bundle
metricNombre de la métrica evaluada por el pipeline
constraintUmbral en notación < 0.03 / > 0.25 / >= 2
severityhigh / medium / low
enforcementgate → bloqueante (gate de riesgo rojo si falla); audit → advisory
lifecycleFases de ciclo de vida: data_preparation / validation
articleArtículo del EU AI Act que justifica la medida ("10", "15", etc.)
frameworksMarcos regulatorios adicionales (eu/dora@2022#art-9, etc.)
control_tierNivel jerárquico del control (prEN 18228 cl. 9.1.2): inherently_safe_design / protective / information
standard_clausesCláusulas que esta medida satisface; sei conformance las usa para proyectar la cobertura
inputsParámetros de entrada para la evaluación de la métrica

El bundle incluye, por riesgo, su procedencia de identificación:

ValorSignificado
declaredEl humano lo declaró directamente en la sección risk
proposed_by_kagEl KAG lo propuso; el humano lo curó y commitió
derived_from_gapEmergió de un data_gap (EU AI Act Art. 10(5))

La procedencia es parte del arco del registro vivo: sei reconstruct la muestra junto al commit ISO 23894 §6.4.2 que introdujo el riesgo. Ver metodologia/assurance-program-vivo.


sei compile cruza la sección risk de sei.yaml con el catálogo de controles y genera el assessment_plan.oscal.yaml (el contrato del gate que sei run ejecuta):

Ventana de terminal
sei compile --repo .
# sei compile: sei.yaml (sección risk) → assessment_plan (shared_data/policies/assessment_plan.oscal.yaml)

El assessment plan es el contrato ex-ante: define qué métricas se miden, con qué umbral y con qué severidad. sei run lo ejecuta contra el pipeline y escribe el bundle.json firmado con los resultados.

sei.yaml (sección risk) →(sei compile)→ shared_data/policies/assessment_plan.oscal.yaml
(sei run ejecuta)
.sei/bundle.json + .sig

Ver referencia/sei-cli para la referencia completa de subcomandos.


El AssuranceProgram (la sección risk) no vive solo: se apoya en otras secciones del mismo sei.yaml:

  • system.potential_misuses — mal uso razonablemente previsible (ISO 42001 §6.1.4 / EU AI Act Art. 9(2)(b)): usos no previstos pero anticipables. Cada entrada (id, description, addressed_by) enlaza con el/los riesgo(s) que lo atienden. sei impact cruza el mal uso con el registro de riesgos y señala el no atendido (advisory).
  • system (name, intended_purpose, organization, version, decisions, affected_persons, component_type) — la identidad y el alcance del sistema de IA evaluado.
  • context.applicable_standards — los estándares aplicables a los que sei conformance proyecta el mismo registro de riesgos.

Ver referencia/sei-yaml para el detalle de cada sección.


  • El AssuranceProgram vive en sei.yaml, en el repo del usuario, versionado en git como cualquier otro fichero de código.
  • Cada commit que añade, modifica o cierra un riesgo es un acto auditable: sei reconstruct lo replaya desde la historia git del bundle.
  • La nube no recalcula: lee los .sei/* firmados commiteados y los renderiza (incluido el Anexo IV, que ensambla a partir del bundle.json firmado). Ver referencia/sei-artifacts.
  • Para el flujo completo del registro vivo (el KAG propone, el humano cura, el commit es la identificación ISO 23894 §6.4.2): metodologia/assurance-program-vivo.