Configuración de riesgo: guía práctica

Este es un tema avanzado. La configuración de riesgo predeterminada ya está establecida, por lo que no necesita cambiar nada para empezar a trabajar con KF.

Truke KF calcula un valor numérico de riesgo y una clase de riesgo discreta para cada evento. Ambos se derivan de un único elemento de configuración de riesgo que se edita desde el panel de administración en `/admin/conf`. No existe un archivo de configuración separado — la configuración vive en la base de datos, tiene versiones como cualquier otro elemento de KF, y su historial es la pista de auditoría de todos los cálculos de riesgo realizados.

Esta página explica el formato de configuración y presenta varios ejemplos listos para usar.

Dónde vive la configuración

Vaya a Admin → Configuración (`/admin/conf`). La página muestra el cuerpo de la configuración actual como texto plano. Haga clic en el icono de edición para abrir el editor. Al guardar, se crea una nueva revisión. Los eventos creados antes del guardado conservan su interpretación de riesgo original; la reevaluación siempre usa la revisión de configuración que estaba vigente en el momento en que se creó el evento.

Formato de configuración

La configuración se escribe en OGDL — el mismo formato basado en indentación que se usa en el resto de KF. Las líneas que comienzan con `#` son comentarios. Los valores de cadena que contienen espacios deben encerrarse entre comillas dobles.

Las secciones de nivel superior son:

SecciónObligatoriaPropósito
metanoNombre, versión, descripción, parámetros globales
severityEscala de severidad y etiquetas
occurrenceEscala de probabilidad de ocurrencia y etiquetas
detectionnoEscala de detección o controlabilidad
controllabilitynoEscala de controlabilidad (alternativa a detección)
risk_labelsClases de riesgo con nombre y colores de visualización
matricesUna o más matrices de riesgo; exactamente una está activa

La sección meta

meta
  name        "Mi configuración de riesgo"
  version     1
  description "Configuración de riesgo personalizada para fabricación de widgets"
  min_probability 1e-9

Severidad

La escala de severidad usa la transformación identity — los valores entran en la fórmula sin cambios. El rango es `-1,0 .. abierto` (los valores pueden superar ligeramente 1,0 para etiquetas de seguridad crítica). Los valores negativos representan oportunidades (resultados positivos); los valores positivos representan amenazas.

severity
  range      -1.0 .. open
  transform  identity
  labels
    OPP2
      value -0.5
      title "Oportunidad significativa"
    OPP1
      value -0.1
      title "Oportunidad menor"
    1
      value  0.1
      title  "Muy menor"
    5
      value  0.5
      title  Moderada
    10
      value  1.0
      title  Peligrosa

Las etiquetas se listan en orden de valor creciente. El orden importa: los predicados de regla que usan S>=etiqueta comparan posiciones ordinales en esta lista, no valores numéricos.

Dos etiquetas que comparten el mismo valor son alias y deben listarse consecutivamente. Cualquier nombre es válido como entrada y ambos producen el mismo resultado. Ejemplo: ISO 26262 usa etiquetas S1`–`S3 que comparten valores con las etiquetas de severidad numéricas.

Ocurrencia

La escala de ocurrencia usa la transformación log_normalized, que mapea una probabilidad en el rango `(0, 1]` a una escala lineal `[0, 1]` usando la fórmula:

\[ O_{norm} = \frac{\log_{10}(O) - \log_{10}(O_{min})}{-\log_{10}(O_{min})} \]

donde \(O_{min}\) es min_probability de la sección meta (o el valor de etiqueta más pequeño si no se establece min_probability). Esto da a las probabilidades bajas una resolución significativa — sin la transformación logarítmica, la diferencia entre 1 ppm y 1 FIT sería invisible.

occurrence
  range      0.0 .. 1.0
  transform  log_normalized
  labels
    E1
      value 0.001
      title "Muy rara"
    E2
      value 0.01
      title  Rara
    E3
      value 0.1
      title  Ocasional
    E4
      value 1.0
      title  Frecuente

