From godmode
Guides implementation of multi-channel notifications: push (FCM/APNs/OneSignal), SMS (Twilio), email (SendGrid), in-app (WebSocket), with preferences, quiet hours, batching, DB schema, API, and delivery tracking.
How this skill is triggered — by the user, by Claude, or both
Slash command
/godmode:notifyThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
- `/godmode:notify`, "push notifications", "SMS alerts"
/godmode:notify, "push notifications", "SMS alerts"grep -r "sendgrid\|twilio\|firebase.*messaging" \
--include="*.ts" --include="*.js" -l 2>/dev/null
grep -r "NotificationService\|notification_service" \
--include="*.ts" --include="*.py" -l 2>/dev/null
Channels: Push | SMS | Email | In-App | Webhook
Categories & Priority:
Security (critical): 2FA, login alerts, password
Transactional (high): orders, payments, shipping
Social (normal): mentions, comments -- batchable
Marketing (low): promotions, digest -- batchable
Event -> Service -> Preference Check + Quiet Hours
-> Channel Router -> Per-channel queues
-> Provider delivery -> Delivery tracking
NotificationType: defaultChannels, requiredChannels,
allowedChannels, templates, priority, batchableIF security notification: bypass quiet hours + prefs. IF >15 notifications/hour to same user: batch them.
Per-type, per-channel toggles. Security alerts have required channels (cannot disable). Global settings: quiet hours (timezone-aware), digest frequency, unsub.
One-click unsubscribe handler for email compliance.
Core tables: notifications, notification_deliveries,
device_tokens, notification_preferences, digest_queue.
Key indexes: (user_id, created_at DESC),
(user_id, read_at) WHERE read_at IS NULL.
/ws/notifications with token authGET /notifications (cursor-paginated, filter), GET /notifications/unread-count, PATCH /notifications/:id/read, POST /notifications/mark-all-read, GET/PUT /notifications/preferences.
15/hour same user: batch
Track: sent -> delivered -> read / failed / bounced. Alert on: push delivery <90%, SMS <95%, opt-out spike >2%, stale tokens >10%.
Append .godmode/notify.tsv:
timestamp component channel provider status details
KEEP if: notification delivered AND preferences
checked AND delivery status tracked.
DISCARD if: not received OR preferences bypassed
OR duplicate sends.
STOP when FIRST of:
- All channels deliver with preference checks
- Quiet hours enforced
- Idempotency works
On failure: git reset --hard HEAD~1. Never pause.
| Failure | Action |
|---|---|
| Push token invalid | Remove on InvalidRegistration |
| SMS failed | Check error code, suppress invalid |
| WebSocket dropped | Auto-reconnect, fetch missed |
| Queue stalled | Check Redis/SQS, verify worker |
| Timezone missing | Fall back to UTC with warning |
npx claudepluginhub arbazkhan971/godmodeQualifies notification needs across urgency, channel selection, delivery confirmation, and fallback patterns to recommend Twilio notification architecture for transactional alerts and reminders.
Implements push notifications for iOS, Android, React Native, and web using Firebase Cloud Messaging and native services. Handles permissions, tokens, background/foreground messages, and channels.
Provides expert guidance for Azure Notification Hubs: troubleshooting, best practices, architecture, security, and coding patterns for push notifications via FCM/APNS/WNS.