release-announcement
Helps your agent write launch announcements. It focuses on user impact and how to use new features.
What it does
This feature helps create software update announcements. It writes text for different places like in-app notes, social media posts, or blog articles, focusing on what the user gains from the new update.
When to use it
- ✓When a new version or feature is released and needs to be communicated.
- ✓When a previously private feature is now available to everyone.
- ✓When an important change might affect users and needs to be announced in advance.
Example of what to ask your AI
“Write an announcement for the new version 2.0 of our app, highlighting that it's now 50% faster and allows exporting data to PDF.”
Want more? Open the sections below.
How to use
The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.
Skill link
Ready-to-paste message
How it works
The AI understands the target audience (users, developers, etc.) and the publication channel (blog, social media). It then crafts text focused on reader benefits, with clear instructions on what action to take.
Installation
Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.
In the terminal (Claude Code, Codex, Cursor), in your project folder:
npx skills add paperclipai/paperclip --skill release-announcementOr download just the file:
curl -L https://raw.githubusercontent.com/paperclipai/paperclip/master/packages/skills-catalog/catalog/optional/content/release-announcement/SKILL.md -o SKILL.mdTechnical content (original SKILL.md)
Original text by the author, straight from GitHub.
Release Announcement
Write the channel-appropriate announcement for a release without churn. Different surfaces need different shapes: a changelog entry is not a blog post is not a social card. The bar is: a reader of the chosen surface can decide in under 30 seconds whether this release affects them, and if so what to do.
When to use
- A version, feature, or fix is shipping and needs writeup for at least one surface.
- A previously private feature is going GA.
- A breaking change needs broadcast before users hit it.
When not to use
- An internal-only change with no user impact. Update internal docs; do not announce.
- The release is incomplete (still in active development). Wait until it ships, even if marketing wants the post.
Paperclip Cases output
When this skill runs inside Paperclip and experimental.enableCases is enabled,
emit durable release-content cases before handing off the copy. Cases preserve
the inspectable output; the issue coordinates the work.
Use skills/paperclip/references/cases.md for the API contract. Include
X-Paperclip-Run-Id on writes when PAPERCLIP_RUN_ID is set. If the API returns
403 Cases are disabled, report that limitation and continue with the requested
copy artifact.
Upsert the parent release case first when it does not already exist:
{
"caseType": "release",
"key": "paperclip-release:vYYYY.MDD.P",
"title": "Paperclip vYYYY.MDD.P release",
"status": "in_progress",
"fields": {
"schema_version": 1,
"version": "vYYYY.MDD.P",
"release_date": "YYYY-MM-DD",
"release_patch": 0,
"stable": true,
"channels": ["blog_post", "tweet_storm"],
"artifacts": {
"changelog_path": "releases/vYYYY.MDD.P.md",
"publish_url": null
}
}
}
For a dev blog, upsert a child case with parentCaseId set to the release case:
{
"caseType": "blog_post",
"key": "paperclip-release:vYYYY.MDD.P:blog-post",
"title": "Paperclip vYYYY.MDD.P launch post",
"status": "in_review",
"parentCaseId": "<release-case-id>",
"fields": {
"schema_version": 1,
"version": "vYYYY.MDD.P",
"slug": "paperclip-vYYYY-MDD-P",
"word_count_target": 650,
"target_audience": ["operators", "developers"],
"requires_screenshot": false,
"links": {
"release_notes": "releases/vYYYY.MDD.P.md",
"publish_url": null
},
"sections": ["hook", "whats_new", "upgrade", "whats_next"]
}
}
For social output, upsert a sibling child case:
{
"caseType": "tweet_storm",
"key": "paperclip-release:vYYYY.MDD.P:tweet-storm",
"title": "Paperclip vYYYY.MDD.P tweet storm",
"status": "in_review",
"parentCaseId": "<release-case-id>",
"fields": {
"schema_version": 1,
"version": "vYYYY.MDD.P",
"post_count": 1,
"channel": "x",
"target_audience": ["operators", "contributors"],
"links": {
"release_notes": "releases/vYYYY.MDD.P.md",
"publish_url": null
},
"review": {
"needs_human_copy_paste": true,
"approved_by": null
}
}
}
Write the produced copy to PUT /api/cases/:caseId/documents/body with
format: "markdown" and a changeSummary. Fetch the latest document revision
and pass baseRevisionId when updating an existing body document.
Determine the audience and channel first
| Audience | Best channel | Tone |
|---|---|---|
| Existing power users | Changelog, in-app note | Terse, factual, links |
| Engineering teams adopting your API | Release notes, dev blog | Examples, migration steps, version pins |
| Prospective customers | Landing page, marketing blog | Story arc, problem → solution, social proof |
| Broad audience | Social post, email newsletter | One-sentence pitch, link to depth |
| Internal team | Slack/Discord post | What changed, who to ping if it breaks |
Pick the audience for this writeup. One release often needs several writeups; do not blend them.
Universal structure
Whatever the channel, lead with:
- What changed. One sentence in the user's vocabulary.
- Who it affects. Which user role / use case.
- What to do. Migrate now / opt-in / no action needed.
Everything else is depth that supports those three.
Channel templates
Changelog entry (terse)
## v1.42.0 — 2026-05-26
### Added
- <feature> — <one-line user benefit>. ([#1234](link))
### Changed
- <change> — <one-line impact>. ([#1235](link))
### Fixed
- <bug> — <one-line user-visible symptom>. ([#1236](link))
…
FAQ
What does 'without filler' mean?
It means avoiding unnecessary introductory phrases like 'We are excited to announce' and getting straight to the point about the changes and their impact.
What are 'Paperclip Cases'?
This refers to an internal system for organizing and tracking the writing tasks for announcements, ensuring work is logged and managed properly.
Why is focusing on 'user impact' important?
Because people want to know how a new update directly affects them and what benefits they will receive, rather than just knowing what was technically changed.
Details
Original description by the author
Write a release announcement — changelog, blog post, in-app note, or social post — that leads with user impact, names the audience, and includes upgrade/migration steps without filler.
repo: paperclipai/paperclip
Popularity
- GitHub stars
- 103k
- Ranking position
- #386
- License
- MIT
- Updated
- 10/16/2026
Comments
- …
More skills from this repository
delegate-work
Helps your agent delegate work to another agent. It's useful for breaking down complex tasks and tracking progress in an organized way.
paperclipai/paperclip
follow-up-results
Has your agent check results from previous work. It's useful for tracking task progress and adding human feedback.
paperclipai/paperclip
review-my-team
Helps your agent review the connected team. It's useful for getting a summary of the team, tasks, blockers, and pending approvals.
paperclipai/paperclip
paperclip-task-bridge
Has your agent create and manage tasks on another platform. It's useful for interacting with project management systems directly.
paperclipai/paperclip
Similar skills
product-lens
Helps your agent validate product ideas before building. It analyzes market fit and user experience to decide if a product should proceed.
affaan-m/ECC
investor-outreach
Helps your agent write emails to investors. It creates personalized messages to ask for investment or send updates.
affaan-m/ECC
email-marketing
Has your agent create a product launch email. Includes an image, headline, body copy, and call-to-action button.
nexu-io/open-design