") b.WriteString("APEX — Diagrama de flujo vivo") b.WriteString("

APEX — Diagrama de flujo vivo

") b.WriteString(fmt.Sprintf("
%s · generado %s · %d HARD_PROTECTOR · %d SOVEREIGN_CONFIG · %d BUG_FIXED · READ-ONLY
", html.EscapeString(resp.CanonicalVer), html.EscapeString(resp.GeneratedAt), resp.Counts[flowBrakeHardProtector], resp.Counts[flowBrakeSovereignConfig], resp.Counts[flowBrakeBugFixed])) b.WriteString("

Arquitectura E2E (AWS Tokyo — único runtime)

") for i, n := range resp.Architecture { if i > 0 { b.WriteString(" → ") } b.WriteString(html.EscapeString(n.Label)) } b.WriteString("
") b.WriteString("

Embudo de fire (señal → orden) + frenos

") for _, st := range resp.Stages { b.WriteString(fmt.Sprintf("
%d. %s
%s
", st.Order, html.EscapeString(st.Label), html.EscapeString(strings.Join(st.Nodes, " · ")))) for _, br := range resp.Brakes { if br.Stage == st.ID { b.WriteString(fmt.Sprintf("%s", flowBrakeMermaidClass(br.Class), html.EscapeString(br.File), html.EscapeString(br.WhatItBlocks), html.EscapeString(br.Name))) } } b.WriteString("
") } b.WriteString("

Frenos (clasificación + ubicación)

") for _, br := range resp.Brakes { b.WriteString(fmt.Sprintf("", html.EscapeString(br.Name), html.EscapeString(br.Stage), html.EscapeString(br.Class), html.EscapeString(br.File), html.EscapeString(br.WhatItBlocks))) } b.WriteString("
FrenoEtapaClaseArchivoQué bloquea
%s%s%s%s%s
") b.WriteString("

Mermaid (copiar a cualquier visor)

")
	b.WriteString(html.EscapeString(resp.Mermaid))
	b.WriteString("