Skip to main content
Convierte el registro-decisiones-v1.md en la documentación real del repositorio y Mintlify. Idiomas: repo en inglés (DEC-I1); Mintlify EN/ES. Cada lote cierra con criterios verificables. Los lotes se generan en orden; dentro de un lote los documentos son paralelizables por agentes.

Lote 0 — Enmienda de constitución (1 documento, el único que toca el CLAUDE.md raíz)

  • Amendment: agregar QueuePort y NotificationChannelPort a las categorías de puertos permitidas (DEC-C3); codificar la regla de binding por composition root de módulo (DEC-C4); referenciar los estándares nuevos (notifications.md) y actualizados.
  • Cierre: diff mínimo sobre el CLAUDE.md raíz aprobado por Daniel línea por línea (mismo rito que la constitución original).

Lote 1 — Estándares (6 documentos, todos en /docs/standards/)

  1. data.md (actualización mayor): tablas paramétricas (DEC-B2/B3/B4), money (DEC-B5/B6), particionamiento (DEC-B8), retención/export (DEC-B7), clasificación de datos y national_id (DEC-A4), regla extensible-por-tenant.
  2. events.md: catálogo de eventos de dominio de los 4 contexts, correlation_id end-to-end (DEC-E7), convención de nombres.
  3. jobs.md: QueuePort, consumidores idempotentes (processed_jobs, DEC-C6), reintentos/DLQ/dead_letters (DEC-C5), colas por canal con prioridad transaccional (DEC-E8).
  4. api.md: paths por módulo (DEC-D1/D2), permisos module.resource.action (DEC-D5), SLOs Runtime/Management (DEC-D7), deprecación (DEC-D3), rate limits publicados (DEC-D4), acceso terceros sin IP allowlist (DEC-D6).
  5. notifications.md (NUEVO): cascada niveles 0–3, resolveChannels(), preference center, quiet hours/caps, trazabilidad, matriz canal×fase (DEC-E1..E8).
  6. security.md (actualización): roles de máquina, write keys, masking/permiso dedicado de national_id, auditoría de acceso.
  • Cierre: cada estándar con reglas MUST/NEVER + anti-ejemplos; dependency-cruiser y CI actualizados donde aplique.

Lote 2 — ADRs (12 documentos, serie transversal en /docs/adr/)

  • Placeholders declarados (se escriben cuando toque): proveedor SMS (F1b), wallet passes (F2), multi-moneda/FX (F2), WhatsApp (F2).
  • Cierre: formato ADR existente; estado Accepted tras visto bueno de Daniel.

Lote 3 — Specs de módulo (4 documentos, /docs/specs/)

  • core-spec.md, loyalty-spec.md, messaging-spec.md, crm-spec.md: entidades e invariantes, tablas por schema (con paramétricas y particiones marcadas), eventos de dominio emitidos/consumidos, endpoints con su permiso único, reglas RBAC, SLOs, y puntos de extensión (program_id, money_component, rule_effect_types abierto — DEC-H2/H3/H4).
  • Cierre: toda tabla del registro aparece en exactamente una spec; cero contradicciones con estándares (revisión cruzada por agente).

Lote 4 — Glosario, diagramas y slices canónicos

  • Glosario: adiciones EN↔ES (contact, member, ledger, lot, redemption, suppression, marketable contact…) + sinónimos prohibidos (“cliente final” NUNCA “usuario”; “member” NUNCA “user”).
  • Diagramas con skill diagram-design (DEC-I2), fuentes HTML en repo + export SVG a Mintlify: C4 contexto y contenedores de la suite ampliada; ERD por schema (4); secuencias de los 4 caminos calientes (track→efectos, redeem idempotente, blast dual-carril, notificación con trazabilidad); state machine de send_status y de redemption.
  • Spec del slice canónico #2 trackEvent (arquetipo pipeline asíncrono, DEC-I5), siete capas, análogo al existente.
  • Cierre: gallery de diagramas renderiza con la paleta de marca Softcrum (onboarding del skill contra el sitio).

Lote 5 — Runbooks (/docs/runbooks/)

  • Brecha de datos 72h (DEC-J4, bloqueante pre-lanzamiento) · deliverability y warm-up de dominios · gestión de particiones (creación, default, export+purge por retención) · restore de tenant extendido con datos del módulo · replay de dead letters.
  • Cierre: cada runbook ejecutable paso a paso por una persona sin contexto previo.

Lote 6 — Task specs iniciales (plantilla existente)

  1. Migración fundacional: schemas + paramétricas seed + particiones designadas + audit_log + processed_jobs/dead_letters.
  2. Enmienda aplicada: puertos QueuePort/NotificationChannelPort + adaptadores Vercel Queues/Resend/FCM/in-app/webhook.
  3. Pipeline de ingesta (fast-ack + processor idempotente).
  4. Slice canónico trackEvent completo (valida TODO el sistema contra la realidad — análogo al rol de createInitiative).
  5. Extensiones de CI: lint de particiones (partition key en queries), validación de permisos por endpoint, seeds de paramétricas.
  • Cierre: cada spec pasa el Definition of Done actualizado (incluye presupuestos p95 como ítems).
  • DPA (anexo de tratamiento) ES · política de privacidad ES/EN · ToS ES/EN · RAT interno Softcrum + especificación del generador de RAT por tenant · lista de subencargados con base de transferencia internacional · plantilla DPIA · anexo de medidas técnicas y organizativas · acta de designación de DPO (Daniel, provisional).
  • REGLA: ningún documento de este lote se firma ni publica sin revisión de abogado chileno especializado en datos. Son borradores profesionales de trabajo.
  • Cierre: paquete entregado al abogado; observaciones incorporadas; versionado en Comply.

Lote 8 — Mintlify (docs.softcrum.com, bilingüe — DEC-I1/I3)

  • Estructura EN/ES por módulo: overview, conceptos, procesos y procedimientos, diagramas (export del lote 4), guías de integración (quickstart track/identify, token exchange, webhooks, widget), API reference generada desde OpenAPI, changelog y política de deprecación, página de rate limits por plan (DEC-D4), subencargados y trust center.
  • Cierre: navegación completa en ambos idiomas; API reference sincronizada con el código (OpenAPI como fuente).

Secuencia crítica y dependencias

Hito legal externo: Ley 21.719 plena vigencia 1-dic-2026 → Lote 7 revisado por abogado + runbook de brecha operativos ANTES del lanzamiento comercial.