Agent skill

Plane Release Notes Generator

by makeplane in 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.

AGPL-3.0Auto-check passedDevelopment

Install Plane Release Notes Generator

skills CLI
$ npx skills add makeplane/plane --skill release-notes -a claude-code

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

GitHub CLI
$ gh skill install makeplane/plane 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/makeplane/plane.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/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
60k
Token cost
~2.5k tokens
SKILL.md length
913 words
Files
1
Skills in repo
5
Repo updated
First seen
Licence
AGPL-3.0

At a glance

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.

  • Works in 7 steps: Fetch commits → Filter out noise → Identify work item IDs (for research only) → …
  • A Plane release PR is open and needs release notes
  • SKILL.md covers Repo-specific versioning, When to Use, Steps and Quick Reference: end-to-end, plus 3 more sections
  • Calls gh

What it does

Given a release pull request in makeplane/plane-cloud or makeplane/plane-ee, the agent fetches the PR's commits with the gh CLI, drops mechanical entries such as enterprise sync commits, and groups what remains by conventional-commit type. The result is written back as the PR description, laid out like the notes on the Plane GitHub Releases page.

The two repos use different version schemes: plane-cloud ships daily with date-based versions, while plane-ee follows semver. The agent works out which repo it is dealing with, either from the PR itself or from the link you share, and leaves the version number out of the notes body because the GitHub release tag carries it. It can also enrich entries through the Plane MCP server when that is available.

When your agent uses it

  • A Plane release PR is open and needs release notes
  • Updating the description of a release PR in plane-cloud or plane-ee
  • Turning a list of conventional commits into grouped, user-facing notes

Example prompts

  • “Write release notes for the plane-ee release PR that targets master.”
  • “Update the description of our latest plane-cloud release PR with categorized notes.”
  • “Summarize the commits in this release PR in the GitHub Releases format.”

Requirements

  • GitHub CLI (gh) with access to the Plane release repos
  • Plane MCP server (optional, for enriching entries)

Workflow steps

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

  1. Fetch commits
  2. Filter out noise
  3. Identify work item IDs (for research only)
  4. (Optional) Enrich via Plane MCP
  5. Categorize commits
  6. Format
  7. Update the PR description

What it can do on your machine

Read from SKILL.md and the folder at commit 7466675. 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:

    • gh

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

  • Network

    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.

  • 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

Plane Release Notes Generator loads about 2.5k tokens when it runs. Until then it costs about 98 tokens; SKILL.md has 913 words of instructions outside code blocks.

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

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 makeplane/plane at commit 7466675, republished under its AGPL-3.0 licence (© makeplane). 913 words, ~2,516 tokens.

