Ir al contenido

Referencia del CLI `sei`

sei es el CLI de Risk-Driven Development (RDD) para sistemas de IA de alto riesgo. RDD es un término establecido de la ingeniería del software (Boehm, Fairbanks) que Venturalítica especializa para el tratamiento de riesgo regulatorio de IA (ver linaje). Cada subcomando opera sobre un repositorio git (flag --repo, por defecto el directorio de trabajo .). Los subcomandos que escriben artefactos los firman con ECDSA-P256+DSSE (firmante enchufable: local o Scaleway KMS, según SEI_SIGNING_BACKEND) antes de escribirlos en .sei/. Son 16 subcomandos: init, run, status, verify, pubkey, compile, reconstruct, assess, soa, conformance, impact, request, approve, review, reject y retire.


Genera el esqueleto del proyecto en un repositorio git: crea el directorio .sei/ y el manifiesto sei.yaml (con la sección risk del programa de aseguramiento) si todavía no existen.

FlagTipoPor defectoDescripción
--reporuta.Ruta al repositorio git sobre el que operar.
  • sei.yaml — manifiesto del sistema (si no existía).
  • .sei/ — directorio de artefactos firmados (si no existía).
Ventana de terminal
sei init --repo /ruta/al/proyecto

Ejecuta el pipeline completo (pasos P1–P11) con detección de deriva: recomputa únicamente las secciones marcadas como stale respecto a sei.lock, ancla el resultado y firma el bundle de evidencia.

El gate de riesgo determina el código de salida: si algún control bloqueante falla, sei run devuelve exit ≠ 0 aunque la evidencia quede igualmente anclada y firmada.

FlagTipoPor defectoDescripción
--reporuta.Ruta al repositorio git sobre el que operar.
  • .sei/bundle.json — bundle de evidencia firmado (ECDSA-P256+DSSE).
  • .sei/bundle.json.sig — firma DSSE del bundle.
  • sei.lock — ancla de frescura (hashes de las secciones del pipeline).

El gate de riesgo implementa el requisito de supervisión continua del EU AI Act Art. 9 y el bucle de tratamiento ISO 23894 §6.5.

Ventana de terminal
sei run

Detecta deriva respecto a sei.lock y evalúa el estado de los controles del gate sin recomputar. Devuelve exit 0 si el sistema está al día y conforme; exit ≠ 0 en caso de deriva o de controles bloqueantes fallidos.

Úselo como gate de CI/CD sin coste de recomputación.

FlagTipoPor defectoDescripción
--reporuta.Ruta al repositorio git sobre el que operar.
  • Imprime las secciones con deriva y los controles que fallan.
  • Exit 0 = frescura ✓ + conformidad ✓; exit ≠ 0 si alguno falla.
Ventana de terminal
sei status

Verifica la firma ECDSA-P256+DSSE del bundle de evidencia (.sei/bundle.json). Garantiza que el bundle no ha sido alterado desde el último sei run.

FlagTipoPor defectoDescripción
--reporuta.Ruta al repositorio git sobre el que operar.
  • Imprime firma VÁLIDA y exit 0, o firma INVÁLIDA y exit ≠ 0.
  • Falla si no existe el bundle o la firma (indica que no se ha ejecutado sei run).
Ventana de terminal
sei verify

Imprime la clave pública del firmante configurado del motor (ECDSA-P256, formato SEC1 sin comprimir, 65 bytes en hexadecimal). El cliente la exporta y la registra en la nube (campo signerPubkey de la conexión) para que la nube verifique su evidencia firmada (verificación por-conexión).

  • La clave pública en hexadecimal (130 caracteres, prefijo 04) por la salida estándar.
  • Respeta el firmante configurado por SEI_SIGNING_BACKEND (local o scaleway-kms).
Ventana de terminal
sei pubkey
# 0477b3dc…c60

