Cutting A Release
TriliumNext/Trilium
A skill your agent uses when cutting, preparing, or debugging a Trilium release — bumping the monorepo version, tagging, or diagnosing a failed "Release" workflow run.
在 VLink master 分支校验工作树、远端同步、SemVer 版本镜像、CHANGELOG、 既有 tag/release 与 CI 状态,为 version.txt 当前版本创建 annotated tag, 推送 tag 并发布云端人工填写内容均为简体中文的 GitHub Release,随后 跟踪 release workflow 和产物.用户要求"打 tag"、"发布…
$ npx skills add thun-res/vlink --skill release -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install thun-res/vlink release --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/thun-res/vlink.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/release .claude/skills/release && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "release" agent skill from https://github.com/thun-res/vlink/tree/master/.agents/skills/release into .claude/skills/release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/thun-res/vlink/tree/master/.agents/skills/releaseType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add thun-res/vlink --skill release -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install thun-res/vlink release --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/thun-res/vlink.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/release .agents/skills/release && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "release" agent skill from https://github.com/thun-res/vlink/tree/master/.agents/skills/release into .agents/skills/release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add thun-res/vlink --skill release -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install thun-res/vlink release --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/thun-res/vlink.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/release .cursor/skills/release && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "release" agent skill from https://github.com/thun-res/vlink/tree/master/.agents/skills/release into .cursor/skills/release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/thun-res/vlink.git --path .agents/skills/release--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add thun-res/vlink --skill release -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install thun-res/vlink release --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/thun-res/vlink.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/release .gemini/skills/release && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "release" agent skill from https://github.com/thun-res/vlink/tree/master/.agents/skills/release into .gemini/skills/release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install thun-res/vlink releaseInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add thun-res/vlink --skill release -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/thun-res/vlink.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/release .github/skills/release && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "release" agent skill from https://github.com/thun-res/vlink/tree/master/.agents/skills/release into .github/skills/release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add thun-res/vlink --skill release -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install thun-res/vlink release --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/thun-res/vlink.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/release .opencode/skills/release && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "release" agent skill from https://github.com/thun-res/vlink/tree/master/.agents/skills/release into .opencode/skills/release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
release在 VLink master 分支校验工作树、远端同步、SemVer 版本镜像、CHANGELOG、 既有 tag/release 与 CI 状态,为 version.txt 当前版本创建 annotated tag, 推送 tag 并发布云端人工填写内容均为简体中文的 GitHub Release,随后 跟踪 release workflow 和产物.用户要求"打 tag"、"发布…
Release is an agent skill from thun-res/vlink. 在 VLink master 分支校验工作树、远端同步、SemVer 版本镜像、CHANGELOG、 既有 tag/release 与 CI 状态,为 version.txt 当前版本创建 annotated tag, 推送 tag 并发布云端人工填写内容均为简体中文的 GitHub Release,随后 跟踪 release workflow 和产物.用户要求"打 tag"、"发布 release"或 "从 master 发版"时使用.
Its SKILL.md is about 1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `agents/openai.yaml`).
It sits in Development, covering Changelog and release notes. It works with GitHub. The repository describes itself as: VLink is a high-performance C++ communication middleware for autonomous driving and embodied intelligence, positioned as a full-scenario alternative to ROS 2. The licence is Apache-2.0.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 1793889. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
ghgitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use gh and git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Release loads about 1k tokens when it runs. Until then it costs about 57 tokens; SKILL.md has 388 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from thun-res/vlink at commit 1793889, republished under its Apache-2.0 licence (© thun-res). 388 words, ~1,017 tokens.
.claude/skills/release/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.本 skill 只发布已经通过 PR 合入 thun-res/vlink master 的正式版本.
不修改版本文件、不提交代码、不 push master、不覆盖 tag、不删除或重建
既有 Release.先读仓库根 AGENTS.md、.agents/CI-AND-PR.md、
doc/15-contributing.md §15.17/§15.19.3 和
.github/workflows/release.yml.
本 skill 写入远端的 tag 注释、Release 标题、Release Notes 及其他人工 填写内容必须使用简体中文。产品名、版本、tag、代码标识、路径、命令和 原始错误信息保持原文。
逐项满足后才能继续:
用 gh auth status 与 gh repo view --json nameWithOwner 确认权限和
仓库;不要打印可能含凭据的 remote URL.
当前分支严格为 master,工作树和 index 完全干净,不存在 untracked
文件或冲突.
执行 git fetch origin master --tags,确认本地 HEAD 与
origin/master 完全相同.不得在 master 上 commit、merge、rebase、
reset 或 push.
从 version.txt 读取版本,必须严格匹配 X.Y.Z,每段为 0–255;tag
固定为 vX.Y.Z.
逐项核对 include/vlink/version.h、conanfile.py、可选
tools/vcpkg/vcpkg.json、README/README.en.md 版本徽章与
CHANGELOG.md 顶部正式版本段均等于该版本.发现不一致时停止,要求
回 release 分支运行 tools/update_version.sh 并经 PR 合入.
新版本必须高于除当前 tag 外的最高正式 SemVer tag.分别识别本地 tag、 远端 tag 和 GitHub Release 状态:
查询失败必须区分"确实不存在"与认证/网络/API 错误;后者直接停止.
分别用
gh run list --workflow ci-lint.yml --commit <HEAD_SHA> 和
gh run list --workflow ci-test.yml --commit <HEAD_SHA> 核对该
master commit 的两个工作流均已完成且成功.缺失、排队、运行中、
cancelled、skipped 或失败时停止;若因 paths-ignore 未触发,先由
用户显式调用 /cicd 为当前 master dispatch 两个工作流,成功后重新
执行门禁,不得绕过 CI 发版.
显式调用本 skill 授权在全部门禁通过后创建并推送当前版本 tag、发布 Release;版本不明确或任何门禁失败时不得继续.
从 CHANGELOG.md 当前 ## vX.Y.Z (日期) 标题起,提取到下一
## v... 标题之前:
VLink vX.Y.Z 正式发布.mktemp 保存 notes,发布流程结束后删除;不在仓库写临时文件.CHANGELOG 当前版本段为空、含占位内容或与实际 diff 明显不符时停止.
创建或推送 tag 前再次执行 git fetch origin master --tags,确认
当前 HEAD 仍等于先前通过 CI 的 HEAD_SHA 且
origin/master 仍等于该 SHA;任一变化都停止,重新从发布前门禁开始。
最后一次核对 HEAD_SHA、版本、tag 和 notes.
本地 tag 不存在且远端同名 tag 也不存在时创建 annotated tag:
git tag -a "vX.Y.Z" -m "发布 VLink vX.Y.Z"本地不存在但远端存在一致 tag 时,只 fetch 该 tag 后核对,不重新创建.
确认 tag 指向已验证的 HEAD_SHA 且类型为 annotated tag.
远端 tag 不存在时只推送该 tag:
git push origin "refs/tags/vX.Y.Z"远端已存在一致 tag 时跳过 push.
禁止 git push --tags、force、移动或复用不一致 tag.推送失败时保留
本地 tag 并报告状态,不得自动删除后重试.
远端 tag 已确认后,按 Release 当前状态继续:
Release 不存在时先创建 draft,降低 notes/title 错误直接对外发布的 风险:
gh release create "vX.Y.Z" --repo thun-res/vlink --verify-tag --draft \
--target "<HEAD_SHA>" --title "VLink vX.Y.Z 正式发布" \
--notes-file "<notes-file>"已存在 draft 时不重复创建.用 gh release view 核对 tag、target、
中文标题、中文正文和 draft 状态;若内容不一致则停止,不得静默覆盖.
draft 核对无误后用
gh release edit "vX.Y.Z" --draft=false --latest 正式发布.
release: published 将自动触发 .github/workflows/release.yml.
Release 已 published 时核对其 tag/target/title/notes 及人工填写内容 的语言;一致则直接进入 workflow 与资产检查,不再次 edit.
如果 draft 创建或正式发布失败,不得删除远端 tag、Release 或重建同名 对象;报告当前阶段,下次从已存在对象继续幂等恢复.
release 事件触发的 release.yml run,避免误看其他分支或
手动 dispatch.SHA256SUMS
已上传,资产缺失即报告为未完成.发布页面建立与发布产物完成是两个阶段;只有 tag、GitHub Release、 workflow 和资产全部核对通过后才能宣称发版完成.
返回版本、tag、tag 指向 SHA、Release URL、workflow URL/结论和资产摘要. 明确确认 master 未被 push、未 force、未覆盖/删除既有 tag 或 Release; 如停在中间阶段,给出已完成状态和安全的继续入口.
© thun-res, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in .agents/skills/release of thun-res/vlink.
Open the folder on GitHubat commit 1793889
Release next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Release this skillthun-res/vlink | 115 | — | ~1k | Automated safety check: Pass | Apache-2.0 | |
| Cutting A ReleaseTriliumNext/Trilium | 38k | — | ~3.2k | Automated safety check: Pass | AGPL-3.0 | |
| Mole CLI Release Flowtw93/Mole | 70k | — | ~2.5k | Automated safety check: Pass | GPL-3.0 | |
| Draft Release Notesjamiepine/voicebox | 57k | — | ~941 | Automated safety check: Pass | MIT | |
| Mole Release Notes Publishertw93/Mole | 70k | — | ~1.9k | Automated safety check: Pass | GPL-3.0 | |
| Release Bumpjamiepine/voicebox | 57k | — | ~1.1k | Automated safety check: Pass | MIT |
TriliumNext/Trilium
A skill your agent uses when cutting, preparing, or debugging a Trilium release — bumping the monorepo version, tagging, or diagnosing a failed "Release" workflow run.
tw93/Mole
Runbook for assessing and executing a Mole CLI release: distribution channels, pre-flight checks, capital-V tags, build artifacts and the handoff to curated release notes.
jamiepine/voicebox
Writes or refreshes the Unreleased section of CHANGELOG.md as a themed narrative built from the commits, PRs and diff since the last version tag.
tw93/Mole
Publishes curated, bilingual release notes for an existing Mole version tag with gh release edit, including contributor thanks and reactions, after the release workflow finishes.
jamiepine/voicebox
Ends a release cycle by moving the Unreleased changelog notes under a dated version heading, bumping version files with bumpversion and tagging the commit.
jfernandez/bpftop
Cut a new versioned release of bpftop — pick the version, open a version-bump PR, sign-tag the merge commit on main, and draft GitHub release notes in the project's established format.
thun-res/vlink
调查 VLink 中可复现的缺陷、文档遗漏或功能建议,搜索 open/closed Issue 去重,按仓库模板用自然、具体、证据充分的简体中文草拟或创建 Issue, 可读取既有 Issue 上下文后草拟或发布单条回复.用户要求"提 issue"、 "创建 issue"、"检查是否已有 issue"、"回复 issue"、"评论 issue"、 "帮我回应…
thun-res/vlink
以 AddressSanitizer(ENABLETESTSANITIZE=ON)构建并运行 vlink-test 单元测试,复现 CI 的 ASan 门禁。用户要求"跑 asan"、"内存检测测试"、 排查 ci-test 的 sanitize 失败时使用。
thun-res/vlink
构建并运行 vlink-bench 性能基准(showcase/quick/full 预设),生成 HTML/JSON 报告。用户要求"跑 bench"、"性能测试"、对比后端吞吐/延迟、 验证性能回归时使用。
thun-res/vlink
用 gh CLI 触发/查看 GitHub CI/CD:手动 dispatch 工作流 (release/coverage/docker)、查看运行状态与失败日志、重跑失败 job.
thun-res/vlink
对指定文件或全仓库运行 clang-tidy(WarningsAsErrors='')。用户要求 "跑 clang-tidy"、"tidy 检查某文件"、排查 CI tidy 门禁失败时使用。
thun-res/vlink
提交前强制执行 VLink 的 format 与 check skill,再分析当前工作树的全部 staged、unstaged 与 untracked 改动,按模块、功能和依赖关系拆分为可独立 评审的 Conventional Commits,生成简洁且覆盖重要行为的英文 commit message 并逐组提交。用户要求“提交当前改动”、“按功能拆 commit”、 “自动写 commit…
Works with
Categories
在 VLink master 分支校验工作树、远端同步、SemVer 版本镜像、CHANGELOG、 既有 tag/release 与 CI 状态,为 version.txt 当前版本创建 annotated tag, 推送 tag 并发布云端人工填写内容均为简体中文的 GitHub Release,随后 跟踪 release workflow 和产物.用户要求"打 tag"、"发布…. Release is an agent skill from thun-res/vlink.用户要求"打 tag"、"发布 release"或 "从 master 发版"时使用.
Release fits situations like: tasks that involve Changelog and release notes.
Run `npx skills add thun-res/vlink --skill release -a claude-code`. Or copy the skill folder (.agents/skills/release in thun-res/vlink) into .claude/skills/release in your project. Claude Code loads it when a task matches its description.
Run `npx skills add thun-res/vlink --skill release -a codex`. Or copy the skill folder (.agents/skills/release in thun-res/vlink) into .agents/skills/release in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add thun-res/vlink --skill release -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/release, .gemini/skills/release, .github/skills/release and .opencode/skills/release in your project.
Going by SKILL.md and its folder, Release needs the command-line tools its instructions call (gh and git).
SKILL.md contains no URLs. Its commands use gh and git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Release is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1k tokens (SKILL.md is roughly 4.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Release: Cutting A Release (TriliumNext/Trilium, 38k stars), Mole CLI Release Flow (tw93/Mole, 70k stars), Draft Release Notes (jamiepine/voicebox, 57k stars) and Mole Release Notes Publisher (tw93/Mole, 70k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
thun-res (a GitHub user) maintains it in thun-res/vlink, which has 115 GitHub stars. The repository holds 16 skills in this directory. The repository was last updated on October 7, 2026.
Source: thun-res/vlink on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.