Token导航 LogoToken导航TokenDH.com
研究检索只读github未标认证来源可访问许可证需确认审计通过

release发布

Agent Skill

release 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

282

周安装

12

GitHub Stars

1

下载量

99
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:release(发布)
来源仓库:https://github.com/ekroon/tabctl
仓库路径:skills/release
安装命令:
npx skills add https://github.com/ekroon/tabctl --skill release
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/ekroon/tabctl --skill release

简介

release 自动化版本发布流程,包括 bump、测试、构建、PR 合并和标签生成。

  • 适用于遵循 GitHub Actions 工作流的 CI/CD 发布场景。
  • 默认通过 PR 合并触发,支持自动合并和标签推送。
  • 使用前需配置分支保护规则和 GitHub Actions 工作流文件。
  • release 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

Release

Automate the full release cycle: version bump → test → build → commit → push branch → open PR → merge → tag → GitHub Release.

Direct pushes to main are blocked by a branch ruleset. All releases go through a PR.

Preferred GitHub Actions flow

The default release path is now GitHub Actions-driven:

  1. Run the Prepare Release workflow (.github/workflows/prepare-release.yml)
  2. Review/approve the generated release PR
  3. Let GitHub auto-merge the PR after checks pass
  4. The Tag Release workflow (.github/workflows/tag-release.yml) tags the merge commit
  5. The Release workflow (.github/workflows/release.yml) runs for that tag and publishes the artifacts

The manual flow below remains the fallback/operator path when you need to release outside GitHub Actions.

Version files

All version files must stay in sync. The Rust workspace manifest is the canonical Rust version source, and scripts/bump-version.js (exposed via npm run bump:*) updates the mirrored package versions in one command. The release workflow (release.yml) validates they match:

  1. rust/Cargo.toml — workspace package version (Rust source of truth)
  2. package.json — root npm package version (mirrors the workspace version) and optionalDependencies.tabctl-win32-x64
  3. package-lock.json — lockfile
  4. packages/win32-x64/package.json — Windows platform package
  5. rust/crates/tabctl/Cargo.toml — main Rust binary (inherits workspace version)
  6. rust/crates/host/Cargo.toml — host crate (inherits workspace version)
  7. rust/crates/graphql/Cargo.toml — GraphQL crate (inherits workspace version)
  8. rust/crates/shared/Cargo.toml — shared crate (inherits workspace version)
  9. rust/Cargo.lock — Rust lockfile

Never edit these version fields manually. Always use npm run bump:<kind>.

Prerequisites

  • Working tree is clean (git status shows no uncommitted changes)
  • On the main branch
  • gh CLI is authenticated (gh auth status)
  • npm test and npm run build pass

Workflow

Step 1: Pre-flight checks

git status --porcelain
git branch --show-current
gh auth status

If the working tree is dirty, stop and ask the user to commit or stash first. If not on main, warn the user and ask whether to proceed.

Step 2: Determine version bump

Find the last tag and analyze commits since then:

LAST_TAG=$(git tag --sort=-v:refname | head -1)
git log "${LAST_TAG}..HEAD" --oneline --no-decorate

Auto-detect bump type from conventional commits:

SignalBump
Any commit with BREAKING CHANGE in body/footer, or type ending in ! (e.g. feat!:)major
Any feat: or feat(scope): commitminor
Only fix:, perf:, docs:, chore:, refactor:, test:, ci:, build:, style:patch

Pre-release version handling:

If the current version is a pre-release (e.g. 0.6.0-alpha.9), compute the next version based on what the user requests:

  • Next alpha: increment the alpha number → 0.6.0-alpha.10
  • Release candidate: 0.6.0-rc.1
  • Stable release: 0.6.0
  • New minor/major alpha: e.g. 0.7.0-alpha.1 or 1.0.0-alpha.1

For stable versions, use standard semver bumping:

CURRENT=$(echo "$LAST_TAG" | sed 's/^v//')
IFS='.' read -r MAJOR MINOR PATCH <<< "$CURRENT"

# For major bump:
NEW="$((MAJOR + 1)).0.0"
# For minor bump:
NEW="$MAJOR.$((MINOR + 1)).0"
# For patch bump:
NEW="$MAJOR.$MINOR.$((PATCH + 1))"

Step 3: Show plan and confirm

Before making any changes, present a summary and use AskUser to confirm:

