home / skills / tilomitra / release-kit-claude-skills / announce

announce skill

/announce

This skill drafts Twitter/X and LinkedIn release posts by highlighting the most impactful changes and user benefits.

npx playbooks add skill tilomitra/release-kit-claude-skills --skill announce

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
4.7 KB
---
name: announce
description: Draft social media posts (Twitter/X and LinkedIn) announcing a new release. Triggered by requests to announce a release, write a tweet about a version, or create social posts for a launch.
---

# Release Announcement Generator

Draft social media posts for Twitter/X and LinkedIn by analyzing what actually changed — not just parroting commit messages.

## Gathering Context

### Step 1: Determine what's being announced

```bash
# Get the most recent tag
CURRENT_TAG=$(git describe --tags --abbrev=0)
PREVIOUS_TAG=$(git describe --tags --abbrev=0 "$CURRENT_TAG^")

# Get the date of the previous tag for filtering PRs/issues
SINCE_DATE=$(git log -1 --format=%aI "$PREVIOUS_TAG")
```

### Step 2: Gather signals (in order of usefulness)

**PRs merged since last release:**
```bash
gh pr list --state merged --search "merged:>=$SINCE_DATE" --json number,title,body,labels --limit 100
```

**Issues closed since last release:**
```bash
gh issue list --state closed --search "closed:>=$SINCE_DATE" --json number,title,body,labels --limit 100
```

**Diff between tags:**
```bash
git diff "$PREVIOUS_TAG".."$CURRENT_TAG" -- '*.ts' '*.js' '*.tsx' '*.jsx' '*.py' '*.go' '*.rs' ':!*.lock' ':!*.min.*'
```

**Files changed (reveals scope):**
```bash
git diff --name-only "$PREVIOUS_TAG".."$CURRENT_TAG"
```

**New or changed test descriptions:**
```bash
git diff "$PREVIOUS_TAG".."$CURRENT_TAG" -- '**/*.test.*' '**/*.spec.*' '**/test_*' '**/*_test.*'
```

**Config and dependency changes:**
```bash
git diff "$PREVIOUS_TAG".."$CURRENT_TAG" -- 'package.json' '*.toml' '*.yaml' '*.yml' '*.env.example' '*.config.*'
```

**Commit messages (last resort):**
```bash
git log --oneline "$PREVIOUS_TAG".."$CURRENT_TAG"
```

### Step 3: Also check for existing release notes

```bash
# Check if there's a GitHub release with notes already
gh release view "$CURRENT_TAG" --json body --jq '.body' 2>/dev/null
```

If release notes already exist, use them as the primary source and supplement with the gathered context.

## Selecting What to Announce

Not everything in a release is announcement-worthy.

### Include
- Major new features users asked for (check closed issues)
- Significant performance improvements with real numbers
- Long-standing bug fixes that affected many users
- New integrations or platform support

### Skip
- Internal refactors
- Minor bug fixes
- Dependency updates
- CI/CD changes
- Test improvements

### Newsworthiness check
Ask: "Would a user of this product care enough to click through?" If no, skip it.

## Writing Rules

- Lead with the single most compelling change
- Write about benefits, not features: "Ship 3x faster" not "Add parallel build pipeline"
- Never mention file names, function names, or technical internals
- Use active voice
- Sound human — not like a corporate press release
- Include a link to the release or changelog if available
- Keep Twitter/X posts under 280 characters
- For LinkedIn, keep it to 3-5 short paragraphs max

## Output Format

Generate both formats:

### Twitter/X

```
ProjectName v2.4.0 is out!

Biggest addition: bulk CSV export for any report type — custom date ranges, filters, the works.

Also: keyboard shortcuts, faster search, and bug fixes.

→ https://github.com/org/repo/releases/tag/v2.4.0
```

### LinkedIn

```
ProjectName v2.4.0 just shipped with a feature our users have been asking for: bulk CSV export.

You can now export any report — including custom reports — to CSV with full control over date ranges and filters. No more copying data by hand.

We also added keyboard shortcuts for common actions, improved search performance for large workspaces, and fixed several bugs.

Check out the full release notes: https://github.com/org/repo/releases/tag/v2.4.0
```

## Example: Bad Commits → Good Announcement

**Typical commit messages:**
```
fix stuff
wip
update deps
john's changes
PR #89
```

**What the skill produces by analyzing PRs, issues, and diffs:**

### Twitter/X
```
ProjectName v3.0 just dropped 🚀

Real-time collaboration — edit documents with your team, see their cursors live.

Plus: Slack notifications for deploys and a bunch of bug fixes.

→ https://github.com/org/repo/releases/tag/v3.0.0
```

### LinkedIn
```
Excited to share ProjectName v3.0 — our biggest release this year.

The headline: real-time collaboration. You can now edit documents with your team simultaneously, with live cursors and instant syncing.

We also added Slack integration for deployment notifications, fixed duplicate search results, and resolved an issue with SSO password resets.

Full release notes: https://github.com/org/repo/releases/tag/v3.0.0
```

## Final Steps

- Present both Twitter/X and LinkedIn drafts
- Ask the user if they want to adjust tone, add hashtags, or mention specific accounts
- Offer to copy to clipboard

Overview

This skill drafts social media posts (Twitter/X and LinkedIn) announcing new releases by turning code changes into clear, user-focused copy. It analyzes merged PRs, closed issues, diffs, and existing release notes to surface the most announcement-worthy changes and produce short, compelling posts. Outputs include a tweet/X thread-sized draft and a LinkedIn-ready announcement, with links to the release.

How this skill works

The skill collects signals since the last tagged release: merged PRs, closed issues, file diffs, changed test descriptions, and config/dependency updates. It prioritizes customer-facing features, significant performance gains, and high-impact bug fixes, skipping internal refactors or low-value churn. Using writing rules, it leads with the most compelling change, frames benefits not internals, and formats content for both Twitter/X and LinkedIn within platform limits.

When to use it

  • You need concise social posts for a software release or version bump.
  • A release has merged many PRs and you want a readable announcement from technical changes.
  • You want both an X/Twitter-sized post and a short LinkedIn announcement.
  • You have release notes or a changelog and want polished copy that highlights user value.
  • You want to avoid posting raw commit messages or noisy changelogs.

Best practices

  • Lead with the single most compelling user-facing change or metric.
  • Describe benefits, not file names or technical internals.
  • Keep X posts under 280 characters and LinkedIn to 3–5 short paragraphs.
  • Include a link to the release or changelog and optional CTA.
  • Skip internal refactors, minor fixes, and dependency-only updates.

Example use cases

  • Draft a tweet and LinkedIn post for v2.4.0 that highlights a major new feature and links to release notes.
  • Convert merged PR and closed-issue summaries since last tag into a short social announcement.
  • Polish existing release notes into customer-focused copy for marketing and product channels.
  • Generate an announcement highlighting a measurable performance improvement (e.g., 3x faster builds).
  • Create alternate tones (casual, formal) and recommend hashtags or account mentions before posting.

FAQ

Can the skill use existing release notes?

Yes. If release notes are available they become the primary source and the skill supplements them with recent PRs and issues.

Will it include technical details like file names or function names?

No. The skill avoids technical internals and focuses on user-facing benefits and outcomes.

Can I ask for tone adjustments or hashtags?

Yes. After generating drafts you can request tone changes, add hashtags, or tag specific accounts.