El límite superior debe ser exactamente 1,0. El valor de etiqueta más pequeño debe ser `> 0` (o se debe establecer min_probability).

Detección (opcional)

La detección representa la probabilidad de que un fallo sea identificado antes de causar daño. Acepta los mismos formatos de entrada numérica que la ocurrencia y normalmente se procesa con una transformación identity cuando se usa como estimación directa de probabilidad. Algunas metodologías (AIAG-VDA) usan una escala inversa donde números altos de detección significan detección deficiente; use la transformación inverse para ese caso.

detection
  range      0.0 .. 1.0
  transform  identity
  labels
    D1
      value  0.9
      title  "Casi cierta"
    D2
      value  0.5
      title  Moderada
    D3
      value  0.1
      title  "Improbable"

Controlabilidad (opcional)

La controlabilidad representa la capacidad de controlar o mitigar un evento. La transformación inverse convierte "capacidad de control" (alto = bueno) en "no controlabilidad" (alto = contribución de riesgo alta):

controllability
  range      0.0 .. 1.0
  transform  inverse
  labels
    C1
      value 0.9
      title  Manejable
    C2
      value 0.5
      title  Difícil
    C3
      value 0.1
      title  Incontrolable

Etiquetas de riesgo

Las etiquetas de riesgo son las clasificaciones de salida. Cada una tiene un nombre, un color hexadecimal y un título de visualización opcional:

risk_labels
  CRIT
    color #b30000
    title Crítico
  HIGH
    color #e64500
    title Alto
  MED
    color #f0a020
    title Medio
  LOW
    color #f0d020
    title Bajo
  NEGL
    color #c0c0c0
    title Negligible

Los nombres de etiqueta usados en las reglas de la matriz deben declararse aquí. El orden es el orden de visualización en la interfaz.

Para incluir etiquetas de oportunidad, agréguelas con tonos verdes:

  OPP_LOW
    color #a0d0a0
    title "Oportunidad menor"
  OPP_MED
    color #40a060
    title "Oportunidad moderada"
  OPP_HIGH
    color #006030
    title "Oportunidad significativa"

Matrices

La sección matrices contiene una o más definiciones de matriz. El campo selected nombra la matriz activa. Cambiar de matriz es una edición de una línea y queda completamente auditado en el historial de revisiones de configuración.

matrices
  selected  default

  default
    title      "Riesgo S+O log-aditivo"
    formula    "(S + O) / 2"
    resolution first_match
    rules
      CRIT  "R>=0.5"
      HIGH  "R>=0.25"
      MED   "R>=0.05"
      LOW   "R>0"
      catch_all NEGL

Variables de la fórmula:

VariableSignificado
`S`Severidad (magnitud; el signo se gestiona automáticamente)
`O`Ocurrencia, post-transformación
`D`Detección, post-transformación
`C`Controlabilidad, post-transformación

La fórmula puede usar `+`, `-`, `*`, `/`, paréntesis, literales numéricos y `|...|` para valor absoluto (raramente necesario — el signo se separa automáticamente).

Separación de signo. Como la severidad puede ser negativa (oportunidad), la fórmula siempre opera sobre la magnitud de S, y el signo se reaplicar al resultado. Una fórmula `(S + O) / 2` con severidad OPP2 (-0,5) y ocurrencia E3 (0,1, normalizada ≈ 0,67) da R ≈ −0,59, que una regla `"R<-0.25"` coincidiría como una oportunidad fuerte.

Las reglas usan resolución first_match — gana la primera regla que coincide. Las reglas terminan con un retorno alternativo catch_all obligatorio.

Los predicados tienen dos formas:

  • R>=0.5 — compara la puntuación de riesgo calculada con un umbral numérico.
  • S>=MED — compara la posición ordinal de la etiqueta elegida con una etiqueta de referencia. Esto es independiente de los valores numéricos y de la transformación.

Múltiples predicados en una regla se unen por AND:

OPP_LOW  "R<0, R>=-0.05"

Entrada de probabilidad numérica