Compila el programa de aseguramiento (Art. 9) declarado en la sección risk de sei.yaml y genera el oscal.assessment_plan correspondiente. Este plan es el contrato formal del gate: define qué controles se miden y bajo qué condiciones.

También emite avisos advisories sobre la jerarquía de controles (prEN 18228 cl. 9.1.2): no bloquea la compilación, pero señala controles sin nivel de jerarquía declarado.

FlagTipoPor defectoDescripción
--reporuta.Ruta al repositorio git sobre el que operar.
  • El fichero declarado en oscal.assessment_plan (plan de evaluación OSCAL).

EU AI Act Art. 9 (sistema de gestión de riesgos); ISO 23894 §6.4 (planificación de la evaluación).

Ventana de terminal
sei compile

Reconstruye el ciclo de tratamiento de riesgos ISO 23894 por riesgo mediante replay de la historia git del bundle de evidencia (.sei/bundle.json). El proceso es determinista y no requiere un modelo de lenguaje.

Por cada riesgo, el informe recorre las cinco fases: ① identificación (commit que introdujo el riesgo en el AssuranceProgram), ② análisis (likelihood × impacto → nivel inherente), ③ evaluación (vs. apetito de riesgo), ④ tratamiento (arco empírico FALLA→PASA por commit), ⑤ riesgo residual (ciclo ISO: CERRADO / ABIERTO / DISCREPANCIA / ACEPTADO).

También reporta la aprobación de dirección más reciente (ISO 42001 §6.1.3) y la prioridad de tratamiento (ISO 42001 §6.1.2e2).

FlagTipoPor defectoDescripción
--reporuta.Ruta al repositorio git sobre el que operar.
--outboolfalseSi se especifica, escribe .sei/reconstruct.json (+ .sig) además de imprimir por stdout.
  • .sei/reconstruct.json — informe estructurado firmado (ECDSA-P256+DSSE).
  • .sei/reconstruct.json.sig — firma DSSE.

ISO 23894 §6.4.2 (identificación), §6.4.3 (análisis), §6.4.4 (evaluación), §6.5 (tratamiento y residual); ISO 42001 §6.1.2–6.1.3.

Ventana de terminal
sei reconstruct --out

Ejecuta el KAG (Knowledge Assessment Graph) y propone los riesgos que no están todavía declarados en el AssuranceProgram (el “backlog de crecimiento” del registro vivo, ISO 23894 §6.4.2). La salida es advisory: no bloquea ningún gate. El humano revisa las propuestas, las cura y las commitea al AssuranceProgram; el commit es el acto de identificación fechado y atribuible.

sei run y sei status también emiten un aviso no bloqueante a stderr si el KAG detecta riesgos pendientes.

FlagTipoPor defectoDescripción
--reporuta.Ruta al repositorio git sobre el que operar.
  • Lista los riesgos propuestos con su id y título, o confirma que el registro está al día.
  • Exit 0 siempre (advisory).

ISO 23894 §6.4.2 (identificación de riesgos); EU AI Act Art. 9 (sistema de gestión de riesgos continuo).

Ventana de terminal
sei assess

Genera la Declaración de Aplicabilidad (Statement of Applicability, SoA — ISO/IEC 42001 §6.1.3 b/c/f). Cruza el catálogo del Anexo A de ISO/IEC 42001:2023 con las medidas declaradas en el AssuranceProgram y con el último bundle de evidencia. Clasifica cada control en:

  • INCLUIDO — cubierto por al menos una medida del AssuranceProgram (muestra el estado de implementación: IMPLEMENTADO / PARCIAL / PLANIFICADO / NO IMPLEMENTADO).
  • EXCLUIDO — decisión justificada explícitamente (§6.1.3f).
  • OMITIDO — sin medida que lo implemente ni exclusión declarada (hueco a revisar).
FlagTipoPor defectoDescripción
--reporuta.Ruta al repositorio git sobre el que operar.

