Simple English
moeru-ai/airi
Write or rewrite technical text with the rules of ASD-STE100 Simplified Technical English so it is clear, unambiguous, and free of AI slop.
Write a news post for the SUB/WAVE "Dispatches" page, a short human-friendly tutorial about a feature, fix, or release.
The automated check flagged lines worth reading first. See the safety section below.
$ npx skills add perminder-klair/subwave --skill subwave-news-dispatch -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install perminder-klair/subwave subwave-news-dispatch --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-news-dispatch .claude/skills/subwave-news-dispatch && 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-news-dispatch" agent skill from https://github.com/perminder-klair/subwave/tree/develop/.claude/skills/subwave-news-dispatch into .claude/skills/subwave-news-dispatch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "subwave-news-dispatch", 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-news-dispatchType 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-news-dispatch -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install perminder-klair/subwave subwave-news-dispatch --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-news-dispatch .agents/skills/subwave-news-dispatch && 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-news-dispatch" agent skill from https://github.com/perminder-klair/subwave/tree/develop/.claude/skills/subwave-news-dispatch into .agents/skills/subwave-news-dispatch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "subwave-news-dispatch", 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-news-dispatch -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install perminder-klair/subwave subwave-news-dispatch --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-news-dispatch .cursor/skills/subwave-news-dispatch && 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-news-dispatch" agent skill from https://github.com/perminder-klair/subwave/tree/develop/.claude/skills/subwave-news-dispatch into .cursor/skills/subwave-news-dispatch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "subwave-news-dispatch", 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-news-dispatch--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-news-dispatch -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install perminder-klair/subwave subwave-news-dispatch --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-news-dispatch .gemini/skills/subwave-news-dispatch && 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-news-dispatch" agent skill from https://github.com/perminder-klair/subwave/tree/develop/.claude/skills/subwave-news-dispatch into .gemini/skills/subwave-news-dispatch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "subwave-news-dispatch", 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-news-dispatchInstalls 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-news-dispatch -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-news-dispatch .github/skills/subwave-news-dispatch && 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-news-dispatch" agent skill from https://github.com/perminder-klair/subwave/tree/develop/.claude/skills/subwave-news-dispatch into .github/skills/subwave-news-dispatch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "subwave-news-dispatch", 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-news-dispatch -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-news-dispatch --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-news-dispatch .opencode/skills/subwave-news-dispatch && 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-news-dispatch" agent skill from https://github.com/perminder-klair/subwave/tree/develop/.claude/skills/subwave-news-dispatch into .opencode/skills/subwave-news-dispatch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "subwave-news-dispatch", 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-news-dispatchWrite a news post for the SUB/WAVE "Dispatches" page, a short human-friendly tutorial about a feature, fix, or release.
Subwave News Dispatch is an agent skill from perminder-klair/subwave. Write a news post for the SUB/WAVE "Dispatches" page, a short human-friendly tutorial about a feature, fix, or release. Use this skill whenever the user wants to "write a news post / dispatch / news article", "announce a feature on the news page", "add a changelog entry to the site", "post an update about <feature", "write release notes for the site", or "tell people about <what shipped" for SUB/WAVE. The skill knows where the markdown lives (web/content/news), the frontmatter schema, the what/how/why structure…
Its SKILL.md is about 1.6k 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. The repository describes itself as: Personal internet radio: Agentic AI DJ. The licence is MIT.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit c7c668e. 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:
npmgitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npm and git, 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 News Dispatch loads about 1.6k tokens when it runs. Until then it costs about 183 tokens; SKILL.md has 683 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 patterns that need a careful read before installing.
⟨U+200B⟩```⟨U+200B⟩```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 c7c668e, republished under its MIT licence (© perminder-klair). 683 words, ~1,626 tokens.
.claude/skills/subwave-news-dispatch/SKILL.md (or your agent's skills folder).Write one news article for the Dispatches page (/news). Each dispatch is a short, plain-English mini-tutorial about something that shipped: what it is, how to use it, and why it helps. Not a changelog line.
The news page reads markdown straight off disk (web/lib/news.ts reads web/content/news/*.md), so adding a post is just writing one file in the right shape. The easy-to-get-wrong parts are the frontmatter schema, keeping the tone human (short tutorial, not release-note jargon), and remembering to humanize the draft. This skill encodes all three.
web/content/news/YYYY-MM-DD-slug.mdYYYY-MM-DD- prefix is only for sorting files on disk; it's stripped from the URL. The page slug is the frontmatter slug if present, otherwise the filename minus that date prefix. So 2026-05-30-clone-a-voice.md serves at /news/clone-a-voice.git show -s --format=%cs <sha>. Evergreen "this is what SUB/WAVE does" posts use the Spotlight category and any sensible recent date.web/content/news/ are the reference set. Match their length and voice.---
title: Make your DJ sound like anyone # the headline; sentence case, no trailing period needed
date: 2026-05-30 # ISO yyyy-mm-dd; drives ordering (newest first)
category: Feature # Release | Feature | Fix | Announcement | Spotlight
version: v0.2.0 # optional, shows as a dateline tag
author: The SUB/WAVE desk # optional, byline on the article page
excerpt: One or two sentences shown on the index card and used as the meta description.
---category describes the nature of the post, not the raw conventional-commit type. A fix(web) commit that listeners will notice is usually a Feature or Fix dispatch; a chore: release is a Release; an evergreen feature explainer is a Spotlight.excerpt is required in practice. It's the deck on the index and the meta description / OG description. Keep it concrete.title and excerpt are parsed as YAML, so a colon-then-space inside the value (a new bit: a moon phase) makes the parser read it as a nested key and the build fails. Avoid raw : in those values (reword, or use a comma), or wrap the whole value in double quotes. The same goes for a value that starts with a quote, [, {, @, or `.Aim for ~150-350 words. Three beats, in this order:
Use ## subheads (sentence case) to break those up. Look at the seed articles for the rhythm. The first paragraph gets an automatic vermilion drop cap, so open with prose, not a heading.
git log, the PR, or the relevant manual page under web/components/manual/.ALWAYS run the finished draft through the no-ai-slop skill in edit mode, apply its edits, then write the .md file. This is not optional. It's the step that keeps the wire from reading like AI release notes, and it's where the em-dash, throat-clearing opener, and rule-of-three habits get caught.
Two things to hold onto when you apply its edits: the no-em-dash rule above is absolute here even though no-ai-slop allows 1-2 in longer drafts, and the wire's first-person voice ("we traced it to the Opus mount") is a voice signal to preserve, not throat-clearing to cut.
cd web && npm run lint && npm run build● /news/[slug] in the build output (it's statically prerendered). A frontmatter typo shows up here as "Failed to collect page data for /news/[slug]"./news automatically, newest first, and the sitemap (web/app/sitemap.ts) picks it up via getNewsSlugs(). No other file to touch.cd web && npm run dev, open http://localhost:7700/news, confirm the headline, dateline, and body render.File: web/content/news/2026-05-30-clone-a-voice.md
---
title: Make your DJ sound like anyone
date: 2026-05-30
category: Feature
version: v0.2.0
author: The SUB/WAVE desk
excerpt: PocketTTS can now clone a voice from a single WAV. Drop a clip in the voices folder, point a persona at it, and that's the voice on air.
---
Voice cloning used to be a Chatterbox-only trick. PocketTTS can do it too now...
## What's new
PocketTTS does zero-shot cloning from one reference WAV...
## How to use it
Drop the `.wav` into the voices folder:
state/voices/morning-host.wav
Then open a DJ persona in admin and set its voice to that filename. Save.
## Why it helps
Your station gets a real on-air identity...© perminder-klair, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. 2 hidden characters (zero-width or bidirectional) removed. Raw file
Just SKILL.md in .claude/skills/subwave-news-dispatch of perminder-klair/subwave.
Open the folder on GitHubat commit c7c668e
Subwave News Dispatch 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 News Dispatch this skillperminder-klair/subwave | 1.4k | — | ~1.6k | Automated safety check: Warn | MIT | |
| Simple Englishmoeru-ai/airi | 50k | 2 repos | ~4.6k | Automated safety check: Pass | MIT | |
| StarRocks Release NotesStarRocks/starrocks | 12k | — | ~1.9k | Automated safety check: Notes | Apache-2.0 | |
| Cutting A ReleaseTriliumNext/Trilium | 38k | — | ~3.2k | Automated safety check: Pass | AGPL-3.0 | |
| Mole CLI Release Flowtw93/Mole | 70k | — | ~2.6k | Automated safety check: Pass | GPL-3.0 | |
| React Router Release Notes Prepremix-run/react-router | 57k | — | ~1.1k | Automated safety check: Pass | MIT |
moeru-ai/airi
Write or rewrite technical text with the rules of ASD-STE100 Simplified Technical English so it is clear, unambiguous, and free of AI slop.
StarRocks/starrocks
Drafts English release notes for a StarRocks patch release from the PRs merged into its release branch, then opens a documentation PR and hands translation to /translate.
TriliumNext/Trilium
A skill your agent uses when cutting, preparing, or debugging a Trilium release — bumping the monorepo version, tagging, or diagnosing a failed "Release" workflow run.
tw93/Mole
Runbook for assessing and executing a Mole CLI release: distribution channels, pre-flight checks, capital-V tags, build artifacts and the handoff to curated release notes.
remix-run/react-router
Polishes pending React Router change files before the versioning scripts run, and decides whether a long-form What's Changed section is warranted.
PrefectHQ/fastmcp
Cut a FastMCP release end to end. An agent skill from PrefectHQ/fastmcp.
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
Draft a Discord release announcement for SUB/WAVE from a release PR, tag, or version number.
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
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
Write a news post for the SUB/WAVE "Dispatches" page, a short human-friendly tutorial about a feature, fix, or release. Subwave News Dispatch is an agent skill from perminder-klair/subwave. Write a news post for the SUB/WAVE "Dispatches" page, a short human-friendly tutorial about a feature, fix, or release.
Subwave News Dispatch fits situations like: the user wants to write a news post / dispatch / news article; announce a feature on the news page; add a changelog entry to the site; post an update about <feature.
Run `npx skills add perminder-klair/subwave --skill subwave-news-dispatch -a claude-code`. Or copy the skill folder (.claude/skills/subwave-news-dispatch in perminder-klair/subwave) into .claude/skills/subwave-news-dispatch in your project. Claude Code loads it when a task matches its description.
Run `npx skills add perminder-klair/subwave --skill subwave-news-dispatch -a codex`. Or copy the skill folder (.claude/skills/subwave-news-dispatch in perminder-klair/subwave) into .agents/skills/subwave-news-dispatch 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-news-dispatch -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-news-dispatch, .gemini/skills/subwave-news-dispatch, .github/skills/subwave-news-dispatch and .opencode/skills/subwave-news-dispatch in your project.
Going by SKILL.md and its folder, Subwave News Dispatch needs the command-line tools its instructions call (npm and git).
SKILL.md contains no URLs. Its commands use npm and git, 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 flagged 2 warning(s): contains zero-width characters. Read the flagged lines before installing; the check is not a guarantee either way.
Subwave News Dispatch is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.6k tokens (SKILL.md is roughly 6.5k 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 News Dispatch: Simple English (moeru-ai/airi, 50k stars), StarRocks Release Notes (StarRocks/starrocks, 12k stars), Cutting A Release (TriliumNext/Trilium, 38k stars) and Mole CLI Release Flow (tw93/Mole, 70k 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,418 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 9, 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.