slack-announce
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseSlack Announce Skill
Slack 公告技能
Generate copy-ready Slack messages for various team announcements.
为各类团队公告生成可直接复制使用的Slack消息。
When to Use
适用场景
- Push PR mode: announce new PR
- Hotfix mode: urgent fix notification
- Deploy notifications
- Incident communication
- 推送PR模式:宣布新的PR
- 热修复模式:紧急修复通知
- 部署通知
- 事件沟通
Phases
操作步骤
Phase 1: Determine Message Type
步骤1:确定消息类型
Identify the type of announcement:
| Type | Context | Priority |
|---|---|---|
| New PR created | Normal |
| Urgent production fix | High |
| Deployment to environment | Normal |
| Production issue | Critical |
识别公告的类型:
| 类型 | 场景 | 优先级 |
|---|---|---|
| 创建新PR | 普通 |
| 生产环境紧急修复 | 高 |
| 部署到环境 | 普通 |
| 生产环境问题 | 严重 |
Phase 2: Gather Context
步骤2:收集上下文信息
Collect required information based on type:
For PR:
- Feature name (from branch or PR title)
- PR URL
- Notion task URL
- Reviewer name and handle
- Domain name
For Hotfix:
- Issue description
- Affected systems
- PR URL (if applicable)
- Urgency level
For Deploy:
- Version/tag
- Environment (test/production)
- Key changes summary
根据类型收集所需信息:
PR相关:
- 功能名称(来自分支或PR标题)
- PR链接
- Notion任务链接
- 审核人姓名及账号
- 业务领域名称
热修复相关:
- 问题描述
- 受影响的系统
- PR链接(如有)
- 紧急程度
部署相关:
- 版本/标签
- 环境(测试/生产)
- 关键变更摘要
Phase 3: Select Emoji
步骤3:选择表情符号
By message type:
| Type | Primary Emoji | Secondary Emojis |
|---|---|---|
| pr (feat) | 🚀 | 📋 🔗 👀 |
| pr (fix) | 🔧 | 📋 🔗 👀 |
| pr (chore) | 🧹 | 📋 🔗 👀 |
| pr (docs) | 📚 | 📋 🔗 👀 |
| pr (refactor) | ♻️ | 📋 🔗 👀 |
| hotfix | ⚠️ | 🔥 🚨 |
| deploy | ✅ | 🎉 📦 |
| incident | 🚨 | ⚠️ 🔴 |
按消息类型分类:
| 类型 | 主表情 | 次要表情 |
|---|---|---|
| pr (feat) | 🚀 | 📋 🔗 👀 |
| pr (fix) | 🔧 | 📋 🔗 👀 |
| pr (chore) | 🧹 | 📋 🔗 👀 |
| pr (docs) | 📚 | 📋 🔗 👀 |
| pr (refactor) | ♻️ | 📋 🔗 👀 |
| hotfix | ⚠️ | 🔥 🚨 |
| deploy | ✅ | 🎉 📦 |
| incident | 🚨 | ⚠️ 🔴 |
Phase 4: Generate Fun Closing
步骤4:生成趣味结束语
Select a closing that matches the PR context. Be human, be fun, be relevant.
选择与PR上下文匹配的结束语,要人性化、有趣且贴合场景。
By PR Type
按PR类型分类
Features (feat):
- "Feature flag? Where we're going, we don't need feature flags 🚗"
- "Users asked, we delivered 📦"
- "Fresh code, hot off the keyboard! ⌨️🔥"
- "Time to make some bytes dance! 💃"
- "Let's gooooo! 🎸"Fixes (fix):
- "Bug squashed. No insects were harmed 🐛✨"
- "It's not a bug, it was an undocumented feature 📝"
- "Another bug bites the dust 🎵"
- "Sleep well tonight, this one's fixed 😴"Refactors (refactor):
- "Same same, but different, but still same 🔄"
- "If it ain't broke... refactor it anyway ♻️"
- "Deleting code is my love language 💕"
- "Less is more. Literally, we deleted stuff 🗑️"Chores (chore):
- "The unglamorous work that makes the magic happen ✨"
- "Housekeeping complete, the codebase says thank you 🏠"
- "Ctrl+S, Ctrl+Ship! 🚢"
- "Another day, another deploy (hopefully) 🤞"Docs (docs):
- "Future us will thank present us 📚"
- "Documentation: because tribal knowledge doesn't scale 🧠"
- "README? More like READ-ME-PLEASE 🙏"功能类(feat):
- "功能开关?我们要去的地方,不需要功能开关 🚗"
- "用户提需求,我们来实现 📦"
- "新鲜代码,刚从键盘出炉! ⌨️🔥"
- "让字节跳动起来! 💃"
- "冲啊! 🎸"修复类(fix):
- "Bug已消灭,无昆虫受伤 🐛✨"
- "这不是Bug,是未文档化的功能 📝"
- "又一个Bug被击败 🎵"
- "今晚可以安心睡了,这个问题已修复 😴"重构类(refactor):
- "看似相同,实则不同,但本质还是一样 🔄"
- "即使没坏...也要重构它 ♻️"
- "删除代码是我的爱语 💕"
- "少即是多。说实话,我们删了些东西 🗑️"杂务类(chore):
- "这份不起眼的工作成就了魔法 ✨"
- "整理完成,代码库表示感谢 🏠"
- "Ctrl+S,Ctrl+部署! 🚢"
- "又是一天,又是一次部署(希望如此) 🤞"文档类(docs):
- "未来的我们会感谢现在的我们 📚"
- "文档:因为部落式知识无法规模化 🧠"
- "README?不如叫READ-ME-PLEASE 🙏"By Domain (Contextual)
按业务领域(场景化)
Cursor Rules / AI Workflow:
- "Teaching the AI new tricks! 🎓🤖"
- "The machines are learning... from us, for once 🧠"
- "The rules now have rules about rules 🤯"
- "25 skills walk into a codebase... 🚶♂️"
- "Now with 100% more patine (it's French, we're fancy) 🥐"Tables / Data:
- "Rows and columns, living in harmony 📊"
- "Data goes in, insights come out 🔮"Auth / Security:
- "Keeping the bad guys out since [current_year] 🔐"
- "Trust no one. Except this PR. Trust this PR 🤝"Payments / Billing:
- "Making money moves 💰"
- "Cha-ching! 💵"Cursor规则 / AI工作流:
- "教AI新技巧! 🎓🤖"
- "机器正在学习...这次是向我们学 🧠"
- "规则现在有了关于规则的规则 🤯"
- "25个技能走进代码库... 🚶♂️"
- "现在多了100%的包浆(这是法语,我们很时髦) 🥐"表格 / 数据:
- "行与列,和谐共处 📊"
- "数据输入,洞察输出 🔮"认证 / 安全:
- "从[current_year]开始抵御坏人 🔐"
- "不要相信任何人。除了这个PR。相信这个PR 🤝"支付 / 账单:
- "搞钱行动 💰"
- "叮铃! 💵"Generic (Fallback)
通用(备选)
- "Shipping it before my coffee gets cold ☕"
- "May the code review gods be merciful 🙏"
- "Works on my machine™ 💻"
- "One small commit for dev, one giant leap for the product 🌙"- "在咖啡变凉前部署完成 ☕"
- "愿代码审核之神仁慈 🙏"
- "在我机器上能跑™ 💻"
- "开发者的一小步,产品的一大步 🌙"Hotfixes (Serious but Human)
热修复(严肃但人性化)
- "On it! 🔥"
- "Fix incoming, hold tight! 🏃♂️"
- "Crisis averted. Coffee break earned ☕"
- "The bat-signal was answered 🦇"- "正在处理! 🔥"
- "修复即将到来,请稍等! 🏃♂️"
- "危机解除,值得喝杯咖啡休息 ☕"
- "蝙蝠信号灯已响应 🦇"Selection Logic
选择逻辑
- First, try domain-specific closing if domain is detected
- Then, try type-specific closing based on commit type
- Fall back to generic if no match
- Rotate - don't repeat the same closing twice in a row
- 首先,若检测到业务领域,优先选择领域专属结束语
- 其次,根据提交类型选择类型专属结束语
- 若无匹配项,使用通用结束语
- 轮换 - 不要连续两次使用相同的结束语
Phase 5: Format Message
步骤5:格式化消息
PR Template:
[emoji] **[Feature Name]**
[Two-liner: what this does + why it matters]
📋 Notion: [notion-link]
🔗 PR: [github-pr-link]
👀 Reviewer: @[handle] (auto-assigned from [domain])
[Fun closing]Hotfix Template:
⚠️ **HOTFIX: [Issue Title]**
🔴 **Impact:** [affected systems/users]
🔧 **Fix:** [brief description]
🔗 PR: [github-pr-link]
👀 Reviewer: @[handle]
[Closing]Deploy Template:
✅ **Deployed to [Environment]**
📦 Version: [tag/version]
📝 Changes:
- [bullet 1]
- [bullet 2]
🎉 Ship it!PR模板:
[emoji] **[功能名称]**
[两行说明:功能作用 + 重要性]
📋 Notion:[notion链接]
🔗 PR:[github-pr链接]
👀 审核人:@[账号](从[业务领域]自动分配)
[趣味结束语]热修复模板:
⚠️ **热修复:[问题标题]**
🔴 **影响范围:** [受影响的系统/用户]
🔧 **修复内容:** [简要描述]
🔗 PR:[github-pr链接]
👀 审核人:@[账号]
[结束语]部署模板:
✅ **已部署到[环境]**
📦 版本:[标签/版本]
📝 变更内容:
- [要点1]
- [要点2]
🎉 发布!Output
输出
Present the formatted message in a copyable code block:
undefined将格式化后的消息放在可复制的代码块中:
undefinedSlack Message (copy-ready)
Slack消息(可直接复制)
[Formatted message here - ready to paste into Slack]
---[此处为格式化后的消息 - 可直接粘贴到Slack]
---Slack MCP Integration (Optional)
Slack MCP集成(可选)
If Slack MCP is configured, messages can be sent automatically.
若已配置Slack MCP,可自动发送消息。
Phase 6: Send via Slack MCP
步骤6:通过Slack MCP发送
Prerequisites:
- Slack MCP server installed and configured
- Bot token with scope
chat:write - Channel ID for announcements
Send message:
Slack MCP:
tool: send_message
arguments:
channel: "[CHANNEL_ID]"
text: "[formatted message from Phase 5]"Fallback: If Slack MCP not available, output copy-ready message for manual posting.
前置条件:
- 已安装并配置Slack MCP服务器
- 拥有权限的机器人令牌
chat:write - 公告频道的ID
发送消息:
Slack MCP:
tool: send_message
arguments:
channel: "[CHANNEL_ID]"
text: "[步骤5中生成的格式化消息]"备选方案: 若Slack MCP不可用,输出可复制的消息供手动发布。
Setup Instructions
设置说明
See skill Phase 9 for Slack MCP installation.
setup请查看技能的步骤9了解Slack MCP的安装方法。
setupIntegration
集成
This skill is invoked by:
- - Phase 3.1 (Announce)
push-pr.mdc - - When threshold crossed (optional notification)
pr-threshold - - Urgent notification
hotfix/SKILL.md - Deploy scripts (future)
本技能可由以下内容触发:
- - 步骤3.1(公告)
push-pr.mdc - - 当达到阈值时(可选通知)
pr-threshold - - 紧急通知
hotfix/SKILL.md - 部署脚本(未来支持)