Agent skill

Release Notes

by no-human-ai in no-human-ai/no_human

Write release notes for a tagged release — a business-impact summary of what changed for the user, plus a thanks section naming every contributor whose commits are in the release.

MITAuto-check passedDevelopment

Install Release Notes

skills CLI
$ npx skills add no-human-ai/no_human --skill release-notes -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install no-human-ai/no_human release-notes --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/no-human-ai/no_human.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/no-human/skills/release-notes .claude/skills/release-notes && rm -rf skills-src

Use ~/.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/

Facts

Skill name
release-notes
GitHub stars
324
Token cost
~2k tokens
SKILL.md length
1,130 words
Files
1
Skills in repo
3
Repo updated
First seen
Licence
MIT

At a glance

Write release notes for a tagged release — a business-impact summary of what changed for the user, plus a thanks section naming every contributor whose commits are in the release.

  • Works in 4 steps: establish the exact range, then read it → write the impact, and claim only what… → the thanks section: every contributor,… → …
  • Tasks that involve Changelog and release notes
  • SKILL.md covers Step 1 — establish the exact…, Step 2 — write the impact, and…, Step 3 — the thanks section:… and Step 4 — self-review before…, plus 1 more section
  • Calls git and gh

What it does

Release Notes is an agent skill from no-human-ai/no_human. Write release notes for a tagged release — a business-impact summary of what changed for the user, plus a thanks section naming every contributor whose commits are in the release. Short by construction.

Its SKILL.md is about 2k 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. It works with Model Context Protocol and Git. The repository describes itself as: From ticket to reviewed pull request. Free and open-source, on your machine. The licence is MIT.

When your agent uses it

  • Tasks that involve Changelog and release notes

Example prompts

  • “/release-notes”

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. establish the exact range, then read it
  2. write the impact, and claim only what the range establishes
  3. the thanks section: every contributor, once, by handle
  4. self-review before you hand it over

What it can do on your machine

Read from SKILL.md and the folder at commit cdcbd0a. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • gh

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git and gh, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Release Notes loads about 2k tokens when it runs. Until then it costs about 54 tokens; SKILL.md has 1,130 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~54
When it runs · the whole SKILL.md, loaded when a task matches
~2k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from no-human-ai/no_human at commit cdcbd0a, republished under its MIT licence (© no-human-ai). 1,130 words, ~1,955 tokens.

