skills/wellapp-ai/well/slack-announce

slack-announce

SKILL.md

Slack Announce Skill

Generate copy-ready Slack messages for various team announcements.

When to Use

  • Push PR mode: announce new PR
  • Hotfix mode: urgent fix notification
  • Deploy notifications
  • Incident communication

Phases

Phase 1: Determine Message Type

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

Phase 2: Gather Context

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

Phase 3: Select Emoji

By message type:

Type Primary Emoji Secondary Emojis
pr (feat) ๐Ÿš€ ๐Ÿ“‹ ๐Ÿ”— ๐Ÿ‘€
pr (fix) ๐Ÿ”ง ๐Ÿ“‹ ๐Ÿ”— ๐Ÿ‘€
pr (chore) ๐Ÿงน ๐Ÿ“‹ ๐Ÿ”— ๐Ÿ‘€
pr (docs) ๐Ÿ“š ๐Ÿ“‹ ๐Ÿ”— ๐Ÿ‘€
pr (refactor) โ™ป๏ธ ๐Ÿ“‹ ๐Ÿ”— ๐Ÿ‘€
hotfix โš ๏ธ ๐Ÿ”ฅ ๐Ÿšจ
deploy โœ… ๐ŸŽ‰ ๐Ÿ“ฆ
incident ๐Ÿšจ โš ๏ธ ๐Ÿ”ด

Phase 4: Generate Fun Closing

Select a closing that matches the PR context. Be human, be fun, be relevant.

By PR Type

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 ๐Ÿ™"

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! ๐Ÿ’ต"

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

  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

Phase 5: Format Message

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!

Output

Present the formatted message in a copyable code block:

## Slack Message (copy-ready)

[Formatted message here - ready to paste into Slack]

Slack MCP Integration (Optional)

If Slack MCP is configured, messages can be sent automatically.

Phase 6: Send via Slack MCP

Prerequisites:

  • Slack MCP server installed and configured
  • Bot token with chat:write scope
  • 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.

Setup Instructions

See setup skill Phase 9 for Slack MCP installation.


Integration

This skill is invoked by:

  • push-pr.mdc - Phase 3.1 (Announce)
  • pr-threshold - When threshold crossed (optional notification)
  • hotfix/SKILL.md - Urgent notification
  • Deploy scripts (future)
Weekly Installs
2
Repository
wellapp-ai/well
GitHub Stars
315
First Seen
Feb 12, 2026
Installed on
opencode2
gemini-cli2
antigravity2
claude-code2
windsurf2
cursor2