Notificaciones push y SMS
avisar a tiempo sin duplicar mensajes ni convertirte en spam.
esfuerzo varios días80 apps del cementerio la necesitan
cómo se usa · 3 pasos
- Copia el archivo.Botón copiar archivo. Es un
SKILL.md: texto en Markdown con instrucciones para tu agente, ya con el encabezado que los agentes esperan. No tienes que entenderlo ni editarlo. - Guárdalo en tu carpeta de skills.Una carpeta con el nombre de la skill y dentro el archivo
SKILL.md, tal cual. En tu carpeta personal sirve para todos tus proyectos, no hace falta copiarla en cada uno. Claude Code:~/.claude/skills/notificaciones-push-y-sms/SKILL.md· Codex:~/.agents/skills/notificaciones-push-y-sms/SKILL.md· Cursor lee esas dos carpetas, no necesita otra. ¿Solo para un proyecto? La misma ruta sin~/, dentro de la carpeta del proyecto. - Pídele la app.Abre tu agente y escríbele en español qué quieres construir («una agenda para mi consultorio con recordatorios por WhatsApp»). Él carga la skill solo cuando hace falta; también puedes llamarla tú:
/notificaciones-push-y-smsen Claude Code y Cursor,$notificaciones-push-y-smsen Codex. Cuando se trabe, vuelve a en qué te vas a trabar.
archivo de la skill
---
name: notificaciones-push-y-sms
description: avisar a tiempo sin duplicar mensajes ni convertirte en spam.
---
# Notificaciones push y SMS
Instrucciones para el agente que está construyendo esta app. Sigue esta skill cuando
mandes alertas fuera de la sesión por Web Push, push móvil o SMS.
## Cuándo usar esta skill
Actívala en cuanto se cumpla cualquiera de estas condiciones:
- El aviso pierde valor si la persona lo ve hasta abrir la app.
- Hay recordatorios de citas, incidentes, entregas o acciones urgentes.
- Necesitas un canal alterno cuando el correo no llega.
- El producto promete alertas configurables por evento y horario.
No agregues tres canales por reflejo. Empieza por el canal que el usuario ya espera y
mide entrega, interacción y bajas antes de sumar otro.
## Cómo armarla
Usa **Web Push con VAPID** para web. Para apps nativas usa **FCM/APNs** mediante Expo si
el proyecto ya usa Expo. Para SMS usa **Twilio** o **Bird** con cobertura comprobada en
cada país objetivo.
1. Modela una notificación lógica separada de sus entregas. Una alerta puede intentar
push y después SMS, pero conserva un solo `notificationId` para evitar duplicados.
2. Guarda preferencias por tipo de evento, canal, zona horaria y horario silencioso.
Pide permiso de push después de explicar el valor, no al cargar la primera pantalla.
3. Cifra suscripciones Web Push y tokens móviles; bórralos cuando el proveedor responda
que expiraron. Nunca uses el token como identificador de usuario.
4. Encola cada entrega con una llave idempotente. Registra proveedor, intento, estado,
código de error y fecha de entrega cuando exista callback.
5. Para SMS, normaliza a E.164 y verifica que el país y tipo de remitente estén
soportados. Respeta consentimiento, baja y restricciones A2P locales.
6. Calcula segmentos antes de enviar SMS: Unicode y textos largos pueden multiplicar el
costo. Manda enlaces cortos bajo tu propio dominio, no acortadores opacos.
7. Consulta precios vigentes por país y operador, incluidos número, remitente y cargos
del carrier. Guarda un presupuesto diario y corta envíos anómalos.
8. Implementa fallback solo para avisos críticos y después de un timeout definido. Un
mensaje `delivered` no necesita repetirse por todos los canales.
## En qué te vas a trabar
- **Push no garantiza entrega.** El sistema operativo decide cuándo mostrarlo y puede
revocar tokens; diseña la app para que el estado correcto también exista adentro.
- **SMS funciona distinto en cada país.** El remitente, registro, contenido permitido y
recepción de respuestas cambian; verifica México, Brasil, Colombia o el mercado real
por separado.
- **El fraude por bombeo de SMS genera facturas reales.** Deshabilita destinos que no
operas, limita intentos por cuenta, IP y número, y alerta ante picos.
- **Los costos no son una tarifa LATAM única.** Usa la API o tabla vigente del proveedor
y revisa el costo efectivo por mensaje entregado, no una cifra copiada de un blog.
## Qué NO hacer
- No uses SMS para secretos permanentes ni incluyas datos sensibles en la pantalla bloqueada.
- No pidas permiso de notificaciones sin contexto ni lo conviertas en requisito de registro.
- No reintentes un error permanente como número inválido o baja del destinatario.
- No anuncies entrega garantizada cuando el proveedor solo confirmó aceptación.
## Checklist
- [ ] Cada tipo de aviso tiene finalidad, canal y urgencia definidos.
- [ ] Preferencias, consentimiento, baja y horario silencioso funcionan por usuario.
- [ ] Tokens inválidos se eliminan y los webhooks de estado son idempotentes.
- [ ] El fallback no produce avisos dobles cuando el primer canal entrega tarde.
- [ ] Países no usados están bloqueados y existen límites contra bombeo de SMS.
- [ ] Costos por país, segmento y carrier se miden con tarifas vigentes.
- [ ] El contenido sensible no aparece en push ni SMS.
cópialo en tu agente de código: Claude Code, Codex, Cursor · pégalo como su archivo de skill y sigue las instrucciones tal cual.