Para los campos de ocurrencia y detección, los usuarios pueden escribir una medida con una unidad en lugar de seleccionar una etiqueta. El sistema la convierte a probabilidad y selecciona la etiqueta más cercana:

UnidadConversiónEjemplo
`%`÷ 100`"5 %"` → 0,05
ppm÷ 10⁶`"1000ppm"` → 0,001
FIT÷ 10⁹`"1000000 FIT"` → 0,001

El espacio entre el número y la unidad es opcional. Establecer `min_probability 1e-9` en meta alinea el límite inferior de la transformación con 1 FIT.

Configuraciones de ejemplo

Mínima: severidad y ocurrencia únicamente

Adecuada para riesgo general de producto, AMFE de proceso o gestión de calidad. Cuatro niveles de severidad, cuatro niveles de ocurrencia, sin escala de detección.

meta
  name    "Riesgo S+O simple"
  version 1

severity
  range      0.0 .. open
  transform  identity
  labels
    1
      value 0.1
      title Menor
    5
      value 0.5
      title Moderada
    8
      value 0.8
      title Seria
    10
      value 1.0
      title Crítica

occurrence
  range      0.0 .. 1.0
  transform  log_normalized
  labels
    E1
      value 0.001
      title "Muy rara"
    E2
      value 0.01
      title  Rara
    E3
      value 0.1
      title  Ocasional
    E4
      value 1.0
      title  Frecuente

risk_labels
  HIGH
    color #e64500
    title Alto
  MED
    color #f0a020
    title Medio
  LOW
    color #f0d020
    title Bajo
  NEGL
    color #c0c0c0
    title Negligible

matrices
  selected  default

  default
    title      "S+O log-aditivo"
    formula    "(S + O) / 2"
    resolution first_match
    rules
      HIGH   "R>=0.4"
      MED    "R>=0.1"
      LOW    "R>0"
      catch_all NEGL

Con oportunidades (alineada con ISO 31000)

Agregue etiquetas de severidad negativas para oportunidades y etiquetas de riesgo adicionales para el lado positivo del espectro de riesgo.

meta
  name    "S+O con oportunidades"
  version 1
  min_probability 1e-9

severity
  range      -1.0 .. open
  transform  identity
  labels
    OPP3
      value -1.0
      title "Oportunidad catastrófica"
    OPP2
      value -0.5
      title "Oportunidad significativa"
    OPP1
      value -0.1
      title "Oportunidad menor"
    1
      value  0.1
      title  "Muy menor"
    5
      value  0.5
      title  Moderada
    10
      value  1.0
      title  Peligrosa

occurrence
  range      0.0 .. 1.0
  transform  log_normalized
  labels
    E1
      value 0.001
      title "Muy rara"
    E2
      value 0.01
      title  Rara
    E3
      value 0.1
      title  Ocasional
    E4
      value 1.0
      title  Frecuente

risk_labels
  CRIT
    color #b30000
    title Crítico
  HIGH
    color #e64500
    title Alto
  MED
    color #f0a020
    title Medio
  LOW
    color #f0d020
    title Bajo
  NEGL
    color #c0c0c0
    title Negligible
  OPP_LOW
    color #a0d0a0
    title "Oportunidad menor"
  OPP_MED
    color #40a060
    title "Oportunidad moderada"
  OPP_HIGH
    color #006030
    title "Oportunidad significativa"

matrices
  selected  default

  default
    title      "Riesgo S+O log-aditivo"
    formula    "(S + O) / 2"
    resolution first_match
    rules
      CRIT      "R>=0.5"
      HIGH      "R>=0.25"
      MED       "R>=0.05"
      LOW       "R>0"
      OPP_LOW   "R<0, R>=-0.05"
      OPP_MED   "R<-0.05, R>=-0.25"
      OPP_HIGH  "R<-0.25"
      catch_all NEGL

Automotriz (alineada con AIAG-VDA) con múltiples matrices

Configuración automotriz completa con alias de severidad compatibles con ISO 26262, escala de ocurrencia anclada a 1 FIT y una matriz alternativa conservadora para revisión de seguridad crítica.

