unified-notifications-ops
affaan-m/ecc
Consolidate GitHub, Linear, and desktop alerts into one operator-driven notification workflow with severity routing and deduplication.
What is unified-notifications-ops?
Unified Notifications Ops turns fragmented alerts across GitHub, Linear, desktop, and hooks into a single ECC-native lane with clear severity, ownership, and routing. Use this when alert noise, duplication, or inbox collapse is the real problem—not missing notifications.
- Inventory event sources and current notification channels to identify duplicates and gaps
- Classify events by severity (critical, high, medium, low) and route to appropriate channels (interrupt, digest, queue, or log-only)
- Collapse duplicate notifications from the same event across multiple surfaces into one canonical summary
- Design operator-driven workflows that attach clear next actions to each alert
- Recommend whether to suppress, merge, or consolidate overlapping notification paths
How to install unified-notifications-ops
npx skills add null --skill unified-notifications-opsHow to use unified-notifications-ops
- 1.List all current event sources (GitHub, Linear, hooks, desktop, email, chat) and existing notification channels
- 2.Identify duplicate notification paths for the same event and gaps where important events are not surfaced
- 3.Define a severity model: decide which events warrant immediate interruption, same-day alerts, digests, or log-only handling
- 4.Design the routing plan: map each event source and severity level to a specific channel and operator action
- 5.Implement the ECC-native workflow using skills, hooks, or agents rather than external notification products
Use cases
- Consolidate CI failures, review requests, and issue updates scattered across GitHub, Linear, and local hooks into one operator surface
- Reduce alert fatigue by routing critical events (broken CI, security issues, blocked releases) to immediate interrupt and medium-signal updates to digests
- Merge duplicate PR notifications appearing in GitHub, Linear, and local logs into a single canonical alert with one owner
- Build a severity model and routing policy before adding new notification channels or external tools
- Audit and collapse overlapping notification branches when proposing new automation or workspace changes
- Engineering teams managing notifications across multiple tools (GitHub, Linear, email, chat, desktop)
- DevOps and release engineers handling CI/CD alerts and deployment notifications
- Workspace operators designing alert policies and notification routing
- Teams experiencing alert fatigue or notification-driven inbox collapse
unified-notifications-ops FAQ
Consolidate first. Collapse duplicates and suppress low-signal noise before adding channels. Prefer one strong lane over many weak ones.
Interrupt for release, CI, security, and owner-blocking events. Use digests for medium-signal updates (issue state changes, comments). Log-only for telemetry and routine lifecycle markers.
Use `project-flow-ops` instead. If you first need to inventory your notification surface, start with `workspace-surface-audit`.
Yes, if desktop notifications are sufficient for your use case, do not invent unnecessary external bridges. Keep it simple.
Never expose tokens, webhook secrets, or internal identifiers. Separate event source, severity, routing channel, and operator action in the design.
Full instructions (SKILL.md)
Source of truth, from affaan-m/ecc.
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/ecc and the wider catalog.
uspto-database
Official USPTO patent and trademark record lookup with reproducible research logs.
verification-loop
Comprehensive verification system for Claude Code sessions covering builds, types, lints, tests, and security.
video-editing
AI-assisted editing pipeline for cutting, structuring, and augmenting real video footage.
videodb
Ingest, index, search, and edit video and audio with real-time desktop capture and live stream monitoring.
visa-doc-translate
Translate visa documents to English and generate bilingual PDFs automatically
vite-patterns
Vite build tool patterns for config, plugins, HMR, and optimization.