Agent skill

Release Engineering

by hiroshiyui in hiroshiyui/GuilelessBopomofo

Release engineering tasks including version bumping, building release APKs, creating git tags, writing changelogs, and preparing F-Droid releases.

GPL-3.0Auto-check passedDevelopment

Install Release Engineering

skills CLI
$ npx skills add hiroshiyui/GuilelessBopomofo --skill release-engineering -a claude-code

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

GitHub CLI
$ gh skill install hiroshiyui/GuilelessBopomofo release-engineering --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/hiroshiyui/GuilelessBopomofo.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/release-engineering .claude/skills/release-engineering && 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-engineering
GitHub stars
135
Token cost
~1.6k tokens
SKILL.md length
594 words
Files
1
Skills in repo
4
Repo updated
First seen
Licence
GPL-3.0

At a glance

Release engineering tasks including version bumping, building release APKs, creating git tags, writing changelogs, and preparing F-Droid releases.

  • Works in 8 steps: Ensure all changes are committed on the… → Bump version — run ./gradlew… → Write changelogs for F-Droid (see… → …
  • The user asks to prepare a release
  • SKILL.md covers Version Scheme, Release Process, Changelogs (F-Droid) and Build Commands Reference, plus 4 more sections
  • Calls git and gh

What it does

Release Engineering is an agent skill from hiroshiyui/GuilelessBopomofo. Release engineering tasks including version bumping, building release APKs, creating git tags, writing changelogs, and preparing F-Droid releases. Use when the user asks to prepare a release, bump version, tag a release, or build for distribution.

Its SKILL.md is about 1.6k 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 Git workflow. It works with Git, Android and Gradle. The repository describes itself as: Guileless Bopomofo - A Bopomofo (Zhuyin) software keyboard (aka input method editor) on Android, which is utilizing libchewing for intelligent phonetic processing. 樸實注音鍵盤是… The licence is GPL-3.0.

When your agent uses it

  • The user asks to prepare a release
  • Build for distribution

Example prompts

  • “/release-engineering”

Workflow steps

8 steps, taken from the first numbered list in SKILL.md.

  1. Ensure all changes are committed on the working branch.
  2. Bump version — run ./gradlew bumpPatchVersion or edit app/build.gradle.kts manually for minor/major bumps.
  3. Write changelogs for F-Droid (see Changelog section below).
  4. Run the tests — ./gradlew :app:test, so the tag lands on a known good state.
  5. Create release commit — commit message format: Release with Signed-off-by trailer.
  6. Tag the release — lightweight tag matching versionName (e.g. 3.7.5). Tags are NOT annotated.
  7. Build signed APKs — only now, after the commit and tag: F-Droid builds reproducibly from the tagged commit, so the published APKs have to…
  8. GPG-sign the APKs (see GPG Signing below), then push the commit and tag and create the GitHub Release when the user confirms.

What it can do on your machine

Read from SKILL.md and the folder at commit e41eac5. 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 Engineering loads about 1.6k tokens when it runs. Until then it costs about 67 tokens; SKILL.md has 594 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~67
When it runs · the whole SKILL.md, loaded when a task matches
~1.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 hiroshiyui/GuilelessBopomofo at commit e41eac5, republished under its GPL-3.0 licence (© hiroshiyui). 594 words, ~1,574 tokens.

Download SKILL.mdSave it as .claude/skills/release-engineering/SKILL.md (or your agent's skills folder).
name
release-engineering
description
Release engineering tasks including version bumping, building release APKs, creating git tags, writing changelogs, and preparing F-Droid releases. Use when the user asks to prepare a release, bump version, tag a release, or build for distribution.
argument-hint
task description

Release Engineering

You are performing release engineering tasks for Guileless Bopomofo.

Version Scheme

  • versionName: semver-style MAJOR.MINOR.PATCH (e.g. 3.7.4)
  • versionCode: monotonically increasing integer (e.g. 199)
  • Both are defined in app/build.gradle.kts

Bump with:

bash
./gradlew bumpPatchVersion   # increments both versionCode (+1) and patch (+1)

For minor or major bumps, edit app/build.gradle.kts manually — the task only handles patch.

Release Process

The established release workflow follows this pattern:

  1. Ensure all changes are committed on the working branch.
  2. Bump version — run ./gradlew bumpPatchVersion or edit app/build.gradle.kts manually for minor/major bumps.
  3. Write changelogs for F-Droid (see Changelog section below).
  4. Run the tests — ./gradlew :app:test, so the tag lands on a known good state.
  5. Create release commit — commit message format: Release <versionName> with Signed-off-by trailer.
  6. Tag the release — lightweight tag matching versionName (e.g. 3.7.5). Tags are NOT annotated.
  7. Build signed APKs — only now, after the commit and tag: F-Droid builds reproducibly from the tagged commit, so the published APKs have to be built from exactly that commit. Signing requires a keystore passphrase, so do not run the build automatically. Prompt the user to build the signed APKs manually in Android Studio (Build > Generate Signed APK) or via the command line. Output: app/build/outputs/apk/release/ (debug builds go to app/build/outputs/apk/debug/). Android Studio may also leave copies in app/release/ and app/debug/, but the user signs the ones under app/build/outputs/apk/. Wait for the user to confirm the build is complete before proceeding.
  8. GPG-sign the APKs (see GPG Signing below), then push the commit and tag and create the GitHub Release when the user confirms.
Git Conventions
  • Release commit message: Release X.Y.Z
  • Tag name: X.Y.Z (just the version, no v prefix)
  • Tags are lightweight (not annotated): git tag <versionName>
  • Commits are signed off: --signoff

Changelogs (F-Droid)

Changelogs live at:

fastlane/metadata/android/en-US/changelogs/<versionCode>.txt
fastlane/metadata/android/zh-TW/changelogs/<versionCode>.txt
  • Filename is the versionCode (integer), not the versionName.
  • Max 500 characters per file.
  • Written in a friendly, first-person tone from the app's perspective.
  • Always create both en-US and zh-TW versions.
  • Use * for bullet points in en-US, * (fullwidth asterisk) in zh-TW.
  • To determine what changed, review commits since the previous release tag:
    bash
    git log --oneline <previous-tag>..HEAD

Build Commands Reference

bash
./gradlew :app:assembleDebug       # Debug build
./gradlew :app:assembleRelease     # Release build (minified + shrunk)
./gradlew :app:test                # Unit tests
./gradlew :app:connectedAndroidTest # Instrumented tests
./gradlew :app:clean               # Clean (includes libchewing build artifacts)
Show full SKILL.md (257 more words)Show less

GPG Signing

GPG signing requires interactive passphrase entry — do not run gpg commands automatically. Instead, prompt the user to sign the APKs manually with the commands below.

The APK filename follows the pattern org.ghostsinthelab.apps.guilelessbopomofo_v<versionName>-<buildType>.apk (configured by the archivesName setting in app/build.gradle.kts).

Provide the user with the exact commands to run:

bash
gpg --detach-sign --armor <apk-file>

For example, from the project root:

bash
gpg --detach-sign --armor app/build/outputs/apk/release/org.ghostsinthelab.apps.guilelessbopomofo_v3.7.5-release.apk
gpg --detach-sign --armor app/build/outputs/apk/debug/org.ghostsinthelab.apps.guilelessbopomofo_v3.7.5-debug.apk

Wait for the user to confirm signing is complete before proceeding to the GitHub Release step.

Verifying the signatures does not need a passphrase, so do it before uploading. gpg prints in the user's locale, so force English output and look for GOODSIG:

bash
LC_ALL=C gpg --status-fd 1 --verify <apk-file>.asc <apk-file> | grep GOODSIG

GitHub Release

After building and GPG-signing the APKs, create a GitHub Release using gh.

Release Notes

Write a human-friendly release note body — do not rely solely on --generate-notes. The note should:

  • Start with both the en-US and zh-TW F-Droid changelogs (already written earlier in the process), separated by a blank line.
  • Append the auto-generated changelog (commit list) below as a "Full Changelog" section for completeness.

Structure:

markdown
<en-US changelog content>

<zh-TW changelog content>

<!-- auto-generated below -->
**Full Changelog**: https://github.com/hiroshiyui/GuilelessBopomofo/compare/<previous-tag>...<versionName>
Creating the Release
bash
gh release create <versionName> \
  --title "<versionName>" \
  --notes "$(cat <<'EOF'
<release notes body as described above>
EOF
)" \
  <apk-and-asc-files...>

Upload both debug and release APKs along with their .asc signature files (4 assets total), all from app/build/outputs/apk/{debug,release}/:

  • org.ghostsinthelab.apps.guilelessbopomofo_v<version>-debug.apk
  • org.ghostsinthelab.apps.guilelessbopomofo_v<version>-debug.apk.asc
  • org.ghostsinthelab.apps.guilelessbopomofo_v<version>-release.apk
  • org.ghostsinthelab.apps.guilelessbopomofo_v<version>-release.apk.asc

The release title matches the tag/versionName (e.g. 3.7.5).

Important Reminders

  • Always confirm with the user before pushing commits/tags or creating GitHub releases.
  • Run tests before tagging a release if the user hasn't already.
  • The release APK requires a signing configuration — the user handles this outside of version control.
  • F-Droid builds from source using the tagged commit, so the tag must point to a buildable state.

Task: $ARGUMENTS

© hiroshiyui, GPL-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-engineering of hiroshiyui/GuilelessBopomofo.

Open the folder on GitHubat commit e41eac5

Compare with similar skills

Release Engineering 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 Engineering compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Release Engineering this skillhiroshiyui/GuilelessBopomofo135—~1.6kAutomated safety check: PassGPL-3.0
Release Bumpjamiepine/voicebox57k—~1.1kAutomated safety check: PassMIT
Git Workflow and Versioningaddyosmani/agent-skills102k2 repos~3.5kAutomated safety check: NotesMIT
Go-Redis Release Preparationredis/go-redis22k—~1.1kAutomated safety check: PassBSD-2-Clause
Hunk Release Workflowmodem-dev/hunk9.5k—~3.8kAutomated safety check: PassMIT
Find My Flagsandroidx/androidx6.1k—~664Automated safety check: PassApache-2.0

Similar skills

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

    Prepares a go-redis release locally: picks the next semver, gathers merged PRs, writes the RELEASE-NOTES entry and bumps versions, without publishing.

    22k GitHub stars~1.1k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Hunk Release Workflow

    modem-dev/hunk

    Maintainer workflow for preparing, publishing, verifying and curating Hunk releases, with confirmation gates before tags, publishes and public edits.

    9.5k GitHub stars~3.8k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Find My Flags

    androidx/androidx

    A skill your agent uses to find Compose feature flags introduced by a specific git user or email and map them to the library version in which they were added.

    6.1k GitHub stars~664 tokensUpdated today
    DevelopmentAuto-check passed
  • Opens the pybind11 release-preparation pull request: picking the release base, bumping the version in common.h and integrating the changelog, following docs/release.rst.

    18k GitHub stars~1.7k tokensUpdated yesterday
    DevelopmentAuto-check passed

More from hiroshiyui/GuilelessBopomofo

  • Code Review And Security Audit

    hiroshiyui/GuilelessBopomofo

    Review code for quality, correctness, and security vulnerabilities.

    135 GitHub stars~1.6k tokensUpdated 10 days ago
    Auto-check passed
  • Commit And Push

    hiroshiyui/GuilelessBopomofo

    Commit code changes and push via Git. An agent skill from hiroshiyui/GuilelessBopomofo.

    135 GitHub stars~793 tokensUpdated 10 days ago
    Auto-check: notes
  • Docs Engineering

    hiroshiyui/GuilelessBopomofo

    Writing/updating project documentation (README, PRIVACY-POLICY, NOTICES, changelogs) and maintaining F-Droid metadata.

    135 GitHub stars~806 tokensUpdated 10 days ago
    Auto-check passed

Categories

Questions about Release Engineering

What does Release Engineering do?

Release engineering tasks including version bumping, building release APKs, creating git tags, writing changelogs, and preparing F-Droid releases. Release Engineering is an agent skill from hiroshiyui/GuilelessBopomofo. Release engineering tasks including version bumping, building release APKs, creating git tags, writing changelogs, and preparing F-Droid releases.

When should I use Release Engineering?

Release Engineering fits situations like: the user asks to prepare a release; build for distribution.

How do I install Release Engineering in Claude Code?

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

How do I install Release Engineering in Codex?

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

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

What does Release Engineering need to run?

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

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

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

How many tokens does Release Engineering use?

About 1.6k tokens (SKILL.md is roughly 6.3k 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 Engineering?

Skills that share tags, products or a category with Release Engineering: Release Bump (jamiepine/voicebox, 57k stars), Git Workflow and Versioning (addyosmani/agent-skills, 102k stars), Go-Redis Release Preparation (redis/go-redis, 22k stars) and Hunk Release Workflow (modem-dev/hunk, 9.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Release Engineering?

hiroshiyui (a GitHub user) maintains it in hiroshiyui/GuilelessBopomofo, which has 135 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on September 27, 2026.

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