Communication notifications workflow
Implement Apple communication and Time Sensitive notifications with intent donation, Focus behavior, and a bounded Notification Service Extension processing path.From its SKILL.md
npx -y skills add gaelic-ghost/socket --skill communication-notifications-workflowAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 6 stars6 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
2.5 KB, 401 tokens by cl100k_base, as published. Nobody here has run it
Communication Notifications Workflow
Purpose
Deliver calling and messaging notifications with accurate people and conversation context, while keeping Focus behavior, interruption level, and Notification Service Extension processing within their documented boundaries.
Workflow
- Confirm that the notification represents a real person-to-person communication or incoming call; do not use communication presentation to promote unrelated activity.
- Configure the required push, communication-notification, Time Sensitive, and Siri/intent capabilities only when the feature qualifies.
- Donate the applicable message or call intent and set the needed
NSUserActivityTypesentry for the supported communication surface. - Add a Notification Service Extension only when an alert payload needs bounded enrichment, decryption, attachment download, or communication-content update.
- Send alert payloads with
mutable-content: 1; return the best available content before the extension expires. Silent, sound-only, and badge-only pushes do not invoke the extension. - Treat Time Sensitive delivery and Focus status as user-controlled system behavior, not a guarantee that a notification will interrupt someone.
Data And Safety Boundaries
- Keep push payloads privacy-minimal; decrypt or fetch sensitive display data only when needed and tolerate extension timeout.
- Do not make notification filtering a hidden policy engine. The extension may transform this app's incoming alert, not inspect or filter other apps' alerts.
- Provide a plain fallback title/body if enrichment fails.
Validation
Validate on physical devices with notification permission, Focus modes, communication metadata, Time Sensitive settings, extension timeout fallback, network loss, and redacted-lock-screen behavior.
References
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.
Gives 0 of the 12 instructions most automation workflows skills give in 401 tokens
Counted across 745 of the 1,008 authors here whose files we hold, read 2026-08-07
- Write conventional commit messagesin 36 of 745, across 35 files
- Delete branches after mergein 30 of 745, across 21 files
- Make atomic commitsin 25 of 745, across 15 files
- Write minimal code to pass testsin 22 of 745, across 10 files
- Re-snapshot after navigation or DOM changesin 21 of 745, across 13 files
- Use try-catch for error handlingin 20 of 745, across 8 files
- Run tests before committingin 20 of 745, across 12 files
- Write tests before implementationin 20 of 745, across 8 files
- Configure branch protection rulesin 19 of 745, across 5 files
- Explain the why in commit messagesin 19 of 745, across 9 files
- Refactor code while tests remain greenin 19 of 745, across 6 files
- Interact with elements using refsin 19 of 745, across 11 files
Said here and by no other author read
- confirm notification is real person-to-person communication
- configure required capabilities when feature qualifies
- donate applicable message or call intent
- set required NSUserActivityTypes entry
- add notification service extension only when needed
- send alert payloads with mutable-content flag
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.