meta
  name            "Configuración de riesgo automotriz predeterminada"
  version         1
  description     "Escalas alineadas con AIAG-VDA, riesgo log-aditivo con separación de signo"
  min_probability 1e-9

severity
  range      -1.0 .. open
  transform  identity
  labels
    OPP3
      value -1.0
      title "Oportunidad catastrófica"
    OPP2
      value -0.5
      title "Oportunidad significativa"
    OPP1
      value -0.1
      title "Oportunidad menor"
    1
      value  0.1
      title  "Muy menor"
    5
      value  0.5
      title  Moderada
    10
      value  1.0
      title  Peligrosa
    S1
      value  1.0
      title  "Lesión leve"
    S2
      value  1.1
      title  "Lesión grave"

occurrence
  range      0.0 .. 1.0
  transform  log_normalized
  labels
    E1
      value 0.001
      title "Muy rara"
    E2
      value 0.01
      title  Rara
    E3
      value 0.1
      title  Ocasional
    E4
      value 1.0
      title  Frecuente

risk_labels
  CRIT
    color #b30000
    title Crítico
  HIGH
    color #e64500
    title Alto
  MED
    color #f0a020
    title Medio
  LOW
    color #f0d020
    title Bajo
  NEGL
    color #c0c0c0
    title Negligible
  OPP_LOW
    color #a0d0a0
    title "Oportunidad menor"
  OPP_MED
    color #40a060
    title "Oportunidad moderada"
  OPP_HIGH
    color #006030
    title "Oportunidad significativa"

matrices
  selected  default

  default
    title      "Riesgo S+O log-aditivo"
    formula    "(S + O) / 2"
    resolution first_match
    rules
      CRIT      "R>=0.5"
      HIGH      "R>=0.25"
      MED       "R>=0.05"
      LOW       "R>0"
      OPP_LOW   "R<0, R>=-0.05"
      OPP_MED   "R<-0.05, R>=-0.25"
      OPP_HIGH  "R<-0.25"
      catch_all NEGL

  conservative
    title      "Umbrales más estrictos (revisión de seguridad)"
    formula    "(S + O) / 2"
    resolution first_match
    rules
      CRIT      "R>=0.35"
      HIGH      "R>=0.15"
      MED       "R>=0.03"
      LOW       "R>0"
      OPP_LOW   "R<0, R>=-0.03"
      OPP_MED   "R<-0.03, R>=-0.15"
      OPP_HIGH  "R<-0.15"
      catch_all NEGL

Para cambiar a la matriz conservadora, cambie `selected default` a `selected conservative` y guarde. Todos los nuevos eventos usarán los umbrales conservadores; los eventos existentes conservan su clasificación original.

Con escala de detección

Agregue detección cuando los modos de fallo puedan interceptarse antes de causar daño y desee que la eficacia de detección reduzca el riesgo calculado.

meta
  name            "Riesgo S+O+D"
  version         1
  min_probability 1e-9

severity
  range      -1.0 .. open
  transform  identity
  labels
    OPP1
      value -0.1
      title "Oportunidad menor"
    1
      value  0.1
      title  "Muy menor"
    5
      value  0.5
      title  Moderada
    10
      value  1.0
      title  Peligrosa

occurrence
  range      0.0 .. 1.0
  transform  log_normalized
  labels
    E1
      value 0.001
      title "Muy rara"
    E2
      value 0.01
      title  Rara
    E3
      value 0.1
      title  Ocasional
    E4
      value 1.0
      title  Frecuente

detection
  range      0.0 .. 1.0
  transform  identity
  labels
    D1
      value 0.9
      title "Casi cierta"
    D2
      value 0.5
      title Moderada
    D3
      value 0.1
      title "Improbable"

risk_labels
  CRIT
    color #b30000
    title Crítico
  HIGH
    color #e64500
    title Alto
  MED
    color #f0a020
    title Medio
  LOW
    color #f0d020
    title Bajo
  NEGL
    color #c0c0c0
    title Negligible