ISO/IEC 42001:2023 §6.1.3 b/c/f (Declaración de Aplicabilidad del sistema de gestión de IA).

Ventana de terminal
sei soa

Evalúa la conformidad por cláusula del bundle de evidencia firmado contra un estándar normativo (prEN 18228 o ISO 23894). Proyecta el bundle sobre el catálogo de cláusulas del estándar y clasifica cada cláusula como CUBIERTA / PARCIAL / HUECO, agrupada por fase del ciclo del estándar.

Sin --standard, emite todos los estándares declarados en context.applicable_standards de sei.yaml (el estándar prioritario primero).

FlagTipoPor defectoDescripción
--reporuta.Ruta al repositorio git sobre el que operar.
--standardstring(todos los aplicables)Id del estándar, p. ej. eu/pren-18228@2026 o iso/23894@2023. Omitir = emite todos los declarados en applicable_standards.
--historyboolfalseProyecta la conformidad en cada iteración del bundle (commits de evidencia), no solo el estado actual.
--outboolfalseEscribe .sei/conformance/<slug>.json (+ .sig) por estándar, además de imprimir.
  • .sei/conformance/<slug>.json — informe de conformidad firmado por estándar.
  • .sei/conformance/<slug>.json.sig — firma DSSE.

prEN 18228 (CEN/CENELEC JTC 21, gestión de riesgos EU AI Act Art. 9); ISO 23894 (gestión de riesgos IA); EU AI Act Art. 9.

Ventana de terminal
sei conformance --standard eu/pren-18228@2026 --out
Ventana de terminal
sei conformance --history

Genera la evaluación de impacto del sistema de IA (ISO/IEC 42001 §6.1.4): por cada sistema declarado en el AssuranceProgram, lista la finalidad prevista, las decisiones que toma y las personas afectadas; y analiza el mal uso razonablemente previsible (EU AI Act Art. 9(2)(b)), cruzándolo con el registro de riesgos para identificar los casos de mal uso sin riesgo que los atienda.

Devuelve exit ≠ 0 únicamente si existen referencias colgantes: un campo addressed_by que apunta a un riesgo inexistente en el registro (indica que el AssuranceProgram está roto). El mal uso no atendido se señala, pero no bloquea (advisory).

FlagTipoPor defectoDescripción
--reporuta.Ruta al repositorio git sobre el que operar.

ISO/IEC 42001:2023 §6.1.4 (evaluación de impacto del sistema de IA); EU AI Act Art. 9(2)(b) (mal uso razonablemente previsible).

Ventana de terminal
sei impact

Registra la solicitud de aprobación del plan de tratamiento como un commit git vacío con el trailer Sei-Approval-Requested-by:. El mantenedor usa este comando para iniciar el ciclo de revisión formal; el acto queda atribuido y fechado por git, y lo recoge sei reconstruct.

El ciclo habitual es: sei request (mantenedor) → revisión humana → sei approve (dirección) o sei reject (dirección con motivo).

FlagTipoPor defectoDescripción
--reporuta.Ruta al repositorio git sobre el que operar.
--bystring(requerido)Persona o rol que solicita la aprobación, p. ej. "Ana García <ana@compania.com>".

Un commit git vacío con el trailer Sei-Approval-Requested-by: <valor de --by>.

ISO/IEC 42001:2023 §6.1.3 (proceso de revisión y aprobación del tratamiento de riesgos).

Ventana de terminal
sei request --by "Ana García <ana@compania.com>"

Registra la aprobación de dirección del plan de tratamiento y la aceptación del riesgo residual (ISO/IEC 42001 §6.1.3) como un commit git vacío con el trailer Sei-Approved-by:. El acto queda así atribuido a una persona o rol, fechado por git, y es recogido por sei reconstruct.

Si se ejecuta sei run después de la aprobación sin una nueva aprobación, sei reconstruct marcará la aprobación como DESACTUALIZADA.

