with one click
write-release-announcement
// Write a blog post and Discord announcement for a new Readium Kotlin Toolkit release. Use this skill whenever the user wants to announce a new version, write a blog post, or draft a Discord post.
// Write a blog post and Discord announcement for a new Readium Kotlin Toolkit release. Use this skill whenever the user wants to announce a new version, write a blog post, or draft a Discord post.
| name | write-release-announcement |
| description | Write a blog post and Discord announcement for a new Readium Kotlin Toolkit release. Use this skill whenever the user wants to announce a new version, write a blog post, or draft a Discord post. |
This skill writes two release announcement documents to the project root:
BLOG-{VERSION}.md — a blog post (no length limit) in the established Readium styleDISCORD-{VERSION}.md — a Discord message (≤ 2000 characters)Run this command to get the most recent release tag:
git tag --sort=-version:refname | grep -E '^[0-9]+\.[0-9]+\.[0-9]+$' | head -1
This is VERSION for the rest of the workflow.
python3 scripts/release-md-tools.py extract-changelog VERSION CHANGELOG.md
Read the output carefully. The changelog is organized by module (Shared, Navigator, Streamer, LCP) and change type (Added, Changed, Deprecated, Fixed, Removed). Your job is to translate these raw technical entries into user-facing themes that matter to developers integrating the toolkit.
Good themes cut across modules and focus on what the developer can now do or what changed in their workflow, not on internal architecture. Examples of good theme names:
Aim for 3–6 themes. Always surface breaking changes as their own theme or subsection — developers must not miss them.
Use the tool to ask user questions with multi-selection. Present your proposed themes as options. The user's selection determines the structure of both documents.
If the changelog has breaking changes, always include a "Technical updates and breaking changes" option (or similar).
Ask the user: "Is there anything else you'd like to mention in the announcements that isn't in the changelog?" (e.g. a new documentation site, an upcoming major version, a community shoutout).
This is a free-text follow-up — use the tool to ask the user with a single open question.
Read references/example-3.7.0.md and references/example-3.8.0.md before writing. Each file contains the raw changelog, the finished blog post, and the finished Discord message for one release — study how the changelog entries were grouped, reworded, and condensed at each step.
EPUBNavigatorViewController, LCPKeychainLicenseRepository, etc.The reference examples in references/example-3.7.0.md and references/example-3.8.0.md also contain the Discord announcements.
https://blog.readium.org/release-note-kotlin-toolkit-version-{VERSION_DASHES}/ where 3.9.0 becomes 3-9-0.https://github.com/readium/kotlin-toolkit/releases/tag/{VERSION}Write the blog post to BLOG-{VERSION}.md and the Discord message to DISCORD-{VERSION}.md in the project root.
references/example-3.7.0.md — full example for a feature-rich release: raw changelog → blog post → Discordreferences/example-3.8.0.md — full example for a focused release: raw changelog → blog post → Discord