matrices
  selected  default

  default
    title      "S+O ponderado por detección"
    formula    "(S + O) / 2 * (1 - D/2)"
    resolution first_match
    rules
      CRIT  "R>=0.4"
      HIGH  "R>=0.2"
      MED   "R>=0.05"
      LOW   "R>0"
      catch_all NEGL

Aquí la detección D1 (0,9) reduce el riesgo hasta un 45%; D3 (0,1) lo reduce solo un 5%.

Predicados ordinales

Las reglas también pueden activarse basándose en posiciones de etiqueta en lugar de valores R calculados. Esto es útil cuando una etiqueta de severidad específica debe desencadenar siempre una clase de riesgo determinada independientemente de la probabilidad:

    rules
      CRIT  "S>=10"        # cualquier evento con severidad 10 o superior es siempre Crítico
      HIGH  "R>=0.25"
      MED   "R>=0.05"
      LOW   "R>0"
      catch_all NEGL

El predicado S>=10 compara la posición ordinal de la etiqueta de severidad elegida con la posición de la etiqueta llamada 10 en la escala de severidad. Se activa cuando la severidad elegida está en esa etiqueta o después en el orden de declaración.

Combinando la Prioridad de Acción AIAG-VDA y el ASIL de ISO 26262 en una sola configuración

Es posible codificar tanto el sistema de Prioridad de Acción AIAG-VDA como el ASIL de ISO 26262 en una sola configuración, de modo que la clasificación se enrute por evento según las etiquetas que elija el analista. Dos nuevas características hacen esto posible:

  • Atributo class en etiquetas — etiqueta un subconjunto de etiquetas como pertenecientes a un grupo con nombre (p. ej. `class asil`). Las etiquetas dentro de una clase deben estar ordenadas monótonamente entre sí; no se impone ninguna restricción de orden entre clases. Esto permite que las etiquetas ASIL lleven sus valores físicos auténticos sin conflicto con los valores de las etiquetas AP.
  • Bloque `when "guardia"` — agrupa reglas bajo un predicado de guardia compartido. La guardia se antepone automáticamente a cada regla interna, eliminando la necesidad de repetirla. `catch_block ` es la etiqueta de retorno alternativo para eventos que coincidieron con la guardia pero no con ninguna regla interna específica.
DimensiónEntradas ASILEntradas AIAG-VDA AP
SeveridadS1, S2, S3 (con `class asil`)1 – 10
OcurrenciaE1–E4 (con `class asil`)1 – 10 (tasa de ocurrencia)
Tercera entradaC1, C2, C3 (controlabilidad)1 – 10 (detección)
SalidaQM / ASIL A–DAP: Baja / Media / Alta

Las etiquetas ASIL aparecen después de las etiquetas AP en la lista plana (S1=1,0, S2=1,1, S3=1,2 se sitúan naturalmente por encima del techo del rango AP de 1,0). El enrutamiento usa S:asil — un predicado de clase que es verdadero para cualquier etiqueta etiquetada `class asil` y falso para todas las demás.

meta
  name            "AIAG-VDA AP + ISO 26262 ASIL combinados"
  version         2
  min_probability 1e-9

severity
  range      0.0 .. open
  transform  identity
  labels
    # Etiquetas de severidad AIAG-VDA AP (ordinales 0–9)
    1
      value 0.1
      title "1 – Sin efecto"
    2
      value 0.2
    3
      value 0.3
    4
      value 0.4
    5
      value 0.5
    6
      value 0.6
    7
      value 0.7
      title "7 – Alto, vehículo operable"
    8
      value 0.8
    9
      value 0.9
      title "9 – Peligroso con advertencia"
    10
      value 1.0
      title "10 – Peligroso sin advertencia"
    # Etiquetas ASIL ISO 26262 — class asil, valores ≥ 1,0, ordinales 10–12
    # S1 y AP "10" comparten el valor 1,0 pero no son alias (clases diferentes)
    S1
      value 1.0
      class asil
      title "S1 – Lesión leve"
    S2
      value 1.1
      class asil
      title "S2 – Lesión grave"
    S3
      value 1.2
      class asil
      title "S3 – Riesgo para la vida"