Download SKILL.mdSave it as .claude/skills/release-notes/SKILL.md (or your agent's skills folder).
name
release-notes
description
Write release notes for a tagged release — a business-impact summary of what changed for the user, plus a thanks section naming every contributor whose commits are in the release. Short by construction.

Release notes

Turn one release (a tag, or a range of commits) into notes a reader skims in under a minute: what the release does for them, stated as impact, and a thank- you to everyone whose work is in it. Not a changelog, not a commit list.

Three rules, in priority order:

  1. Lead with business impact, not mechanism. Every line answers "what does this change let me do / stop worrying about," not "what file moved." Group by the value to the reader, not by subsystem. Drop anything a user never sees (CI wiring, test-only changes, internal refactors) unless it changed a guarantee they rely on.
  2. Thank every contributor whose commits are in the release (see below). Completeness here is not optional — a missing name is the one error people notice.
  3. Short. If a section is not impact or thanks, cut it. No methodology hedging, no "we're excited to", no filler. A reader should reach the end without scrolling twice.

Step 1 — establish the exact range, then read it

Never write from memory or from a PR list. Read the real commits.

  • Find the previous release tag and this one: git tag --sort=-creatordate | head.
  • List the commits: git log <prev-tag>..<this-tag> --format='%h %an%x09%s'. (If there is no tag yet, use <prev-tag>..HEAD and say so.)
  • Verify both endpoints resolve (git rev-parse <tag>), and that the range is non-empty. An empty range means the wrong tags — stop and fix it.

Read every subject line. Cluster them by what the user gets. A cluster of five commits that together fix one thing is ONE bullet about that thing.

Step 2 — write the impact, and claim only what the range establishes

For each cluster, write one line of impact. Constraints:

  • State only what the commits actually did. If you cannot point to the commit that establishes a claim, do not make the claim. No numbers without a source you can name (a command, a file). If you quote a measurement, say where it was measured.
  • Platform coverage and signing, when relevant, are stated plainly and honestly — what is signed, what is not, and what the user must do about it. Never imply a signature or an auto-update path that does not exist.
  • Keep the project's own voice. Do not add a tagline the project has not adopted; if it has a pinned one, use it verbatim and do not reword it.
  • Banned, because they read as machine-written or as marketing haze: "verbatim", "delve", "seamless", "robust", "we're thrilled/excited", "leverage" (as a verb), "in today's fast-paced". Say the plain thing instead.

Step 3 — the thanks section: every contributor, once, by handle

The contributors are the distinct authors of the commits in the range — the AUTHOR, never the committer (many projects normalise the committer to one maintainer identity, so the committer tells you nothing about who wrote it).

  1. List the authoring commits: git log <prev-tag>..<this-tag> --format='%H%x09%an%x09%ae'.
  2. Resolve each commit to a GitHub handle authoritatively — do NOT parse the email. An email does not reliably encode the handle: a GitHub noreply address like 103962359+L4XB@users.noreply.github.com happens to embed the login, but a personal address like rahulpamula123@gmail.com embeds nothing, and the login is not the display name (author Rahul-pamula with that email is handle Rahul-pamula, whose CLA ledger file is rahul-pamula.md — a dash and a case the email never shows). Get the login from the forge instead: gh api repos/<owner>/<repo>/commits/<sha> --jq '.author.login' per commit (or .commit.author cross-checked against the PR that landed it). That is the handle; the email is only a hint you must confirm.
  3. Also enumerate co-authors — the author query cannot see them. %an/%ae and the commits API each return exactly ONE author per commit; a Co-authored-by: trailer (used for pairing, and by some squash-merges to credit a second person) is invisible to both. Read them explicitly: git log <prev-tag>..<this-tag> --format='%(trailers:key=Co-authored-by,valueonly)', which yields Name <email> lines. Resolve each to a handle the same way as a primary author (by the ledger, or a forge lookup on the email) and add it to the set. Do not skip this because "we don't use trailers" — verify it on the range; a single co-authored commit crediting an external is a name you would otherwise drop.
  4. Remove the maintainer/release identity and any bots (dependabot[bot], github-actions[bot], and the maintainer's own login) from the combined set of primary authors and co-authors. What remains is the external contributors.
  5. Deduplicate to one person. The same human appears under multiple author identities in one range (a noreply email on one commit, a personal email on another; a display name and a login) — e.g. Prince Panchani and PrinceXDev are one person, handle PrinceXDev. Collapse by resolved handle, not by email or name, so each person is thanked exactly once.
  6. If the project keeps a CLA ledger (contributors/<handle>.md — the filename IS the handle, lowercased), confirm each resolved handle has a matching ledger file and print it in the ledger's spelling. The CLA gate guarantees every external author has a ledger entry, so a resolved author with no ledger match means your handle resolution is wrong (you parsed the email, or missed a dash/case), not that they are unlisted — re-resolve that author's handle (list item 2 above), do not drop them. Without a ledger, and when a commit's .author.login comes back null (the commit email is tied to no GitHub account), resolve the person by the Name <email> from git show -s --format='%an <%ae>' and, if you still cannot get a handle, name them by that display name rather than dropping them — a missing contributor is worse than an un-linked one.
  7. Verify by UNION, not by recounting one query. The distinct people you print must equal the deduped union of {primary-author handles} ∪ {co-author handles} ∪ {any commit whose author login was null}, minus maintainer/bots. Do NOT re-derive the check from the same %ae set you thanked from — a count built from the query that already dropped the co-authors and the null-logins will "confirm" a list that is missing exactly them. Recompute each input set independently and compare.
Show full SKILL.md (125 more words)Show less

Write the section as a plain thank-you naming each @handle, separated so it scans (e.g. ·-joined on one line, or a short list). One sentence of context is enough; do not explain the contribution model at length.

Step 4 — self-review before you hand it over

  • Every impact line: is it true of the code in this range, and is it impact (not mechanism)?
  • Thanks: re-run the author query and confirm every distinct external person is present exactly once, spelled as their real handle.
  • Length: could a reader skim it in under a minute? If not, cut.
  • Then have it independently reviewed before it ships — release notes are outward-facing text, and a false or missing claim there is the expensive kind.

Shape (adapt; keep it short)

<product> <version> — <platforms in one clause>.

<one or two lines: the headline of the release, as impact.>

## Fixed / Added / Changed   (only the sections you actually have)
**<impact, bold lead>.** <one or two sentences, plain.>
…

## <Signing / install, if the release changes it, stated plainly>

## Thanks
<one sentence>, then: @handle · @handle · @handle

© no-human-ai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in plugins/no-human/skills/release-notes of no-human-ai/no_human.

Open the folder on GitHubat commit cdcbd0a

Compare with similar skills

Release Notes 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.

Release Notes compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Release Notes this skillno-human-ai/no_human324—~2kAutomated safety check: PassMIT
Git Releasewesammustafa/opencode-primer399—~409Automated safety check: PassMIT
Changelogratel-ai/ratel471—~1.6kAutomated safety check: PassMIT
Release Crater3bl-org/r3bl-open-core485—~2.4kAutomated safety check: PassApache-2.0
Release Managementtermide/termide171—~6.8kAutomated safety check: PassMIT
Release Changelog HarnessArenukvern/mcp_flutter387—~2.6kAutomated safety check: PassMIT

Similar skills

  • Git Release

    wesammustafa/opencode-primer

    Draft release notes from merged PRs, propose a semver bump, and emit a copy-pasteable gh release create command.

    399 GitHub stars~409 tokensUpdated 3 mo ago
    DevelopmentAuto-check passed
  • Changelog

    ratel-ai/ratel

    Update per-package CHANGELOG.md files for a Ratel release. An agent skill from ratel-ai/ratel.

    471 GitHub stars~1.6k tokensUpdated today
    DevelopmentAuto-check passed
  • Release Crate

    r3bl-org/r3bl-open-core

    Publish a crate release to crates.io with changelog, standalone release notes, git tag, and GitHub release.

    485 GitHub stars~2.4k tokensUpdated today
    DevelopmentAuto-check passed
  • Release Management

    termide/termide

    Prepare and publish a project release with version updates, changelog generation, tagging, and validation

    171 GitHub stars~6.8k tokensUpdated today
    DevelopmentAuto-check passed
  • Release Changelog Harness

    Arenukvern/mcp_flutter

    Chooses ecosystem-native release and changelog tooling (Changesets, Melos, release-plz) plus binary distribution (GitHub Release tarballs, install.sh) when the product is an executable.

    387 GitHub stars~2.6k tokensUpdated 7 days ago
    DevelopmentAuto-check passed
  • Prepare a new release with version bump, changelog, and quality checks

    282 GitHub stars~939 tokensUpdated today
    DevelopmentAuto-check passed

More from no-human-ai/no_human

  • File A Task

    no-human-ai/no_human

    File work into nohuman (taskadd) and check on it (taskstatus) via the nohuman MCP bridge, instead of doing the work inline.

    324 GitHub stars~1k tokensUpdated today
    Auto-check passed
  • Review This Branch

    no-human-ai/no_human

    Run the nohuman review gate (fresh-session adversarial reviewer + tamper guard) over the current branch or a GitHub pull request, with no server, no database, and no onboarding, and relay the…

    324 GitHub stars~1.4k tokensUpdated today
    Auto-check passed

Categories

Questions about Release Notes

What does Release Notes do?

Write release notes for a tagged release — a business-impact summary of what changed for the user, plus a thanks section naming every contributor whose commits are in the release. Release Notes is an agent skill from no-human-ai/no_human. Write release notes for a tagged release — a business-impact summary of what changed for the user, plus a thanks section naming every contributor whose commits are in the release.

When should I use Release Notes?

Release Notes fits situations like: tasks that involve Changelog and release notes.

How do I install Release Notes in Claude Code?

Run `npx skills add no-human-ai/no_human --skill release-notes -a claude-code`. Or copy the skill folder (plugins/no-human/skills/release-notes in no-human-ai/no_human) into .claude/skills/release-notes in your project. Claude Code loads it when a task matches its description.

How do I install Release Notes in Codex?

Run `npx skills add no-human-ai/no_human --skill release-notes -a codex`. Or copy the skill folder (plugins/no-human/skills/release-notes in no-human-ai/no_human) into .agents/skills/release-notes in your project. Codex loads it when a task matches its description.

Can I use Release Notes in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add no-human-ai/no_human --skill release-notes -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/release-notes, .gemini/skills/release-notes, .github/skills/release-notes and .opencode/skills/release-notes in your project.

What does Release Notes need to run?

Going by SKILL.md and its folder, Release Notes needs the command-line tools its instructions call (git and gh).

Does Release Notes access the network?

SKILL.md contains no URLs. Its commands use git and gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Release Notes safe to install?

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.

What licence does Release Notes use?

Release Notes is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Release Notes use?

About 2k tokens (SKILL.md is roughly 7.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Release Notes?

Skills that share tags, products or a category with Release Notes: Git Release (wesammustafa/opencode-primer, 399 stars), Changelog (ratel-ai/ratel, 471 stars), Release Crate (r3bl-org/r3bl-open-core, 485 stars) and Release Management (termide/termide, 171 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Release Notes?

no-human-ai (a GitHub organization) maintains it in no-human-ai/no_human, which has 324 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on October 9, 2026.

Source: no-human-ai/no_human on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.