Verdaccio Pull Request Workflow
verdaccio/verdaccio
Takes a change through a verdaccio pull request: branch, local checks, changeset, title and body, labels, CI and review rounds, and ports to other release lines.
Draft a Discord release announcement for SUB/WAVE from a release PR, tag, or version number.
$ npx skills add perminder-klair/subwave --skill subwave-discord-release -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install perminder-klair/subwave subwave-discord-release --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/perminder-klair/subwave.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/subwave-discord-release .claude/skills/subwave-discord-release && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "subwave-discord-release" agent skill from https://github.com/perminder-klair/subwave/tree/develop/.claude/skills/subwave-discord-release into .claude/skills/subwave-discord-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "subwave-discord-release", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/perminder-klair/subwave/tree/develop/.claude/skills/subwave-discord-releaseType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add perminder-klair/subwave --skill subwave-discord-release -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install perminder-klair/subwave subwave-discord-release --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/perminder-klair/subwave.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/subwave-discord-release .agents/skills/subwave-discord-release && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "subwave-discord-release" agent skill from https://github.com/perminder-klair/subwave/tree/develop/.claude/skills/subwave-discord-release into .agents/skills/subwave-discord-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "subwave-discord-release", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add perminder-klair/subwave --skill subwave-discord-release -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install perminder-klair/subwave subwave-discord-release --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/perminder-klair/subwave.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/subwave-discord-release .cursor/skills/subwave-discord-release && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "subwave-discord-release" agent skill from https://github.com/perminder-klair/subwave/tree/develop/.claude/skills/subwave-discord-release into .cursor/skills/subwave-discord-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "subwave-discord-release", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/perminder-klair/subwave.git --path .claude/skills/subwave-discord-release--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add perminder-klair/subwave --skill subwave-discord-release -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install perminder-klair/subwave subwave-discord-release --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/perminder-klair/subwave.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/subwave-discord-release .gemini/skills/subwave-discord-release && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "subwave-discord-release" agent skill from https://github.com/perminder-klair/subwave/tree/develop/.claude/skills/subwave-discord-release into .gemini/skills/subwave-discord-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "subwave-discord-release", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install perminder-klair/subwave subwave-discord-releaseInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add perminder-klair/subwave --skill subwave-discord-release -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/perminder-klair/subwave.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/subwave-discord-release .github/skills/subwave-discord-release && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "subwave-discord-release" agent skill from https://github.com/perminder-klair/subwave/tree/develop/.claude/skills/subwave-discord-release into .github/skills/subwave-discord-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "subwave-discord-release", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add perminder-klair/subwave --skill subwave-discord-release -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install perminder-klair/subwave subwave-discord-release --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/perminder-klair/subwave.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/subwave-discord-release .opencode/skills/subwave-discord-release && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "subwave-discord-release" agent skill from https://github.com/perminder-klair/subwave/tree/develop/.claude/skills/subwave-discord-release into .opencode/skills/subwave-discord-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "subwave-discord-release", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
subwave-discord-releaseDraft a Discord release announcement for SUB/WAVE from a release PR, tag, or version number.
Subwave Discord Release is an agent skill from perminder-klair/subwave. Draft a Discord release announcement for SUB/WAVE from a release PR, tag, or version number. Use this skill whenever the user wants to "write a Discord announcement / post", "announce the release on Discord", "draft a release announcement", "tell the Discord about vX.Y.Z", "post the release to the community", or hands you a release-please PR / release tag and asks for community copy. The skill knows the house voice (radio-themed, warm, no em-dashes), how to pull the changelog from GitHub, how to translate…
Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Changelog and release notes and Commit messages. It works with Discord and GitHub. The repository describes itself as: Personal internet radio: Agentic AI DJ. The licence is MIT.
3 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 7dbc57c. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
ghFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use gh, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Subwave Discord Release loads about 2.3k tokens when it runs. Until then it costs about 175 tokens; SKILL.md has 1,124 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from perminder-klair/subwave at commit 7dbc57c, republished under its MIT licence (© perminder-klair). 1,124 words, ~2,289 tokens.
.claude/skills/subwave-discord-release/SKILL.md (or your agent's skills folder).Write one Discord post announcing a SUB/WAVE release. The audience is listeners and operators in the community server, not developers reading a changelog. The job is to turn the release's commits into a short, warm, on-brand post they'll actually read.
The raw material is a release-please PR body or a published GitHub release: a list of feat(...) / fix(...) lines with issue numbers. That's changelog-speak. The community post needs the listener-facing version: what each change lets them do, in plain words, with the station's radio-booth personality. The easy things to get wrong are the voice (reads like AI release notes), em-dashes (a hard no), overselling a small maintenance release, burying the good stuff under internal chores, and reusing last release's opener or closer (every post gets freshly coined ones). This skill encodes the house format and the translation step.
Get the grouped changelog. Depending on what the user gives you:
# a release-please PR (the "chore(main): release X.Y.Z" PR)
gh pr view <PR#> --repo perminder-klair/subwave --json title,body,baseRefName
# a published release tag
gh release view v<X.Y.Z> --repo perminder-klair/subwave
# or list recent releases if they only gave a vague "the latest one"
gh release list --repo perminder-klair/subwave --limit 5The release-please body groups commits under Features and Bug Fixes with issue links. That grouping is your starting skeleton. Note the version and the release URL (https://github.com/perminder-klair/subwave/releases/tag/v<X.Y.Z>) for the sign-off link.
Not every line earns a spot. Read each commit through the ear of a listener/operator:
🔧 list further down, framed by why they matter ("no more X leaking to air"), not by the code path.Translate every kept line out of commit-speak. fix(llm): stop runaway </think> repetition loops leaking to air becomes "No more runaway think-loops leaking to air. Reasoning models used to occasionally spill their inner monologue over the stream. That's plugged." The commit tells you what code changed; you write what the listener will notice.
A big feature release and a small maintenance drop should not read the same. Say which one it is in the intro, honestly. A five-feature release earns the full treatment; a two-feature-plus-fixes release should say "smaller drop this time, but a good one" and stay short. Overselling a patch release is the fastest way to make the wire feel like marketing.
Output a single fenced ```markdown code block so the user can copy the raw text straight into Discord. The shape:
📻 SUB/WAVE vX.Y.Z [freshly coined on-air phrase — see "Openers and closers"] 📻
[Intro: one short paragraph. Name the release's character (big / smaller), say what it's mostly about in plain words, and lead into the list. Radio metaphors welcome (on the dial, in the booth, on air).]
[EMOJI] **Feature lead in bold.** One to three sentences on what it is and what it lets them do. Pick an emoji that fits the feature, not a generic sparkle.
[EMOJI] **Next feature.** ...
[Transition line into the smaller stuff, ending in 👇. e.g. "And a handful of fixes that matter more than they sound 👇"]
🔧 Plain-language fix, framed by why it matters.
🔧 Next fix.
Full notes: https://github.com/perminder-klair/subwave/releases/tag/vX.Y.Z
[Thank-you closer to the people who filed issues and sent PRs, then a fresh sign-off. See "Openers and closers" below.]
@everyoneNotes on the parts:
📻 … 📻 bookend around SUB/WAVE vX.Y.Z is the fixed part; the phrase after the version is coined fresh every release (see "Openers and closers").🔧 prefix, one line each, benefit-first. Only include fixes a user would feel; fold the rest into a single "plus the usual under-the-hood tidying" line or drop them.@everyone goes at the very bottom, after the sign-off. (This is the operator's standing preference. Confirm only if they say otherwise.)Two lines go stale fastest on the wire: the headline phrase inside the 📻 … 📻 bookend, and the closer (thank-you sentence + sign-off). Both are written new for every release. Nothing in this section is a menu to pick from; it's a description of the register.
How to coin them:
The thank-you sentence follows the same rule: tie it to what actually happened this release (who reported the bug that got fixed, whose idea shipped), not a stock "thanks for the feedback" shape.
Retired lines (already aired; never reuse, including near-synonyms):
Maintenance: when the user confirms a post has shipped, append its headline phrase, sign-off, and thank-you line to the retired list above so future runs can't repeat them.
Run the finished draft through the no-ai-slop skill in edit mode and apply its edits before you hand it over. This is where lingering AI tells, any stray em-dash, and rule-of-three habits get caught. It's the same discipline the news dispatch uses, and it's what keeps the post from reading like generated release notes.
Hold the house voice against it: the no-em-dash rule above is absolute here, and the warm first-person plural and the emoji that carry meaning are voice signals to preserve, not slop to strip.
Hand back the final post inside one ```markdown fenced block (so @everyone, bold, and links survive the copy). Then offer a quick follow-up: alternate sign-offs, a shorter cut, or dropping the fixes section. The operator usually iterates on the closer and the length.
The previous release announcements are the tonal reference. If the user pastes an older post as "here's our old one," match its rhythm and warmth, not its exact wording or emoji. The v0.37.0 post (big feature release: guest co-hosts, programmes, chop transition, community personas) and the v0.39.0 post (smaller: persona fader controls, new personas/stations, LLM fixes) bracket the range from full-treatment to compact-drop.
© perminder-klair, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/subwave-discord-release of perminder-klair/subwave.
Open the folder on GitHubat commit 7dbc57c
Subwave Discord Release next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Subwave Discord Release this skillperminder-klair/subwave | 1.4k | — | ~2.3k | Automated safety check: Pass | MIT | |
| Verdaccio Pull Request Workflowverdaccio/verdaccio | 18k | — | ~1.9k | Automated safety check: Pass | MIT | |
| Plane Release Notes Generatormakeplane/plane | 61k | — | ~2.5k | Automated safety check: Pass | AGPL-3.0 | |
| Release Minorknuckleswtf/scribe | 2.3k | — | ~437 | Automated safety check: Pass | MIT | |
| Release NotesEvilBeaver/OneScript | 588 | — | ~779 | Automated safety check: Pass | MPL-2.0 | |
| Release WorkflowCaldis/react-zmage | 945 | — | ~3.6k | Automated safety check: Notes | MIT |
verdaccio/verdaccio
Takes a change through a verdaccio pull request: branch, local checks, changeset, title and body, labels, CI and review rounds, and ports to other release lines.
makeplane/plane
Builds categorized release notes for a Plane release pull request from its commits and writes them into the PR description, for both the plane-cloud and plane-ee repos.
knuckleswtf/scribe
Automates the process of tagging a new minor release for Scribe by analyzing commit messages, updating the changelog, and creating a GitHub release.
EvilBeaver/OneScript
This skill creates release notes for new release by reading git commit log.
Caldis/react-zmage
A skill your agent uses when the user wants to ship a new version of react-zmage to npm.
jmfederico/pi-web
A skill your agent uses whenever the user asks about changelogs, Changesets, release notes, conventional commits, commit messages for release notes, or making user-visible project changes that…
perminder-klair/subwave
Benchmark and compare LLM models for SUB/WAVE's on-air calls — track picks, segments, listener requests, DJ scripts, banter, and programme beats — in both candidate-pool and agent modes, using…
perminder-klair/subwave
Stage a SUB/WAVE git worktree so the dev stack can run from it, then start it.
perminder-klair/subwave
Start or stop the SUB/WAVE radio stack (a personal internet radio station) in dev or production mode — no builds, no rebuilds, no config rendering.
perminder-klair/subwave
Open a release pull request from develop to main for SUB/WAVE, and keep develop from drifting behind main.
perminder-klair/subwave
Write a news post for the SUB/WAVE "Dispatches" page, a short human-friendly tutorial about a feature, fix, or release.
perminder-klair/subwave
Drive a controller/admin-UI change end-to-end from a worktree without touching the live station — isolated controller on a spare port + temp STATEDIR, worktree Next dev server, Playwright against…
Categories
Draft a Discord release announcement for SUB/WAVE from a release PR, tag, or version number. Subwave Discord Release is an agent skill from perminder-klair/subwave. Draft a Discord release announcement for SUB/WAVE from a release PR, tag, or version number.
Subwave Discord Release fits situations like: the user wants to write a Discord announcement / post; announce the release on Discord; draft a release announcement; tell the Discord about vX.Y.Z.
Run `npx skills add perminder-klair/subwave --skill subwave-discord-release -a claude-code`. Or copy the skill folder (.claude/skills/subwave-discord-release in perminder-klair/subwave) into .claude/skills/subwave-discord-release in your project. Claude Code loads it when a task matches its description.
Run `npx skills add perminder-klair/subwave --skill subwave-discord-release -a codex`. Or copy the skill folder (.claude/skills/subwave-discord-release in perminder-klair/subwave) into .agents/skills/subwave-discord-release in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add perminder-klair/subwave --skill subwave-discord-release -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/subwave-discord-release, .gemini/skills/subwave-discord-release, .github/skills/subwave-discord-release and .opencode/skills/subwave-discord-release in your project.
Going by SKILL.md and its folder, Subwave Discord Release needs the command-line tools its instructions call (gh).
SKILL.md contains no URLs. Its commands use gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Subwave Discord Release is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.3k tokens (SKILL.md is roughly 9.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Subwave Discord Release: Verdaccio Pull Request Workflow (verdaccio/verdaccio, 18k stars), Plane Release Notes Generator (makeplane/plane, 61k stars), Release Minor (knuckleswtf/scribe, 2.3k stars) and Release Notes (EvilBeaver/OneScript, 588 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
perminder-klair (a GitHub user) maintains it in perminder-klair/subwave, which has 1,420 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 10, 2026.
Source: perminder-klair/subwave on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.