occurrence
  range      0.0 .. 1.0
  transform  log_normalized
  labels
    # Etiquetas de ocurrencia AIAG-VDA AP (ordinales 0–9)
    1
      value 0.0000007
      title "O1 – ≤1 en 1.500.000"
    2
      value 0.000007
      title "O2 – 1 en 150.000"
    3
      value 0.00007
      title "O3 – 1 en 15.000"
    4
      value 0.0005
      title "O4 – 1 en 2.000"
    5
      value 0.003
      title "O5 – 1 en 400"
    6
      value 0.012
      title "O6 – 1 en 80"
    7
      value 0.05
      title "O7 – 1 en 20"
    8
      value 0.12
      title "O8 – 1 en 8"
    9
      value 0.33
      title "O9 – 1 en 3"
    10
      value 1.0
      title "O10 – ≥1 en 2"
    # Etiquetas de exposición ASIL ISO 26262 — class asil, ordinales 10–13
    # Fracciones de exposición auténticas de ISO 26262; no se requiere monotonicidad entre clases
    E1
      value 0.001
      class asil
      title "E1 – Exposición muy baja (<1%)"
    E2
      value 0.01
      class asil
      title "E2 – Exposición baja (1–10%)"
    E3
      value 0.1
      class asil
      title "E3 – Exposición media (10–90%)"
    E4
      value 0.9
      class asil
      title "E4 – Exposición alta (>90%)"

detection
  range      0.0 .. 1.0
  transform  identity
  labels
    1
      value 0.05
      title "D1 – Casi cierta"
    2
      value 0.15
    3
      value 0.25
    4
      value 0.35
    5
      value 0.45
    6
      value 0.55
    7
      value 0.65
    8
      value 0.75
    9
      value 0.85
    10
      value 0.95
      title "D10 – Incertidumbre absoluta"

controllability
  range      0.0 .. 1.0
  transform  identity
  labels
    C1
      value 0.01
      title "C1 – Simplemente controlable"
    C2
      value 0.50
      title "C2 – Normalmente controlable"
    C3
      value 0.99
      title "C3 – Difícil de controlar"

risk_labels
  ASIL_D
    color #7b0000
    title "ASIL D"
  ASIL_C
    color #b30000
    title "ASIL C"
  ASIL_B
    color #e64500
    title "ASIL B"
  ASIL_A
    color #f0a020
    title "ASIL A"
  QM
    color #a0d0a0
    title "Gestión de Calidad"
  AP_H
    color #b30000
    title "AP: Alta"
  AP_M
    color #f0a020
    title "AP: Media"
  AP_L
    color #f0d020
    title "AP: Baja"
  NEGL
    color #c0c0c0
    title Negligible

