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

Quellinformationen

Repository
microsoft/Huabu
Letzte Quellaktivität
6. August 2026 um 07:14
Erkannte Sprache von SKILL.md
Englisch
Sterne
157
Forks
19

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
2 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
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.
Auf GitHub ansehen