Agent skill

Release

by hacan359 in hacan359/tonkatsu_box

Automates the full release process — analyzes changes, suggests version, updates CHANGELOG and pubspec.yaml, commits, tags, and pushes.

MITAuto-check passedDevelopment

Install Release

skills CLI
$ npx skills add hacan359/tonkatsu_box --skill release -a claude-code

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

GitHub CLI
$ gh skill install hacan359/tonkatsu_box release --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/hacan359/tonkatsu_box.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/release .claude/skills/release && 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
GitHub stars
579
Token cost
~2.2k tokens
SKILL.md length
930 words
Files
1
Skills in repo
3
Repo updated
First seen
Licence
MIT

At a glance

Automates the full release process — analyzes changes, suggests version, updates CHANGELOG and pubspec.yaml, commits, tags, and pushes.

  • Works in 12 steps: Preflight Checks → Analyze Changes Since Last Release → Read CHANGELOG [Unreleased] → …
  • Tasks that involve Changelog and release notes
  • SKILL.md covers Step 1: Preflight Checks, Step 2: Analyze Changes Since…, Step 3: Read CHANGELOG… and Step 4: Determine Version, plus 9 more sections
  • Calls git and flutter

What it does

Release is an agent skill from hacan359/tonkatsu_box. Automates the full release process — analyzes changes, suggests version, updates CHANGELOG and pubspec.yaml, commits, tags, and pushes.

Its SKILL.md is about 2.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 and Deployment. The repository describes itself as: Free open-source app to organize collections of retro games, movies, TV shows & anime. Track progress, rate favorites, create visual boards, share with friends. Flutter · Windows…. The licence is MIT.

When your agent uses it

  • Tasks that involve Changelog and release notes
  • Tasks that involve Deployment

Example prompts

  • “Use the release skill to automate the full release process — analyzes changes, suggests version, updates CHANGELOG and pubspec.yaml, commits, tags…”
  • “/release”

Workflow steps

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

  1. Preflight Checks
  2. Analyze Changes Since Last Release
  3. Read CHANGELOG [Unreleased]
  4. Determine Version
  5. Update CHANGELOG.md
  6. Bump Version in pubspec.yaml
  7. 5: Update Version on Landing Page
  8. Generate Release Notes
  9. 5: Create F-Droid / IzzyOnDroid Changelog
  10. 6: Overwrite assets/whats_new.md (in-app "What's new" dialog)
  11. Commit, Tag, Push
  12. Report

What it can do on your machine

Read from SKILL.md and the folder at commit 00a4fac. 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
    • flutter

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

  • Network

    No URLs in SKILL.md. Its commands use 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 loads about 2.2k tokens when it runs. Until then it costs about 36 tokens; SKILL.md has 930 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~36
When it runs · the whole SKILL.md, loaded when a task matches
~2.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 hacan359/tonkatsu_box at commit 00a4fac, republished under its MIT licence (© hacan359). 930 words, ~2,180 tokens.

Download SKILL.mdSave it as .claude/skills/release/SKILL.md (or your agent's skills folder).
name
release
description
Automates the full release process — analyzes changes, suggests version, updates CHANGELOG and pubspec.yaml, commits, tags, and pushes.

Release Process

Automates everything from changelog update to git tag push.

Prerequisites:

  • Working tree must be clean (git status shows no changes)
  • You should be on the branch you want to release from (usually main)
  • All changes should already be pushed and CI should be green

Step 1: Preflight Checks

Verify the working tree is clean and we're on the right branch:

bash
git status --porcelain
git branch --show-current

If working tree is not clean, STOP and tell the user to commit or stash changes first.


Step 2: Analyze Changes Since Last Release

Find the last release tag and show what changed:

bash
# Last release tag (empty if first release)
LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "")

if [ -n "$LAST_TAG" ]; then
  echo "Last release: $LAST_TAG"
  echo ""
  echo "=== Commits since $LAST_TAG ==="
  git log "${LAST_TAG}..HEAD" --oneline
  echo ""
  echo "=== Stats ==="
  git diff --stat "${LAST_TAG}..HEAD"
else
  echo "No previous releases found. This will be the first release."
  echo ""
  echo "=== All commits ==="
  git log --oneline -20
fi

Step 3: Read CHANGELOG [Unreleased]

Read CHANGELOG.md and extract the [Unreleased] section to understand what's being released.

Show the content to the user as a summary of what will be in the release notes.

If the [Unreleased] section is empty, STOP and tell the user there's nothing to release — they should update the CHANGELOG first (use /changelog-docs skill).


Step 4: Determine Version

Read current version from pubspec.yaml:

bash
grep '^version:' pubspec.yaml

Calculate next build number:

bash
TAG_COUNT=$(git tag --list 'v*' | wc -l)
NEXT_BUILD=$((TAG_COUNT + 1))
echo "Next build number: +${NEXT_BUILD}"

SemVer rules (pre-1.0):

  • patch (0.9.0 → 0.9.1): bug fixes, small improvements, minor tweaks
  • minor (0.9.0 → 0.10.0): new features, significant additions
  • major (0.9.0 → 1.0.0): stable release, breaking public API changes

