Diseño y componentes

Arquitectura

Flow Audit es una herramienta de línea de comandos local: entra evidencia y sale un informe. Hoy existen el esqueleto, el modelo canónico y el dataset sintético. Las cinco etapas que convierten la evidencia en hallazgos siguen siendo diseño.

En construcción · versión 0.2.0. Los componentes de abajo son archivos reales del repositorio; las etapas que los analizan todavía no están escritas.

Pipeline

Las cinco etapas: ingesta, reconstrucción, detección, cuantificación e informe 1 · Ingestaexportes → eventos 2 · Reconstruccióneventos → recorridos 3 · Detecciónrecorridos → hallazgos 4 · Cuantificaciónhallazgos → h y USD 5 · InformeHTML + findings.json

Las cinco etapas son diseño. Llegan en los milestones M1 a M5 y ninguna se ejecuta hoy. El informe demo es una maqueta hecha a mano, no generada.

Componentes

Disposición hexagonal (ADR 0002). El dominio no importa nada fuera de src/domain/ y un test rompe el build si eso cambia. Una flecha significa «depende de».

Componentes: cli llama a app, app y adapters dependen de ports, ports depende de domain y dataset alimenta a adapters cli/audit · dataset app/runAudit() ports/4 interfaces domain/modelo · reglas dataset/5.000 pedidos adapters/reloj · export

domain/

El modelo canónico: eventos, catálogo, pedidos, recorridos, hallazgos e impacto. No tiene E/S, ni reloj, ni archivos. Aquí vivirán la reconstrucción y las cinco reglas. Hoy: los tipos.

ports/

Las cuatro interfaces de las que depende el resto del motor: EvidenceSource, CatalogSource, ReportRenderer y Clock. Hoy: las cuatro están declaradas; los adaptadores que implementan dos de ellas no existen.

adapters/

El mundo exterior. Un reloj y los serializadores de exporte de los cuatro sistemas. Se les unirán los lectores de ingesta (M1) y el renderizador HTML (M4). Hoy: clock/ y export/; ingest/ y report/ están vacíos.

app/

El caso de uso runAudit(). Unirá ingesta, reconstrucción, detección, cuantificación y renderizado, y no posee ningún formato. Hoy: un esqueleto que no devuelve hallazgos.

cli/

Parseo de argumentos, ayuda y códigos de salida. Dos comandos: audit y dataset. Hoy: los dos corren; audit sale con código 2 porque no hay fuente de evidencia.

dataset/

Un generador determinista con semilla fija. Escribe la evidencia sintética de Ortelis: 5.000 pedidos en septiembre de 2026 y las tasas de impacto. Hoy: corre y los exportes son idénticos byte a byte.

Qué se ejecuta hoy

Check

deno task check comprueba tipos del CLI, el generador, el adaptador de reloj y los tests. Pasa.

Test

deno task test pasa 34 tests en cinco suites: dataset, serializadores, frontera de arquitectura, frontera de licencia y esqueleto.

Auditoría

deno task audit imprime el mensaje de esqueleto y sale con código 2. Todavía no hay fuente de evidencia.

Dataset

deno task dataset regenera los 5.000 pedidos desde una semilla fija. Dos ejecuciones producen exportes idénticos byte a byte.

Diseño

Concepto core

Flow Audit será una herramienta de auditoría. Leerá los registros de cuatro sistemas y reconstruirá el recorrido de cada pedido. Para cada pérdida calculará las horas, los dólares y la evidencia.

Analogía física

Imagina un paquete que cruza cuatro almacenes. Cada almacén anota solo sus propias entradas y salidas.

Nadie sabe dónde el paquete estuvo parado tres días. Flow Audit juntará las cuatro libretas. Marcará el almacén donde el paquete esperó y sumará el costo de esa espera.

Mecánica técnica

  • Ingesta. Leerá los exportes de catálogo, OMS, BPM y aprovisionamiento.
  • Reconstrucción. Unirá los eventos de un pedido con una ventana de tiempo, porque los sistemas no comparten identificador.
  • Reglas. Cinco reglas detectarán fallas sin reintento, esperas manuales, timers vencidos, duplicados y falta de identificador.
  • Impacto. Multiplicará los pedidos afectados por los minutos de trabajo y por el costo de la hora cargada.
  • Severidad. Derivará la severidad de las horas por mes. Nadie la asignará a mano.
  • Informe. Generará un HTML autocontenido y un findings.json con la evidencia de cada hallazgo.

Fórmula de impacto prevista

  • Horas por mes = pedidos afectados × minutos de trabajo por pedido ÷ 60
  • USD por mes = horas por mes × USD 45 por hora cargada
  • Ejemplo con el dataset sintético (R02). 5.000 pedidos × 5 min ÷ 60 = 417 h. 417 h × USD 45 = USD 18.750.

Licencia y componentes de terceros

  • Motor. MIT. El código, el modelo canónico y las reglas se pueden leer, usar y cambiar.
  • Sitio. MIT para el código. Las dos fuentes conservan su licencia: P052 bajo AGPL-3.0 con excepción de incrustación, Source Sans 3 bajo OFL-1.1.
  • Fuente de la demo. Un servicio TMF propio, MIT, sobre el dataset sintético. Está marcado como simulado.
  • Sistemas de prueba. bss-oss-rust se lee solo por HTTP, en una máquina local. No se distribuye aquí, no forma parte de la demo pública y conserva su licencia.
  • Frontera. No se copia ni vendoriza código de terceros, y no se commitea ninguna captura de otro sistema. Al repositorio solo entra dato sintético.
  • Marcas. TM Forum y TMF son de TM Forum. Flow Audit es independiente y no está certificado ni respaldado por TM Forum.