FlagTipoPor defectoDescripción
--reporuta.Ruta al repositorio git sobre el que operar.
--bystring(requerido)Persona o rol de dirección que aprueba, p. ej. "Jane Roe <jane@org>".

Un commit git vacío con el trailer Sei-Approved-by: <valor de --by>.

ISO/IEC 42001:2023 §6.1.3 (aprobación del tratamiento de riesgos y aceptación del residual).

Ventana de terminal
sei approve --by "Ana García <ana@compania.com>"

Registra la revisión periódica del riesgo (ISO/IEC 23894 §6.6) como un commit git vacío con el trailer Sei-Reviewed-by:. Una revisión posterior a la aprobación, sin una nueva aprobación más reciente, reabre el ciclo (estado «en revisión periódica») hasta que la dirección vuelve a aprobar. Cubre la pata por TIEMPO de la revisión (la cadencia se declara en risk.review_interval de sei.yaml); la pata por «cambio significativo» ya la cubre la marca de aprobación DESACTUALIZADA.

FlagTipoPor defectoDescripción
--reporuta.Ruta al repositorio git sobre el que operar.
--bystring(requerido)Persona o rol que realiza la revisión, p. ej. "Jane Roe <jane@org>".

Un commit git vacío con el trailer Sei-Reviewed-by: <valor de --by>.

ISO/IEC 23894:2023 §6.6 (revisión y seguimiento del proceso de gestión de riesgos).

Ventana de terminal
sei review --by "Ana García <ana@compania.com>"

Registra el rechazo de la aprobación como un commit git vacío con el trailer Sei-Rejected-by:. El motivo es obligatorio (--reason). El ciclo de revisión vuelve a estado pendiente: el mantenedor ha de corregir las evidencias y volver a ejecutar sei request.

FlagTipoPor defectoDescripción
--reporuta.Ruta al repositorio git sobre el que operar.
--bystring(requerido)Persona o rol de dirección que rechaza, p. ej. "Jane Roe <jane@org>".
--reasonstring(requerido)Motivo del rechazo, p. ej. "faltan evidencias de sesgo en el subgrupo X".

Un commit git vacío con el trailer Sei-Rejected-by: <valor de --by> y el motivo en el cuerpo del commit.

ISO/IEC 42001:2023 §6.1.3 (proceso de revisión del tratamiento de riesgos; trazabilidad de decisiones de rechazo).

Ventana de terminal
sei reject --by "Ana García <ana@compania.com>" --reason "faltan evidencias de sesgo en el subgrupo edad"

Registra la retirada del sistema del mercado o de operación como un commit git vacío con el trailer Sei-Retired-by:. El motivo es opcional. sei reconstruct reportará el sistema como RETIRADO a partir de este commit.

FlagTipoPor defectoDescripción
--reporuta.Ruta al repositorio git sobre el que operar.
--bystring(requerido)Persona o rol que retira el sistema, p. ej. "Jane Roe <jane@org>".
--reasonstring(opcional)Motivo de la retirada, p. ej. "fin de ciclo de vida operativo".

Un commit git vacío con el trailer Sei-Retired-by: <valor de --by>.

EU AI Act Art. 9 (ciclo de vida del sistema de IA); EU AI Act Art. 61 (seguimiento post-comercialización y retirada).

Ventana de terminal
sei retire --by "Ana García <ana@compania.com>" --reason "fin de ciclo de vida operativo"

El Anexo IV (EU AI Act Art. 11) no lo emite el motor. El motor solo produce evidencia firmada: el bundle.json (con procedencia por campo) y los artefactos .sei/*. El plano de control (la nube) ensambla y renderiza el Anexo IV a partir del bundle.json firmado y lo exporta a PDF (Typst). No es un artefacto del motor, no se commitea, y no existe ningún comando sei annex-iv.

Ver Los artefactos .sei/* para los artefactos que sí emite el motor.