Agent skill

Release Notes

by Porabuild in Porabuild/Poracode

Write consistent, hand-written-looking changelog entries for a Poracode release.

Apache-2.0Auto-check passedDevelopment

Install Release Notes

skills CLI
$ npx skills add Porabuild/Poracode --skill release-notes -a claude-code

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

GitHub CLI
$ gh skill install Porabuild/Poracode 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/Porabuild/Poracode.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/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
114
Token cost
~4.2k tokens
SKILL.md length
1,717 words
Files
1
Skills in repo
21
Repo updated
First seen
Licence
Apache-2.0

At a glance

Write consistent, hand-written-looking changelog entries for a Poracode release.

  • Works in 4 steps: Gather source material → Distill into ONE curated entry (house… → Write it → …
  • The user wants to add release notes
  • SKILL.md covers When to use, When NOT to use, The one file you edit and Step 1 — Gather source material, plus 4 more sections
  • Calls git, pnpm and gh; reaches poracodeapp.com

What it does

Release Notes is an agent skill from Porabuild/Poracode. Write consistent, hand-written-looking changelog entries for a Poracode release. Use when the user wants to "add release notes", "update the changelog", "write the changelog for vX.Y.Z", "cut a release entry", or has just tagged/shipped a release and wants the in-app + website changelog updated. Audits release metadata, every commit, and the full previous-release diff—including direct-commit releases with sparse PR coverage—then distills the user-facing changes and maintainer highlights into one curated entry…

Its SKILL.md is about 4.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 GitHub. The repository describes itself as: One window for all your AI coding agents. Run Claude, Codex, OpenCode, Gemini, Antigravity, Cursor, and Copilot side-by-side. Terminal and chat, any layout. The licence is Apache-2.0.

When your agent uses it

  • The user wants to add release notes
  • Update the changelog
  • Write the changelog for vX.Y.Z
  • Cut a release entry

Example prompts

  • “add release notes”
  • “update the changelog”
  • “write the changelog for vX.Y.Z”
  • “/release-notes”

Requirements

  • Pre-approved tools (allowed-tools): Bash(gh:*), Bash(git:*), Bash(pnpm:*), Bash(node:*), Read, Edit, Write, Grep, Glob

Workflow steps

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

  1. Gather source material
  2. Distill into ONE curated entry (house style)
  3. Write it
  4. Verify

What it can do on your machine

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

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash(gh:*)
    • Bash(git:*)
    • Bash(pnpm:*)
    • Bash(node:*)
    • Read
    • Edit
    • Write
    • Grep
    • Glob

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • pnpm
    • gh

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

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • poracodeapp.com

    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 4.2k tokens when it runs. Until then it costs about 143 tokens; SKILL.md has 1,717 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~143
When it runs · the whole SKILL.md, loaded when a task matches
~4.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 Porabuild/Poracode at commit bffd89d, republished under its Apache-2.0 licence (© Porabuild). 1,717 words, ~4,192 tokens.

Download SKILL.mdSave it as .claude/skills/release-notes/SKILL.md (or your agent's skills folder).
name
release-notes
description
Write consistent, hand-written-looking changelog entries for a Poracode release. Use when the user wants to "add release notes", "update the changelog", "write the changelog for vX.Y.Z", "cut a release entry", or has just tagged/shipped a release and wants the in-app + website changelog updated. Audits release metadata, every commit, and the full previous-release diff—including direct-commit releases with sparse PR coverage—then distills the user-facing changes and maintainer highlights into one curated entry prepended to website/public/changelog.json.
allowed-tools
Bash(gh:*), Bash(git:*), Bash(pnpm:*), Bash(node:*), Read, Edit, Write, Grep, Glob

Release Notes — Poracode

Turn a release's PRs, complete commit range, and actual code diff into a curated, human-readable changelog entry that reads like a person wrote it — and keep every release in the changelog consistent in voice, shape, and length.

Poracode's changelog is curated data, not auto-generated. GitHub already auto-lists merged PRs on the Release page; this skill produces the hand-written layer that ships inside the app (Settings → Changelog, the "What's New" dialog) and on the marketing site.

When to use

  • The user asks to add/write release notes, update the changelog, or "do the changelog for vX.Y.Z".
  • A release was just tagged/published and the in-app + website changelog need an entry.
  • Backfilling missing releases into the changelog.

When NOT to use

  • Editing the mechanics of the changelog feature (the React surfaces, the seen-state gate) — that's normal code work, not this skill.
  • Writing a single commit message or a GitHub Release body (GitHub generates that).

The one file you edit

There is a single source of truth: website/public/changelog.json on master. The marketing site serves it at https://www.poracodeapp.com/changelog.json and the desktop app fetches + caches it at runtime, so editing this one file (and pushing to master, which redeploys the site) updates both surfaces without an app rebuild.

Shape — an object with a newest-first releases array (do not invent fields):

json
{
  "releases": [
    {
      "version": "1.3.1",
      "date": "2026-06-17",
      "title": "Short punchy headline, NO version number",
      "summary": "One or two sentences — the release's elevator pitch.",
      "changes": [
        {
          "kind": "added",
          "label": "Projects",
          "text": "One complete, user-facing sentence."
        },
        { "kind": "fixed", "text": "A mixed-scope fix that needs no forced label." }
      ]
    }
  ]
}

kind is one of added | improved | fixed. Release-note text stays English (it is not localized — only the surrounding app UI chrome is). label is an optional short feature or product prefix; labeled and unlabeled changes may appear in the same release.

Step 1 — Gather source material

Resolve the repo slug from the remote (default Porabuild/Poracode):

bash
gh repo view --json nameWithOwner -q .nameWithOwner

Then collect, for the target version:

  • The release date and the auto-generated PR list (the body):
    bash
    gh api repos/<owner>/<repo>/releases/tags/v<X.Y.Z> --jq '{date: .published_at, body: .body}'
  • The complete git range, even when a GitHub release and PR list exist. PRs are supplementary, not authoritative: direct commits, local merges, and squash details may be absent. Read every commit subject and body, inspect the range-level file list and diffstat, then inspect the substantive patches and nearby tests before writing:
    bash
    git log --date=iso-strict --pretty='format:%H%n%ad%n%s%n%b' <previousTag>..<target>
    git diff --stat <previousTag>..<target>
    git diff --name-status <previousTag>..<target>
    git diff <previousTag>..<target>
    Do not infer behavior from commit titles alone — open the patch when the subject is ambiguous (especially feat/fix that touch UI, settings, i18n, or provider adapters).
  • An unpublished target boundary, when no target tag exists. Use the intended release commit (usually HEAD), confirm its package version matches the requested version, and state this boundary in the handoff rather than pretending the tag exists.
  • The maintainer's highlight notes, if they pasted any (Telegram/X-style bullets, "now with: …"). These are authoritative for what matters most — lead with them. If the user didn't provide notes and the release is large, ask once whether they have highlights; otherwise proceed from the collected release metadata and git evidence.
Step 1b — Commit disposition ledger (mandatory)

Before drafting prose, walk every non-merge commit in <previousTag>..<target> and assign one disposition. Keep this ledger in your working notes (it does not ship in changelog.json, but you must not skip it):

DispositionWhen
includeUser-facing on its own — gets its own bullet (or is the seed of one).
fold into <bullet>Related to a larger change already included; note which bullet absorbs it.
omitImplementation-only, test-only, merge-only, build, chore, pure rename, or internal refactors with no visible behavior change. Write a one-line reason.

Always-include signals (treat as include or fold, never silent omit):

  • New or changed user-visible copy — especially commits that add msgids / touch src/renderer/locales/**/messages.po (or mobile/website locale catalogs). New strings almost always mean a user can see something new.
  • Discoverability / selection-state UI: mode-specific icons, badges, trigger labels, selected-state highlights, status chips, empty states, onboarding hints. These stay even when the underlying feature shipped in an earlier release — users notice the clarity, and "polish on an existing feature" is still improved, not noise.
  • Settings, menus, tooltips, toasts, dialogs, composer controls, sidebar chrome, Git/PR controls, provider pickers — anything the user clicks or reads in the app.
  • Behavior fixes the user would have hit (done-state, wrong window size, broken launch).

Safe to omit (with an explicit reason):

  • Tests, type-only refactors, CI, lockfile-only, version bumps, pure renames without product behavior, dependency upgrades with no user-visible effect.
  • Micro-animation / fade / layout-pixel tweaks that do not change what the control means or how the user finds it.
  • Marketing-site-only changes (website/** that do not affect the shared changelog.json data or in-app surfaces) — mention only when they are a real product surface (e.g. a new About page, pairing flow). Sticky nav on the public changelog page is optional; prefer app-facing notes when distilling.

Anti-pattern that caused a real miss (1.6.1): a small feat(pr-watch) that only swapped the PR automation trigger icon/label per Auto Fix vs Auto Merge was dropped while larger sidebar/workspace bullets dominated. It touched every locale catalog and changed what users see on every automated PR — that is include as improved, not "too small to list."

Reconciliation gate: every feat/* and fix/* commit that touches src/renderer/**, src/mobile/**, src/shared/messages.ts, or locale catalogs must end as include or fold into …. If you cannot fold it cleanly, give it a bullet.

Quick helpers when auditing:

bash
# Commits that added/changed localized strings (strong user-facing signal)
git log --pretty='%h %s' --name-only <previousTag>..<target> -- 'src/renderer/locales/**'
# UI / settings / PR surfaces in the range
git log --pretty='%h %s' --name-only <previousTag>..<target> -- \
  'src/renderer/**' 'src/mobile/**' 'website/src/**'
Step 1c — Prior Art & History Cross-Check (Mandatory Anti-Hallucination Gate)

Never assume a feature is brand new. Before writing bullets, cross-check previous releases in website/public/changelog.json:

bash
# Search existing changelog for mentions of the area or feature
grep -in "<feature-keyword>" website/public/changelog.json
  1. Verify Lineage:

    • If GitHub Actions, Plugins, Workspaces, Archived Threads, or Provider Switching are in the commit range, check what already existed in prior versions.
    • If the capability already existed, do NOT write "You can now <basic action>" as an added bullet. That is a hallucination of novelty.
    • Accurately describe the delta / upgrade as improved (e.g. "GitHub Actions now supports multiple signed-in accounts", "Switching providers now continues inside the same thread (Handoff 2.0)", "Archived thread management is redesigned for multi-workspace and remote filtering").
  2. Differentiate Plumbing from User Benefits:

    • Do NOT list internal architecture or IPC/notification mechanics as user bullets (e.g. avoid "task notifications and background task updates" or "added database sync migrations and Zod schemas").
    • Distill the user outcome: what can the user now do or see? (e.g. "Run Antigravity via first-class ACP runtime support with live usage discovery and machine-scoped settings").
  3. Check Environment & Scope Support:

    • Check if changes expanded platforms (e.g. WSL, remote SSH, Windows shell resolution, multi-machine settings). Mention platform support explicitly when added.
Show full SKILL.md (692 more words)Show less

Step 2 — Distill into ONE curated entry (house style)

This is the consistency contract. Match the voice of the existing entries (read a couple from website/public/changelog.json first).

title

  • Short, punchy, no version number, sentence case. ~3–8 words.
  • Name the 2–3 headline features, joined with commas / &. E.g. \"Antigravity ACP, Handoff 2.0 & thread mentions\".

summary

  • 1–2 sentences, benefit-first, the release's "elevator pitch".
  • Big releases may open with \"A big feature release: …\". Patches stay factual and short.

changes

  • Each is one complete, user-facing sentence. Prefer second person and present tense: "You can now…", "Sessions are saved automatically…".
  • kind: added (new capability) · improved (better/faster/refined existing) · fixed (bug fix). Order them added → improved → fixed.
  • label: optional short feature/product prefix. Add it only when the whole sentence belongs to one obvious surface such as Remote, Claude, Plugins, or Security. Omit it for mixed-scope sentences or whenever the right label is uncertain; never force every change to have one.
  • Distill, don't dump. Merge related work into one bullet when it serves the same user outcome. A 70-PR major may land ~6–14 bullets; a busy patch may land ~6–14. Tiny hotfixes stay short (~2–5). Distillation means folding related commits, not dropping discoverability improvements or new user-visible labels/icons because a larger headline feature is already listed.
  • Lead the added bullets with the maintainer's highlights when present.
  • After drafting, re-read the disposition ledger: every include must map to a bullet (alone or folded); every omit must still look like noise on a second look.

Hard rules (what makes it look hand-written)

  • ❌ No PR numbers, no by @handle, no dependabot/CI/chore/build(deps) items, no raw PR-title phrasing.
  • ❌ No version number inside title.
  • ❌ Do not claim existing features are newly added — verify with grep against website/public/changelog.json and mark upgrades as improved.
  • ❌ Do not list internal protocol/plumbing mechanisms (heartbeats, task notifications, IPC schemas) in place of user outcomes.
  • ❌ Do not drop mode icons, selection labels, badges, or status presentation just because the capability already existed — those are user-facing improved items.
  • ✅ Vary sentence openings — don't write "Added X. Added Y. Added Z." Describe the benefit, not the implementation or the commit.
  • ✅ Mix labeled and unlabeled changes when that best represents the release.
  • ✅ Keep product nouns literal: Poracode, Claude, Codex, Gemini, Grok, Command Code, WSL, ACP, Opus 4.8, Ultracode, Fable 5, Git, GitHub, macOS, Windows, Linux.
  • ✅ Each feature appears in the release that introduced it — don't repeat it in a later patch. Refinements of an earlier feature (clearer labels, icons, defaults, multi-account support, in-thread handoff) belong in the release that shipped the refinement.
Good vs bad
✅ { kind: "added", text: "Start a new project by cloning any GitHub repository directly from Poracode." }
✅ { kind: "improved", label: "Provider switch", text: "Switching providers or models now continues seamlessly inside the same thread while preserving your full conversation history and active MCP configuration (Handoff 2.0)." }
✅ { kind: "improved", label: "GitHub", text: "GitHub Actions now supports multiple signed-in GitHub accounts, letting you switch accounts when browsing workflows, dispatching runs, or inspecting CI statuses." }
❌ { kind: "added", label: "GitHub Actions", text: "You can now view workflow runs, inspect step logs, and monitor action statuses directly inside Poracode." } // Hallucination: GitHub Actions was added in 1.6.0; multi-account support was the 1.7.0 delta
❌ { kind: "added", text: "Add GitHub repository clone flow by @SDSLeon in #167" }   // raw PR title + noise
❌ { kind: "added", text: "Added clone." }                                            // too thin, no benefit
❌ omit "PR automation mode icons" as "too small / polish"                            // discoverability is user-facing
Template
ts
{
  version: "X.Y.Z",
  date: "YYYY-MM-DD",
  title: "Headline feature, second feature & third",
  summary:
    "One or two sentences on what this release gives the user overall.",
  changes: [
    { kind: "added", label: "Projects", text: "You can now …" },
    { kind: "improved", text: "… is now faster / clearer / smoother because …" },
    { kind: "fixed", text: "… no longer … ." },
  ],
},

Step 3 — Write it

Prepend the new entry to the releases array in website/public/changelog.json (newest first; the app re-sorts defensively, but keep the source tidy). Keep valid JSON — double-quoted keys/strings, no trailing commas.

When amending an already-published entry (missed bullet, wrong wording), edit that release in place — do not invent a new version. Changelog data deploys with the site; the app refetches it without an app rebuild.

Step 4 — Verify

bash
pnpm exec vitest run src/shared/changelog.test.ts   # validates changelog.json: schema, sorted, unique, all fields
pnpm run typecheck

Optionally build the marketing site to confirm the /changelog page renders: pnpm --dir website build.

Then commit + push to master — Vercel redeploys the site and the desktop app fetches the new notes on its own (no app release needed for a notes-only change).

Final checklist

  • title has no version number; summary is 1–2 sentences.
  • History & prior art verified: Grepped website/public/changelog.json to verify feature lineage and ensure existing capabilities are not falsely claimed as added.
  • User outcome focus: Filtered out internal protocol/plumbing mechanisms (e.g. IPC schemas, background task notifications) in favor of direct user-facing capabilities and benefits.
  • Changes are distilled (not one-per-PR), grouped added→improved→fixed, each a full benefit sentence.
  • Disposition ledger complete: every non-merge commit is include, fold into …, or omit with a reason.
  • Every feat/fix that touches renderer/mobile UI, settings, messages, or locale catalogs is include or fold — none silently omitted.
  • Discoverability work (icons, selection labels, badges, status chips for existing features) is covered as improved when present in the range.
  • Labels appear only where the category is clear; mixed or uncertain changes remain unlabeled.
  • No PR numbers / author handles / dependabot / CI / chore noise.
  • version (no v) and date (release date, ISO) are correct.
  • website/public/changelog.json is valid JSON; the test + typecheck pass.

© Porabuild, Apache-2.0. 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 .agents/skills/release-notes of Porabuild/Poracode.

Open the folder on GitHubat commit bffd89d

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 skillPorabuild/Poracode114—~4.2kAutomated safety check: PassApache-2.0
Cutting A ReleaseTriliumNext/Trilium38k—~3.2kAutomated safety check: PassAGPL-3.0
Mole CLI Release Flowtw93/Mole69k—~2.5kAutomated safety check: PassGPL-3.0
Draft Release Notesjamiepine/voicebox57k—~941Automated safety check: PassMIT
Mole Release Notes Publishertw93/Mole69k—~1.9kAutomated safety check: PassGPL-3.0
Release Bumpjamiepine/voicebox57k—~1.1kAutomated safety check: PassMIT

Similar skills

  • Cutting A Release

    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.

    38k GitHub stars~3.2k tokensUpdated today
    DevelopmentAuto-check passed
  • 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.

    69k GitHub stars~2.5k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Draft Release Notes

    jamiepine/voicebox

    Writes or refreshes the Unreleased section of CHANGELOG.md as a themed narrative built from the commits, PRs and diff since the last version tag.

    57k GitHub stars~941 tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Publishes curated, bilingual release notes for an existing Mole version tag with gh release edit, including contributor thanks and reactions, after the release workflow finishes.

    69k GitHub stars~1.9k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Release Bump

    jamiepine/voicebox

    Ends a release cycle by moving the Unreleased changelog notes under a dated version heading, bumping version files with bumpversion and tagging the commit.

    57k GitHub stars~1.1k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Cut Release

    jfernandez/bpftop

    Cut a new versioned release of bpftop — pick the version, open a version-bump PR, sign-tag the merge commit on main, and draft GitHub release notes in the project's established format.

    2.7k GitHub stars~2k tokensUpdated 1 mo ago
    DevelopmentAuto-check passed

More from Porabuild/Poracode

All 21 skills in this repo
  • Interactive Testing

    Porabuild/Poracode

    Run repeatable integration and smoke testing against the real Poracode Electron app through Chrome DevTools Protocol.

    114 GitHub stars~4.5k tokensUpdated today
    Auto-check: notes
  • Skill Creator Poracode

    Porabuild/Poracode

    Create a new reusable agent skill managed by Poracode. An agent skill from Porabuild/Poracode.

    114 GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • App Controls

    Porabuild/Poracode

    Inspect and drive Poracode itself — the Terminal panel, other threads, projects, workspaces, git, pull requests, and schedules — through the poracode MCP.

    114 GitHub stars~745 tokensUpdated today
    Auto-check passed
  • Chrome Control

    Porabuild/Poracode

    Use the user's real Chrome tabs and signed-in sessions for visible browser workflows.

    114 GitHub stars~691 tokensUpdated today
    Auto-check passed
  • Computer Use

    Porabuild/Poracode

    Inspect and operate native Windows, macOS, or Linux applications through Poracode's desktop-control tools.

    114 GitHub stars~718 tokensUpdated today
    Auto-check passed
  • Provider Chat Smoke

    Porabuild/Poracode

    Smoke test real Poracode provider chat threads and ACP sessions end to end.

    114 GitHub stars~4.2k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Release Notes

What does Release Notes do?

Write consistent, hand-written-looking changelog entries for a Poracode release. Release Notes is an agent skill from Porabuild/Poracode. Write consistent, hand-written-looking changelog entries for a Poracode release.

When should I use Release Notes?

Release Notes fits situations like: the user wants to add release notes; update the changelog; write the changelog for vX.Y.Z; cut a release entry.

How do I install Release Notes in Claude Code?

Run `npx skills add Porabuild/Poracode --skill release-notes -a claude-code`. Or copy the skill folder (.agents/skills/release-notes in Porabuild/Poracode) 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 Porabuild/Poracode --skill release-notes -a codex`. Or copy the skill folder (.agents/skills/release-notes in Porabuild/Poracode) 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 Porabuild/Poracode --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, pnpm and gh). Its frontmatter pre-approves these tools: Bash(gh:*), Bash(git:*), Bash(pnpm:*), Bash(node:*), Read, Edit, Write, Grep, Glob.

Does Release Notes access the network?

SKILL.md names 1 domain. In commands or code: poracodeapp.com; the agent is likely to contact it when it follows the instructions. 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 Apache-2.0 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 4.2k tokens (SKILL.md is roughly 17k 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: Cutting A Release (TriliumNext/Trilium, 38k stars), Mole CLI Release Flow (tw93/Mole, 69k stars), Draft Release Notes (jamiepine/voicebox, 57k stars) and Mole Release Notes Publisher (tw93/Mole, 69k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Release Notes?

Porabuild (a GitHub organization) maintains it in Porabuild/Poracode, which has 114 GitHub stars. The repository holds 21 skills in this directory. The repository was last updated on October 7, 2026.

Source: Porabuild/Poracode on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.