Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/sonature-lab/timsquad/push-notificationsnpx skills add sonature-lab/timsquad --skill push-notificationsgit clone --depth 1 https://github.com/sonature-lab/timsquadWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/sonature-lab/timsquad/push-notifications)<a href="https://agentmods.dev/skills/sonature-lab/timsquad/push-notifications"><img src="https://agentmods.dev/badge/skills/sonature-lab/timsquad/push-notifications.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00113 | $0.01277 |
| Opus 5 | $0.00056 | $0.00639 |
| Sonnet 5 | $0.00023 | $0.00255 |
| Haiku 4.5 | $0.00011 | $0.00128 |
Grade A, and why
push-notifications scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 6d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 88 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Push Notifications & Background Processing
Flutter FCM + Local Notifications + Background Processing 통합 가이드. iOS APNs / Android FCM 채널 기반, 모든 앱 상태에서의 알림 수신 및 처리.
Philosophy
- 알림은 서비스 — Feature-first 구조에서
core/notifications/로 중앙화 - 권한은 맥락 — 앱 첫 실행이 아닌, 사용자가 가치를 인지한 순간에 요청
- 백그라운드는 격리 — top-level 함수 + 최소 의존성, UI 코드 접근 금지
- 플랫폼 차이 흡수 — 단일 인터페이스로 iOS/Android 분기 캡슐화
Resources
7개 규칙 + 2개 참조. 알림 파이프라인 전체를 커버.
| Priority | Type | Resource | Description |
|---|---|---|---|
| CRITICAL | rule | fcm-setup | FCM 초기화, 토큰 관리, 서버 연동 |
| CRITICAL | rule | notification-handling | 포그라운드/백그라운드/종료 상태 메시지 처리 |
| CRITICAL | rule | local-notifications | flutter_local_notifications 설정, 채널, 스케줄링 |
| HIGH | rule | notification-permissions | 권한 요청 타이밍, 프리프롬프트, 설정 유도 |
| HIGH | rule | deep-linking | 알림 탭 → 특정 화면 네비게이션, 페이로드 처리 |
| HIGH | rule | rich-notifications | 이미지, 액션 버튼, 그룹 알림, 사운드 |
| HIGH | rule | background-processing | workmanager, 백그라운드 fetch, Isolate 태스크 |
| — | ref | platform-setup | iOS APNs + Android 채널 + 권한 설정 상세 |
| — | ref | notification-architecture | 알림 서비스 아키텍처, 디렉토리 구조, 테스트 전략 |
Quick Rules
FCM 설정
Firebase.initializeApp()→main()에서 최우선 호출- FCM 토큰은 서버에 저장,
onTokenRefresh구독으로 갱신 - iOS: APNs 인증 키(.p8) 방식 사용 (인증서보다 관리 용이)
@pragma('vm:entry-point')로 백그라운드 핸들러 보호
메시지 핸들링
FirebaseMessaging.onMessage→ 포그라운드 (직접 로컬 알림 표시)FirebaseMessaging.onBackgroundMessage→ top-level 함수 필수getInitialMessage()→ 종료 상태에서 알림 탭 처리 (1회만 호출)onMessageOpenedApp→ 백그라운드에서 알림 탭 처리
로컬 알림
- Android: 채널 ID 필수 (Android 8+), 중요도별 분리
- iOS:
DarwinInitializationSettings권한 플래그 - 스케줄링:
zonedSchedule(timezone 패키지 필수) - 페이로드: JSON 문자열로 직렬화, 탭 시 파싱
What ships with it
9 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- references/notification-architecture.md 11 KB
- references/platform-setup.md 9.1 KB
- rules/background-processing.md 9.3 KB
- rules/deep-linking.md 6.6 KB
- rules/fcm-setup.md 4.8 KB
- rules/local-notifications.md 7.7 KB
- rules/notification-handling.md 8.2 KB
- rules/notification-permissions.md 7.8 KB
- rules/rich-notifications.md 8.8 KB
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 6d ago First seen · 88 lines · 113 tokens per session scan A 1a1194390ab1
push-notifications is a skill published in the GitHub repository sonature-lab/timsquad (11 stars, last pushed 6d ago), licensed MIT. It adds 113 tokens to every session and 1,277 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
at_client_skills-sdk
Use this skill when a developer is building a Dart or Flutter app that depends on atclient or atclientflutter from pub.dev, stores or shares data via the Atsign Protocol, needs onboarding (CRAM new-atsign, atKeys file, keychain, APKAM) or APKAM enrollment, or asks about AtCollection , CItem , Query , sub-collections…
flutter-pre-caching
Use when preloading fonts, asset/network images, Lottie/Rive animations, local JSON/config, warming initial API data, or optimizing Flutter Web startup.
firebase-messaging
Use when setting up Firebase Cloud Messaging, managing permissions and tokens, handling background/foreground notification taps, or dispatching messages server-side (HTTP v1).
bloc
Use when creating a Cubit or Bloc, modeling state with sealed classes or status enums, wiring BlocBuilder/BlocListener/BlocProvider, writing bloc tests, or choosing between Cubit and Bloc.
generate-images-with-firebase-ai
Use when generating or editing images from Flutter/Dart with Firebase AI Logic and a Gemini image model (Nano Banana), making the first call work, choosing Gemini Developer API vs Vertex AI, hitting quota, billing or App Check failures, getting empty or image-only responses, sending a user photo as input, controlling…
firebase-app-check
Use when implementing app attestation, configuring App Check providers, setting up debug tokens, enabling backend enforcement, or managing token refresh.