Agent skill

Frb Publish Release

by fzyzcjy in fzyzcjy/flutter_rust_bridge

Publish a flutterrustbridge release end to end: preflight checks, changelog preparation, frbinternal release publishing, released-version polling, CI babysitting, and post-release CI verification.

MITAuto-check passedMobile

Install Frb Publish Release

skills CLI
$ npx skills add fzyzcjy/flutter_rust_bridge --skill frb-publish-release -a claude-code

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

GitHub CLI
$ gh skill install fzyzcjy/flutter_rust_bridge frb-publish-release --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/fzyzcjy/flutter_rust_bridge.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/frb-publish-release .claude/skills/frb-publish-release && 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
frb-publish-release
GitHub stars
5.4k
Token cost
~2.9k tokens
SKILL.md length
1,395 words
Files
3
Skills in repo
28
Repo updated
First seen
Licence
MIT

At a glance

Publish a flutterrustbridge release end to end: preflight checks, changelog preparation, frbinternal release publishing, released-version polling, CI babysitting, and post-release CI verification.

  • Works in 7 steps: Preflight → Reconcile Contributors → Write Changelog → …
  • Tasks that involve Cross-platform mobile apps
  • SKILL.md covers Workflow and Related Skills
  • Runs Python scripts from its folder; calls git and uv

What it does

Frb Publish Release is an agent skill from fzyzcjy/flutter_rust_bridge. Publish a flutterrustbridge release end to end: preflight checks, changelog preparation, frbinternal release publishing, released-version polling, CI babysitting, and post-release CI verification.

Its SKILL.md is about 2.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `release_ci_gate.py` and `test_release_ci_gate.py`).

It sits in Mobile, covering Cross-platform mobile apps and Changelog and release notes. It works with Rust and Flutter. The repository describes itself as: Flutter/Dart <- Rust binding generator, feature-rich, but seamless and simple. The licence is MIT.

When your agent uses it

  • Tasks that involve Cross-platform mobile apps
  • Tasks that involve Changelog and release notes

Example prompts

  • “/frb-publish-release”

Requirements

  • Python 3
  • Docker

Workflow steps

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

  1. Preflight
  2. Reconcile Contributors
  3. Write Changelog
  4. Pre-Publish Independent Audit
  5. Publish
  6. Check Released Versions
  7. Babysit CI And Post-Release CI

What it can do on your machine

