notification-system-builder
Builds notification systems with unified delivery, user preferences, and channel management.
소스 정보
- 저장소
- Fadil369/Solutions
- 최근 소스 활동
- 2026년 4월 9일 00:36
- 감지된 SKILL.md 언어
- 영어
- 스타
- 1
- 포크
- 0
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
SKILL.md 표시 중
SKILL.md
소스 지침 · 읽기 전용 미리보기- name
- Notification System Builder
- version
- 1.0.0
- description
- Builds notification systems with unified delivery, user preferences, and channel management.
- author
- workspace
- activated
- false
# Notification System Builder
## Overview
Builds unified notification systems across email, SMS, push, and in-app channels.
## Decision Framework
### When to use
- User needs updates from multiple sources
- Multiple delivery channels required
- User preferences for notification types needed
### When NOT to use
- Simple single-channel alerts
- Real-time streaming data
## Decision Tree
```
Is notification user-triggered?
├── Yes → In-app toast + optional email
├── No → Is it time-sensitive?
│ ├── Yes → Push notification + SMS fallback
│ └── No → Email digest or in-app badge
```
## Trigger Phrases
- "Add notifications"
- "Alert users when..."
- "Send email when..."
- "Push notifications for..."
## Notification Types
| Type | Channel | Priority | Retention |
|------|---------|----------|-----------|
| Transactional | Email + In-app | High | 30 days |
| Marketing | Email | Low | 90 days |
| System | In-app | Medium | 7 days |
| Alert | Push + SMS | Critical | Until read |
## Implementation Patterns
### Preference Schema
```json
{
"channels": {
"email": { "enabled": true, "frequency": "immediate" },
"push": { "enabled": true, "quiet_hours": ["22:00", "08:00"] },
"sms": { "enabled": false },
"in_app": { "enabled": true }
},
"types": {
"marketing": { "enabled": false },
"updates": { "enabled": true },
"alerts": { "enabled": true }
}
}
```
### Delivery Queue
```javascript
class NotificationQueue {
async enqueue(notification) {
const prefs = await this.getUserPreferences(notification.userId);
const channels = this.resolveChannels(notification.type, prefs);
for (const channel of channels) {
await this.queueChannelDelivery(notification, channel);
}
}
}
```
### Batching Strategy
```javascript
const batchWindow = {
email: { duration: '1h', maxItems: 10 },
push: { duration: '5m', maxItems: 5 },
sms: { duration: '0', maxItems: 1 }
};
```
GitHub에서 보기