Agent skill

Release Publishing

by FNOSP in FNOSP/FlyNarwhal

A skill your agent uses when publishing a new release of FlyNarwhal desktop.

MITAuto-check passedDevelopment

Install Release Publishing

skills CLI
$ npx skills add FNOSP/FlyNarwhal --skill release-publishing -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install FNOSP/FlyNarwhal release-publishing --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/FNOSP/FlyNarwhal.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/release-publishing .claude/skills/release-publishing && rm -rf skills-src

Use ~/.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/

Facts

Skill name
release-publishing
GitHub stars
495
Token cost
~1.2k tokens
SKILL.md length
335 words
Files
1
Skills in repo
8
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when publishing a new release of FlyNarwhal desktop.

  • Works in 4 steps: 更新 pubspec.yaml → 更新 CHANGELOG.md → 用户确认(必须) → …
  • Publishing a new release of FlyNarwhal desktop
  • SKILL.md covers When to Use This Skill, 发布前准备, 发布步骤 and 触发后的行为, plus 3 more sections
  • Calls git

What it does

Release Publishing is an agent skill from FNOSP/FlyNarwhal. Use when publishing a new release of FlyNarwhal desktop. Covers version bump, CHANGELOG editing, user confirmation, commit, tag, and push to trigger the release workflow.

Its SKILL.md is about 1.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Changelog and release notes. It works with Flutter. The repository describes itself as: 基于 Flutter 框架开发的适用于飞牛影视的跨平台客户端. The licence is MIT.

When your agent uses it

  • Publishing a new release of FlyNarwhal desktop
  • The release workflow

Example prompts

  • “/release-publishing”

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. 更新 pubspec.yaml
  2. 更新 CHANGELOG.md
  3. 用户确认(必须)
  4. 提交、推送、打 tag

What it can do on your machine

Read from SKILL.md and the folder at commit c94d847. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Release Publishing loads about 1.2k tokens when it runs. Until then it costs about 47 tokens; SKILL.md has 335 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~47
When it runs · the whole SKILL.md, loaded when a task matches
~1.2k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from FNOSP/FlyNarwhal at commit c94d847, republished under its MIT licence (© FNOSP). 335 words, ~1,244 tokens.

