Agent skill

Release Notes

by tektoncd in tektoncd/cli

This skill should be used when the user asks to "create release note", "generate release notes", "release notes", "release changelog", "update GitHub release", or wants to generate categorized…

Apache-2.0Auto-check passedDevelopment

Install Release Notes

skills CLI
$ npx skills add tektoncd/cli --skill release-notes -a claude-code

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

GitHub CLI
$ gh skill install tektoncd/cli 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/tektoncd/cli.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
461
Token cost
~1.9k tokens
SKILL.md length
846 words
Files
2 (incl. references)
Skills in repo
2
Repo updated
First seen
Licence
Apache-2.0

At a glance

This skill should be used when the user asks to "create release note", "generate release notes", "release notes", "release changelog", "update GitHub release", or wants to generate categorized…

  • Works in 9 steps: Pull latest tags → Detect repository info → Detect tags → …
  • Asks to create release note
  • SKILL.md covers Purpose, Workflow, Error Handling and User Confirmation Requirements
  • Calls gh and git

What it does

Release Notes is an agent skill from tektoncd/cli. This skill should be used when the user asks to "create release note", "generate release notes", "release notes", "release changelog", "update GitHub release", or wants to generate categorized release notes between tags. Gathers PR/commit data via gh CLI, categorizes changes, and outputs formatted release notes. The user can optionally specify a release version (e.g. "create release note v0.45.0") to bypass auto-detection.

Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/release-notes-format.md`).

It sits in Development, covering Changelog and release notes. It works with GitHub. The repository describes itself as: A CLI for interacting with Tekton! The licence is Apache-2.0.

When your agent uses it

  • Asks to create release note
  • Generate release notes
  • Release changelog
  • Update GitHub release

Example prompts

  • “create release note”
  • “generate release notes”
  • “release notes”
  • “/release-notes”

Workflow steps

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

  1. Pull latest tags
  2. Detect repository info
  3. Detect tags
  4. Verify prerequisites
  5. Gather PR/commit data
  6. Categorize changes
  7. Assemble complete release notes
  8. Output, save, and optional GitHub release update
  9. Slack announcement (optional)

What it can do on your machine

Read from SKILL.md and the folder at commit 808e3b1. 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
    • git

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

  • Network

    No URLs in SKILL.md. Its commands use gh 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.

  • 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 1.9k tokens when it runs, and up to ~2.6k if it reads all its reference files. Until then it costs about 110 tokens; SKILL.md has 846 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~110
When it runs · the whole SKILL.md, loaded when a task matches
~1.9k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~2.6k

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 tektoncd/cli at commit 808e3b1, republished under its Apache-2.0 licence (© tektoncd). 846 words, ~1,925 tokens.

Download SKILL.mdSave it as .claude/skills/release-notes/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
release-notes
description
This skill should be used when the user asks to "create release note", "generate release notes", "release notes", "release changelog", "update GitHub release", or wants to generate categorized release notes between tags. Gathers PR/commit data via gh CLI, categorizes changes, and outputs formatted release notes. The user can optionally specify a release version (e.g. "create release note v0.45.0") to bypass auto-detection.
version
0.1.0

Release Notes Generation

Generate categorized release notes for Tekton CLI releases by gathering PR/commit data between two git tags and producing formatted markdown output.

Purpose

Skill that:

  • Auto-detects current and previous tags
  • Gathers PR and commit data via gh CLI
  • Uses intelligent categorization
  • Outputs release notes matching the project's established format
  • Optionally updates the GitHub release

Workflow

Step 1: Pull latest tags
bash
git pull origin --tags

Ensure all tags are available locally before detection.

Step 2: Detect repository info
bash
gh repo view --json owner,name

Extract owner and repo name for API calls.

Step 3: Detect tags

If the user specified a version (e.g. "create release note v0.45.0"), use that directly as the current tag — skip auto-detection. Validate that the tag exists locally:

bash
git tag --list 'v0.45.0'

If the tag doesn't exist locally, error and ask the user to verify.

Otherwise, auto-detect current tag:

bash
git tag --points-at HEAD

Filter for v* prefixed tags. If no tag points at HEAD, list recent tags and ask the user which tag to use:

bash
git tag --list 'v*' --sort=-version:refname | head -10

Previous tag:

bash
git tag --list 'v*' --sort=-version:refname

Find the entry immediately after the current tag in the version-sorted list.

CRITICAL: Confirm both tags with the user before proceeding. Display:

text
Current tag:  v0.45.0
Previous tag: v0.44.1

Proceed with these tags? (y/n)
Step 4: Verify prerequisites

Check gh authentication:

bash
gh auth status

If not authenticated, instruct the user to run gh auth login.

Validate that both tags exist on GitHub:

bash
gh api repos/{owner}/{repo}/git/ref/tags/{current_tag}
gh api repos/{owner}/{repo}/git/ref/tags/{previous_tag}

If either tag does not exist on GitHub, stop and report the error — do not proceed.

Check GitHub release status for the current tag:

bash
gh release view {current_tag} --json isDraft,isPrerelease,tagName
  • If no release exists for the tag: warn the user, but allow proceeding (notes can be generated for preview, but cannot be uploaded).
  • If the release is a draft (isDraft: true): proceed normally — this is the expected state for generating release notes.
  • If the release is published (not draft, not prerelease): ask for explicit confirmation before proceeding, since updating will override an already-published release.
Step 5: Gather PR/commit data

Use gh api to collect data between the two tags:

Compare commits:

bash
gh api repos/{owner}/{repo}/compare/{previous_tag}...{current_tag} --jq '.commits[].sha'

For each commit, find associated PRs:

bash
gh api repos/{owner}/{repo}/commits/{sha}/pulls

Deduplicate by PR number. For each PR/commit, extract:

  • PR number, title, body, author, URL, labels For commits not associated with any PR, include them as standalone commit entries with their SHA, message, author, and URL.

IMPORTANT: This step involves many API calls. Process commits in reasonable batches and report progress to the user.

Step 6: Categorize changes

Using the gathered PR/commit data, categorize each entry into exactly these sections (skip empty ones):

  • ## ✨ Major changes and Features
  • ## 🐛 Bug Fixes
  • ## 📚 Documentation Updates
  • ## ⚙️ Chores

Use the entry format specified in references/release-notes-format.md.

Categorization guidelines:

  • New capabilities, enhancements, significant behavior changes → Features
  • Bug fixes, error corrections, regression fixes → Bug Fixes
  • Documentation-only changes (docs/, README, comments) → Documentation Updates
  • Dependencies, CI/CD, refactoring, formatting, test-only changes → Chores Internal vs user-facing detection:

Changes that match ANY of these patterns are internal and belong in Chores, NOT Features — regardless of feat: prefix:

  • CI/CD pipeline changes (.tekton/, .github/workflows/, Makefile targets)
  • Release infrastructure (release scripts, goreleaser config)
  • Test infrastructure (test helpers, e2e framework, test configuration)
  • Build system changes (Dockerfile, build scripts)
  • Developer tooling (linter config, pre-commit hooks, code generation)
  • Internal refactoring that doesn't change user-visible behavior

Only classify as Features when the change is visible to end users: new CLI commands, new flags, new output formats, new plugin capabilities, new resource support.

Show full SKILL.md (324 more words)Show less
Step 7: Assemble complete release notes

Combine all sections in this order:

  1. Header (see references/release-notes-format.md for template)
  2. Categorized sections from Step 6
  3. Installation section (see references/release-notes-format.md for template)
  4. GitHub auto-generated changelog:
bash
gh api repos/{owner}/{repo}/releases/generate-notes -f tag_name="{current_tag}" -f previous_tag_name="{previous_tag}"

Extract the body field from the response.

Step 8: Output, save, and optional GitHub release update
  1. Always write the complete release notes to /tmp/release-notes-{current_tag}.md and tell the user the file path.
  2. Display the complete release notes to the user.
  3. Ask if they want to update the GitHub release:
text
Release notes saved to /tmp/release-notes-{current_tag}.md

Would you like to update the GitHub release for {current_tag} with these notes? (y/n)
  1. If yes, update via:
bash
gh release edit {current_tag} --notes-file /tmp/release-notes-{current_tag}.md

If the release has a TODO placeholder (matching pattern TODO: XXXXX.*?see older releases for some example), replace only that placeholder in the existing release body rather than overwriting the entire body.

Step 9: Slack announcement (optional)

After Step 8, ask the user if they want a Slack announcement message.

If yes:

  1. Generate a friendly summary with a few emojis (not excessive), listing the top 5-7 most important features and/or bug fixes. Max 7 items total.
  2. Save to /tmp/release-notes-slack-{current_tag}.txt and tell the user the file path so they can copy-paste.
  3. Append the GitHub release URL at the end of the message.

Error Handling

ScenarioAction
No tag at HEADList recent tags, ask user to pick one
User-specified tag doesn't exist locallyError and ask user to verify the tag name
Tag doesn't exist on GitHubStop and report error — do not proceed
gh not authenticatedInstruct user to run gh auth login
No previous tag foundAsk user to provide one manually
No GitHub release for tagWarn but allow generating notes for preview
Release is a draftProceed normally (expected state)
Release is already publishedAsk for explicit confirmation before overriding
API rate limitingReport the error, suggest waiting or using a different token

User Confirmation Requirements

CRITICAL: Always confirm tags before gathering data. Always confirm before updating a GitHub release. Never update a release without explicit user approval.

© tektoncd, 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

SKILL.md and 1 other file (references) in .agents/skills/release-notes of tektoncd/cli.

  • SKILL.md
  • references/release-notes-format.md

Open the folder on GitHubat commit 808e3b1

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 skilltektoncd/cli461—~1.9kAutomated safety check: PassApache-2.0
Cutting A ReleaseTriliumNext/Trilium38k—~3.2kAutomated safety check: PassAGPL-3.0
Mole CLI Release Flowtw93/Mole70k—~2.5kAutomated safety check: PassGPL-3.0
Draft Release Notesjamiepine/voicebox57k—~941Automated safety check: PassMIT
Mole Release Notes Publishertw93/Mole70k—~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.

    70k GitHub stars~2.5k tokensUpdated today
    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.

    70k GitHub stars~1.9k tokensUpdated today
    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 tektoncd/cli

  • Commit Message

    tektoncd/cli

    This skill should be used when the user asks to "create a commit", "generate commit message", "commit changes", "make a commit", mentions "conventional commits", or discusses commit message…

    461 GitHub stars~2.8k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Release Notes

What does Release Notes do?

This skill should be used when the user asks to "create release note", "generate release notes", "release notes", "release changelog", "update GitHub release", or wants to generate categorized…. Release Notes is an agent skill from tektoncd/cli. This skill should be used when the user asks to "create release note", "generate release notes", "release notes", "release changelog", "update GitHub release", or wants to generate categorized release notes between tags.

When should I use Release Notes?

Release Notes fits situations like: asks to create release note; generate release notes; release changelog; update GitHub release.

How do I install Release Notes in Claude Code?

Run `npx skills add tektoncd/cli --skill release-notes -a claude-code`. Or copy the skill folder (.agents/skills/release-notes in tektoncd/cli) 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 tektoncd/cli --skill release-notes -a codex`. Or copy the skill folder (.agents/skills/release-notes in tektoncd/cli) 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 tektoncd/cli --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 (gh and git).

Does Release Notes access the network?

SKILL.md contains no URLs. Its commands use gh and git, 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 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 1.9k tokens (SKILL.md is roughly 7.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 660 tokens, read only when the agent opens those files.

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, 70k stars), Draft Release Notes (jamiepine/voicebox, 57k stars) and Mole Release Notes Publisher (tw93/Mole, 70k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Release Notes?

tektoncd (a GitHub organization) maintains it in tektoncd/cli, which has 461 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on October 7, 2026.

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