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/godmodeImplements 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.
Configures Bark push, WeChat, and system notifications for Claude Code projects. Enables persistent alerts and proactive sending via PowerShell scripts after tasks.