ic-internal-notifier — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited ic-internal-notifier (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Automates internal notifications when account events occur. Keeps cross-functional teams informed without CSM manual effort. Part of the Internal Coordination pillar.
This is an event-driven notification skill. It sends structured updates to defined recipients when specific triggers fire. It does not make decisions about what to communicate -- it executes a notification ruleset.
Listen for events from all pillar skills:
| Event Source | Events Monitored |
|---|---|
| bi-health-score | Score drops below threshold, rapid decline, band change |
| bi-risk-detector | New risk signal, signal escalation, signal cluster |
| bi-expansion-detector | New expansion signal surfaced |
| bi-competitive-intel | Competitive signal detected |
| ra-stakeholder-change-detector | Champion departure, executive change, new hire |
| lo-renewal-manager | Renewal risk classification change |
| lo-sla-monitor | Commitment at risk of breach, commitment breached |
| lo-milestone-tracker | Milestone missed, milestone achieved ahead of schedule |
| lo-onboarding-orchestrator | Onboarding delay, onboarding complete |
| ic-escalation-router | Escalation status change, escalation stalled |
| Support platform | P1 ticket opened, ticket SLA breached |
| CRM | Account churned, account renewed, expansion closed |
Each event maps to a notification rule that defines recipient, channel, urgency, and content:
| Event | Recipient | Channel | Urgency | Content Template |
|---|---|---|---|---|
| Health below 65 | CSM manager | Slack | Same day | "[Account] health dropped to [score] (was [prior]). Driver: [top risk driver]. CSM: [name]" |
| Health rapid decline (>10pts/7d) | CSM + manager | Slack | Immediate | "[Account] health declined [X] points in 7 days. Current: [score]. Investigate today" |
| Renewal reclassified to At Risk/Critical | CS leadership + CRO | Slack + email | Same day | "[Account] renewal now [classification]. ARR: [amount]. Days to renewal: [days]. Top risk: [factor]" |
| Champion departure | CSM + manager | Slack | Immediate | "Champion departure: [contact name] ([role]) at [account]. ARR: [amount]. Action needed: identify replacement" |
| Competitive signal | CSM + manager | Slack | Immediate | "Competitive signal at [account]: [signal type]. Evidence: [summary]. CSM to assess and respond" |
| P1 ticket opened | CSM | Slack | Immediate | "P1 ticket [ID] opened for [account]: [issue summary]" |
| Expansion signal | CSM + sales partner | This week | "Expansion opportunity at [account]: [signal type]. Estimated value: [amount]. Review in weekly pipeline" | |
| Commitment at risk | Commitment owner + CSM | Slack | Same day | "Commitment to [account] due in [days]: [description]. Owner: [name]" |
| Account churned | CS leadership + CRO | Same day | "[Account] churned. ARR lost: [amount]. Primary cause: [reason]. Post-mortem to follow" | |
| Account renewed | CS leadership | Email (digest) | Weekly | "[Account] renewed. ARR retained: [amount]. Expansion: [if any]" |
| Milestone missed | CSM | Slack | Same day | "[Account] milestone overdue: [milestone name] by [days] days" |
| Escalation stalled | CSM + manager | Slack | Same day | "Escalation [ID] for [account] stalled [days] days. Owner: [name]. No progress since [date]" |
Slack notifications (immediate and same-day):
Email notifications (weekly digest):
Formatting rules:
Deduplication rules:
Suppression:
For each notification:
Individual Slack notification:
🔴 Risk Alert: Acme Corp
Health score dropped to 58 (was 72 last week). Primary driver: support ticket volume 3x segment average.
Action: CSM review recommended today.
Owner: Jane DoeDaily digest:
{
"digest_date": "2026-03-10",
"recipient": "[email protected]",
"items": [
{ "account": "Acme Corp", "event": "health_below_65", "detail": "Score 58, declining. Driver: support", "urgency": "same_day" },
{ "account": "Beta Inc", "event": "milestone_missed", "detail": "Onboarding config 3 days overdue", "urgency": "this_week" },
{ "account": "Gamma Corp", "event": "expansion_signal", "detail": "Licence utilisation 91% for 30 days", "urgency": "this_week" }
],
"summary": "1 urgent, 2 this week. 0 escalations pending."
}Weekly notification report (for CS Ops):
{
"week_of": "2026-03-10",
"total_notifications_sent": 47,
"by_channel": { "slack_immediate": 12, "slack_same_day": 18, "email_digest": 17 },
"by_event_type": { "health_alerts": 8, "risk_signals": 5, "milestones": 6, "escalations": 3, "renewals": 4, "other": 21 },
"suppressed": 6,
"acknowledgement_rate": 0.82,
"busiest_recipient": "jane.doe (14 notifications)",
"fatigue_risk": ["jane.doe -- 14 notifications this week, up from 8 last week"]
}This skill is fire-and-forget for the notification itself. Human decisions happen after delivery:
Required:
Strongly recommended:
Downstream consumers:
references/notification-rules.md -- Complete rule table, deduplication logic, suppression policies, and digest formatting~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.