Download SKILL.mdSave it as .claude/skills/release-publishing/SKILL.md (or your agent's skills folder).
name
release-publishing
description
Use when publishing a new release of FlyNarwhal desktop. Covers version bump, CHANGELOG editing, user confirmation, commit, tag, and push to trigger the release workflow.
license
MIT
metadata.version
1.0.0
metadata.domain
release
metadata.triggers
release, publish, version bump, CHANGELOG, tag, pubspec, alpha, beta, stable
metadata.role
specialist
metadata.scope
workflow
metadata.output-format
steps
metadata.related-skills
github-workflow-automation

FlyNarwhal 桌面端发布流程

本 skill 定义 FlyNarwhal Flutter 桌面端从准备到推送 tag 的完整发布流程。需要发布新版本时必须遵循。

When to Use This Skill

  • 用户要求发布新版本(如“发布 2.1.1-beta”)
  • 需要整理 Unreleased 变更到正式版本节
  • 需要打 tag 触发 GitHub release workflow

发布前准备

  1. 确认发布渠道与版本号

    • 语义化版本:MAJOR.MINOR.PATCH[-prerelease]
    • 常见后缀:alpha、beta(首字母可大写,如 Alpha、Beta,但仓库惯例为 -alpha / -beta 小写)
    • 当前 pubspec.yaml 版本必须与目标版本一致
  2. 检查自上次发布以来的提交

    • 使用 git log --oneline v<last-version>..HEAD 列出待发布提交
    • 先按功能分组:把围绕同一功能/页面的多个 commit(新增 + 后续修复/优化)视为一件事,再按 Added / Changed / Fixed 分类到 CHANGELOG.md
    • 撰写时遵循下文「面向用户的写作规范」,禁止照搬 commit message

发布步骤

1. 更新 pubspec.yaml
yaml
version: 2.1.1-beta
  • 版本号必须与 tag 去掉前导 v 后完全一致
  • 发布构建脚本 scripts/release/build_desktop.dart 会从 pubspec.yaml 读取 _packageVersion(),并注入 --dart-define=APP_FULL_VERSION=${_packageVersion()}
  • GitHub Actions workflow 也会在 tag push 后读取 pubspec.yaml 生成安装包文件名
2. 更新 CHANGELOG.md

将 ## [Unreleased] 下的内容整理为新的版本节,并清空 Unreleased 的 Added / Changed / Fixed:

markdown
## [Unreleased]

### Added

### Changed

### Fixed

## [2.1.1-beta] - 2026-08-16

> 💡 **如遇自动更新失败,请访问 [https://github.com/FNOSP/FlyNarwhal/releases](https://github.com/FNOSP/FlyNarwhal/releases) 下载最新安装包后手动更新。**

### Added

- ...

### Changed

- ...

### Fixed

- ...
面向用户的写作规范(必须遵循)

更新日志的读者是普通用户,不是开发者。整理 git log 提交时不得照搬 commit message,必须按下述规则重写:

  1. 以结果为导向,禁止技术名词堆砌

    • 描述用户能感知到的变化,而不是实现手段或解决过程
    • 句式模板:
      • 新增:新增xxx功能
      • 修复:解决了xxx问题 / 修复了xxx时xxx的问题
      • 优化:优化了xxx的体验
      • 平台:新增支持xxx平台/架构安装包
    • ✅ 新增支持跳过片头片尾设置,可自定义跳过时长
    • ❌ 调整 skip config 的存储 key 为 parent_guid 并修复 setConfigByItem 传参错误
    • ❌ 重构 DetailTags 组件,type=='Episode' 时隐藏演职人员
    • 常见需要转写的技术词:组件名、路由路径、字段名、缓存策略、协议名(HTTP/WebSocket/QUIC)、构建/打包细节、第三方库名。这些一律翻译成用户视角的功能描述;若无法翻译(用户完全无感知,如纯内部重构、CI 脚本修复),则不写入 CHANGELOG。
  2. 同一版本内相同功能只总结为一件事

    • 一个版本中若干 commit 围绕同一功能(如先新增功能,后续 commit 修复其 bug、优化其体验),合并为一条,通常写成"新增xxx功能"即可
    • ❌ 既写 新增弹幕显示功能 又写 修复了弹幕在视频未播放时提前显示的问题
    • ❌ 既写 优化了选集卡片交互 又写 修复了点击选集卡片空白区域无响应的问题
    • ✅ 只写 新增xxx功能(其间的修复/优化已被该条覆盖)
    • 判断标准:两条描述是否指向用户眼中的同一个功能点?是则合并。分组时以功能/页面/用户场景为单位,而不是以 commit 为单位。
    • 只有当修复的问题与该功能的新增无关、且用户会独立感知到时(如修复了上个版本遗留的老问题),才单独成条。
  3. 合并后的条目归类

    • 同一功能"新增 + 后续修复/优化"合并后归入 Added
    • Fixed 只放针对已有功能的独立问题修复
    • 一条只说一件事,避免一句话塞多个功能点;每条一般不超过一行
各渠道 CHANGELOG 规范
渠道警告块手动下载提示说明
alpha必须包含“⚠️ 此版本为测试版本(Alpha),仅供内部验证,禁止下载安装使用。”保留Alpha 仅内部验证
beta不要加内部验证警告保留Beta 面向外部用户,但仍可提示手动下载
stable不要加可选正式版

⚠️ 重要:只有 Alpha 版本添加“仅供内部验证”警告块。Beta / Stable 不要添加该警告。

3. 用户确认(必须)

在改完版本号和 CHANGELOG 后、提交推送前,必须向用户展示变更摘要并询问:

  • 是否确认推送当前分支?
  • 是否确认创建 tag v<version>?
  • 是否还需要修改版本号或 CHANGELOG?

不得在未确认的情况下直接 git push 或 git push origin --tags。

4. 提交、推送、打 tag

用户确认后执行:

bash
# 1. 提交版本与 changelog
git add pubspec.yaml CHANGELOG.md
git commit -m "release: bump version to <version>"

# 2. 推送当前分支
git push origin <current-branch>

# 3. 创建并推送 tag
git tag v<version>
git push origin v<version>

注意:

  • tag 必须以 v 开头,例如 v2.1.1-beta
  • tag 去掉 v 后必须严格等于 pubspec.yaml 版本号
  • 提交信息末尾需追加:
    Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

触发后的行为

  • GitHub Actions .github/workflows/build-desktop.yml 在 push tags: 'v*' 时触发
  • workflow 会构建 Windows / macOS / Linux 的 x64 与 arm64 安装包
  • release job 会读取 CHANGELOG.md 中对应 tag 的节作为 release body,并自动上传到 GitHub Release
  • 如果 pubspec.yaml 版本与 tag 不一致,build_desktop.dart 中的 _validateGitHubTagVersion 会导致构建失败

常见注意事项

  1. 预发布资产文件名后缀

    • 安装包名必须带完整版本后缀(如 -beta),以便应用内更新器匹配
    • 该逻辑由 build_desktop.dart 的 _packageVersion() 保证
  2. RPM 包版本处理

    • RPM 版本字段不支持 -,预发布后缀会被拆入 Release/iteration 字段
    • 但发布文件名仍保留完整版本
  3. 不要手动编辑 .github/workflows/build-desktop.yml 中的矩阵

    • 除非明确需要新增/删除构建目标
  4. CHANGELOG 节标题日期

    • 使用发布当天日期,格式 YYYY-MM-DD

反模式(禁止)

  • ❌ 未询问用户直接推送 tag
  • ❌ 版本号与 tag 不一致
  • ❌ Beta / Stable 版本复制 Alpha 警告块
  • ❌ 遗漏 pubspec.yaml 或 CHANGELOG.md 的同步更新
  • ❌ 使用 git push --tags 一次性推送所有本地 tag(可能误推旧 tag)
  • ❌ CHANGELOG 照搬 commit message 或堆砌技术名词(组件名、字段名、路由、库名等)
  • ❌ 同一功能的"新增 + 修复 + 优化"拆成多条重复描述(应合并为一条"新增xxx功能")

快速检查清单

  • 已确认目标版本号与渠道
  • pubspec.yaml 已更新
  • CHANGELOG.md 已新增对应版本节,Unreleased 已清空
  • CHANGELOG 条目面向普通用户:无技术名词、同一功能已合并为一条
  • 渠道警告块符合规范(Alpha 有,Beta/Stable 无)
  • 已展示变更摘要并获得用户确认
  • 已提交、推送分支
  • 已创建并推送 tag v<version>

© FNOSP, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/release-publishing of FNOSP/FlyNarwhal.

Open the folder on GitHubat commit c94d847

Compare with similar skills

Release Publishing 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.

Release Publishing compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Release Publishing this skillFNOSP/FlyNarwhal495—~1.2kAutomated safety check: PassMIT
Adding Release Notesflutter/devtools1.7k—~1kAutomated safety check: PassBSD-3-Clause
Release Pluginflutter/flutter-intellij2k—~1kAutomated safety check: PassBSD-3-Clause
Prepare Flet Releaseflet-dev/flet17k—~944Automated safety check: PassApache-2.0
Aaalice Launcher ReleaseAaalice233/Aaalice_NAI_Launcher187—~1.2kAutomated safety check: PassMIT
Write Changelog Entryflet-dev/flet17k—~1.7kAutomated safety check: PassApache-2.0

Similar skills

  • Adding Release Notes

    flutter/devtools

    Adds user-facing change descriptions to DevTools release notes.

    1.7k GitHub stars~1k tokensUpdated today
    DevelopmentAuto-check passed
  • Release Plugin

    flutter/flutter-intellij

    Prepare and execute a new release for the flutter-intellij plugin, including updating dependencies, compatibility bounds, changelogs, and verification.

    2k GitHub stars~1k tokensUpdated today
    DevelopmentAuto-check passed
  • A skill your agent uses when asked to prepare new Flet release by bumping versions and author release notes.

    17k GitHub stars~944 tokensUpdated today
    DevelopmentAuto-check passed
  • Aaalice Launcher Release

    Aaalice233/Aaalice_NAI_Launcher

    为 Aaalice NAI Launcher 准备并发布新版本,包括同步 main、更新版本号、生成并逐项审查 Changelog 材料、撰写用户更新日志、执行发布前验证、提交、创建并推送 v tag。用户提到发布 Launcher 版本、准备 Release、写 CHANGELOG、更新日志或 release notes 时使用。

    187 GitHub stars~1.2k tokensUpdated 3 days ago
    DevelopmentAuto-check passed
  • A skill your agent uses when asked to add, revise, or review a changelog or release-notes entry in this repo.

    17k GitHub stars~1.7k tokensUpdated today
    DevelopmentAuto-check passed
  • Frb Write Changelog

    fzyzcjy/flutter_rust_bridge

    Update flutterrustbridge CHANGELOG.md for a new release by collecting merged PRs since the previous version tag, mapping them to the target release section, and formatting entries to match the…

    5.4k GitHub stars~2k tokensUpdated yesterday
    DevelopmentAuto-check passed

More from FNOSP/FlyNarwhal

All 8 skills in this repo
  • GitHub Actions Creator

    FNOSP/FlyNarwhal

    A skill your agent uses when the user wants to create, generate, or set up a GitHub Actions workflow.

    495 GitHub starsUsed in 1 repo~2.4k tokens
    Auto-check passed
  • Automate GitHub workflows with AI assistance. An agent skill from FNOSP/FlyNarwhal.

    495 GitHub starsUsed in 8 repos~5.4k tokens
    Auto-check passed
  • Flutter Tester

    FNOSP/FlyNarwhal

    A skill your agent uses when creating, writing, fixing, or reviewing tests in a Flutter project.

    495 GitHub stars~1.4k tokensUpdated 2 days ago
    Auto-check passed
  • Flutter Expert

    FNOSP/FlyNarwhal

    A skill your agent uses when building cross-platform applications with Flutter 3+ and Dart.

    495 GitHub starsUsed in 2 repos~758 tokens
    Auto-check passed
  • Remote API Development

    FNOSP/FlyNarwhal

    A skill your agent uses when adding, modifying, or refactoring any remote/HTTP API call in this Flutter project.

    495 GitHub stars~1.3k tokensUpdated 2 days ago
    Auto-check passed
  • Swift Expert

    FNOSP/FlyNarwhal

    A skill your agent uses when building iOS/macOS applications with Swift 5.9+, SwiftUI, or async/await concurrency.

    495 GitHub stars~813 tokensUpdated 2 days ago
    Auto-check passed

Works with

Categories

Questions about Release Publishing

What does Release Publishing do?

A skill your agent uses when publishing a new release of FlyNarwhal desktop. Release Publishing is an agent skill from FNOSP/FlyNarwhal. Use when publishing a new release of FlyNarwhal desktop.

When should I use Release Publishing?

Release Publishing fits situations like: publishing a new release of FlyNarwhal desktop; the release workflow.

How do I install Release Publishing in Claude Code?

Run `npx skills add FNOSP/FlyNarwhal --skill release-publishing -a claude-code`. Or copy the skill folder (.agents/skills/release-publishing in FNOSP/FlyNarwhal) into .claude/skills/release-publishing in your project. Claude Code loads it when a task matches its description.

How do I install Release Publishing in Codex?

Run `npx skills add FNOSP/FlyNarwhal --skill release-publishing -a codex`. Or copy the skill folder (.agents/skills/release-publishing in FNOSP/FlyNarwhal) into .agents/skills/release-publishing in your project. Codex loads it when a task matches its description.

Can I use Release Publishing in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add FNOSP/FlyNarwhal --skill release-publishing -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-publishing, .gemini/skills/release-publishing, .github/skills/release-publishing and .opencode/skills/release-publishing in your project.

What does Release Publishing need to run?

Going by SKILL.md and its folder, Release Publishing needs the command-line tools its instructions call (git).

Does Release Publishing access the network?

SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Release Publishing safe to install?

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.

What licence does Release Publishing use?

Release Publishing is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Release Publishing use?

About 1.2k tokens (SKILL.md is roughly 5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Release Publishing?

Skills that share tags, products or a category with Release Publishing: Adding Release Notes (flutter/devtools, 1.7k stars), Release Plugin (flutter/flutter-intellij, 2k stars), Prepare Flet Release (flet-dev/flet, 17k stars) and Aaalice Launcher Release (Aaalice233/Aaalice_NAI_Launcher, 187 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Release Publishing?

FNOSP (a GitHub organization) maintains it in FNOSP/FlyNarwhal, which has 495 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on October 6, 2026.

Source: FNOSP/FlyNarwhal on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.