> ## Documentation Index
> Fetch the complete documentation index at: https://internal.softcrum.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Specs de diagramas — renderizar con el skill diagram-design (Claude Code)

> Hacer el onboarding del skill una vez contra el sitio de Softcrum para que todos los diagramas hereden los tokens de marca; exportar SVG para Mintlify (/diagram-design:export --svg-only). Las fuentes HTML viven en el repositorio.

> Traducción. Autoritativo: [`../../diagrams/diagram-specs.md`](/diagrams/diagram-specs).

Hacer el onboarding del skill una vez contra el sitio de Softcrum para que todos los diagramas
hereden los tokens de marca; exportar SVG para Mintlify (`/diagram-design:export --svg-only`). Las
fuentes HTML viven en el repositorio. Una sección es un diagrama; los nombres de tipo calzan con el
catálogo del skill.

## D1 · tipo: architecture — "Softcrum Suite — contexto ampliado (C4-1)"

Nodos: sistemas del tenant (POS/ecommerce/ERP) · Runtime API · Management API · Consola (tenant) ·
Softcrum Ops · superficies de member (portal/widget/mobile) · contextos core|loyalty|messaging|crm ·
Outbox → 6 consumidores · proveedores (Resend, FCM, Pusher, Upstash, Supabase, Vercel Queues). Acento
focal: Runtime API + outbox. Anotación: "la consola y el portal consumen SOLO la API pública".

## D2 · tipo: high-level — "Ingesta y efectos, end to end"

track 202 → cola → procesador (identidad, eventos, segmentos, reglas) → libro → outbox → carriles →
proveedores → webhooks de estado → send\_status\_history. Focal: el procesador. Anotación: el
`correlation_id` atraviesa toda la línea.

## D3–D6 · tipo: er — uno por schema (core / loyalty / messaging / crm)

Entidades y FKs exactamente como en las tablas de las specs de módulo; marcar las tablas
particionadas con el subtítulo "particionada/mensual"; catálogos paramétricos en tono apagado; acento
en contacts (D3), ledger\_transactions + point\_lots (D4), sends + tablas de enrutamiento (D5), nota de
la proyección del timeline (D6).

## D7 · tipo: sequence — "Pipeline de trackEvent (slice canónico #2)"

Actores: sistema del tenant · Runtime API · cola · procesador · dominio de loyalty · outbox ·
despachador de notificaciones · proveedor. Los mensajes siguen las capas 1–6 del slice; retornos
punteados para el 202 y los webhooks del proveedor; nota sobre las compuertas de idempotencia entre
cola y procesador.

## D8 · tipo: sequence — "Canje (padre/hijo, idempotente)"

POS → `POST /redemptions` (Idempotency-Key) → validación contra stacking\_rules → hijos aplicados →
redeem en el libro (lotes FIFO) → 200 con efectos; marco alternativo: reintento con la misma clave
reproduce el resultado guardado; marco alternativo: rollback padre revert|keep.

## D9 · tipo: swimlane — "Blast en carriles duales"

Carriles: consola · carril de marketing · carril transaccional · proveedor (límite compartido) · OTP
de otro tenant. Mostrar al worker de marketing cediendo cuando la profundidad transaccional supera el
umbral; token buckets en el carril del proveedor. Anotación: "los límites del proveedor se comparten
entre TODOS los tenants".

## D10 · tipo: flowchart — "Cascada de resolveChannels"

Cadena de decisión de los niveles 0→3 → compuertas del destinatario (consentimiento → supresión →
preferencias → quiet hours y caps \[marketing]) → encolar por canal; cada "no" sale a "no enviado +
razón registrada".

## D11 · tipo: state — "Ciclo de vida de send\_status"

queued→sent→delivered→opened→clicked; ramas bounced/complained/failed; bounced y complained escriben
supresiones automáticamente (acento).

## D12 · tipo: state — "Ciclo de vida del canje"

requested→validated→applied→(rolled\_back: revert|keep)→final; estados hijos anidados; auto-bucle de
replay idempotente sobre requested.

## D13 · tipo: timeline — "Camino a G1-Engage (2026-11-01) y compuerta legal (2026-12-01)"

Agosto: enmienda + estándares + ADRs · Septiembre: TS-001..TS-004, features de F1a · Octubre:
endurecimiento de F1a con el design partner, runbooks, aumento de límite de Resend · 1 de noviembre:
G1-Engage · 1 de diciembre: plena vigencia de la Ley 21.719 (paquete legal aprobado por abogado antes
del lanzamiento comercial, marzo 2027).
