Skip to main content

release

Use ONLY when the user explicitly asks to cut/publish a Huabu desktop release or tag a version. Performs an outward action — bumps the version in apps/desktop/package.json, commits + annotated-tags vX.Y.Z, and pushes the branch + tag. That tag push auto-builds the macOS/Windows installers and publishes a GitHub Release. Provides `status`, `bump`, `tag-push`, and a one-command `run` (bump → tag-push).

Informações da origem

Repositório
microsoft/Huabu
Última atividade na origem
6 de agosto de 2026 às 07:14
Idioma detectado do SKILL.md
inglês
Estrelas
157
Forks
19

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Explorador de arquivos
2 arquivos

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
release
description
Use ONLY when the user explicitly asks to cut/publish a Huabu desktop release or tag a version. Performs an outward action — bumps the version in apps/desktop/package.json, commits + annotated-tags vX.Y.Z, and pushes the branch + tag. That tag push auto-builds the macOS/Windows installers and publishes a GitHub Release. Provides `status`, `bump`, `tag-push`, and a one-command `run` (bump → tag-push).
# Release Huabu ships exactly one artifact: the Huabu desktop (Electron) app. So there is one version per release, held in **`apps/desktop/package.json`**. A release bumps that version, makes one `Release vX.Y.Z` commit + annotated tag, and pushes the branch + tag. Everything past the push is automatic and lives in GitHub Actions: pushing a `vX.Y.Z` tag fires **`.github/workflows/release.yml`**, which builds the macOS + Windows installers and publishes them as a GitHub Release (with auto-generated notes) attached to that tag. The skill does **not** await that build — follow it in the Actions tab (workflow **"Release"**). The whole release is therefore just **`run` = `bump` → `tag-push`**. ```bash .agents/skills/release/scripts/release.sh <command> [options] ``` ## Agent policy — read first This skill pushes a tag that publishes a public GitHub Release. **Do not run `tag-push` or `run` unless the user has explicitly asked to cut/tag a release in this turn.** When unsure, print the command and let the user run it. - Read-only / safe anytime: `status`, and any subcommand with `--dry-run`. - `tag-push` and `run` refuse to act without `--yes` (there is no interactive prompt — be explicit). ## Commands | Command | What it does | | -------------------------- | -------------------------------------------------------------------------- | | `status` | Current version, latest tag, branch, tree state. Read-only. | | `bump <version>` | Write `<version>` into `apps/desktop/package.json`. Local only, no commit. | | `tag-push <version> --yes` | Commit `Release vX.Y.Z`, annotated tag `vX.Y.Z`, push branch + tag. | | `run <version> --yes` | The one release command: `bump` → `tag-push`. | Options: `--dry-run` (print without running), `--yes` (confirm the push), `-m/--message <text>` (annotated-tag message; default `Release vX.Y.Z`). ## Typical flow ```bash # 1. See where things stand. .agents/skills/release/scripts/release.sh status # 2. Preview the whole release without touching anything. .agents/skills/release/scripts/release.sh run 0.3.0 --yes --dry-run # 3. Cut it. .agents/skills/release/scripts/release.sh run 0.3.0 --yes ``` Then watch GitHub Actions → workflow **"Release"** for the `v0.3.0` build; when it finishes, the installers are attached to the `v0.3.0` GitHub Release. ## Guardrails (built into the script) - Version must be valid semver (`0.3.0`, `0.3.0-rc.1`). - `tag-push` refuses if `apps/desktop/package.json` isn't already at the target version — run `bump` first (or use `run`, which does both). - It **never moves an existing tag** — releases are immutable; pick a new version. It warns if the version doesn't advance past the latest tag. - The release commit is scoped to `apps/desktop/package.json` only, so unrelated working-tree changes are never swept into it. - Refuses on detached HEAD. ## Pre-release (draft) builds To vet installers before going public, don't use this skill — run the **"Release"** workflow manually (`workflow_dispatch`) from the Actions tab with a tag like `v0.3.0-rc.1`. The workflow derives the temporary desktop app version from this tag, so installer filenames, update metadata, and the app itself use `0.3.0-rc.1` without requiring a version commit. Manual runs publish a **draft** release you can inspect before making it public. ## Notes - The version lives **only** in `apps/desktop/package.json` — the root and other workspace packages are `private` with no meaningful version. If a future release needs to version another package, extend `VERSION_FILE` in `scripts/release.sh`. - Skills in this repo live under `.agents/skills/` (there is no `.claude/skills` symlink), so always invoke the script by its `.agents/skills/...` path.
Ver no GitHub