autonomous-loop
Iterate until success or limit, composing existing skills with Jidoka integration
Generate formatted Slack messages for team communication
$ npx -y skills add WellApp-ai/Well --skill slack-announce --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/slack-announceContext preview
The summary Claude sees to decide when to auto-load this skill.
Generate formatted Slack messages for team communication
name: slack-announce description: Generate formatted Slack messages for team communication
Generate copy-ready Slack messages for various team announcements.
Identify the type of announcement:
| Type | Context | Priority | |------|---------|----------| | `pr` | New PR created | Normal | | `hotfix` | Urgent production fix | High | | `deploy` | Deployment to environment | Normal | | `incident` | Production issue | Critical |
Collect required information based on type:
**For PR:**
**For Hotfix:**
**For Deploy:**
**By message type:**
| Type | Primary Emoji | Secondary Emojis | |------|---------------|------------------| | pr (feat) | 🚀 | 📋 🔗 👀 | | pr (fix) | 🔧 | 📋 🔗 👀 | | pr (chore) | 🧹 | 📋 🔗 👀 | | pr (docs) | 📚 | 📋 🔗 👀 | | pr (refactor) | ♻️ | 📋 🔗 👀 | | hotfix | ⚠️ | 🔥 🚨 | | deploy | ✅ | 🎉 📦 | | incident | 🚨 | ⚠️ 🔴 |
Select a closing that matches the **PR context**. Be human, be fun, be relevant.
**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 🙏"
**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! 💵"
- "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 🌙"
- "On it! 🔥" - "Fix incoming, hold tight! 🏃♂️" - "Crisis averted. Coffee break earned ☕" - "The bat-signal was answered 🦇"
1. First, try **domain-specific** closing if domain is detected 2. Then, try **type-specific** closing based on commit type 3. Fall back to **generic** if no match 4. **Rotate** - don't repeat the same closing twice in a row
**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!
---
Present the formatted message in a copyable code block:
## Slack Message (copy-ready) [Formatted message here - ready to paste into Slack]
---
If Slack MCP is configured, messages can be sent automatically.
**Prerequisites:**
**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.
See `setup` skill Phase 9 for Slack MCP installation.
---
This skill is invoked by:
Iterate until success or limit, composing existing skills with Jidoka integration
Generate and maintain BPMN 2.0 diagrams linked to Gherkin scenarios
Research best-in-class products using Browser MCP and WebSearch
Systematic debugging with MCP integration, auto-invoke from qa-commit, Phase 7 Harden