|
|
|
@ -25,7 +25,7 @@ Principios
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## Fase 0 — Auditoría y decisiones de compatibilidad
|
|
|
|
## Fase 0 — Auditoría y decisiones de compatibilidad (Completada)
|
|
|
|
|
|
|
|
|
|
|
|
Objetivos
|
|
|
|
Objetivos
|
|
|
|
- Acordar defaults y compatibilidad de comandos.
|
|
|
|
- Acordar defaults y compatibilidad de comandos.
|
|
|
|
@ -53,7 +53,7 @@ Criterios de aceptación
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## Fase 1 — Alias y routing de comandos (sin onboarding aún)
|
|
|
|
## Fase 1 — Alias y routing de comandos (sin onboarding aún) (Completada)
|
|
|
|
|
|
|
|
|
|
|
|
Objetivos
|
|
|
|
Objetivos
|
|
|
|
- Añadir y mapear alias “info” → “ayuda”; “mias” → “ver mis”; “todas” → “ver todas”.
|
|
|
|
- Añadir y mapear alias “info” → “ayuda”; “mias” → “ver mis”; “todas” → “ver todas”.
|
|
|
|
@ -77,12 +77,12 @@ Impacto en tests
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## Fase 2 — Infra de Onboarding por DM en paquetes (2 DMs, migración mínima para interacción)
|
|
|
|
## Fase 2 — Infra de Onboarding por DM en paquetes (2 DMs, migración mínima para interacción) (Completada)
|
|
|
|
|
|
|
|
|
|
|
|
Objetivos
|
|
|
|
Objetivos
|
|
|
|
- Enviar un paquete de 2 DMs (Mensaje 1 + Mensaje 2) por usuario cuando se crea una tarea en un grupo.
|
|
|
|
- Enviar un paquete de 2 DMs (Mensaje 1 + Mensaje 2) por usuario cuando se crea una tarea en un grupo.
|
|
|
|
- Mensaje 1: CTA “/t tomar {CÓDIGO}” + “/t info”.
|
|
|
|
- Mensaje 1: CTA “/t tomar {CÓDIGO}” + “/t info”.
|
|
|
|
- Mensaje 2: mini‑chuleta (“/t mias”, “/t todas”, “/t configurar …”, “/t web”), 3–8 s después del Mensaje 1.
|
|
|
|
- Mensaje 2: mini‑chuleta (“/t mias”, “/t todas”, “/t configurar …”, “/t web”), 5–10 s después del Mensaje 1.
|
|
|
|
- Repetir el mismo paquete una única vez más si pasan ≥ 14 días sin interacción del usuario (si hubo interacción, no se envía el segundo paquete).
|
|
|
|
- Repetir el mismo paquete una única vez más si pasan ≥ 14 días sin interacción del usuario (si hubo interacción, no se envía el segundo paquete).
|
|
|
|
- Cap por evento; sin mensajes en grupos.
|
|
|
|
- Cap por evento; sin mensajes en grupos.
|
|
|
|
|
|
|
|
|
|
|
|
@ -99,12 +99,12 @@ Overview de cambios
|
|
|
|
- ResponseQueue:
|
|
|
|
- ResponseQueue:
|
|
|
|
- enqueueOnboarding(recipient, message, metadata) con metadata canónica: { kind: 'onboarding', variant: 'initial'|'reminder', part: 1|2, bundle_id, group_id, task_id, display_code }.
|
|
|
|
- enqueueOnboarding(recipient, message, metadata) con metadata canónica: { kind: 'onboarding', variant: 'initial'|'reminder', part: 1|2, bundle_id, group_id, task_id, display_code }.
|
|
|
|
- getOnboardingStats(recipient): { total, lastSentAt, lastVariant?: 'initial'|'reminder' } consultando response_queue por metadata.kind='onboarding'.
|
|
|
|
- getOnboardingStats(recipient): { total, lastSentAt, lastVariant?: 'initial'|'reminder' } consultando response_queue por metadata.kind='onboarding'.
|
|
|
|
- Soportar programar el segundo DM del paquete con next_attempt_at = now + ONBOARDING_BUNDLE_DELAY_MS (por defecto 4000–8000ms).
|
|
|
|
- Soportar programar el segundo DM del paquete con un retraso aleatorio de 5000–10000ms.
|
|
|
|
- CommandService (en /t nueva):
|
|
|
|
- CommandService (en /t nueva):
|
|
|
|
- Tras crear la tarea en grupo, construir candidatos:
|
|
|
|
- Tras crear la tarea en grupo, construir candidatos:
|
|
|
|
- miembros activos del grupo (GroupSync.listActiveMemberIds),
|
|
|
|
- miembros activos del grupo (GroupSync.listActiveMemberIds),
|
|
|
|
- excluir creador, asignados y el número del bot,
|
|
|
|
- excluir creador, asignados y el número del bot,
|
|
|
|
- filtrar por /^\d+$/,
|
|
|
|
- filtrar por dígitos puros con longitud < 14,
|
|
|
|
- si GROUP_GATING_MODE=enforce y el grupo no está allowed → no enviar.
|
|
|
|
- si GROUP_GATING_MODE=enforce y el grupo no está allowed → no enviar.
|
|
|
|
- Cap por evento (ONBOARDING_EVENT_CAP, p. ej. 30).
|
|
|
|
- Cap por evento (ONBOARDING_EVENT_CAP, p. ej. 30).
|
|
|
|
- Para cada destinatario:
|
|
|
|
- Para cada destinatario:
|
|
|
|
@ -118,7 +118,7 @@ Copys de onboarding (exactos)
|
|
|
|
- “Hola, soy el bot de tareas. En ‘{Grupo}’ acaban de crear una tarea: #{CÓDIGO} {descripción corta}
|
|
|
|
- “Hola, soy el bot de tareas. En ‘{Grupo}’ acaban de crear una tarea: #{CÓDIGO} {descripción corta}
|
|
|
|
Encárgate: /t tomar {CÓDIGO} · Más info: /t info
|
|
|
|
Encárgate: /t tomar {CÓDIGO} · Más info: /t info
|
|
|
|
Nota: nunca respondo en grupos; solo por privado.”
|
|
|
|
Nota: nunca respondo en grupos; solo por privado.”
|
|
|
|
- Mensaje 2 (mini‑chuleta; se envía tras 3–8 s, en ambos disparos):
|
|
|
|
- Mensaje 2 (mini‑chuleta; se envía tras 5–10 s, en ambos disparos):
|
|
|
|
- “Guía rápida (este es un mensaje único):
|
|
|
|
- “Guía rápida (este es un mensaje único):
|
|
|
|
· Tus tareas: /t mias · Todas: /t todas
|
|
|
|
· Tus tareas: /t mias · Todas: /t todas
|
|
|
|
· Recordatorios: /t configurar diario | l‑v | semanal | off
|
|
|
|
· Recordatorios: /t configurar diario | l‑v | semanal | off
|
|
|
|
@ -138,7 +138,7 @@ Notas sobre migraciones
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## Fase 3 — Ajustes de ayuda (Help v2) y refuerzos en DMs operativos
|
|
|
|
## Fase 3 — Ajustes de ayuda (Help v2) y refuerzos en DMs operativos (No se implementará)
|
|
|
|
|
|
|
|
|
|
|
|
Objetivos
|
|
|
|
Objetivos
|
|
|
|
- Actualizar help rápido/completo con alias y nuevas recomendaciones.
|
|
|
|
- Actualizar help rápido/completo con alias y nuevas recomendaciones.
|
|
|
|
@ -163,7 +163,7 @@ Impacto en tests
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## Fase 4 — Métricas y flags de configuración
|
|
|
|
## Fase 4 — Métricas y flags de configuración (No se implementará)
|
|
|
|
|
|
|
|
|
|
|
|
Objetivos
|
|
|
|
Objetivos
|
|
|
|
- Medir adopción y salud del onboarding y de alias.
|
|
|
|
- Medir adopción y salud del onboarding y de alias.
|
|
|
|
@ -199,7 +199,7 @@ Overview de cambios
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## Fase 5 — Tests y validación end-to-end
|
|
|
|
## Fase 5 — Tests y validación end-to-end (No se implementará)
|
|
|
|
|
|
|
|
|
|
|
|
Objetivos
|
|
|
|
Objetivos
|
|
|
|
- Cubrir alias nuevos, cambios de routing, y lógica de onboarding.
|
|
|
|
- Cubrir alias nuevos, cambios de routing, y lógica de onboarding.
|
|
|
|
@ -223,7 +223,7 @@ Objetivos
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## Fase 6 — Despliegue y control
|
|
|
|
## Fase 6 — Despliegue y control (No se implementará)
|
|
|
|
|
|
|
|
|
|
|
|
Objetivos
|
|
|
|
Objetivos
|
|
|
|
- Desplegar con seguridad y capacidad de rollback.
|
|
|
|
- Desplegar con seguridad y capacidad de rollback.
|
|
|
|
@ -240,7 +240,7 @@ Checklist de despliegue
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## Fase 7 — Consideraciones futuras (no bloqueantes)
|
|
|
|
## Fase 7 — Consideraciones futuras (no bloqueantes) (No se implementará)
|
|
|
|
|
|
|
|
|
|
|
|
Ideas a evaluar después
|
|
|
|
Ideas a evaluar después
|
|
|
|
- “Bienvenida al primer DM inbound” (mensaje corto de bienvenida una única vez cuando el usuario inicia chat).
|
|
|
|
- “Bienvenida al primer DM inbound” (mensaje corto de bienvenida una única vez cuando el usuario inicia chat).
|
|
|
|
@ -291,7 +291,7 @@ Ideas a evaluar después
|
|
|
|
2) Onboarding — Mensaje 2 (reminder, único)
|
|
|
|
2) Onboarding — Mensaje 2 (reminder, único)
|
|
|
|
- “Guía rápida (este es un mensaje único):
|
|
|
|
- “Guía rápida (este es un mensaje único):
|
|
|
|
· Tus tareas: /t mias · Todas: /t todas
|
|
|
|
· Tus tareas: /t mias · Todas: /t todas
|
|
|
|
· Recordatorios: /t configurar diario | l‑v | semanal
|
|
|
|
· Recordatorios: /t configurar diario | l‑v | semanal | off
|
|
|
|
· Web: /t web”
|
|
|
|
· Web: /t web”
|
|
|
|
|
|
|
|
|
|
|
|
3) Transición cuando se intenta listar desde grupo (responder por DM)
|
|
|
|
3) Transición cuando se intenta listar desde grupo (responder por DM)
|
|
|
|
|