Analyze the [Unreleased] content and suggest a version bump type with reasoning.

Ask the user using AskUserQuestion with options:

  • Option 1: Suggested version (with reasoning)
  • Option 2: Alternative version
  • Option 3: Other (user types custom version)

Wait for user confirmation before proceeding.


Step 5: Update CHANGELOG.md

After user confirms version X.Y.Z:

  1. Get today's date (format: YYYY-MM-DD)
  2. In CHANGELOG.md, find the line ## [Unreleased]
  3. Insert a blank line after it, then add ## [X.Y.Z] - YYYY-MM-DD
  4. All existing content between ## [Unreleased] and the new version header stays under the version header
  5. The ## [Unreleased] section should be left empty (no subsection headers)

Result should look like:

markdown
## [Unreleased]

## [0.9.0] - 2026-02-19

### Added
- ...

### Changed
- ...

Use the Edit tool to make the changes precisely.


Step 6: Bump Version in pubspec.yaml

Update the version: line in pubspec.yaml:

version: X.Y.Z+N

Where N is the build number calculated in Step 4.

Use the Edit tool to make the change.


Step 6.5: Update Version on Landing Page

Update the version in docs/index.html in two places:

  1. Hero badge — find <span>vOLD</span> and replace with <span>vX.Y.Z</span>
  2. JSON-LD structured data — find "softwareVersion": "OLD" and replace with "softwareVersion": "X.Y.Z"

Use the Edit tool to make both changes.


Step 7: Generate Release Notes

Create user-facing release notes in English from the CHANGELOG [X.Y.Z] section. These notes will be used as the annotated tag message and will appear on the GitHub Release page.

Rules:

  • Bilingual: First the full English section, then a horizontal rule ---, then the full Russian section (NOT inline per-line translation)
  • Strip all file names, class names, and technical details (no steam_import_service.dart, no collectionStatsProvider)
  • Rewrite each entry as a short, clear sentence a user would understand
  • Group into: ## What's New, ## Improvements, ## Bug Fixes (skip empty groups)
  • Russian section uses: ## Что нового, ## Улучшения, ## Исправления
  • Use bullet points, no bold prefixes
  • Keep it concise: 1 line per feature, max 2 sentences for complex features
  • Add a footer: **Full Changelog**: https://github.com/hacan359/tonkatsu_box/compare/vPREV...vX.Y.Z

Example transformation:

CHANGELOG (technical):

### Added
- **Steam Library import** — new `SteamApi` client (`steam_api.dart`) fetches user's owned games...

Release notes (user-facing):

## What's New
- Import your Steam game library — games are automatically matched to IGDB with playtime tracking.

---

## Что нового
- Импорт библиотеки Steam — игры автоматически привязываются к IGDB с отслеживанием времени.

Show the generated release notes to the user and ask for confirmation before proceeding.

Save the release notes text for use in Step 8.


Show full SKILL.md (395 more words)Show less

Step 7.5: Create F-Droid / IzzyOnDroid Changelog

IzzyOnDroid (and F-Droid) show a per-version "What's New" read from a plain-text file named after the versionCode — the build number N from Step 4, i.e. the same N as pubspec.yaml X.Y.Z+N.

