> ## 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.

# Plan de Generación Documental — CRM + Fidelización (v1.0)

> 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.

> 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/`)

| ADR    | Tema                                                                         | Decisiones que consagra |
| ------ | ---------------------------------------------------------------------------- | ----------------------- |
| ADR-09 | customer-core como bounded context compartido                                | v0.2 §1, DEC-B1         |
| ADR-10 | Identidad member: realm Better Auth separado + token exchange                | D4, DEC-D5              |
| ADR-11 | Ledger de puntos: inmutable, dual currency, lotes FIFO, pending→available    | v0.2 §2.2               |
| ADR-12 | DSL de segmentos v1 + evaluación incremental + reconciliación nocturna       | D6                      |
| ADR-13 | Pipeline de ingesta: fast-ack + colas + particionado                         | DEC-B8, DEC-D7          |
| ADR-14 | Métrica facturable: contacto accionable                                      | DEC-G3                  |
| ADR-15 | Envío dual-carril multi-canal (riesgo rate-limit compartido Resend)          | DEC-E8                  |
| ADR-16 | Pricing estilo Vercel + rating engine + cobro variable MoR                   | DEC-G3/G4               |
| ADR-17 | CQRS-lite + audit log; event sourcing descartado como norma                  | DEC-C1/C2               |
| ADR-18 | Estándar de particionamiento en Supabase (incl. resultado spike pg\_partman) | DEC-B8                  |
| ADR-19 | Sistema de notificaciones en cascada                                         | DEC-E2                  |
| ADR-20 | Mobile white-label: app única con theming, extensible a binario dedicado     | DEC-F2/F3               |

* 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).

## Lote 7 — Paquete legal (borradores para revisión de abogado — DEC-J2, pendiente P-2)

* 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

```
Lote 0 ──► Lote 1 ──► Lote 2 ──► Lote 3 ──► Lote 6 (construcción)
                         │            └────► Lote 4 (paralelo desde Lote 3)
                         └──► Lote 5 (paralelo desde Lote 2)
Lote 7: independiente, arranca cuando Daniel confirme P-2 (abogado)
Lote 8: se alimenta de 3+4; se publica por módulo a medida que existan
```

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