/**
* Builder puro model→HTML para el reporte de run de workflow (registro de diseño, run bd039ef9).
*
* Contrato (pineado por observe/security.test.mjs):
* - Cada string del modelo es UNTRUSTED DATA: la mayoría de strings renderiza vía el escaper de 5 chars;
* las salidas de agentes renderizan como Markdown solo vía marked + sanitize-html con allowlist estricta.
* - La página emite EXACTAMENTE dos bloques