Flutter Pub Release
MixinNetwork/flutter-plugins
Prepare and draft a pub.dev release for a package in the flutter-plugins monorepo.
Publish a flutterrustbridge release end to end: preflight checks, changelog preparation, frbinternal release publishing, released-version polling, CI babysitting, and post-release CI verification.
$ npx skills add fzyzcjy/flutter_rust_bridge --skill frb-publish-release -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install fzyzcjy/flutter_rust_bridge frb-publish-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/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-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 "frb-publish-release" agent skill from https://github.com/fzyzcjy/flutter_rust_bridge/tree/master/.claude/skills/frb-publish-release into .claude/skills/frb-publish-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "frb-publish-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/fzyzcjy/flutter_rust_bridge/tree/master/.claude/skills/frb-publish-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 fzyzcjy/flutter_rust_bridge --skill frb-publish-release -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install fzyzcjy/flutter_rust_bridge frb-publish-release --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/fzyzcjy/flutter_rust_bridge.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/frb-publish-release .agents/skills/frb-publish-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 "frb-publish-release" agent skill from https://github.com/fzyzcjy/flutter_rust_bridge/tree/master/.claude/skills/frb-publish-release into .agents/skills/frb-publish-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "frb-publish-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 fzyzcjy/flutter_rust_bridge --skill frb-publish-release -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install fzyzcjy/flutter_rust_bridge frb-publish-release --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/fzyzcjy/flutter_rust_bridge.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/frb-publish-release .cursor/skills/frb-publish-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 "frb-publish-release" agent skill from https://github.com/fzyzcjy/flutter_rust_bridge/tree/master/.claude/skills/frb-publish-release into .cursor/skills/frb-publish-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "frb-publish-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/fzyzcjy/flutter_rust_bridge.git --path .claude/skills/frb-publish-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 fzyzcjy/flutter_rust_bridge --skill frb-publish-release -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install fzyzcjy/flutter_rust_bridge frb-publish-release --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/fzyzcjy/flutter_rust_bridge.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/frb-publish-release .gemini/skills/frb-publish-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 "frb-publish-release" agent skill from https://github.com/fzyzcjy/flutter_rust_bridge/tree/master/.claude/skills/frb-publish-release into .gemini/skills/frb-publish-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "frb-publish-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 fzyzcjy/flutter_rust_bridge frb-publish-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 fzyzcjy/flutter_rust_bridge --skill frb-publish-release -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/fzyzcjy/flutter_rust_bridge.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/frb-publish-release .github/skills/frb-publish-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 "frb-publish-release" agent skill from https://github.com/fzyzcjy/flutter_rust_bridge/tree/master/.claude/skills/frb-publish-release into .github/skills/frb-publish-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "frb-publish-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 fzyzcjy/flutter_rust_bridge --skill frb-publish-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 fzyzcjy/flutter_rust_bridge frb-publish-release --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/fzyzcjy/flutter_rust_bridge.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/frb-publish-release .opencode/skills/frb-publish-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 "frb-publish-release" agent skill from https://github.com/fzyzcjy/flutter_rust_bridge/tree/master/.claude/skills/frb-publish-release into .opencode/skills/frb-publish-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "frb-publish-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.
frb-publish-releasePublish 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.
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.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 848e438. 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.
Ships script files (Python), which the agent can run.
Shell commands in SKILL.md call:
gituvFrom the folder's file list and the shell code blocks in SKILL.md.
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.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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 fzyzcjy/flutter_rust_bridge at commit 848e438, republished under its MIT licence (© fzyzcjy). 1,395 words, ~2,934 tokens.
.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.Use this skill when preparing, publishing, or babysitting a flutter_rust_bridge release.
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:
git submodule update --init --recursive
git submodule status --recursiveStop 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:
.claude/skills/frb-dev-env/frb_dev_env.py docker-run-rm --with-publish-credentials -- trueStop 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:
frb_internal release logic.Run the mechanical gate from the repository root:
uv run --script .claude/skills/frb-publish-release/release_ci_gate.py \
--base-green-ref <LAST_GREEN_SHA> \
--release-ref HEADStop 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.
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.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.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.frb-write-changelog is satisfied.CHANGELOG.md version is the source used by frb_internal release.origin/master before publishing. Do not leave release preparation only on a side branch.HEAD, latest origin/master, and git status --short --branch.CHANGELOG.md, root Cargo.toml, and frb_dart/pubspec.yaml.release_ci_gate.py output.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.NO-GO, an ambiguous verdict, missing evidence, or unavailable subagent capability. Resolve every blocker and run a fresh independent audit.HEAD, origin/master, clean worktree state, evidence snapshot, and next publish command.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.Use the repository release command through a temporary Docker container with publish credentials as the normal publishing path:
.claude/skills/frb-dev-env/frb_dev_env.py docker-run-rm --with-publish-credentials -- ./frb_internal releaseRun 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:
.claude/skills/frb-dev-env/frb_dev_env.py docker-run-rm --with-publish-credentials -- ./frb_internal release-publish-allFor 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_codegenfrb_macros -> crates.io package flutter_rust_bridge_macrosfrb_rust -> crates.io package flutter_rust_bridgefrb_dart -> pub.dev package flutter_rust_bridgefrb_hooks -> pub.dev package flutter_rust_bridge_hooksOnly 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.
Poll registry state with:
./frb_internal get-released-versionTo check a target version from a checkout whose manifests have not been bumped, pass it explicitly:
./frb_internal get-released-version --version <VERSION>The command prints 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.
./frb_internal get-released-version reports allReleased: true, trigger .github/workflows/post_release.yaml for the release commit or master.tom-ci skill when reading GitHub Actions logs.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.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
SKILL.md and 2 other files in .claude/skills/frb-publish-release of fzyzcjy/flutter_rust_bridge.
Open the folder on GitHubat commit 848e438
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Frb Publish Release this skillfzyzcjy/flutter_rust_bridge | 5.4k | — | ~2.9k | Automated safety check: Pass | MIT | |
| Flutter Pub ReleaseMixinNetwork/flutter-plugins | 512 | — | ~1.3k | Automated safety check: Pass | MIT | |
| Release Pluginflutter/flutter-intellij | 2k | — | ~1k | Automated safety check: Pass | BSD-3-Clause | |
| Core API Changelibnativeapi/nativeapi | 166 | — | ~2.5k | Automated safety check: Pass | MIT | |
| Winapp CLIboshi-xixixi/TraeSkill | 276 | — | ~1.9k | Automated safety check: Pass | MIT | |
| Engine Whats Newflutter/flutter | 180k | — | ~978 | Automated safety check: Pass | BSD-3-Clause |
MixinNetwork/flutter-plugins
Prepare and draft a pub.dev release for a package in the flutter-plugins monorepo.
flutter/flutter-intellij
Prepare and execute a new release for the flutter-intellij plugin, including updating dependencies, compatibility bounds, changelogs, and verification.
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…
boshi-xixixi/TraeSkill
Windows App Development CLI (winapp) for building, packaging, signing, debugging, and UI-automating Windows applications.
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).
qingyueyin/Pure-music
Pure-music 项目开发指南,覆盖 Windows Flutter/Dart 前端、Rust 后端、音频播放、歌词解析与渲染、桌面歌词、主题背景、设置、FFI、文档和测试。处理此仓库的代码理解、问题诊断、功能开发、缺陷修复、性能优化或代码审查时使用。
fzyzcjy/flutter_rust_bridge
Add or reconcile flutterrustbridge contributors through all-contributors PRs.
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…
fzyzcjy/flutter_rust_bridge
Develop or update CargoKit for flutterrustbridge. An agent skill from fzyzcjy/flutter_rust_bridge.
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.
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…
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…
Categories
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.
Frb Publish Release fits situations like: tasks that involve Cross-platform mobile apps; tasks that involve Changelog and release notes.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.