Release plan:
  Current version: v{CURRENT}
  New version:     v{NEW} ({BUMP_TYPE})
  Commits:         {N} commits since {LAST_TAG}

  {commit list}

  Steps:
  1. Create branch chore/release-v{NEW}
  2. Update all version files to {NEW}
  3. Run npm test
  4. Run npm run build
  5. Commit: chore(release): v{NEW}
  6. Push branch, open PR
  7. Wait for CI, merge PR (normal merge, not squash)
  8. Tag v{NEW} on main
  9. Create GitHub Release (triggers release.yml → npm publish + binary builds)

Ask the user to confirm the version. Offer the recommended bump plus alternatives. If the user picks a different bump or types a custom version, use that instead.

Step 4: Create release branch

git checkout -b "chore/release-v${NEW}"

Step 5: Update all version files

Use the bump script which updates all version files (package.json, package-lock.json, packages/win32-x64/package.json, 3× Cargo.toml, Cargo.lock) in one command:

# For the recommended bump type:
npm run bump:alpha    # 0.6.0-alpha.9 → 0.6.0-alpha.10
npm run bump:rc       # 0.6.0-alpha.10 → 0.6.0-rc.1
npm run bump:stable   # 0.6.0-rc.1 → 0.6.0
npm run bump:patch    # 0.6.0 → 0.6.1
npm run bump:minor    # 0.6.1 → 0.7.0
npm run bump:major    # 0.7.0 → 1.0.0

If the user chose a custom version that doesn't match a standard bump, update manually:

node scripts/bump-version.js <kind>

Verify the output matches the expected version.

Step 6: Run tests

npm test

If tests fail, stop and report the failure. Do NOT proceed with the release.

Step 7: Build

npm run build

If the build fails, stop and report the failure. Do NOT proceed with the release.

Step 8: Commit

git add package.json package-lock.json packages/win32-x64/package.json \
       rust/crates/tabctl/Cargo.toml rust/crates/host/Cargo.toml \
       rust/crates/graphql/Cargo.toml rust/crates/shared/Cargo.toml rust/Cargo.lock
git commit -m "chore(release): v${NEW}"

All these files are updated by scripts/bump-version.js in Step 5.

Step 9: Push branch and open PR

git push -u origin "chore/release-v${NEW}"
GH_PAGER="" gh pr create \
  --title "chore(release): v${NEW}" \
  --body "Bump all version files to ${NEW}. After merge, tag and create release." \
  --base main

Note the PR number from the output.

Step 10: Merge, tag, and release

Use the existing helper script which waits for CI, merges (normal merge, not squash), tags on main, and creates the GitHub release:

scripts/ci-wait-merge.sh <PR_NUMBER> --tag "v${NEW}"

This script:

  1. Waits for all CI checks to pass (gh pr checks --watch)
  2. Merges the PR with --merge --delete-branch (normal merge commit)
  3. Checks out main and pulls
  4. Creates annotated tag v{NEW}
  5. Pushes the tag
  6. Creates a GitHub release (with --prerelease for -alpha.N / -rc.N versions)

The release triggers the release.yml workflow which builds binaries and publishes to npm.

After completion, display the release URL so the user can review.

Dry-run mode

If the user asks for a dry run (or passes --dry-run), perform Steps 1-3 only: pre-flight checks, version analysis, and show the plan. Do NOT modify any files, commit, tag, push, or create a release.

Abort and rollback

If any step after Step 5 fails (tests, build, commit, push, or PR creation), provide rollback instructions:

# Switch back to main and delete the release branch
git checkout main
git branch -D "chore/release-v${NEW}"

# If PR was created, close it
gh pr close <PR_NUMBER> --delete-branch

# If tag was created locally
git tag -d "v${NEW}"

# If tag was pushed — only with explicit user confirmation
git push origin --delete "v${NEW}"

Safety rules

  • NEVER skip tests or build
  • NEVER force push
  • NEVER push directly to main — always use a PR
  • NEVER squash merge release PRs — use normal merge to preserve commit identity
  • NEVER create a release without user confirmation
  • NEVER delete existing tags or releases without explicit user request
  • If --dry-run, do NOT modify anything

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

36.21%
按下载量换算36

Claude

29.15%
按下载量换算29

Cursor

17.38%
按下载量换算17

Gemini CLI

9.12%
按下载量换算9

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

只读

该 Skill 主要提供规则、说明或参考内容,本身偏只读;真正读写文件、联网或执行命令仍取决于宿主 Agent 的任务。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills