원클릭으로
release
Hit 项目发布 skill。构建 release 资产, 根据用户提示生成草稿内容,等待用户审核后执行发布命令 (git tag / push / gh release create / git cnb release create)。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Hit 项目发布 skill。构建 release 资产, 根据用户提示生成草稿内容,等待用户审核后执行发布命令 (git tag / push / gh release create / git cnb release create)。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Hit 项目实测流程专用 skill。按 TEST_FLOW.md 执行完整命令测试,生成 REPORT.md 测试报告,并更新 BUGS.md 记录新发现的问题。
Hit 项目代码审查专用 skill。按 TODO.md 阶段对完成代码做结构化审查, 覆盖 Rust 代码质量、安全审计,按标准报告格式输出审查报告。
阅读代码审查报告,逐项核实问题,决定是否需要修改, 并在报告末尾追加「报告回执」章节。 当用户说"写回执"、"回复审查"、"处理 review"时触发。
Review Hit 项目 docs/ 下全部文档的跨文档一致性——检查文件存在性、交叉引用、表格格式、编号连贯性、内容冲突
创建 Hit 项目的新 workspace crate 子模块。用于用户需要添加新 crate 时自动搭建 Cargo.toml 和 src/lib.rs 骨架并注册到 workspace。
验证 Hit 项目代码完整性——运行编译检查、静态分析和全部测试。在用户要求"验证改动"、"跑一遍检查"、或完成任务准备收尾时使用。
| name | release |
| description | Hit 项目发布 skill。构建 release 资产, 根据用户提示生成草稿内容,等待用户审核后执行发布命令 (git tag / push / gh release create / git cnb release create)。 |
| license | MIT |
| compatibility | Hit 项目 |
| metadata | {"version":"1.0.0"} |
| allowed-tools | Bash(cargo:*) Bash(git:*) Read Write Edit Glob Grep |
| user_invocable | true |
| disable_model_invocation | false |
构建 Windows 二进制包,生成 release 草稿,待用户审核后执行发布命令。
当用户提到以下关键词时触发:
release / 发布 / 打 tag推到远程 / 创建 release打包发布在开始之前,先确认环境:
# 1. gh CLI 已安装并登录
gh auth status
# 期望:✓ Logged in to github.com as <user>
# 2. git-cnb 已安装
git cnb --version
# 期望:git-cnb version x.x.x
# 3. 当前分支是 main(或用户指定的分支名)
git branch --show-current
如果 gh auth status 报错,提示用户先运行 gh auth login。
如果 git cnb --version 报错,提示用户先安装 git-cnb。
询问用户版本号(如 1.0.0),或用以下命令推断:
# 从 Cargo.toml 读取当前版本
$ver = Select-String -Path "Cargo.toml" -Pattern '^version = "(.+?)"' | ForEach-Object { $_.Matches.Groups[1].Value }
Write-Host "当前 workspace 版本:$ver"
用户确认版本号后,设置 $Version 和 $Tag = "v$Version"。
直接上传 hit.exe + hit-shim.exe(不再打 zip)。install-hit.ps1 的网络下载模式会同时下载这两个文件(URL 分别为 $baseUrl/.../hit.exe 与 $baseUrl/.../hit-shim.exe),故两者都必须上传。
cargo build --release -p hit-cli -p hit-shim
if ($LASTEXITCODE -ne 0) { Write-Fail "cargo build 失败" }
$assets = @('hit.exe', 'hit-shim.exe')
foreach ($a in $assets) {
$src = "target\release\$a"
if (-not (Test-Path $src)) { Write-Fail "产物不存在:$src" }
Write-Host "产物:$src"
}
根据以下模板生成草稿内容,写入 draft_release.md,展示给用户审核:
# Release 草稿 — Hit v${Version}
## 标题
Hit v${Version}
## 自动生成的 Release Notes
<!-- 占位,gh release create --generate-notes 会自动填充 -->
## 变更摘要
<!-- 从 git log 提取自上一个 tag 以来的关键提交 -->
$(git log $(git describe --tags --abbrev=0 2>/dev/null || echo "HEAD~10")..HEAD --oneline --no-merges | ForEach-Object { "- $_" })
## 包含的资产
- hit.exe(x86_64-pc-windows-msvc,主程序)
- hit-shim.exe(x86_64-pc-windows-msvc,轻量 shim 代理,~200KB)
## 发布操作
将执行以下命令:
```powershell
# 1. 提交构建产物
git add -A
git commit -m "release: v${Version}"
# 2. 打 tag
git tag ${Tag}
# 3. 推送
git push origin main ${Tag}
# 4. 创建 GitHub Release(上传两个资产)
gh release create ${Tag} hit.exe hit-shim.exe --title "Hit v${Tag}" --generate-notes
# 5. 创建 CNB Release(分别上传两个资产)
git cnb release create ${Tag}
git cnb release upload ${Tag} hit.exe
git cnb release upload ${Tag} hit-shim.exe
文件写入 draft_release.md 后,展示给用户审核。告知用户:
用户确认后,按以下顺序执行。任一命令失败时立即停止并报告:
# 1. 确保在正确分支
$branch = git branch --show-current
if ($branch -ne 'main') {
Write-Warn "当前不在 main 分支(当前:$branch),继续?"
}
# 2. 提交 + tag + push
git add -A
git commit -m "release: v${Version}"
git tag ${Tag}
git push origin main ${Tag}
# 3. GitHub Release(上传 hit.exe + hit-shim.exe)
gh release create ${Tag} hit.exe hit-shim.exe --title "Hit v${Tag}" --generate-notes
# 4. CNB Release(分别上传两个资产)
git cnb release create ${Tag}
git cnb release upload ${Tag} hit.exe
git cnb release upload ${Tag} hit-shim.exe
# 删除本地 exe(构建产物已在 target/release/,无需保留副本)
# 注:不再复制到仓库根,故无需清理根目录文件
Write-Host "发布完成!GitHub: https://github.com/locusyuri/Hit/releases/tag/${Tag}"
Write-Host "CNB: https://cnb.cool/catmono/Hit/-/releases"
draft_release.md 保留在项目根目录,之后可手动或自动删除git cnb release 需要 CNB_TOKEN 环境变量;CI 中自动注入,本地需用户自备