agentleFS
tilomitratilomitra/release-kit-claude-skills/announce/SKILL.md

announce

Skill2 starsChanged 10 months agoMITView on GitHub

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.

  • Reads credentials

4 other projects use a version of this.

Adopted by

Most recently taken up by

  • Other versions4 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 4

    1. egregore-labs/egregore★ 293same name
    2. iliaal/whetstone★ 36same name
    3. ucsandman/claude-skills★ 5same name
    4. siemendev/release-process★ 2same name

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • In this repository2 other files it gives its agents.

The file

We split this skill into the rules it gives an agent

7 rules. 0 are common, 7 are distinctive, and 0 are very specific to this project.

  • 0

    Common

    Most of the 4 edited versions we read keep these.

  • 7

    Distinctive

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

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

    line 67
  2. Distinctive:

    Not everything in a release is announcement-worthy.

    line 71
  3. Distinctive:

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

    line 87
  4. Distinctive:

    Write about benefits, not features: "Ship 3x faster" not "Add parallel build pipeline"

    line 92
  5. Distinctive:

    Never mention file names, function names, or technical internals

    line 93
  6. Distinctive:

    Keep Twitter/X posts under 280 characters

    line 97
  7. Distinctive:

    Ask the user if they want to adjust tone, add hashtags, or mention specific accounts

    line 166

“Common” is measured: kept by at least 6 in 10 of the 4 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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

# 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:

gh pr list --state merged --search "merged:>=$SINCE_DATE" --json number,title,body,labels --limit 100

Issues closed since last release:

gh issue list --state closed --search "closed:>=$SINCE_DATE" --json number,title,body,labels --limit 100

Diff between tags:

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

Files changed (reveals scope):

git diff --name-only "$PREVIOUS_TAG".."$CURRENT_TAG"

New or changed test descriptions:

git diff "$PREVIOUS_TAG".."$CURRENT_TAG" -- '**/*.test.*' '**/*.spec.*' '**/test_*' '**/*_test.*'

Config and dependency changes:

git diff "$PREVIOUS_TAG".."$CURRENT_TAG" -- 'package.json' '*.toml' '*.yaml' '*.yml' '*.env.example' '*.config.*'

Commit messages (last resort):

git log --oneline "$PREVIOUS_TAG".."$CURRENT_TAG"

Step 3: Also check for existing release notes

# 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

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.