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

소스 정보

저장소
microsoft/Huabu
최근 소스 활동
2026년 8월 6일 07:14
감지된 SKILL.md 언어
영어
스타
157
포크
19

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
2 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
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.
GitHub에서 보기