Flutter Cicd
HoangNguyen0403/agent-skills-standard
Set up CI/CD pipelines for Flutter apps. An agent skill from HoangNguyen0403/agent-skills-standard.
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…
$ npx skills add fzyzcjy/flutter_rust_bridge --skill frb-ci-filter -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install fzyzcjy/flutter_rust_bridge frb-ci-filter --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-ci-filter .claude/skills/frb-ci-filter && 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-ci-filter" agent skill from https://github.com/fzyzcjy/flutter_rust_bridge/tree/master/.claude/skills/frb-ci-filter into .claude/skills/frb-ci-filter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "frb-ci-filter", 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-ci-filterType 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-ci-filter -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install fzyzcjy/flutter_rust_bridge frb-ci-filter --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-ci-filter .agents/skills/frb-ci-filter && 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-ci-filter" agent skill from https://github.com/fzyzcjy/flutter_rust_bridge/tree/master/.claude/skills/frb-ci-filter into .agents/skills/frb-ci-filter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "frb-ci-filter", 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-ci-filter -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install fzyzcjy/flutter_rust_bridge frb-ci-filter --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-ci-filter .cursor/skills/frb-ci-filter && 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-ci-filter" agent skill from https://github.com/fzyzcjy/flutter_rust_bridge/tree/master/.claude/skills/frb-ci-filter into .cursor/skills/frb-ci-filter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "frb-ci-filter", 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-ci-filter--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-ci-filter -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install fzyzcjy/flutter_rust_bridge frb-ci-filter --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-ci-filter .gemini/skills/frb-ci-filter && 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-ci-filter" agent skill from https://github.com/fzyzcjy/flutter_rust_bridge/tree/master/.claude/skills/frb-ci-filter into .gemini/skills/frb-ci-filter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "frb-ci-filter", 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-ci-filterInstalls 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-ci-filter -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-ci-filter .github/skills/frb-ci-filter && 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-ci-filter" agent skill from https://github.com/fzyzcjy/flutter_rust_bridge/tree/master/.claude/skills/frb-ci-filter into .github/skills/frb-ci-filter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "frb-ci-filter", 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-ci-filter -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-ci-filter --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-ci-filter .opencode/skills/frb-ci-filter && 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-ci-filter" agent skill from https://github.com/fzyzcjy/flutter_rust_bridge/tree/master/.claude/skills/frb-ci-filter into .opencode/skills/frb-ci-filter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "frb-ci-filter", 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-ci-filterA 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…
Frb CI Filter is an agent skill from fzyzcjy/flutter_rust_bridge. Use 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 intentionally partial CI runs, or repeatedly validating an exact CI target on one commit.
Its SKILL.md is about 2.4k 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 Mobile, covering Cross-platform mobile apps and CI/CD. It works with GitHub Actions, Flutter and Rust. The repository describes itself as: Flutter/Dart <- Rust binding generator, feature-rich, but seamless and simple. The licence is MIT.
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.
Shell commands in SKILL.md call:
ghgitdartFrom 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.
Frb CI Filter loads about 2.4k tokens when it runs. Until then it costs about 71 tokens; SKILL.md has 838 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). 838 words, ~2,354 tokens.
.claude/skills/frb-ci-filter/SKILL.md (or your agent's skills folder).Use this skill when CI feedback is too expensive and the current task needs a focused GitHub Actions signal instead of automatic full CI.
The preferred mechanism is the formal workflow_dispatch input in .github/workflows/ci.yaml:
gh workflow run ci.yaml --ref <branch> -f 'ci_filter=<filter>'Do not temporarily hack workflow jobs just to get partial CI unless the formal filter cannot express the target.
full
job_id
job_a,job_b
job_id[dimension=value]
job_id[dimension=value|other_value,other_dimension=value]
job_a,job_b[dimension=value]full or * runs the normal full CI plan.job_id runs the whole job, including its full matrix if it has one.job_id[...] runs only matching matrix entries.dimension=value.dimension=value conditions inside brackets are ANDed.| means OR within one dimension.image, package, device, api-level, sanitizer, platforms, and nested matrix.info keys such as platform, target, version.api-level=35.Plan :: CI job.Use the ci-manual-dispatch PR label when an agent or human wants to prevent automatic PR CI from running the full surface while iterating.
gh pr edit <pr-number> --add-label ci-manual-dispatchWith the label present:
workflow_dispatch remains available for explicit focused runsBefore final readiness:
gh pr edit <pr-number> --remove-label ci-manual-dispatchThen let the normal full CI surface run. Removing the label triggers PR CI because the workflow listens to labeled and unlabeled pull request events.
Manual workflow_dispatch runs of .github/workflows/ci.yaml comment from Plan :: CI on the matching open PR with the selected ci_filter and run link; normal push and pull_request runs do not comment.
Before dispatching an expensive manual run, smoke the filter locally:
./frb_internal plan-ci --filter 'test_dart_web[package=frb_example--pure_dart_pde]'The command emits a GitHub Actions output line:
plan={...}The workflow consumes it with paths like:
fromJSON(needs.plan_ci.outputs.plan).test_dart_web.enable
fromJSON(needs.plan_ci.outputs.plan).test_dart_web.matrixThat output shape is intentional; each CI job has its own top-level entry containing enable, and matrix jobs also contain matrix.
Use repeated precise validation when a flaky fix needs several independent executions of one CI job or matrix entry on exactly the same commit.
./frb_internal plan-ci --filter '<filter>' before dispatching.workflow_dispatch runs, not one run with five matrix copies and not five attempts of one run.ci_filter to every dispatch.headSha; a branch name alone is not evidence that queued runs used the same commit.Record the immutable input:
branch=codex/example-fix
expected_sha=$(git rev-parse HEAD)
filter='test_dart_web[package=frb_example--pure_dart]'
git push -u origin "$branch"Dispatch five independent runs. Manual dispatches use unique concurrency groups, so these runs do not cancel one another:
for run_number in 1 2 3 4 5; do
gh workflow run ci.yaml --ref "$branch" -f "ci_filter=$filter"
doneList the candidate runs once, then select the five runs created for this validation window:
gh run list \
--workflow ci.yaml \
--branch "$branch" \
--event workflow_dispatch \
--limit 10 \
--json databaseId,createdAt,headSha,status,conclusion,urlFor each selected run:
headSha == expected_sha.Plan :: CI creates only the requested job or matrix entry.Do not claim “5/5” from any of these shapes:
headSha values differ.These examples are protected by tools/frb_internal/test/ci_plan_test.dart; update that test whenever adding or changing examples here.
Full CI:
gh workflow run ci.yaml --ref <branch> -f 'ci_filter=full'One non-matrix job:
gh workflow run ci.yaml --ref <branch> -f 'ci_filter=lint_dart_primary'Several whole jobs:
gh workflow run ci.yaml --ref <branch> -f 'ci_filter=lint_dart_primary,test_dart_web'One non-matrix job plus one matrix entry:
gh workflow run ci.yaml --ref <branch> -f 'ci_filter=lint_dart_primary,test_dart_web[package=frb_example--pure_dart]'One Dart web package:
gh workflow run ci.yaml --ref <branch> -f 'ci_filter=test_dart_web[package=frb_example--pure_dart_pde]'Two Dart web packages:
gh workflow run ci.yaml --ref <branch> -f 'ci_filter=test_dart_web[package=frb_dart|frb_example--pure_dart_pde]'Two Dart web packages plus one non-matrix job:
gh workflow run ci.yaml --ref <branch> -f 'ci_filter=test_dart_web[package=frb_dart|frb_example--pure_dart_pde],lint_rust_primary'Two precise matrix tuples in the same job:
gh workflow run ci.yaml --ref <branch> -f 'ci_filter=test_rust[image=ubuntu-latest,version=nightly],test_rust[image=ubuntu-latest,version=1.85.0]'One Dart native package on Linux:
gh workflow run ci.yaml --ref <branch> -f 'ci_filter=test_dart_native[image=ubuntu-24.04,package=tools--frb_internal]'Rust tests on selected toolchains:
gh workflow run ci.yaml --ref <branch> -f 'ci_filter=test_rust[image=ubuntu-latest,version=nightly|1.85.0]'One Flutter desktop package on Linux:
gh workflow run ci.yaml --ref <branch> -f 'ci_filter=test_flutter_native_desktop[platform=linux,package=frb_example--gallery]'One Android emulator matrix entry:
gh workflow run ci.yaml --ref <branch> -f 'ci_filter=test_flutter_native_android[package=frb_example--flutter_via_create,device=pixel,api-level=35]'One iOS simulator matrix entry:
gh workflow run ci.yaml --ref <branch> -f 'ci_filter=test_flutter_native_ios[device=iPhone 16 Pro Max Simulator (18.6),package=frb_example--rust_ui_counter--ui]'One codegen command-generate entry:
gh workflow run ci.yaml --ref <branch> -f 'ci_filter=generate_run_frb_codegen_command_generate[image=ubuntu-24.04,package=frb_example--integrate_third_party]'One OHOS command-integrate entry:
gh workflow run ci.yaml --ref <branch> -f 'ci_filter=generate_run_frb_codegen_command_integrate[platforms=ohos]'One sanitizer entry:
gh workflow run ci.yaml --ref <branch> -f 'ci_filter=test_dart_sanitizer[sanitizer=asan,package=frb_example--pure_dart]'One benchmark runner:
gh workflow run ci.yaml --ref <branch> -f 'ci_filter=bench_dart_native[image=ubuntu-24.04]'For intentional red reproduction PRs:
ci_filter in the PR body.For ordinary iteration branches:
ci-manual-dispatch and run normal CI.Before pushing changes to the filter mechanism or examples:
cd tools/frb_internal
dart test test/ci_plan_test.dartUseful smoke check:
./frb_internal plan-ci --filter 'test_dart_web[package=frb_example--pure_dart_pde]'© fzyzcjy, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/frb-ci-filter of fzyzcjy/flutter_rust_bridge.
Open the folder on GitHubat commit 848e438
Frb CI Filter 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 CI Filter this skillfzyzcjy/flutter_rust_bridge | 5.4k | — | ~2.4k | Automated safety check: Pass | MIT | |
| Flutter CicdHoangNguyen0403/agent-skills-standard | 572 | — | ~578 | Automated safety check: Notes | MIT | |
| GitHub Actions CreatorFNOSP/FlyNarwhal | 509 | 1 repos | ~2.4k | Automated safety check: Pass | AGPL-3.0 | |
| CIsoftspark/ai-toolkit | 180 | — | ~1.1k | Automated safety check: Notes | Apache-2.0 | |
| Android Cicddavila7/claude-code-templates | 33k | — | ~2.2k | Automated safety check: Pass | MIT | |
| Flutter Pub ReleaseMixinNetwork/flutter-plugins | 512 | — | ~1.3k | Automated safety check: Pass | MIT |
HoangNguyen0403/agent-skills-standard
Set up CI/CD pipelines for Flutter apps. An agent skill from HoangNguyen0403/agent-skills-standard.
FNOSP/FlyNarwhal
A skill your agent uses when the user wants to create, generate, or set up a GitHub Actions workflow.
softspark/ai-toolkit
Detect/generate/debug CI pipeline config (GitHub Actions, GitLab CI).
davila7/claude-code-templates
Automated Android CI/CD pipeline to Google Play — supports TWA, React Native, Flutter, and native Android.
MixinNetwork/flutter-plugins
Prepare and draft a pub.dev release for a package in the flutter-plugins monorepo.
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 modifying Rust APIs, codegen, generated examples, or platform scaffolds in flutterrustbridge to select generation commands and preserve source-of-truth and convergence…
fzyzcjy/flutter_rust_bridge
A skill your agent uses when fixing bugs, adding regression tests, adding new features, when compilation is slow, or when learning twin test naming conventions in flutterrustbridge
Works with
Categories
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…. Frb CI Filter is an agent skill from fzyzcjy/flutter_rust_bridge. Use 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 intentionally partial CI runs, or repeatedly validating an exact CI target on one commit.
Frb CI Filter fits situations like: running focused flutterrustbridge GitHub Actions CI via cifilter; adding/removing the ci-manual-dispatch PR label; choosing exact CI jobs; documenting intentionally partial CI runs.
Run `npx skills add fzyzcjy/flutter_rust_bridge --skill frb-ci-filter -a claude-code`. Or copy the skill folder (.claude/skills/frb-ci-filter in fzyzcjy/flutter_rust_bridge) into .claude/skills/frb-ci-filter in your project. Claude Code loads it when a task matches its description.
Run `npx skills add fzyzcjy/flutter_rust_bridge --skill frb-ci-filter -a codex`. Or copy the skill folder (.claude/skills/frb-ci-filter in fzyzcjy/flutter_rust_bridge) into .agents/skills/frb-ci-filter 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-ci-filter -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-ci-filter, .gemini/skills/frb-ci-filter, .github/skills/frb-ci-filter and .opencode/skills/frb-ci-filter in your project.
Going by SKILL.md and its folder, Frb CI Filter needs the command-line tools its instructions call (gh, git and dart).
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.
Frb CI Filter 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.4k tokens (SKILL.md is roughly 9.4k 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 CI Filter: Flutter Cicd (HoangNguyen0403/agent-skills-standard, 572 stars), GitHub Actions Creator (FNOSP/FlyNarwhal, 509 stars), CI (softspark/ai-toolkit, 180 stars) and Android Cicd (davila7/claude-code-templates, 33k 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.