Notification strategy review
Public agent skills from SylphxAI — standards, product procedures, and one-command sync for Codex, Claude Code, and Grok Build
npx -y skills add SylphxAI/skills --skill notification-strategy-reviewAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 19 days oldThe repository was created 19 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 1 stars1 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.
What its author says it does
Copied from the file, not written here
Set product notification strategy across channels, eligibility, frequency caps, personalization, consent, and effectiveness. Use when notification policy is the job. Not one promotional blast and not the full CRM/marketing OS.
SKILL.md
8.3 KB, ~1.7k tokens by cl100k_base, as published. Nobody here has run it
Notification Strategy Review
Use this skill to make notifications useful enough to deserve attention.
Atomic boundary
Own one cross-channel Notification Policy artifact: taxonomy, user value, permission/consent/preferences, channel priority, frequency/fatigue, suppression/dedupe, privacy/redaction, deliverability, event schema, incident readback, and measurement. Do not own the whole retention strategy, one offer, one daily loop, or provider implementation.
Use a draft artifact ID and consume sibling decisions by owner and explicit contract. Let deterministic delivery tooling seal serialized versions and digests later; never invent them during design.
Agent-first invariant
Construct the complete policy and the provider adapters, preference states, region/age modes, templates, dedupe, caps, quiet hours, deliverability, observability, support, and kill switches for every selected/applicable channel now. Do not build adapters for undeclared channels or providers. Separate construction from send authority. A dormant channel initializes no SDK, requests no permission, collects no identifier, and sends no message. Unknown/stale authority disables the affected send.
Workflow
- Identify channel, user lifecycle stage, product promise, message objective, user intent, region, consent state, preference state, content sensitivity, audience role, and fatigue risk.
- Read
references/notification-strategy-patterns.md. - Classify messages by utility, urgency, consent, lifecycle trigger, frequency, fallback channel, and failure risk.
- Build lifecycle, consent/region, privacy/redaction, role/severity, and suppression matrices before proposing campaigns.
- Define an explicit frequency budget: global cap, category cap, lifecycle-event cap, quiet-hours behavior, cooldown, digest threshold, and emergency override rule.
- Define deterministic cross-channel dedupe with
dedupe_key, channel priority, success stop condition, support/billing stop condition, stale-event expiry, and suppression reason. - If notifications are already causing fatigue, complaints, opt-outs, or support contacts, produce an incident readback before adding sends: cohort × channel × lifecycle event × consent state × frequency bucket × complaint/unsubscribe/support signal.
- Design permission timing, preferences, fallback, measurement, support recovery, and experiment guardrails.
- Define withdrawal before activation: stop new eligibility, cancel queued or provider-scheduled sends where supported, expire all remaining work, drain callbacks, reconcile provider/internal state, and prove observed zero-send.
- Produce a notification taxonomy, lifecycle journey map, channel/frequency policy, suppression rules, consent/preference model, incident/readback plan, event schema, and trust metrics.
When not to use
- Use
daily-reward-and-streak-reviewwhen the primary artifact is the return loop state machine; notifications are only its delivery intent. - Use
promotion-campaign-reviewfor one offer/event audience, economics, fulfillment, and rollback system. - Use
marketing-automation-blueprintfor the whole multi-channel acquisition, lifecycle, creative, spend, attribution, and shutdown operating system. - Use
app-design-blueprintorgame-design-blueprintwhen notification semantics depend on unresolved whole-product value and progression.
Source verification
Retrieve current push/browser/email/SMS/desktop platform, consent, marketing, transactional/security, child/age, privacy, sensitive-content, unsubscribe, sender/deliverability, and territory authority at execution. Static text is a route, not a compliance verdict.
Guardrails
- Do not use notifications to compensate for weak product value.
- Do not mix transactional, security, marketing, and engagement consent.
- Give users controls, quiet hours, and clear unsubscribe paths.
- Do not send duplicate push/email/in-app messages for the same lifecycle event unless escalation value is explicit.
- Do not ask platform push permission before the user has seen a concrete notification value moment.
- Do not repeatedly ask after denial; use in-product education, preference-center recovery, and a user-initiated path back to OS/browser settings.
- Do not optimize opens/clicks without delivery, opt-out, unsubscribe, complaint, retention, and long-term trust guardrails.
- Do not describe fatigue management as "cap frequency" without naming concrete global, category, lifecycle-event, cooldown, and digest rules.
- Do not use emergency override for marketing, habit nudges, win-back, IAP promotions, daily rewards, energy reminders, leaderboard resets, or live-event urgency. Reserve it for security, safety, service continuity, or explicit user-requested exact reminders, and log the override reason.
- Do not continue a sequence after the user converts, cancels, pays, resolves the workflow, contacts support, unsubscribes, or complains.
- Do not expose secrets, health/finance details, precise location, private message content, or sensitive account state in lock-screen previews, push payloads, SMS bodies, or email subjects; use auth-gated deep links for details.
- Do not infer consent across channels or categories; email, SMS, push, in-app, desktop/browser, transactional, and marketing controls must stay separate.
- Do not call a channel dormant merely because new scheduling stopped. Cancel provider queues, expire uncancellable work, suppress retries/fallbacks, reconcile delivery callbacks, and observe zero sends through the bounded drain window.
Output format
Notification objective:
Channels:
Lifecycle matrix:
| Lifecycle state | Trigger | User value | Channel priority | Consent/preference state | Frequency/suppression | Metric |
| --- | --- | --- | --- | --- | --- | --- |
Consent and regional control matrix:
| Channel/region | Permission timing | Required consent/preference | Unsubscribe/opt-out | Fallback if denied | Evidence |
| --- | --- | --- | --- | --- | --- |
Privacy/redaction and deep-link policy:
| Content type | Sensitive fields to exclude | Lock-screen/subject/SMS copy | Deep-link auth | Support-safe evidence |
| --- | --- | --- | --- | --- |
Role/severity routing:
| Audience role | Severity | Allowed channels | Escalation | Audit/owner |
| --- | --- | --- | --- | --- |
Taxonomy and channel policy:
- <message type> -> trigger, user value, channel, priority, frequency, control, suppression/dedupe rule
Frequency and suppression budget:
- Global cap:
- Category caps:
- Lifecycle-event cap:
- Cooldowns:
- Digest/quiet-hours rules:
- Emergency override:
Cross-channel dedupe and stop rules:
| Lifecycle event | Dedupe key | Priority order | Stop condition | Suppression reason | Owner |
| --- | --- | --- | --- | --- | --- |
Provider withdrawal and drain:
| Channel/provider | Stop-new authority | Queued/scheduled cancellation | Expiry/dead-letter | Callback reconciliation | Zero-send observation | Owner |
| --- | --- | --- | --- | --- | --- | --- |
Withdrawal state:
- active -> withdrawing -> provider_cancelled_or_expired -> callbacks_reconciled -> observed_zero_send -> dormant
- <failure/timeout> -> quarantined, owner, evidence, recovery action
Preference and recovery model:
| Consent/preference state | Allowed action | Recovery path | Prohibited action | Evidence |
| --- | --- | --- | --- | --- |
Fatigue/incident readback, when applicable:
| Cohort | Channel | Lifecycle event | Frequency bucket | Harm signal | Decision | Owner |
| --- | --- | --- | --- | --- | --- | --- |
Risks and guardrails:
- <risk> -> <guardrail>
Events and trust metrics:
- <event> with channel, category, trigger_event, consent_state, preference_state, suppression_reason, dedupe_key, delivered/opened/dismissed/unsubscribed/complaint/retention outcome
Completion check
Complete only when every lifecycle event has value, authority, priority, dedupe/suppression, privacy, cap, stop, degradation, support, metric, and owner; denial/opt-out and emergency override are tested; and all channels can be disabled without a client release, with provider queues drained or expired and observed zero-send readback.
Gives 0 of the 12 instructions most review quality skills give in ~1.7k tokens
Counted across 1,048 of the 1,783 authors here whose files we hold, read 2026-08-06
- ask questions one at a timein 82 of 1048, across 54 files
- provide a recommended answer for each questionin 73 of 1048, across 45 files
- explore the codebase instead of asking answerable questionsin 66 of 1048, across 37 files
- resolve dependencies between decisions one-by-onein 42 of 1048, across 15 files
- interview the user relentlessly about the planin 39 of 1048, across 12 files
- order findings by severityin 29 of 1048
- resolve each branch of the decision treein 28 of 1048, across 5 files
- run a grilling sessionin 26 of 1048, across 5 files
- update CONTEXT.md immediately when a term is resolvedin 26 of 1048, across 9 files
- propose precise canonical terms for vague languagein 25 of 1048, across 6 files
- create documentation files lazilyin 24 of 1048, across 5 files
- use the domain-modeling skillin 22 of 1048, across 3 files
Said here and by no other author read
- own one cross-channel notification policy artifact
- construct the complete policy for every selected channel now
- build lifecycle, consent, privacy, role, and suppression matrices
- define an explicit frequency budget before proposing campaigns
- define deterministic cross-channel dedupe rules
- design permission timing, preferences, fallback, and measurement
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.