Read from SKILL.md and the folder at commit 848e438. 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

    Ships script files (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • git
    • uv

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

  • Network

    No URLs in SKILL.md. Its commands use git and uv, 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

Frb Publish Release loads about 2.9k tokens when it runs. Until then it costs about 55 tokens; SKILL.md has 1,395 words of instructions outside code blocks.

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

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 fzyzcjy/flutter_rust_bridge at commit 848e438, republished under its MIT licence (© fzyzcjy). 1,395 words, ~2,934 tokens.

Download SKILL.mdSave it as .claude/skills/frb-publish-release/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
frb-publish-release
description
Publish a flutter_rust_bridge release end to end: preflight checks, changelog preparation, frb_internal release publishing, released-version polling, CI babysitting, and post-release CI verification.

FRB Publish Release

Use this skill when preparing, publishing, or babysitting a flutter_rust_bridge release.

Workflow

1. Preflight
  • Work from the repository root on the intended release branch, normally fresh master. If the checkout is detached but already points at the intended release commit, switch or create a local release branch from that commit before running mutating release commands; do not treat detached HEAD itself as a release blocker.

  • Check git status --short --branch and do not start publishing from a dirty tree.

  • Check submodules before publishing:

    bash
    git submodule update --init --recursive
    git submodule status --recursive

    Stop if any submodule path remains uninitialized. A release built without initialized submodules can publish incomplete package contents. The release script performs the same submodule-status guard before publishing.

  • Treat master as a moving branch. Before each irreversible release phase, fetch origin master, confirm the current release branch or detached checkout still points at the intended latest origin/master commit, and re-run git status --short --branch to confirm there are no unexpected local changes.

  • Confirm the target version in CHANGELOG.md, root Cargo.toml, and frb_dart/pubspec.yaml.

  • Compute the release versions the same way ./frb_internal release does: the top CHANGELOG.md version is the new version and the next release section is the old version.

  • Verify both old and new versions are legal before running any mutating release command. The only allowed shapes are stable SemVer MAJOR.MINOR.PATCH such as 2.0.0, or beta SemVer MAJOR.MINOR.PATCH-beta.N such as 2.0.0-beta.1. Use exactly ^\d+\.\d+\.\d+(-beta\.\d+)?$.

  • Reject versions with any other prerelease label, build metadata, missing numeric components, leading v, or loose text. Stop if either old or new version fails this check.

  • Confirm the new version is different from the old version.

  • Run the publish container credential preflight before starting irreversible publish steps:

    bash
    .claude/skills/frb-dev-env/frb_dev_env.py docker-run-rm --with-publish-credentials -- true

    Stop if the preflight fails. It checks GitHub CLI auth, Cargo credentials, and Dart pub credentials inside the same temporary credential layout used by release publishing.

  • Confirm normal CI is green for the release commit before publishing. This is the default hard gate.

    A narrow exception is allowed only when all of these are true:

    • A recent earlier commit on the same release branch has fully green normal CI.
    • Every commit between that green commit and the intended release commit is unrelated to the publishable packages, version sources, generated release artifacts, and frb_internal release logic.
    • The mechanical gate script below exits successfully and its output is recorded in the release notes or journal.
    • The agent explicitly states that it is using the exception before publishing.

    Run the mechanical gate from the repository root:

    bash
    uv run --script .claude/skills/frb-publish-release/release_ci_gate.py \
      --base-green-ref <LAST_GREEN_SHA> \
      --release-ref HEAD

    Stop and wait for normal CI if the script reports any BLOCK path. The script is intentionally conservative: release-surface paths such as Cargo.toml, frb_dart/pubspec.yaml, frb_codegen/**, frb_macros/**, frb_rust/**, frb_utils/**, frb_example/**, tools/frb_internal/**, pubspec.yaml, melos.yaml, and lockfiles are not in the allowlist. Release metadata and its generated copies are allowed: CHANGELOG.md, frb_dart/CHANGELOG.md, frb_hooks/CHANGELOG.md, .all-contributors-custom.yaml, .all-contributorsrc, README.md, frb_dart/README.md, and website/**. These files are reviewed directly before publishing and do not affect package execution. Other frb_dart/** and frb_hooks/** paths remain blocked. This exception is for release metadata, docs, agent tooling, devcontainer, selected CI configuration, and other explicitly non-release paths only.

2. Reconcile Contributors
  • Before writing the release changelog, use frb-add-contributor to identify contributors from the target release range who may need all-contributors credit or whose human-written custom description does not cover every release-range PR.
  • Follow frb-add-contributor exactly. In particular, after determining which contributors may need to be added or have their custom descriptions extended, stop for human confirmation before editing contributor files, posting GitHub comments, triggering all-contributors, opening PRs, or merging contributor PRs.
  • Do not continue to changelog preparation until contributor reconciliation is complete, or confirmed unnecessary because all contributors are credited and their custom descriptions cover every third-party PR in the release range.
3. Write Changelog
  • Use frb-write-changelog and follow it exactly. It is the single source of truth for beta and stable changelog content, grouping, ordering, attribution, review, verification, and generated package changelog copies. Do not duplicate those rules here.
  • Do not publish until the human-review gate required by frb-write-changelog is satisfied.
  • The top CHANGELOG.md version is the source used by frb_internal release.
  • If changelog or version files changed, commit that release preparation before publishing.
  • Land contributor and changelog preparation commits on origin/master before publishing. Do not leave release preparation only on a side branch.
Show full SKILL.md (692 more words)Show less
4. Pre-Publish Independent Audit
  • Immediately before the first irreversible publish command, delegate a read-only audit to an independent subagent that has not participated in preparing the release.
  • Give the subagent the intended version and the raw evidence needed to verify the work completed so far:
    • Current branch, exact HEAD, latest origin/master, and git status --short --branch.
    • Previous and target release versions from CHANGELOG.md, root Cargo.toml, and frb_dart/pubspec.yaml.
    • Final target changelog section, contributor reconciliation result, human changelog approval, and relevant diffs.
    • Submodule status, credential preflight result, and normal CI green evidence or evidence that every narrow CI-gate exception condition in Step 1 is satisfied, including successful release_ci_gate.py output.
    • Exact commands and results for any additional focused release tests that were run. These tests do not replace the normal CI gate or its defined narrow exception.
    • Exact one-shot publish command that will run next.
  • Ask the subagent to return one verdict:
    • GO: all release instructions are satisfied and the evidence is internally consistent.
    • NO-GO: list every blocker, missing artifact, ambiguity, or inconsistent result with concrete evidence.
  • Do not tell the subagent the desired verdict or provide only a prepared summary. Let it inspect the repository and raw command outputs independently.
  • Stop before publishing on NO-GO, an ambiguous verdict, missing evidence, or unavailable subagent capability. Resolve every blocker and run a fresh independent audit.
  • Treat the audit as valid only for the exact audited HEAD, origin/master, clean worktree state, evidence snapshot, and next publish command.
  • After a GO verdict, run that exact publish command without any intervening mutation. If the command changes, the worktree becomes dirty, evidence is refreshed or invalidated, or HEAD or origin/master changes, repeat the affected preflight checks and the independent audit.
5. Publish

Use the repository release command through a temporary Docker container with publish credentials as the normal publishing path:

bash
.claude/skills/frb-dev-env/frb_dev_env.py docker-run-rm --with-publish-credentials -- ./frb_internal release

Run the one-shot command from a clean local master that tracks the latest origin/master. release-update-git uses plain git push, so do not run the command from a side release branch.

Do not split the normal release into separate release-update-* or publish commands. The one-shot command is the source of truth for release sequencing: it computes old/new versions from CHANGELOG.md, updates checked-in versions and generated version text, updates Scoop metadata, commits and pushes the version bump, creates the GitHub release, then runs the registry publisher:

bash
.claude/skills/frb-dev-env/frb_dev_env.py docker-run-rm --with-publish-credentials -- ./frb_internal release-publish-all

For beta versions such as 2.13.0-beta.1, do not require the GitHub release to be labeled as a pre-release. FRB intentionally publishes beta GitHub releases as normal GitHub releases while the package version itself remains a SemVer prerelease.

release-publish-all publishes these packages:

  • frb_codegen -> crates.io package flutter_rust_bridge_codegen
  • frb_macros -> crates.io package flutter_rust_bridge_macros
  • frb_rust -> crates.io package flutter_rust_bridge
  • frb_dart -> pub.dev package flutter_rust_bridge
  • frb_hooks -> pub.dev package flutter_rust_bridge_hooks

Only use a split subcommand as a recovery path after confirming which one-shot step already completed. For example, if the version bump and GitHub release already exist and only registry publication is needed, use .claude/skills/frb-dev-env/frb_dev_env.py docker-run-rm --with-publish-credentials -- ./frb_internal release-publish-all directly.

6. Check Released Versions

Poll registry state with:

bash
./frb_internal get-released-version

To check a target version from a checkout whose manifests have not been bumped, pass it explicitly:

bash
./frb_internal get-released-version --version <VERSION>

The command prints JSON:

json
{
  "allReleased": true,
  "packages": [
    {
      "registry": "crates.io",
      "name": "flutter_rust_bridge_codegen",
      "manifestVersion": "2.12.0",
      "releasedVersion": "2.12.0",
      "isReleased": true
    }
  ]
}

Wait until every package has isReleased: true and allReleased: true. If one registry lags, keep polling with bounded waits and record the mismatched package instead of assuming the publish failed. Do not add the target version option to the mutating release-* subcommands; they derive their version from CHANGELOG.md and checked-in manifests.

For beta releases, get-released-version --version <VERSION> must verify the pub.dev versions list, not only pub.dev's latest field, because pub.dev keeps latest on the latest stable release when a prerelease is uploaded.

7. Babysit CI And Post-Release CI
  • Keep watching the release commit's normal CI until it is green.
  • After ./frb_internal get-released-version reports allReleased: true, trigger .github/workflows/post_release.yaml for the release commit or master.
  • Babysit post-release CI until it is green. Use the user's tom-ci skill when reading GitHub Actions logs.
  • If post-release fails, classify the failure by release channel (stable or unstable) and install mode (cargo-install, cargo-binstall, scoop, or homebrew) before changing code or rerunning.
  • frb-write-changelog for the release section.
  • frb-fix-ci or frb-fix-main-ci for CI failures.
  • The user's tom-ci skill for GitHub Actions logs.

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

Files

SKILL.md and 2 other files in .claude/skills/frb-publish-release of fzyzcjy/flutter_rust_bridge.

  • SKILL.md
  • release_ci_gate.py
  • test_release_ci_gate.py

Open the folder on GitHubat commit 848e438

Compare with similar skills

Frb Publish 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.

Frb Publish Release compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Frb Publish Release this skillfzyzcjy/flutter_rust_bridge5.4k—~2.9kAutomated safety check: PassMIT
Flutter Pub ReleaseMixinNetwork/flutter-plugins512—~1.3kAutomated safety check: PassMIT
Release Pluginflutter/flutter-intellij2k—~1kAutomated safety check: PassBSD-3-Clause
Core API Changelibnativeapi/nativeapi166—~2.5kAutomated safety check: PassMIT
Winapp CLIboshi-xixixi/TraeSkill276—~1.9kAutomated safety check: PassMIT
Engine Whats Newflutter/flutter180k—~978Automated safety check: PassBSD-3-Clause

Similar skills

  • Flutter Pub Release

    MixinNetwork/flutter-plugins

    Prepare and draft a pub.dev release for a package in the flutter-plugins monorepo.

    512 GitHub stars~1.3k tokensUpdated 1 mo ago
    MobileAuto-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 yesterday
    MobileAuto-check passed
  • Core API Change

    libnativeapi/nativeapi

    Carry a change to the C++ public API in core/ all the way downstream — design check, header edit, six platform implementations, C ABI + Rust/Dart/C/JS/Python regeneration, per-binding verification…

    166 GitHub stars~2.5k tokensUpdated today
    MobileAuto-check passed
  • Winapp CLI

    boshi-xixixi/TraeSkill

    Windows App Development CLI (winapp) for building, packaging, signing, debugging, and UI-automating Windows applications.

    276 GitHub stars~1.9k tokensUpdated 5 mo ago
    MobileAuto-check passed
  • Engine Whats New

    flutter/flutter

    Generates the "what's new" release summary and diff file for changes in the Flutter engine (//engine/src/flutter) between two releases (e.g., 3.47 vs 3.44).

    180k GitHub stars~978 tokensUpdated today
    MobileAuto-check passed
  • Puremusic

    qingyueyin/Pure-music

    Pure-music 项目开发指南,覆盖 Windows Flutter/Dart 前端、Rust 后端、音频播放、歌词解析与渲染、桌面歌词、主题背景、设置、FFI、文档和测试。处理此仓库的代码理解、问题诊断、功能开发、缺陷修复、性能优化或代码审查时使用。

    188 GitHub stars~907 tokensUpdated today
    MobileAuto-check passed

More from fzyzcjy/flutter_rust_bridge

All 28 skills in this repo
  • Frb Add Contributor

    fzyzcjy/flutter_rust_bridge

    Add or reconcile flutterrustbridge contributors through all-contributors PRs.

    5.4k GitHub stars~1.6k tokensUpdated yesterday
    Auto-check passed
  • Frb Android Emulator Prepare

    fzyzcjy/flutter_rust_bridge

    A skill your agent uses when preparing, installing, diagnosing, or explaining the host Android Emulator environment for flutterrustbridge local runtime validation, including Android SDK command-line…

    5.4k GitHub stars~2.1k tokensUpdated yesterday
    Auto-check: notes
  • Frb Cargokit Dev

    fzyzcjy/flutter_rust_bridge

    Develop or update CargoKit for flutterrustbridge. An agent skill from fzyzcjy/flutter_rust_bridge.

    5.4k GitHub stars~1.4k tokensUpdated yesterday
    Auto-check passed
  • Frb Categorize Code Diff

    fzyzcjy/flutter_rust_bridge

    A skill your agent uses when classifying a flutterrustbridge branch or PR diff into test and non-test changes, including colocated Rust test modules.

    5.4k GitHub stars~524 tokensUpdated yesterday
    Auto-check passed
  • Frb CI Filter

    fzyzcjy/flutter_rust_bridge

    A skill your agent uses when running focused flutterrustbridge GitHub Actions CI via cifilter, adding/removing the ci-manual-dispatch PR label, choosing exact CI jobs or matrix entries, documenting…

    5.4k GitHub stars~2.4k tokensUpdated yesterday
    Auto-check passed
  • Frb Code Generation

    fzyzcjy/flutter_rust_bridge

    A skill your agent uses when modifying Rust APIs, codegen, generated examples, or platform scaffolds in flutterrustbridge to select generation commands and preserve source-of-truth and convergence…

    5.4k GitHub stars~1.5k tokensUpdated yesterday
    Auto-check passed

Works with

Questions about Frb Publish Release

What does Frb Publish Release do?

Publish a flutterrustbridge release end to end: preflight checks, changelog preparation, frbinternal release publishing, released-version polling, CI babysitting, and post-release CI verification. Frb Publish Release is an agent skill from fzyzcjy/flutter_rust_bridge. Publish a flutterrustbridge release end to end: preflight checks, changelog preparation, frbinternal release publishing, released-version polling, CI babysitting, and post-release CI verification.

When should I use Frb Publish Release?

Frb Publish Release fits situations like: tasks that involve Cross-platform mobile apps; tasks that involve Changelog and release notes.

How do I install Frb Publish Release in Claude Code?

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

How do I install Frb Publish Release in Codex?

Run `npx skills add fzyzcjy/flutter_rust_bridge --skill frb-publish-release -a codex`. Or copy the skill folder (.claude/skills/frb-publish-release in fzyzcjy/flutter_rust_bridge) into .agents/skills/frb-publish-release in your project. Codex loads it when a task matches its description.

Can I use Frb Publish Release 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 fzyzcjy/flutter_rust_bridge --skill frb-publish-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/frb-publish-release, .gemini/skills/frb-publish-release, .github/skills/frb-publish-release and .opencode/skills/frb-publish-release in your project.

What does Frb Publish Release need to run?

Going by SKILL.md and its folder, Frb Publish Release needs Python for the scripts in its folder and the command-line tools its instructions call (git and uv). Our summary lists: Python 3; Docker.

Does Frb Publish Release access the network?

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

Is Frb Publish Release 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 Frb Publish Release use?

Frb Publish Release is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Frb Publish Release use?

About 2.9k tokens (SKILL.md is roughly 12k 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 Frb Publish Release?

Skills that share tags, products or a category with Frb Publish Release: Flutter Pub Release (MixinNetwork/flutter-plugins, 512 stars), Release Plugin (flutter/flutter-intellij, 2k stars), Core API Change (libnativeapi/nativeapi, 166 stars) and Winapp CLI (boshi-xixixi/TraeSkill, 276 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Frb Publish Release?

fzyzcjy (a GitHub user) maintains it in fzyzcjy/flutter_rust_bridge, which has 5,446 GitHub stars. The repository holds 28 skills in this directory. The repository was last updated on October 10, 2026.

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