announce-kit-release
Skill45 starsChanged 26 days agoMITView on GitHub
Use when asked to summarize the current Kit release against the previous release and publish a customer-facing announcement to Slack, including requests such as "announce the latest release", "post release notes", or "share what changed since the last version".
In this repository6 other files it gives its agents.
- AGENTS.mdAGENTS.md
- release-notesSkill
- secure-rust-dependency-changesSkill
- shared-stateSkill
- updating-artifact-schemaSkill
- user-docsSkill
The file
We split this skill into the rules it gives an agent
2 rules. About 0 are common, 2 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
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
- Distinctive: line 29
If the user explicitly asked to post, send the announcement directly.
- Distinctive: line 39
No emojis, raw commits, hashes, diff statistics, or internal implementation notes.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Announce a Kit Release
- Confirm the current checkout, latest release tag, and immediately preceding release tag. Fail if the current revision is not the release being announced or if either comparison tag is missing.
- Inspect the commit subjects, changed files, user documentation, and release-range diff between the two tags. Use these only as evidence; do not put raw commits, hashes, file lists, diff statistics, or implementation details in the announcement.
- Translate the changes into concise customer outcomes. Group related work into a short list, lead with the release version, and mention compatibility or performance fixes only when they affect users. Do not use emojis.
Format the payload as Slack
mrkdwn, not GitHub Markdown. Use single asterisks for bold titles (*What's new*), not**bold**or#headings. If using Block Kit sections, set their text type tomrkdwn, notplain_text. Include mise installation instructions in plain triple-backtick code blocks with no language label: Slack displays labels such asshellas literal code rather than syntax highlighting. The opening fence, command text, and closing fence must be on separate lines. Never put a command on the opening-fence line or put the closing fence after a command. Use this exact payload shape:*Install or upgrade with mise* ``` mise use -g github:speakeasy-api/kit kit --version ``` *To pin this version:* ``` mise use -g github:speakeasy-api/kit@<version-without-v-prefix> ```- Use the Slack channel ID from
SLACK_CHANNEL_IDin the environment, or an explicit channel ID supplied in the task. Pass this ID directly to Slack tools; do not search, list, or resolve channels by name. The configured ID remains valid if the channel is renamed. If no channel ID is supplied, stop and ask for one rather than guessing a destination. - Before sending or drafting, inspect the exact Slack payload. The release title and section titles must use Slack's single-asterisk bold syntax. Every opening and closing triple-backtick fence must be on its own line with no language label; the first line inside each code block must be an installation or verification command, not
shellorbash. Prose or links must appear only after a closing fence. Reject language-tagged fences, commands on fence lines, and unclosed blocks. - If the user explicitly asked to post, send the announcement directly. Otherwise, create a draft for review. Post only to the supplied channel ID; fail if it is invalid or inaccessible, and never substitute another destination.
- Read the sent message back from Slack and verify that the install commands did not absorb later prose or links. For a restricted bot explicitly known to lack history access, instead inspect the actual message returned in Slack's successful send response: verify the channel matches the supplied channel ID, a message timestamp is present, and the returned text preserves the bold title markers and unlabeled, correctly delimited code blocks. This verifies the send response, not a later history read. A bare success acknowledgement or the original outgoing payload is not sufficient; fail if the response lacks the posted message. If the message is malformed, replace or delete it when Slack tools allow that; otherwise post one corrected copy and report that the malformed message requires manual deletion.
- For a sent announcement, retrieve its permalink through Slack tools using the verified channel and message timestamp. Return the Slack message or draft link.
Announcement shape
- Heading:
*Kit <version> is available* - One sentence describing the overall customer benefit.
*What's new*with three to six outcome-focused bullets.*Install or upgrade with mise*with the install and verification commands in an unlabeled code block, then*To pin this version:*with the pinned-version command in a separate unlabeled code block.- No emojis, raw commits, hashes, diff statistics, or internal implementation notes.
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
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.