Create fastlane/metadata/android/en-US/changelogs/N.txt:

  • Plain text, max 500 characters (hard limit — Izzy skips longer files).
  • English only (this is the en-US locale file).
  • Condense the English user-facing notes from Step 7: a vX.Y.Z header line, then 2-5 bullets of the most important changes.
  • No markdown headers, no file/class names, no Russian.
  • Do NOT touch or rename older changelogs/*.txt — one file per release, they are immutable history.

Example (changelogs/35.txt):

v0.39.0

* Import your Steam library with automatic IGDB matching.
* New mood-grid export with custom captions.
* Fixed crash when opening an empty collection.

Use the Write tool, then verify the byte count is under 500:

bash
wc -m < fastlane/metadata/android/en-US/changelogs/N.txt

Step 7.6: Overwrite assets/whats_new.md (in-app "What's new" dialog)

The app shows assets/whats_new.md in a dialog on the first launch after an update (lib/core/services/whats_new_service.dart). The file always holds ONLY the current release's notes — overwrite it completely with the Write tool (not Edit):

  • First line: # X.Y.Z — must match the pubspec version exactly; the app only shows the section whose heading equals its own version.
  • Then the condensed English user-facing notes from Step 7: optionally a short **bold**-led intro paragraph for the headline feature, followed by - bullets.
  • Mini-markdown only (**bold**, *italic*, - bullets). No ## headers, no file/class names, no links, no Russian.
  • Keep it one dialog tall: an intro + ~5-10 bullets max.

Step 8: Commit, Tag, Push

bash
# Stage the changed files (N = build number from Step 4)
git add pubspec.yaml CHANGELOG.md docs/index.html assets/whats_new.md \
  "fastlane/metadata/android/en-US/changelogs/${N}.txt"

# Create commit
git commit -m "release: vX.Y.Z"

# Create annotated tag with release notes (use HEREDOC for multiline)
git tag -a "vX.Y.Z" -m "$(cat <<'EOF'
Release vX.Y.Z

<paste release notes here>
EOF
)"

# Push commit and tag
git push origin HEAD
git push origin "vX.Y.Z"

Step 9: Report

Tell the user:

  • Commit created with hash
  • Tag vX.Y.Z pushed
  • GitHub Actions release workflow is now running
  • It will: run quality gate → build Windows + Android → create GitHub Release with artifacts
  • They can monitor progress at the repository's Actions tab

Important Notes

  • Never skip the user confirmation step (Step 4)
  • Never run this skill if the working tree is dirty
  • If the quality-gate fails in CI after push, the release artifacts won't be built — the user should fix issues and create a new patch release
  • The skill does NOT run flutter analyze or flutter test locally — CI handles that
  • Build number is sequential: count of existing v* tags + 1
  • Every release must add fastlane/metadata/android/en-US/changelogs/N.txt (Step 7.5) — IzzyOnDroid reads it as the version's "What's New"; a missing file means no changelog shown for that build
  • Every release must overwrite assets/whats_new.md (Step 7.6) — the in-app "What's new" dialog shows it after the update; a stale version heading means the dialog silently never appears for the new version

© hacan359, 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 .claude/skills/release of hacan359/tonkatsu_box.

Open the folder on GitHubat commit 00a4fac

Compare with similar skills

Release 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 compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Release this skillhacan359/tonkatsu_box579—~2.2kAutomated safety check: PassMIT
Cline Desktop App Releasecline/cline70k—~4.5kAutomated safety check: PassApache-2.0
EverOS Release WorkflowEverMind-AI/EverOS13k—~1.3kAutomated safety check: PassApache-2.0
Releasengrok/ngrok-operator272—~2.7kAutomated safety check: PassMIT
Remotion Bits Releaseav/remotion-bits488—~1.2kAutomated safety check: PassNone
ReleaseDataDog/datadog-go375—~2kAutomated safety check: PassMIT

Similar skills

  • Covers preparing, tagging and publishing a Cline desktop app release on the stable, beta or nightly channel through the desktop-publish GitHub workflow.

    70k GitHub stars~4.5k tokensUpdated today
    DevelopmentAuto-check passed
  • EverOS Release Workflow

    EverMind-AI/EverOS

    Walks through cutting a versioned everos release: bump the version, update the changelog, tag it, and review the drafted GitHub Release page before publishing.

    13k GitHub stars~1.3k tokensUpdated 2 days ago
    DevelopmentAuto-check passed
  • Release

    ngrok/ngrok-operator

    Automates the ngrok-operator release process: gathers PR data, classifies changes by component (container, Helm chart, CRDs chart), generates changelogs, updates version files, and prepares the…

    272 GitHub stars~2.7k tokensUpdated 4 days ago
    DevelopmentAuto-check passed
  • Remotion Bits Release

    av/remotion-bits

    Runs the full release of the remotion-bits package: version bump, changelog, registry build, release commit, GitHub release, docs deploy and npm publish.

    488 GitHub stars~1.2k tokensUpdated 23 days ago
    DevelopmentAuto-check passed
  • Release

    DataDog/datadog-go

    Official

    Cut a new datadog-go release and update CHANGELOG.md following the repo's house style.

    375 GitHub stars~2k tokensUpdated 1 mo ago
    DevelopmentAuto-check passed
  • Walks through releasing the Cline CLI package to npm: release notes, version bump, matching git tag, and either the GitHub workflow or a local publish.

    70k GitHub stars~3.4k tokensUpdated today
    DevelopmentAuto-check: warnings

More from hacan359/tonkatsu_box

  • Optimize

    hacan359/tonkatsu_box

    Code optimization for performance, memory, and readability. An agent skill from hacan359/tonkatsu_box.

    579 GitHub stars~1k tokensUpdated today
    Auto-check passed
  • Finish

    hacan359/tonkatsu_box

    End-of-task pipeline — simplify review, double review, tests, single analyze+test gate, changelog/docs.

    579 GitHub stars~7.4k tokensUpdated today
    Auto-check passed

Categories

Questions about Release

What does Release do?

Automates the full release process — analyzes changes, suggests version, updates CHANGELOG and pubspec.yaml, commits, tags, and pushes. Release is an agent skill from hacan359/tonkatsu_box.yaml, commits, tags, and pushes.

When should I use Release?

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

How do I install Release in Claude Code?

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

How do I install Release in Codex?

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

Can I use Release 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 hacan359/tonkatsu_box --skill release -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, .gemini/skills/release, .github/skills/release and .opencode/skills/release in your project.

What does Release need to run?

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

Does Release access the network?

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

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

Release 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 use?

About 2.2k tokens (SKILL.md is roughly 8.7k 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?

Skills that share tags, products or a category with Release: Cline Desktop App Release (cline/cline, 70k stars), EverOS Release Workflow (EverMind-AI/EverOS, 13k stars), Release (ngrok/ngrok-operator, 272 stars) and Remotion Bits Release (av/remotion-bits, 488 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Release?

hacan359 (a GitHub user) maintains it in hacan359/tonkatsu_box, which has 579 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on October 8, 2026.

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