[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M7305NVCJRXEB2NST0SBP97W":3,"skill-same:01M7305NVCJRXEB2NST0SBP97W":48},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":25,"commitSha":26,"skillDirectory":27,"forksCount":28,"repositoryHtmlUrl":29,"repositoryHomepageUrl":6,"ownerHtmlUrl":30,"ownerBlogUrl":31,"ownerDescription":32,"updatedAt":33,"install":34,"resources":47},"01M7305NVCJRXEB2NST0SBP97W","unified-notifications-ops",null,"将通知作为统一的 ECC 原生工作流进行操作，涵盖 GitHub、Linear、桌面提醒、钩子以及连接的通信界面。当真正的问题是告警路由、去重、升级或收件箱崩溃时使用。","SriramGandhiS\u002FSkills","SriramGandhiS","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F211849986?v=4","01M72WQCW12BYX71C6WN584TTA","Sriram S","01M72WQCWTJ2RD0ET1X31AF1RC",1,"MIT","https:\u002F\u002Fgithub.com\u002FSriramGandhiS\u002FSkills\u002Fblob\u002Fmaster\u002Fskills\u002Feverything-claude-code\u002Fdocs\u002Fzh-CN\u002Fskills\u002Funified-notifications-ops\u002FSKILL.md",[],[],"2026-11-11 15:11:14",false,"---\nname: unified-notifications-ops\ndescription: 将通知作为统一的 ECC 原生工作流进行操作，涵盖 GitHub、Linear、桌面提醒、钩子以及连接的通信界面。当真正的问题是告警路由、去重、升级或收件箱崩溃时使用。\norigin: ECC\n---\n\n# 统一通知运维\n\n当真正的问题不是缺少通知，而是通知系统碎片化时，使用此技能。\n\n任务是将分散的事件整合到一个操作员界面上，包含：\n\n* 明确的严重等级\n* 明确的责任人\n* 明确的路由\n* 明确的后续行动\n\n## 何时使用\n\n* 用户希望在 GitHub、Linear、本地钩子、桌面提醒、聊天或邮件之间建立统一的通知通道\n* CI 失败、审查请求、问题更新和操作员事件分散在不同的地方\n* 当前设置制造了噪音而非行动\n* 用户希望将重叠的通知分支或积压提案整合到一个 ECC 原生通道中\n* 工作区已有钩子、MCP 或连接工具，但缺乏连贯的通知策略\n\n## 首选界面\n\n从已有资源出发：\n\n* GitHub 问题、PR、审查、评论和 CI\n* Linear 问题\u002F项目状态变更\n* 本地钩子事件和会话生命周期信号\n* 桌面通知原语\n* 已连接的邮件\u002F聊天界面（如果实际存在）\n\n优先使用 ECC 原生编排，而非建议用户采用独立的通知产品。\n\n## 不可妥协的规则\n\n* 绝不暴露令牌、密钥、Webhook 密钥或内部标识符\n* 区分：\n  * 事件来源\n  * 严重等级\n  * 路由通道\n  * 操作员行动\n* 当中断成本不明确时，默认采用摘要优先策略\n* 不要将每个事件广播到所有通道\n* 如果真正的解决方案是更好的问题分类、钩子策略或项目流程，请明确说明\n\n## 事件管道\n\n将通道视为：\n\n1. **捕获** 事件\n2. **分类** 紧急程度和责任人\n3. **路由** 到正确的通道\n4. **合并** 重复和低信号噪音\n5. **附加** 下一个操作员行动\n\n目标是更少但更好的通知。\n\n## 默认严重等级模型\n\n| 等级 | 示例 | 默认处理方式 |\n| --- | --- | --- |\n| 严重 | 默认分支 CI 损坏、安全问题、发布受阻、部署失败 | 立即中断 |\n| 高 | 请求审查、PR 失败、阻塞责任人的交接 | 当日提醒 |\n| 中 | 问题状态变更、重要评论、积压变动 | 摘要或队列 |\n| 低 | 重复成功、常规噪音、冗余生命周期标记 | 抑制或折叠 |\n\n如果工作区没有严重等级模型，请先构建一个，再提出自动化方案。\n\n## 工作流程\n\n### 1. 盘点当前界面\n\n列出：\n\n* 事件来源\n* 当前通道\n* 现有的发出提醒的钩子\u002F脚本\n* 同一事件的重复路径\n* 重要事项未被呈现的静默失败案例\n\n指出 ECC 已拥有的部分。\n\n### 2. 决定哪些值得中断\n\n针对每个事件族，回答：\n\n* 谁需要知道？\n* 他们需要多快知道？\n* 应该中断、批量处理还是仅记录？\n\n使用以下默认值：\n\n* 发布、CI、安全和阻塞责任人的事件需要中断\n* 中等信号更新使用摘要\n* 遥测和低信号生命周期标记仅记录\n\n### 3. 在添加通道前合并重复项\n\n检查：\n\n* 同一 PR 事件出现在 GitHub、Linear 和本地日志中\n* 同一失败的重复钩子通知\n* 应总结而非直接转发的评论或状态变更\n* 相互重复且未提供更好行动路径的通道\n\n优先选择：\n\n* 一个规范摘要\n* 一个责任人\n* 一个主要通道\n* 一个备用路径\n\n### 4. 设计 ECC 原生工作流\n\n针对每个真实通知需求，定义：\n\n* **来源**\n* **门控**\n* **形态**：即时提醒、摘要、队列或仅仪表盘\n* **通道**\n* **行动**\n\n如果 ECC 已有原语，优先使用：\n\n* 操作员分类技能\n* 自动触发\u002F执行的钩子\n* 委托分类的代理\n* 仅在真正缺少桥接时才使用 MCP\u002F连接器\n\n### 5. 返回以行动为导向的设计\n\n最终输出：\n\n* 保留什么\n* 抑制什么\n* 合并什么\n* ECC 下一步应封装什么\n\n## 输出格式\n\n```text\n当前表面\n- 来源\n- 渠道\n- 重复项\n- 缺口\n\n事件模型\n- 严重\n- 高\n- 中\n- 低\n\n路由计划\n- 来源 -> 渠道\n- 原因\n- 操作员\u002F负责人\n\n整合\n- 抑制\n- 合并\n- 规范摘要\n\n下一步ECC行动\n- 技能\u002F钩子\u002F代理\u002FMCP\n- 下一步要构建的具体工作流\n```\n\n## 推荐规则\n\n* 优先选择一条强通道而非多条弱通道\n* 中等和低信号更新优先使用摘要\n* 信号应自动触发时优先使用钩子\n* 工作涉及分类、路由和审查优先决策时优先使用操作员技能\n* 当根本原因是积压\u002FPR 协调而非提醒时，优先使用 `project-flow-ops`\n* 当用户首先需要来源盘点时，优先使用 `workspace-surface-audit`\n* 如果桌面通知已足够，不要发明不必要的外部桥接\n\n## 良好用例\n\n* \"我们有 GitHub、Linear 和本地钩子提醒，但没有统一的操作员流程\"\n* \"我们的 CI 失败噪音很大，人们都忽略了\"\n* \"我想要一个跨 Claude、OpenCode 和 Codex 界面的统一通知策略\"\n* \"判断哪些应该中断，哪些应该进入摘要\"\n* \"将重叠的通知 PR 想法合并为一个规范的 ECC 通道\"\n\n## 相关技能\n\n* `workspace-surface-audit`\n* `project-flow-ops`\n* `github-ops`\n* `knowledge-ops`\n* `customer-billing-ops` 当通知痛点涉及计费\u002F客户运营而非工程时\n","# 统一通知运维\n\n当真正的问题不是缺少通知，而是通知系统碎片化时，使用此技能。\n\n任务是将分散的事件整合到一个操作员界面上，包含：\n\n* 明确的严重等级\n* 明确的责任人\n* 明确的路由\n* 明确的后续行动\n\n## 何时使用\n\n* 用户希望在 GitHub、Linear、本地钩子、桌面提醒、聊天或邮件之间建立统一的通知通道\n* CI 失败、审查请求、问题更新和操作员事件分散在不同的地方\n* 当前设置制造了噪音而非行动\n* 用户希望将重叠的通知分支或积压提案整合到一个 ECC 原生通道中\n* 工作区已有钩子、MCP 或连接工具，但缺乏连贯的通知策略\n\n## 首选界面\n\n从已有资源出发：\n\n* GitHub 问题、PR、审查、评论和 CI\n* Linear 问题\u002F项目状态变更\n* 本地钩子事件和会话生命周期信号\n* 桌面通知原语\n* 已连接的邮件\u002F聊天界面（如果实际存在）\n\n优先使用 ECC 原生编排，而非建议用户采用独立的通知产品。\n\n## 不可妥协的规则\n\n* 绝不暴露令牌、密钥、Webhook 密钥或内部标识符\n* 区分：\n  * 事件来源\n  * 严重等级\n  * 路由通道\n  * 操作员行动\n* 当中断成本不明确时，默认采用摘要优先策略\n* 不要将每个事件广播到所有通道\n* 如果真正的解决方案是更好的问题分类、钩子策略或项目流程，请明确说明\n\n## 事件管道\n\n将通道视为：\n\n1. **捕获** 事件\n2. **分类** 紧急程度和责任人\n3. **路由** 到正确的通道\n4. **合并** 重复和低信号噪音\n5. **附加** 下一个操作员行动\n\n目标是更少但更好的通知。\n\n## 默认严重等级模型\n\n| 等级 | 示例 | 默认处理方式 |\n| --- | --- | --- |\n| 严重 | 默认分支 CI 损坏、安全问题、发布受阻、部署失败 | 立即中断 |\n| 高 | 请求审查、PR 失败、阻塞责任人的交接 | 当日提醒 |\n| 中 | 问题状态变更、重要评论、积压变动 | 摘要或队列 |\n| 低 | 重复成功、常规噪音、冗余生命周期标记 | 抑制或折叠 |\n\n如果工作区没有严重等级模型，请先构建一个，再提出自动化方案。\n\n## 工作流程\n\n### 1. 盘点当前界面\n\n列出：\n\n* 事件来源\n* 当前通道\n* 现有的发出提醒的钩子\u002F脚本\n* 同一事件的重复路径\n* 重要事项未被呈现的静默失败案例\n\n指出 ECC 已拥有的部分。\n\n### 2. 决定哪些值得中断\n\n针对每个事件族，回答：\n\n* 谁需要知道？\n* 他们需要多快知道？\n* 应该中断、批量处理还是仅记录？\n\n使用以下默认值：\n\n* 发布、CI、安全和阻塞责任人的事件需要中断\n* 中等信号更新使用摘要\n* 遥测和低信号生命周期标记仅记录\n\n### 3. 在添加通道前合并重复项\n\n检查：\n\n* 同一 PR 事件出现在 GitHub、Linear 和本地日志中\n* 同一失败的重复钩子通知\n* 应总结而非直接转发的评论或状态变更\n* 相互重复且未提供更好行动路径的通道\n\n优先选择：\n\n* 一个规范摘要\n* 一个责任人\n* 一个主要通道\n* 一个备用路径\n\n### 4. 设计 ECC 原生工作流\n\n针对每个真实通知需求，定义：\n\n* **来源**\n* **门控**\n* **形态**：即时提醒、摘要、队列或仅仪表盘\n* **通道**\n* **行动**\n\n如果 ECC 已有原语，优先使用：\n\n* 操作员分类技能\n* 自动触发\u002F执行的钩子\n* 委托分类的代理\n* 仅在真正缺少桥接时才使用 MCP\u002F连接器\n\n### 5. 返回以行动为导向的设计\n\n最终输出：\n\n* 保留什么\n* 抑制什么\n* 合并什么\n* ECC 下一步应封装什么\n\n## 输出格式\n\n```text\n当前表面\n- 来源\n- 渠道\n- 重复项\n- 缺口\n\n事件模型\n- 严重\n- 高\n- 中\n- 低\n\n路由计划\n- 来源 -> 渠道\n- 原因\n- 操作员\u002F负责人\n\n整合\n- 抑制\n- 合并\n- 规范摘要\n\n下一步ECC行动\n- 技能\u002F钩子\u002F代理\u002FMCP\n- 下一步要构建的具体工作流\n```\n\n## 推荐规则\n\n* 优先选择一条强通道而非多条弱通道\n* 中等和低信号更新优先使用摘要\n* 信号应自动触发时优先使用钩子\n* 工作涉及分类、路由和审查优先决策时优先使用操作员技能\n* 当根本原因是积压\u002FPR 协调而非提醒时，优先使用 `project-flow-ops`\n* 当用户首先需要来源盘点时，优先使用 `workspace-surface-audit`\n* 如果桌面通知已足够，不要发明不必要的外部桥接\n\n## 良好用例\n\n* \"我们有 GitHub、Linear 和本地钩子提醒，但没有统一的操作员流程\"\n* \"我们的 CI 失败噪音很大，人们都忽略了\"\n* \"我想要一个跨 Claude、OpenCode 和 Codex 界面的统一通知策略\"\n* \"判断哪些应该中断，哪些应该进入摘要\"\n* \"将重叠的通知 PR 想法合并为一个规范的 ECC 通道\"\n\n## 相关技能\n\n* `workspace-surface-audit`\n* `project-flow-ops`\n* `github-ops`\n* `knowledge-ops`\n* `customer-billing-ops` 当通知痛点涉及计费\u002F客户运营而非工程时\n",{"name":5,"origin":24,"description":7},"ECC","master","d6ca01da0f24a3b0e26e4a8b7b66cbd25d429f5d","skills\u002Feverything-claude-code\u002Fdocs\u002Fzh-CN\u002Fskills\u002Funified-notifications-ops",0,"https:\u002F\u002Fgithub.com\u002FSriramGandhiS\u002FSkills","https:\u002F\u002Fgithub.com\u002FSriramGandhiS","https:\u002F\u002Fsriram.website\u002F","Curious guy who keeps tinkering until something works","2026-05-20 16:21:34",{"source":8,"skillName":5,"commands":35,"prompt":45,"zipAvailable":46},[36,39,42],{"tool":37,"command":38},"npx","npx skills add SriramGandhiS\u002FSkills --skill unified-notifications-ops",{"tool":40,"command":41},"bunx","bunx skills add SriramGandhiS\u002FSkills --skill unified-notifications-ops",{"tool":43,"command":44},"pnpm","pnpm dlx skills add SriramGandhiS\u002FSkills --skill unified-notifications-ops","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FSriramGandhiS\u002FSkills\u002Fblob\u002Fmaster\u002Fskills\u002Feverything-claude-code\u002Fdocs\u002Fzh-CN\u002Fskills\u002Funified-notifications-ops\u002FSKILL.md",true,[],[49,56,61,67,74,81],{"skillNo":50,"name":51,"nameZh":6,"description":52,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":53,"categories":54,"keywords":55,"publishedAt":19},"01M732609EPJWV13PVTX3GT4TM","webgpu-threejs-tsl","Comprehensive guide for developing WebGPU-enabled Three.js applications using TSL (Three.js Shading Language). Covers WebGPU renderer setup, TSL syntax and node materials, compute shaders, post-processing effects, and WGSL integration. Use this skill when working with Three.js WebGPU, TSL shaders, node materials, or GPU compute in Three.js.","https:\u002F\u002Fgithub.com\u002FSriramGandhiS\u002FSkills\u002Fblob\u002Fmaster\u002Fwebgpu-threejs-tsl\u002Fskills\u002Fwebgpu-threejs-tsl\u002FSKILL.md",[],[],{"skillNo":57,"name":51,"nameZh":6,"description":52,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":58,"categories":59,"keywords":60,"publishedAt":19},"01M7325XM47AGWB6K6C4VXKE6B","https:\u002F\u002Fgithub.com\u002FSriramGandhiS\u002FSkills\u002Fblob\u002Fmaster\u002Fwebgpu-threejs-tsl\u002FSKILL.md",[],[],{"skillNo":62,"name":63,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":64,"categories":65,"keywords":66,"publishedAt":19},"01M7325WP6DES69JKC840VMFEP","verification-loop","https:\u002F\u002Fgithub.com\u002FSriramGandhiS\u002FSkills\u002Fblob\u002Fmaster\u002Fweb-assets\u002Fdocs\u002Fzh-TW\u002Fskills\u002Fverification-loop\u002FSKILL.md",[],[],{"skillNo":68,"name":69,"nameZh":6,"description":70,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":71,"categories":72,"keywords":73,"publishedAt":19},"01M7325TFQF1DZTQ6J3WGQQ1VR","tdd-workflow","Use this skill when writing new features, fixing bugs, or refactoring code. Enforces test-driven development with 80%+ coverage including unit, integration, and E2E tests.","https:\u002F\u002Fgithub.com\u002FSriramGandhiS\u002FSkills\u002Fblob\u002Fmaster\u002Fweb-assets\u002Fdocs\u002Fzh-TW\u002Fskills\u002Ftdd-workflow\u002FSKILL.md",[],[],{"skillNo":75,"name":76,"nameZh":6,"description":77,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":78,"categories":79,"keywords":80,"publishedAt":19},"01M7325RGV9AY9PK92D2V8KKPW","strategic-compact","Suggests manual context compaction at logical intervals to preserve context through task phases rather than arbitrary auto-compaction.","https:\u002F\u002Fgithub.com\u002FSriramGandhiS\u002FSkills\u002Fblob\u002Fmaster\u002Fweb-assets\u002Fdocs\u002Fzh-TW\u002Fskills\u002Fstrategic-compact\u002FSKILL.md",[],[],{"skillNo":82,"name":83,"nameZh":6,"description":84,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":85,"categories":86,"keywords":87,"publishedAt":19},"01M7325MZC28SE86E7NMCNEFS4","security-review","Use this skill when adding authentication, handling user input, working with secrets, creating API endpoints, or implementing payment\u002Fsensitive features. Provides comprehensive security checklist and patterns.","https:\u002F\u002Fgithub.com\u002FSriramGandhiS\u002FSkills\u002Fblob\u002Fmaster\u002Fweb-assets\u002Fdocs\u002Fzh-TW\u002Fskills\u002Fsecurity-review\u002FSKILL.md",[],[]]