Download SKILL.mdSave it as .claude/skills/release-notes/SKILL.md (or your agent's skills folder).
name
release-notes
description
Generate release notes for a Plane release PR in either `makeplane/plane-cloud` (date-based versioning, e.g. `release: vYY.MM.DD-N`) or `makeplane/plane-ee` (semver, e.g. `release: vX.Y.Z`). Reads PR commits, filters out noise, categorizes by conventional-commit type, optionally enriches via Plane MCP, and writes the result as the PR description in the GitHub Releases format.
user_invocable
true

Release Notes Generator

Generate structured release notes from a Plane release PR by parsing its commit list, then update the PR description. Output matches the format used on github.com/makeplane/plane/releases (e.g. v1.2.0). Works for both makeplane/plane-cloud and makeplane/plane-ee.

Repo-specific versioning

Plane uses different version schemes across its two release repos. Detect which repo the PR belongs to and use the matching scheme when communicating about the release — the version itself does not appear in the release notes body (GitHub's release tag carries it).

RepoVersion schemeExample PR titleSource branchTarget branch
makeplane/plane-cloudDate-basedrelease: v26.04.13-1uatmaster
makeplane/plane-eeSemverrelease: v1.12.0uatmaster / preview
  • plane-cloud ships daily — version is vYY.MM.DD-N where N is the counter for that date's release.
  • plane-ee ships on a versioned cadence — version is vX.Y.Z (major.minor.patch) following semver.
  • Detect the repo with gh pr view <PR_NUM> --json headRepository,baseRepository or from the URL the user shared.

When to Use

  • User links/mentions a Plane release PR (e.g. release: v26.04.13-1 for cloud or release: v1.12.0 for EE) and asks for release notes
  • User asks to "create release notes" / "update PR description" for a PR in makeplane/plane-cloud or makeplane/plane-ee
  • The branch is named uat or release/x.y.z and the base is master or preview

Steps

1. Fetch commits
bash
gh pr view <PR_NUM> --json title,body,baseRefName,headRefName,commits \
  --jq '.commits[] | .messageHeadline + "\n---BODY---\n" + .messageBody + "\n===END==="'

For a quick scan first:

bash
gh pr view <PR_NUM> --json commits \
  --jq '.commits[] | {oid: .oid[0:10], message: .messageHeadline}'
2. Filter out noise

Always exclude these commits — mechanical, not user-facing:

PatternReason
Sync: Enterprise Changes #NNNNCross-repo sync, no functional change
fix: merge conflictsMerge artifact
Merge branch '...' of github.com:...Merge artifact
Revert "..." (when immediately re-applied)Internal churn
3. Identify work item IDs (for research only)

Most meaningful commits begin with a Plane work item identifier in brackets:

  • [WEB-XXXX] — web/frontend product items
  • [SILO-XXXX] — Silo (integrations: Slack, GitHub, GitLab, Jira/Linear)
  • [MOBILE-XXXX], [API-XXXX], etc.

Do not include these IDs in the release notes. The GitHub Releases format is end-user-facing — IDs are only useful as a lookup key for fetching context in step 4.

4. (Optional) Enrich via Plane MCP

For larger features where the commit headline is terse, fetch the work item to write a richer paragraph:

mcp__plane__retrieve_work_item_by_identifier(project_identifier="WEB", issue_identifier=6874)

Use the returned name and description_stripped to flesh out the prose. Skip for routine fixes — commit body is usually enough. Don't enrich every item (slow + descriptions are often empty).

5. Categorize commits

Map each surviving commit into one of four sections:

Commit signalSection
feat: that introduces a brand-new screen, flow, or capability✨ Features
feat: that improves an existing feature, plus most refactor: and behavioural chore: items that are user-visible⬆️ Enhancements
fix:, fix(scope):🐞 Bug fixes
CVE upgrades, dependency bumps that close a vulnerability, security hardening🛡️ Security

Drop entirely (do not surface to users): pure infra chore:, dependabot bumps with no CVE, internal refactors with no behavioural impact, test-only changes, doc-only changes.

6. Format

Output follows the GitHub Releases convention — ### for section headers, with two spaces between the emoji and the label for ✨ / ⬆️ / 🐞 (matches v1.2.0).

markdown
### ✨ Features

#### **Short Feature Name in Title Case**

A 1–3 sentence paragraph describing what the user gets, why it matters, and any notable behaviour. Write in product-marketing voice, not commit-message voice.

- Optional nested bullets for sub-capabilities or callouts
- Keep them user-facing — what the user can now do

#### **Second Major Feature**

Another descriptive paragraph. Each major feature gets its own `####` subsection.

### ⬆️ Enhancements

- One-line description of an improvement to an existing capability
- Another improvement, written as a clean sentence (no commit prefix, no ticket ID)

### 🐞 Bug fixes

- Plain-English description of what was broken and is now fixed
- Another bug fix

### 🛡️ Security

- Upgraded <component> to <version> to mitigate [CVE-XXXX-NNNNN](https://link-to-advisory). Brief impact note.
- Other security-relevant change

Rules:

  • Section headers use ### (three hashes), then emoji + two spaces + label — exactly as in the published v1.2.0 release. Exception: 🛡️ Security uses a single space (matches v1.2.0).
  • Features use #### (four hashes) and the feature name is bolded inside the heading: #### **Feature Name**.
  • Each feature gets a real paragraph, not a bullet — written for end users, not engineers.
  • Enhancements, Bug fixes, and Security are simple bullets. No nested asterisks, no ticket IDs, no PR numbers.
  • Do not include work item IDs ([WEB-XXXX]) or PR numbers ((#NNNN)) in any section — this format is user-facing.
  • Do not add a # Release vX.Y.Z heading. The GitHub release tag carries the version; the body starts directly with the first ### ✨ Features section.
  • Do not insert images. The user adds screenshots manually after the notes are drafted. Leave space for them only if the user asks.
  • Drop empty sections entirely.
  • Blank line between section header and first bullet/feature, and between sections.
Show full SKILL.md (289 more words)Show less
7. Update the PR description
bash
gh pr edit <PR_NUM> --body "$(cat <<'EOF'
<release notes markdown>
EOF
)"

Always use a HEREDOC with single-quoted 'EOF' so backticks/dollars in the notes are preserved.

Quick Reference: end-to-end

bash
PR=2498
gh pr view $PR --json commits --jq '.commits[] | .messageHeadline + "\n---\n" + .messageBody + "\n==="' > /tmp/commits.txt
# read /tmp/commits.txt, filter, categorize into the four sections, draft notes
gh pr edit $PR --body "$(cat <<'EOF'
### ✨  Features

#### **...**

...

### ⬆️  Enhancements

- ...

### 🐞  Bug fixes

- ...

### 🛡️ Security

- ...
EOF
)"

Reference example

The canonical target format is v1.2.0 on makeplane/plane. When in doubt about heading levels, spacing, bolding, or paragraph voice, match that page exactly (minus images).

Common Mistakes

  • Including work item IDs in bullets — the GitHub Releases format is user-facing; [WEB-XXXX] belongs in internal research, not the output.
  • Adding a # Release vX.Y.Z heading — GitHub's release tag is the version. The body starts with ### ✨ Features.
  • Copy-pasting commit subjects verbatim — rewrite into product-marketing English. "fix: peek overview reload on parent add" → "Fixed peek overview reloading on adding a parent".
  • Bulleting features instead of writing paragraphs — major features get #### **Name** plus a real paragraph; only enhancements/bugs/security use bullets.
  • Including Sync: Enterprise Changes commits — these are sync PRs, never user-visible.
  • Including fix: merge conflicts — merge artifact, no functional content.
  • Inserting images — leave images for the user; they add screenshots manually.
  • Using --body without HEREDOC — backticks/dollar signs get shell-interpreted and corrupt the notes.
  • Editing the PR title — release PR titles are version markers; only edit the body.
  • Adding a Chores section — the GitHub Releases format has no Chores section; user-invisible chores are dropped entirely.

Plane-Specific Conventions

  • Release PRs go from uat → master (or preview).
  • PR title format:
    • plane-cloud: release: vYY.MM.DD-N where N is the daily release counter for that date.
    • plane-ee: release: vX.Y.Z semver (major.minor.patch).
  • Commits coming from feature branches always carry a work item ID; commits without one are usually infra/chores and almost always dropped from notes.
  • Sync: Enterprise Changes #NNNN are automated cross-repo syncs and are always skipped.
  • CVE-related upgrades (NextJS, React, Django, nginx, etc.) belong under 🛡️ Security with a link to the advisory and a one-line impact note.

© makeplane, AGPL-3.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 .claude/skills/release-notes of makeplane/plane.

Open the folder on GitHubat commit 7466675

Compare with similar skills

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

Plane Release Notes Generator compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Plane Release Notes Generator this skillmakeplane/plane60k—~2.5kAutomated safety check: PassAGPL-3.0
Verdaccio Pull Request Workflowverdaccio/verdaccio18k—~1.9kAutomated safety check: PassMIT
Review Release Noteschef/chef-web-docs143—~5.2kAutomated safety check: PassCustom licence
Uui PR Contributingepam/UUI248—~1.7kAutomated safety check: NotesMIT
Shift Pull Request Rulesshift-editor/shift343—~2.1kAutomated safety check: NotesApache-2.0
PR Finalize Reviewmicrosoft/garnet12k—~3.1kAutomated safety check: PassMIT

Similar skills

  • 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.

    18k GitHub stars~1.9k tokensUpdated today
    DevelopmentAuto-check passed
  • Review Release Notes

    chef/chef-web-docs

    Read a release notes file and edit it using Jira release data and GitHub pull requests as co-equal, optional sources.

    143 GitHub stars~5.2k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Guides the UUI pull request process including branch naming, pre-PR checklist, changelog updates, and quality requirements.

    248 GitHub stars~1.7k tokensUpdated 8 days ago
    DevelopmentAuto-check: notes
  • Shift Pull Request Rules

    shift-editor/shift

    Rules for preparing, opening and updating pull requests in the Shift repository: Conventional Commit titles, Release Please effects, evidence-based bodies and UI screenshots.

    343 GitHub stars~2.1k tokensUpdated yesterday
    DevelopmentAuto-check: notes
  • PR Finalize Review

    microsoft/garnet

    Official

    Checks that a pull request's title and description match its implementation and reviews the code for Garnet best practices, reporting findings without posting them.

    12k GitHub stars~3.1k tokensUpdated today
    DevelopmentAuto-check passed
  • Git Workflow and Versioning

    addyosmani/agent-skills

    Sets git habits for every change: short-lived branches, atomic commits with descriptive messages, clean pull requests, plus versioning, tagging and changelogs for releases.

    102k GitHub starsUsed in 2 repos~3.5k tokens
    DevelopmentAuto-check: notes

More from makeplane/plane

  • React Doctor

    makeplane/plane

    Scans React code for lint, accessibility, bundle size and architecture issues, reports a health score and checks that changes do not lower it.

    60k GitHub starsUsed in 12 repos~657 tokens
    Auto-check passed
  • Git Branch Naming

    makeplane/plane

    Names a new Git branch with a type prefix, the lowercased work item ID and a short kebab-case description, so the ID can be extracted later from the branch name.

    60k GitHub stars~594 tokensUpdated yesterday
    Auto-check passed
  • Opens a pull request for the current branch using the repo's template, a work item ID in the title and a description filled in from the actual diff.

    60k GitHub stars~824 tokensUpdated yesterday
    Auto-check passed
  • Plane UI Translation

    makeplane/plane

    Sets the rules for translating and updating Plane's UI strings across locales: do-not-translate terms, plural forms, placeholders and AI translation review.

    60k GitHub stars~16k tokensUpdated yesterday
    Auto-check passed

Categories

Questions about Plane Release Notes Generator

What does Plane Release Notes Generator do?

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. Given a release pull request in makeplane/plane-cloud or makeplane/plane-ee, the agent fetches the PR's commits with the gh CLI, drops mechanical entries such as enterprise sync commits, and groups what remains by conventional-commit type. The result is written back as the PR description, laid out like the notes on the Plane GitHub Releases page.

When should I use Plane Release Notes Generator?

Plane Release Notes Generator fits situations like: A Plane release PR is open and needs release notes; updating the description of a release PR in plane-cloud or plane-ee; turning a list of conventional commits into grouped, user-facing notes.

How do I install Plane Release Notes Generator in Claude Code?

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

How do I install Plane Release Notes Generator in Codex?

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

Can I use Plane Release Notes Generator 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 makeplane/plane --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 Plane Release Notes Generator need to run?

Going by SKILL.md and its folder, Plane Release Notes Generator needs the command-line tools its instructions call (gh). Our summary lists: GitHub CLI (gh) with access to the Plane release repos; Plane MCP server (optional, for enriching entries).

Does Plane Release Notes Generator access the network?

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.

Is Plane Release Notes Generator 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 Plane Release Notes Generator use?

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

How many tokens does Plane Release Notes Generator use?

About 2.5k tokens (SKILL.md is roughly 10k 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 Plane Release Notes Generator?

Skills that share tags, products or a category with Plane Release Notes Generator: Verdaccio Pull Request Workflow (verdaccio/verdaccio, 18k stars), Review Release Notes (chef/chef-web-docs, 143 stars), Uui PR Contributing (epam/UUI, 248 stars) and Shift Pull Request Rules (shift-editor/shift, 343 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Plane Release Notes Generator?

makeplane (a GitHub organization) maintains it in makeplane/plane, which has 60,461 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 6, 2026.

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