matrices
  selected  combined

  combined
    title      "AIAG-VDA AP + ISO 26262 ASIL"
    formula    "0"
    resolution first_match
    rules
      # Eventos ASIL: when "S:asil" se activa para cualquier etiqueta de severidad con class asil
      # Entradas: severidad S1–S3, ocurrencia E1–E4, controlabilidad C1–C3
      # Reglas derivadas de ISO 26262 Parte 3, Tabla B.1, más restrictivas primero
      when "S:asil"
        ASIL_D  "S>=S3, O>=E4, C>=C3"
        ASIL_C  "S>=S3, O>=E4, C>=C2"
        ASIL_C  "S>=S3, O>=E3, C>=C3"
        ASIL_C  "S>=S2, O>=E4, C>=C3"
        ASIL_B  "S>=S3, O>=E4"
        ASIL_B  "S>=S3, O>=E3, C>=C2"
        ASIL_B  "S>=S3, O>=E2, C>=C3"
        ASIL_B  "S>=S2, O>=E4, C>=C2"
        ASIL_B  "S>=S2, O>=E3, C>=C3"
        ASIL_B  "S>=S1, O>=E4, C>=C3"
        ASIL_A  "S>=S3, O>=E3"
        ASIL_A  "S>=S3, O>=E2, C>=C2"
        ASIL_A  "S>=S3, O>=E1, C>=C3"
        ASIL_A  "S>=S2, O>=E4"
        ASIL_A  "S>=S2, O>=E3, C>=C2"
        ASIL_A  "S>=S2, O>=E2, C>=C3"
        ASIL_A  "S>=S1, O>=E4, C>=C2"
        ASIL_A  "S>=S1, O>=E3, C>=C3"
        catch_block QM
      # Eventos AP: no se necesita guardia de bloque — los eventos ASIL quedan completamente consumidos arriba.
      # Las comparaciones ordinales contra nombres de etiquetas AP excluyen naturalmente las etiquetas ASIL:
      # ordinal("9") = 8 < ordinal(S1) = 10, así que "S>=9" no puede activarse para S1/S2/S3
      # si de algún modo escapan del bloque when.
      # Entradas: severidad 1–10, ocurrencia 1–10, detección 1–10
      AP_H  "S>=9"
      AP_H  "S>=7, O>=7, D>=7"
      AP_H  "S>=5, O>=9, D>=9"
      AP_M  "S>=7, O>=4"
      AP_M  "S>=5, O>=7, D>=5"
      AP_M  "S>=3, O>=9, D>=8"
      AP_L  "S>=5, O>=4"
      AP_L  "S>=3, O>=7"
      AP_L  "S>=1"
      catch_all NEGL

Verificaciones contra ISO 26262 Tabla B.1: S2+E3+C2 → ASIL_B ✓ (entra en `when "S:asil"`, coincide con `S>=S2, O>=E3, C>=C2`). S3+E4+C3 → ASIL_D ✓ (primera regla dentro del bloque). S1+E1+C1 → QM ✓ (ninguna regla ASIL específica coincide, se activa `catch_block QM`).

Notas sobre la configuración combinada

1. Sin valores de marcador de posición. S1=1,0, S2=1,1, S3=1,2 llevan sus magnitudes de severidad auténticas de ISO 26262; se sitúan naturalmente en o por encima del techo del rango AP (AP "10" = 1,0). E1–E4 llevan fracciones de exposición auténticas de ISO 26262 (0,001–0,9); no se aplica ninguna restricción de monotonicidad entre clases.

2. El enrutamiento por clase es estructural. S:asil es verdadero para cualquier etiqueta con `class asil`; no depende de valores de etiqueta ni de posiciones ordinales. Agregar o reordenar etiquetas dentro de una clase no rompe silenciosamente el enrutamiento.

3. La clasificación AP es una aproximación. La tabla AP auténtica de AIAG-VDA es una consulta discreta 3D (S×O×D). Las nueve reglas AP anteriores aproximan la estructura de la tabla. Los equipos que requieran conformidad AP exacta deben ampliar la sección AP para enumerar las condiciones de contorno completas como reglas ordinales ordenadas.

4. Convención de entrada. Los eventos ASIL proporcionan S1/S2/S3 + E1/E2/E3/E4 + C1/C2/C3. Los eventos AP proporcionan 1–10 para los tres de S, O, D. El sistema no impone esto — mezclar tipos de etiquetas produce un resultado pero no tiene sentido.

5. Los valores de controlabilidad representan no controlabilidad. C1=0,01 (contribución de riesgo baja), C3=0,99 (contribución de riesgo alta). Esto es opuesto a la lectura habitual de los números C en ISO 26262, donde C mayor significa más controlable. Los predicados ordinales son correctos independientemente de cómo se lean los valores.

Validación

El sistema valida la configuración en cada guardado. Los errores graves (como una regla catch_all faltante, un problema de ordenación de umbrales en una escala, o una regla que hace referencia a una etiqueta no declarada) impiden que el guardado se complete y se informan con un número de línea. Las advertencias (reglas muertas, un catch_all que domina la mayor parte de la matriz, cobertura de rango parcial) se muestran pero no bloquean el guardado.