From cba43546fdfff88354c934b33e9933b2dcbb19f9 Mon Sep 17 00:00:00 2001 From: Affaan Mustafa Date: Sun, 5 Apr 2026 15:33:26 -0700 Subject: [PATCH] feat: add unified notifications ops --- AGENTS.md | 4 +- README.md | 6 +- README.zh-CN.md | 2 +- docs/zh-CN/AGENTS.md | 4 +- docs/zh-CN/README.md | 6 +- manifests/install-modules.json | 1 + skills/unified-notifications-ops/SKILL.md | 187 ++++++++++++++++++++++ 7 files changed, 199 insertions(+), 11 deletions(-) create mode 100644 skills/unified-notifications-ops/SKILL.md diff --git a/AGENTS.md b/AGENTS.md index 6ed3107e..e8d15b1b 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,6 +1,6 @@ # Everything Claude Code (ECC) — Agent Instructions -This is a **production-ready AI coding plugin** providing 38 specialized agents, 160 skills, 72 commands, and automated hook workflows for software development. +This is a **production-ready AI coding plugin** providing 38 specialized agents, 161 skills, 72 commands, and automated hook workflows for software development. **Version:** 1.10.0 @@ -146,7 +146,7 @@ Troubleshoot failures: check test isolation → verify mocks → fix implementat ``` agents/ — 38 specialized subagents -skills/ — 160 workflow skills and domain knowledge +skills/ — 161 workflow skills and domain knowledge commands/ — 72 slash commands hooks/ — Trigger-based automations rules/ — Always-follow guidelines (common + per-language) diff --git a/README.md b/README.md index 754129df..b06507ce 100644 --- a/README.md +++ b/README.md @@ -236,7 +236,7 @@ For manual install instructions see the README in the `rules/` folder. When copy /plugin list ecc@ecc ``` -**That's it!** You now have access to 38 agents, 160 skills, and 72 legacy command shims. +**That's it!** You now have access to 38 agents, 161 skills, and 72 legacy command shims. ### Multi-model commands require additional setup @@ -1154,7 +1154,7 @@ The configuration is automatically detected from `.opencode/opencode.json`. |---------|-------------|----------|--------| | Agents | PASS: 38 agents | PASS: 12 agents | **Claude Code leads** | | Commands | PASS: 72 commands | PASS: 31 commands | **Claude Code leads** | -| Skills | PASS: 160 skills | PASS: 37 skills | **Claude Code leads** | +| Skills | PASS: 161 skills | PASS: 37 skills | **Claude Code leads** | | Hooks | PASS: 8 event types | PASS: 11 events | **OpenCode has more!** | | Rules | PASS: 29 rules | PASS: 13 instructions | **Claude Code leads** | | MCP Servers | PASS: 14 servers | PASS: Full | **Full parity** | @@ -1263,7 +1263,7 @@ ECC is the **first plugin to maximize every major AI coding tool**. Here's how e |---------|------------|------------|-----------|----------| | **Agents** | 38 | Shared (AGENTS.md) | Shared (AGENTS.md) | 12 | | **Commands** | 72 | Shared | Instruction-based | 31 | -| **Skills** | 160 | Shared | 10 (native format) | 37 | +| **Skills** | 161 | Shared | 10 (native format) | 37 | | **Hook Events** | 8 types | 15 types | None yet | 11 types | | **Hook Scripts** | 20+ scripts | 16 scripts (DRY adapter) | N/A | Plugin hooks | | **Rules** | 34 (common + lang) | 34 (YAML frontmatter) | Instruction-based | 13 instructions | diff --git a/README.zh-CN.md b/README.zh-CN.md index cff1854d..fee6048f 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -106,7 +106,7 @@ cp -r everything-claude-code/rules/perl ~/.claude/rules/ /plugin list ecc@ecc ``` -**完成!** 你现在可以使用 38 个代理、160 个技能和 72 个命令。 +**完成!** 你现在可以使用 38 个代理、161 个技能和 72 个命令。 ### multi-* 命令需要额外配置 diff --git a/docs/zh-CN/AGENTS.md b/docs/zh-CN/AGENTS.md index 39bb1c07..4f43f80c 100644 --- a/docs/zh-CN/AGENTS.md +++ b/docs/zh-CN/AGENTS.md @@ -1,6 +1,6 @@ # Everything Claude Code (ECC) — 智能体指令 -这是一个**生产就绪的 AI 编码插件**,提供 38 个专业代理、160 项技能、72 条命令以及自动化钩子工作流,用于软件开发。 +这是一个**生产就绪的 AI 编码插件**,提供 38 个专业代理、161 项技能、72 条命令以及自动化钩子工作流,用于软件开发。 **版本:** 1.10.0 @@ -147,7 +147,7 @@ ``` agents/ — 38 个专业子代理 -skills/ — 160 个工作流技能和领域知识 +skills/ — 161 个工作流技能和领域知识 commands/ — 72 个斜杠命令 hooks/ — 基于触发的自动化 rules/ — 始终遵循的指导方针(通用 + 每种语言) diff --git a/docs/zh-CN/README.md b/docs/zh-CN/README.md index 1d0492e3..c0d42b37 100644 --- a/docs/zh-CN/README.md +++ b/docs/zh-CN/README.md @@ -209,7 +209,7 @@ npx ecc-install typescript /plugin list ecc@ecc ``` -**搞定!** 你现在可以使用 38 个智能体、160 项技能和 72 个命令了。 +**搞定!** 你现在可以使用 38 个智能体、161 项技能和 72 个命令了。 *** @@ -1096,7 +1096,7 @@ opencode |---------|-------------|----------|--------| | 智能体 | PASS: 38 个 | PASS: 12 个 | **Claude Code 领先** | | 命令 | PASS: 72 个 | PASS: 31 个 | **Claude Code 领先** | -| 技能 | PASS: 160 项 | PASS: 37 项 | **Claude Code 领先** | +| 技能 | PASS: 161 项 | PASS: 37 项 | **Claude Code 领先** | | 钩子 | PASS: 8 种事件类型 | PASS: 11 种事件 | **OpenCode 更多!** | | 规则 | PASS: 29 条 | PASS: 13 条指令 | **Claude Code 领先** | | MCP 服务器 | PASS: 14 个 | PASS: 完整 | **完全对等** | @@ -1208,7 +1208,7 @@ ECC 是**第一个最大化利用每个主要 AI 编码工具的插件**。以 |---------|------------|------------|-----------|----------| | **智能体** | 38 | 共享 (AGENTS.md) | 共享 (AGENTS.md) | 12 | | **命令** | 72 | 共享 | 基于指令 | 31 | -| **技能** | 160 | 共享 | 10 (原生格式) | 37 | +| **技能** | 161 | 共享 | 10 (原生格式) | 37 | | **钩子事件** | 8 种类型 | 15 种类型 | 暂无 | 11 种类型 | | **钩子脚本** | 20+ 个脚本 | 16 个脚本 (DRY 适配器) | N/A | 插件钩子 | | **规则** | 34 (通用 + 语言) | 34 (YAML 前页) | 基于指令 | 13 条指令 | diff --git a/manifests/install-modules.json b/manifests/install-modules.json index 12de298d..f7a8cfa9 100644 --- a/manifests/install-modules.json +++ b/manifests/install-modules.json @@ -322,6 +322,7 @@ "skills/jira-integration", "skills/knowledge-ops", "skills/project-flow-ops", + "skills/unified-notifications-ops", "skills/workspace-surface-audit" ], "targets": [ diff --git a/skills/unified-notifications-ops/SKILL.md b/skills/unified-notifications-ops/SKILL.md new file mode 100644 index 00000000..d135f82e --- /dev/null +++ b/skills/unified-notifications-ops/SKILL.md @@ -0,0 +1,187 @@ +--- +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. +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: + +1. **Capture** the event +2. **Classify** urgency and owner +3. **Route** to the correct channel +4. **Collapse** duplicates and low-signal churn +5. **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 + +```text +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-ops` when the root cause is backlog / PR coordination rather than alerts +- prefer `workspace-surface-audit` when 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-audit` +- `project-flow-ops` +- `github-ops` +- `knowledge-ops` +- `customer-billing-ops` when the notification pain is billing/customer operations rather than engineering