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.
sei init
Sección titulada «sei init»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.
| Flag | Tipo | Por defecto | Descripción |
|---|---|---|---|
--repo | ruta | . | Ruta al repositorio git sobre el que operar. |
Qué escribe
Sección titulada «Qué escribe»sei.yaml— manifiesto del sistema (si no existía)..sei/— directorio de artefactos firmados (si no existía).
Ejemplo
Sección titulada «Ejemplo»sei init --repo /ruta/al/proyectosei run
Sección titulada «sei run»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.
| Flag | Tipo | Por defecto | Descripción |
|---|---|---|---|
--repo | ruta | . | Ruta al repositorio git sobre el que operar. |
Qué escribe
Sección titulada «Qué escribe».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).
Relevancia normativa
Sección titulada «Relevancia normativa»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.
Ejemplo
Sección titulada «Ejemplo»sei runsei status
Sección titulada «sei status»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.
| Flag | Tipo | Por defecto | Descripción |
|---|---|---|---|
--repo | ruta | . | Ruta al repositorio git sobre el que operar. |
Qué devuelve
Sección titulada «Qué devuelve»- Imprime las secciones con deriva y los controles que fallan.
- Exit 0 = frescura ✓ + conformidad ✓; exit ≠ 0 si alguno falla.
Ejemplo
Sección titulada «Ejemplo»sei statussei verify
Sección titulada «sei verify»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.
| Flag | Tipo | Por defecto | Descripción |
|---|---|---|---|
--repo | ruta | . | Ruta al repositorio git sobre el que operar. |
Qué devuelve
Sección titulada «Qué devuelve»- Imprime
firma VÁLIDAy exit 0, ofirma INVÁLIDAy exit ≠ 0. - Falla si no existe el bundle o la firma (indica que no se ha ejecutado
sei run).
Ejemplo
Sección titulada «Ejemplo»sei verifysei pubkey
Sección titulada «sei pubkey»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).
Qué devuelve
Sección titulada «Qué devuelve»- La clave pública en hexadecimal (130 caracteres, prefijo
04) por la salida estándar. - Respeta el firmante configurado por
SEI_SIGNING_BACKEND(localoscaleway-kms).
Ejemplo
Sección titulada «Ejemplo»sei pubkey# 0477b3dc…c60sei compile
Sección titulada «sei compile»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.
| Flag | Tipo | Por defecto | Descripción |
|---|---|---|---|
--repo | ruta | . | Ruta al repositorio git sobre el que operar. |
Qué escribe
Sección titulada «Qué escribe»- El fichero declarado en
oscal.assessment_plan(plan de evaluación OSCAL).
Relevancia normativa
Sección titulada «Relevancia normativa»EU AI Act Art. 9 (sistema de gestión de riesgos); ISO 23894 §6.4 (planificación de la evaluación).
Ejemplo
Sección titulada «Ejemplo»sei compilesei reconstruct
Sección titulada «sei reconstruct»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).
| Flag | Tipo | Por defecto | Descripción |
|---|---|---|---|
--repo | ruta | . | Ruta al repositorio git sobre el que operar. |
--out | bool | false | Si se especifica, escribe .sei/reconstruct.json (+ .sig) además de imprimir por stdout. |
Qué escribe (con --out)
Sección titulada «Qué escribe (con --out)».sei/reconstruct.json— informe estructurado firmado (ECDSA-P256+DSSE)..sei/reconstruct.json.sig— firma DSSE.
Relevancia normativa
Sección titulada «Relevancia normativa»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.
Ejemplo
Sección titulada «Ejemplo»sei reconstruct --outsei assess
Sección titulada «sei assess»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.
| Flag | Tipo | Por defecto | Descripción |
|---|---|---|---|
--repo | ruta | . | Ruta al repositorio git sobre el que operar. |
Qué devuelve
Sección titulada «Qué devuelve»- Lista los riesgos propuestos con su id y título, o confirma que el registro está al día.
- Exit 0 siempre (advisory).
Relevancia normativa
Sección titulada «Relevancia normativa»ISO 23894 §6.4.2 (identificación de riesgos); EU AI Act Art. 9 (sistema de gestión de riesgos continuo).
Ejemplo
Sección titulada «Ejemplo»sei assesssei soa
Sección titulada «sei soa»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).
| Flag | Tipo | Por defecto | Descripción |
|---|---|---|---|
--repo | ruta | . | Ruta al repositorio git sobre el que operar. |
Relevancia normativa
Sección titulada «Relevancia normativa»ISO/IEC 42001:2023 §6.1.3 b/c/f (Declaración de Aplicabilidad del sistema de gestión de IA).
Ejemplo
Sección titulada «Ejemplo»sei soasei conformance
Sección titulada «sei conformance»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).
| Flag | Tipo | Por defecto | Descripción |
|---|---|---|---|
--repo | ruta | . | Ruta al repositorio git sobre el que operar. |
--standard | string | (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. |
--history | bool | false | Proyecta la conformidad en cada iteración del bundle (commits de evidencia), no solo el estado actual. |
--out | bool | false | Escribe .sei/conformance/<slug>.json (+ .sig) por estándar, además de imprimir. |
Qué escribe (con --out)
Sección titulada «Qué escribe (con --out)».sei/conformance/<slug>.json— informe de conformidad firmado por estándar..sei/conformance/<slug>.json.sig— firma DSSE.
Relevancia normativa
Sección titulada «Relevancia normativa»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.
Ejemplo
Sección titulada «Ejemplo»sei conformance --standard eu/pren-18228@2026 --outsei conformance --historysei impact
Sección titulada «sei impact»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).
| Flag | Tipo | Por defecto | Descripción |
|---|---|---|---|
--repo | ruta | . | Ruta al repositorio git sobre el que operar. |
Relevancia normativa
Sección titulada «Relevancia normativa»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).
Ejemplo
Sección titulada «Ejemplo»sei impactsei request
Sección titulada «sei request»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).
| Flag | Tipo | Por defecto | Descripción |
|---|---|---|---|
--repo | ruta | . | Ruta al repositorio git sobre el que operar. |
--by | string | (requerido) | Persona o rol que solicita la aprobación, p. ej. "Ana García <ana@compania.com>". |
Qué escribe
Sección titulada «Qué escribe»Un commit git vacío con el trailer Sei-Approval-Requested-by: <valor de --by>.
Relevancia normativa
Sección titulada «Relevancia normativa»ISO/IEC 42001:2023 §6.1.3 (proceso de revisión y aprobación del tratamiento de riesgos).
Ejemplo
Sección titulada «Ejemplo»sei request --by "Ana García <ana@compania.com>"sei approve
Sección titulada «sei approve»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.
| Flag | Tipo | Por defecto | Descripción |
|---|---|---|---|
--repo | ruta | . | Ruta al repositorio git sobre el que operar. |
--by | string | (requerido) | Persona o rol de dirección que aprueba, p. ej. "Jane Roe <jane@org>". |
Qué escribe
Sección titulada «Qué escribe»Un commit git vacío con el trailer Sei-Approved-by: <valor de --by>.
Relevancia normativa
Sección titulada «Relevancia normativa»ISO/IEC 42001:2023 §6.1.3 (aprobación del tratamiento de riesgos y aceptación del residual).
Ejemplo
Sección titulada «Ejemplo»sei approve --by "Ana García <ana@compania.com>"sei review
Sección titulada «sei review»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.
| Flag | Tipo | Por defecto | Descripción |
|---|---|---|---|
--repo | ruta | . | Ruta al repositorio git sobre el que operar. |
--by | string | (requerido) | Persona o rol que realiza la revisión, p. ej. "Jane Roe <jane@org>". |
Qué escribe
Sección titulada «Qué escribe»Un commit git vacío con el trailer Sei-Reviewed-by: <valor de --by>.
Relevancia normativa
Sección titulada «Relevancia normativa»ISO/IEC 23894:2023 §6.6 (revisión y seguimiento del proceso de gestión de riesgos).
Ejemplo
Sección titulada «Ejemplo»sei review --by "Ana García <ana@compania.com>"sei reject
Sección titulada «sei reject»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.
| Flag | Tipo | Por defecto | Descripción |
|---|---|---|---|
--repo | ruta | . | Ruta al repositorio git sobre el que operar. |
--by | string | (requerido) | Persona o rol de dirección que rechaza, p. ej. "Jane Roe <jane@org>". |
--reason | string | (requerido) | Motivo del rechazo, p. ej. "faltan evidencias de sesgo en el subgrupo X". |
Qué escribe
Sección titulada «Qué escribe»Un commit git vacío con el trailer Sei-Rejected-by: <valor de --by> y el motivo en el cuerpo del commit.
Relevancia normativa
Sección titulada «Relevancia normativa»ISO/IEC 42001:2023 §6.1.3 (proceso de revisión del tratamiento de riesgos; trazabilidad de decisiones de rechazo).
Ejemplo
Sección titulada «Ejemplo»sei reject --by "Ana García <ana@compania.com>" --reason "faltan evidencias de sesgo en el subgrupo edad"sei retire
Sección titulada «sei retire»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.
| Flag | Tipo | Por defecto | Descripción |
|---|---|---|---|
--repo | ruta | . | Ruta al repositorio git sobre el que operar. |
--by | string | (requerido) | Persona o rol que retira el sistema, p. ej. "Jane Roe <jane@org>". |
--reason | string | (opcional) | Motivo de la retirada, p. ej. "fin de ciclo de vida operativo". |
Qué escribe
Sección titulada «Qué escribe»Un commit git vacío con el trailer Sei-Retired-by: <valor de --by>.
Relevancia normativa
Sección titulada «Relevancia normativa»EU AI Act Art. 9 (ciclo de vida del sistema de IA); EU AI Act Art. 61 (seguimiento post-comercialización y retirada).
Ejemplo
Sección titulada «Ejemplo»sei retire --by "Ana García <ana@compania.com>" --reason "fin de ciclo de vida operativo"El Anexo IV no es un subcomando
Sección titulada «El Anexo IV no es un subcomando»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.