From bmad-utility-skills
Generates social media announcements (Discord, Twitter/X, Facebook, LinkedIn) from changelog entries with contributor attribution and marketplace plugin support.
How this skill is triggered — by the user, by Claude, or both
Slash command
/bmad-utility-skills:bmad-os-changelog-socialThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Generate engaging social media announcements from changelog entries.
Generate engaging social media announcements from changelog entries.
Look for .claude-plugin/marketplace.json in the project root. If found, read it to understand what plugins exist and their versions.
Single plugin: The announcement is for that plugin specifically. Use its name and version in all posts (e.g., "bmad-utility-skills v1.2.0" not just "BMad v1.2.0").
Multiple plugins: Ask the user which plugin(s) they're announcing. Each plugin should be named specifically in the posts.
No marketplace.json: Fall back to repo name and git tags.
The user may want to announce across multiple changelogs at once (e.g., releases in two repos the same week). If the user provides multiple changelog paths or mentions multiple repos:
Read ./CHANGELOG.md and extract the latest version entry. The changelog may use either format:
Standard format:
## [VERSION]
### 🎁 Features
* **Title** — Description
Multi-plugin format:
## plugin-name - vX.Y.Z - [Date]
* Change description
Parse:
6.0.0-Beta.5)Use git log to find contributors since the previous version. Get commits between the current version tag and the previous one:
# Find the previous version tag first
git tag --sort=-version:refname | head -5
# Get commits between versions with PR numbers and authors
git log <previous-tag>..<current-tag> --pretty=format:"%h|%s|%an" --grep="#"
Extract PR numbers from commit messages that contain # followed by digits. Compile unique contributors.
Hard limit: 2,000 characters per message (Discord free account max). This includes spaces, line breaks, markdown formatting characters, and emoji shortcodes. You MUST count the final output and verify it is under 2,000 characters. If a single message would exceed the limit, split into multiple messages and label them (e.g., "1/2", "2/2").
Priority when trimming to fit: Cut "Community Philosophy", "Speaking & Media", and "Stats" sections first. Never cut the install command, support links, or contributor shout-outs.
Use this template style:
🚀 **PLUGIN-NAME vVERSION RELEASED!**
🎉 [Brief hype sentence]
🪥 **KEY HIGHLIGHT** - [One-line summary]
🎯 **CATEGORY NAME**
• Feature one - brief description
• Feature two - brief description
• Coming soon: Future teaser
🔧 **ANOTHER CATEGORY**
• Fix or feature
• Another item
📚 **DOCS OR OTHER**
• Item
• Item with link
🌟 **COMMUNITY PHILOSOPHY** (optional - include for major releases)
• Everything is FREE - No paywalls
• Knowledge shared, not sold
📊 **STATS**
X commits | Y PRs merged | Z files changed
🙏 **CONTRIBUTORS**
@username1 (X PRs!), @username2 (Y PRs!)
@username3, @username4, username5 + dependabot 🛡️
Community-driven FTW! 🌟
📦 **INSTALL:**
`npx bmad-method@VERSION install`
⭐ **SUPPORT US:**
🌟 GitHub: github.com/bmad-code-org/BMAD-METHOD/
📺 YouTube: youtube.com/@BMadCode
☕ Donate: buymeacoffee.com/bmad
🔥 **Next version tease!**
Content Strategy:
Generate a series of standalone tweets designed to be scheduled and spaced out over days. Each tweet should work on its own as an exciting announcement, not depend on the others.
Tweet 1 - Release Announcement (flagship tweet): The main "we just released vX.Y.Z" tweet. High energy, top 2-3 highlights, install command, link to repo. This one goes out on release day.
Tweets 2-N - Feature/Fix Spotlights: One tweet per noteworthy feature, improvement, or bug fix. Each should:
Guidelines:
See examples/twitter-example.md for tone reference.
Generate a Facebook post formatted as a short article or thought piece. Rather than a bullet-point feature list, pick the single most interesting thing from the release and write about it as a topic worth discussing.
Approach:
Guidelines:
Template style:
[Hook - an observation, question, or bold statement about the topic]
[2-3 paragraphs exploring the idea - what we built, why it matters, what we learned. This is the article body.]
[Tie it back to the release - "This is exactly why we built X in vVERSION"]
Try it out: npx bmad-method@VERSION install
More at github.com/bmad-code-org/BMAD-METHOD
[Discussion question]
#BMadMethod #AI #OpenSource #DevTools #Agile
Include:
Skip/Minimize:
Emphasize:
Reference example posts in examples/ for tone and formatting guidance:
When to use LinkedIn:
Read the appropriate example file before generating to match the established style and voice.
CRITICAL: ALWAYS write to files - Create files in _bmad-output/social/ directory:
{plugin-name}-discord-{version}.md - Discord announcement{plugin-name}-twitter-{version}.md - Series of standalone tweets with suggested schedule{plugin-name}-facebook-{version}.md - Facebook post{plugin-name}-linkedin-{version}.md - LinkedIn post (if applicable)For combined multi-plugin announcements, use combined-social-{date}.md with all platforms in one file.
Also present a preview in the chat:
## Discord Announcement
[Character count: X/2000]
[paste Discord content here]
## Twitter/X Posts
[X tweets, suggested schedule included]
[paste tweets here]
## Facebook Post
[paste Facebook content here]
Files created:
_bmad-output/social/{filename}Offer to make adjustments if the user wants different emphasis, tone, or content.
npx claudepluginhub bmad-code-org/bmad-utility-skills --plugin bmad-utility-skillsCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.