unified-notifications-ops
affaan-m/everything-claude-code
Consolidate scattered alerts into one operator-driven notification workflow across GitHub, Linear, desktop, and hooks.
What is unified-notifications-ops?
Unified Notifications Ops turns fragmented event streams into a single, actionable notification lane with clear severity, ownership, and routing. Use it when alerts are arriving in disconnected places, creating noise instead of action, and you need to collapse duplicates and establish a coherent notification policy.
- Inventory event sources, channels, and duplicate notification paths across GitHub, Linear, desktop, and local hooks
- Classify events by severity (critical, high, medium, low) and determine interrupt vs. digest vs. log-only handling
- Route notifications to the correct channel with clear ownership and operator action attached
- Collapse duplicate events and low-signal churn into canonical summaries
- Design ECC-native workflows that prefer skills, hooks, and agents over external notification products
How to install unified-notifications-ops
npx skills add https://github.com/affaan-m/everything-claude-code --skill unified-notifications-opsHow to use unified-notifications-ops
- 1.Inventory your current notification surface: list all event sources (GitHub, Linear, hooks, desktop), channels, existing alert scripts, and duplicate paths
- 2.Identify which event families deserve interruption versus digest or log-only handling using the default severity model (critical, high, medium, low)
- 3.Audit for duplicate notifications of the same event across multiple channels and plan consolidation
- 4.Design the ECC-native workflow for each real notification need: define source, gate, shape (immediate/digest/queue/dashboard), channel, and operator action
- 5.Implement the routing plan using ECC skills, hooks, or agents rather than external notification products
Use cases
- Consolidate CI failures, review requests, and issue updates arriving across GitHub, Linear, and local hooks into one operator surface
- Reduce notification noise by separating critical interrupts (broken CI, security issues, blocked releases) from medium-signal digests (issue state changes, comments)
- Establish a severity model and routing policy when the workspace has hooks and MCPs but no coherent notification strategy
- Merge overlapping notification branches and eliminate silent failure cases where important events are not being surfaced
- Design digest-first workflows for medium and low-signal updates to prevent alert fatigue
- Engineering teams managing multiple notification sources without a unified policy
- Operators and on-call engineers dealing with alert fragmentation and inbox collapse
- Teams using GitHub, Linear, and local hooks who need coherent event routing
- Workspace administrators designing notification strategy across Claude Code and connected tools
unified-notifications-ops FAQ
Use this skill when you have events arriving in multiple disconnected places (GitHub, Linear, hooks, desktop, email) and need a unified policy. If a single tool's native notifications are sufficient, you may not need this skill.
Interrupt means immediate alert (for critical events like broken CI or security issues). Digest means batch updates (for medium-signal events like issue state changes). Log-only means no active notification (for low-signal telemetry and routine churn).
Start by collapsing duplicates and suppressing low-signal events before adding new channels. Prefer one strong notification lane over many weak ones, and use digests for medium and low-signal updates.
If the root cause is PR or project flow rather than notification routing, consider using `project-flow-ops` instead. This skill is for alert consolidation, not workflow redesign.
Prefer ECC-native orchestration using skills, hooks, and agents. Only bridge to external tools if they genuinely add a better action path; desktop notifications and digests are often sufficient.
Full instructions (SKILL.md)
Source of truth, from affaan-m/everything-claude-code.
name: unified-notifications-ops description: Operate notifications as one ECC-native workflow across GitHub, Linear, desktop alerts, hooks, and connected communication surfaces. Use when the real problem is alert routing, deduplication, escalation, or inbox collapse. metadata: origin: ECC
Unified Notifications Ops
Use this skill when the real problem is not a missing ping. The real problem is a fragmented notification system.
The job is to turn scattered events into one operator surface with:
- clear severity
- clear ownership
- clear routing
- clear follow-up action
When to Use
- the user wants a unified notification lane across GitHub, Linear, local hooks, desktop alerts, chat, or email
- CI failures, review requests, issue updates, and operator events are arriving in disconnected places
- the current setup creates noise instead of action
- the user wants to consolidate overlapping notification branches or backlog proposals into one ECC-native lane
- the workspace already has hooks, MCPs, or connected tools, but no coherent notification policy
Preferred Surface
Start from what already exists:
- GitHub issues, PRs, reviews, comments, and CI
- Linear issue/project movement
- local hook events and session lifecycle signals
- desktop notification primitives
- connected email/chat surfaces when they actually exist
Prefer ECC-native orchestration over telling the user to adopt a separate notification product.
Non-Negotiable Rules
- never expose tokens, secrets, webhook secrets, or internal identifiers
- separate:
- event source
- severity
- routing channel
- operator action
- default to digest-first when interruption cost is unclear
- do not fan out every event to every channel
- if the real fix is better issue triage, hook policy, or project flow, say so explicitly
Event Pipeline
Treat the lane as:
- Capture the event
- Classify urgency and owner
- Route to the correct channel
- Collapse duplicates and low-signal churn
- Attach the next operator action
The goal is fewer, better notifications.
Default Severity Model
| Class | Examples | Default handling |
|---|---|---|
| Critical | broken default-branch CI, security issue, blocked release, failed deploy | interrupt now |
| High | review requested, failing PR, owner-blocking handoff | same-day alert |
| Medium | issue state changes, notable comments, backlog movement | digest or queue |
| Low | repeat successes, routine churn, redundant lifecycle markers | suppress or fold |
If the workspace has no severity model, build one before proposing automation.
Workflow
1. Inventory the current surface
List:
- event sources
- current channels
- existing hooks/scripts that emit alerts
- duplicate paths for the same event
- silent failure cases where important things are not being surfaced
Call out what ECC already owns.
2. Decide what deserves interruption
For each event family, answer:
- who needs to know?
- how fast do they need to know?
- should this interrupt, batch, or just log?
Use these defaults:
- interrupt for release, CI, security, and owner-blocking events
- digest for medium-signal updates
- log-only for telemetry and low-signal lifecycle markers
3. Collapse duplicates before adding channels
Look for:
- the same PR event appearing in GitHub, Linear, and local logs
- repeated hook notifications for the same failure
- comments or status churn that should be summarized instead of forwarded raw
- channels that duplicate each other without adding a better action path
Prefer:
- one canonical summary
- one owner
- one primary channel
- one fallback path
4. Design the ECC-native workflow
For each real notification need, define:
- source
- gate
- shape: immediate alert, digest, queue, or dashboard-only
- channel
- action
If ECC already has the primitive, prefer:
- a skill for operator triage
- a hook for automatic emission/enforcement
- an agent for delegated classification
- an MCP/connector only when a real bridge is missing
5. Return an action-biased design
End with:
- what to keep
- what to suppress
- what to merge
- what ECC should wrap next
Output Format
CURRENT SURFACE
- sources
- channels
- duplicates
- gaps
EVENT MODEL
- critical
- high
- medium
- low
ROUTING PLAN
- source -> channel
- why
- operator owner
CONSOLIDATION
- suppress
- merge
- canonical summaries
NEXT ECC MOVE
- skill / hook / agent / MCP
- exact workflow to build next
Recommendation Rules
- prefer one strong lane over many weak ones
- prefer digests for medium and low-signal updates
- prefer hooks when the signal should emit automatically
- prefer operator skills when the work is triage, routing, and review-first decision-making
- prefer
project-flow-opswhen the root cause is backlog / PR coordination rather than alerts - prefer
workspace-surface-auditwhen the user first needs a source inventory - if desktop notifications are enough, do not invent an unnecessary external bridge
Good Use Cases
- "We have GitHub, Linear, and local hook alerts, but no single operator flow"
- "Our CI failures are noisy and people ignore them"
- "I want one notification policy across Claude, OpenCode, and Codex surfaces"
- "Figure out what should interrupt versus land in a digest"
- "Collapse overlapping notification PR ideas into one canonical ECC lane"
Related Skills
workspace-surface-auditproject-flow-opsgithub-opsknowledge-opscustomer-billing-opswhen the notification pain is billing/customer operations rather than engineering
Related skills
More from affaan-m/everything-claude-code and the wider catalog.

security-review
Security checklist and patterns for authentication, input validation, secrets, and sensitive features.

golang-patterns
Idiomatic Go patterns, best practices, and conventions for building robust, efficient, and maintainable applications.

coding-standards
Baseline coding conventions for naming, readability, immutability, and quality across projects.

frontend-patterns
React and Next.js patterns for components, state management, performance, and modern frontend practices.

backend-patterns
REST/GraphQL API design, database optimization, and server-side patterns for Node.js, Express, and Next.js.

golang-testing
Go testing patterns: table-driven tests, subtests, benchmarks, fuzzing, and TDD methodology.