Agent skill

Frb CI Filter

by fzyzcjy in 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…

MITAuto-check passedMobile

Install Frb CI Filter

skills CLI
$ npx skills add fzyzcjy/flutter_rust_bridge --skill frb-ci-filter -a claude-code

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

GitHub CLI
$ gh skill install fzyzcjy/flutter_rust_bridge frb-ci-filter --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-ci-filter .claude/skills/frb-ci-filter && 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-ci-filter
GitHub stars
5.4k
Token cost
~2.4k tokens
SKILL.md length
838 words
Files
1
Skills in repo
28
Repo updated
First seen
Licence
MIT

At a glance

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…

  • Running focused flutterrustbridge GitHub Actions CI via cifilter
  • Calls gh, git and dart
  • Adding/removing the ci-manual-dispatch PR label
  • Choosing exact CI jobs

What it does

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.

When your agent uses it

  • 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

Example prompts

  • “/frb-ci-filter”

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

    Shell commands in SKILL.md call:

    • gh
    • git
    • dart

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

  • Network

    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.

  • 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 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.

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

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). 838 words, ~2,354 tokens.

Download SKILL.mdSave it as .claude/skills/frb-ci-filter/SKILL.md (or your agent's skills folder).
name
frb-ci-filter
description
Use when running focused flutter_rust_bridge GitHub Actions CI via ci_filter, 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.

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:

bash
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.

1 Filter Syntax

text
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.
  • Bracket filters currently require dimension=value.
  • Commas outside brackets combine multiple jobs.
  • Explicit dimension=value conditions inside brackets are ANDed.
  • | means OR within one dimension.
  • Matrix dimensions include direct keys such as image, package, device, api-level, sanitizer, platforms, and nested matrix.info keys such as platform, target, version.
  • Numeric matrix values are matched as strings, e.g. api-level=35.
  • Values may contain spaces, e.g. iOS simulator device names.
  • Unknown jobs, unknown dimensions, malformed filters, and filters matching no matrix entries fail in the Plan :: CI job.

2 Manual Dispatch Label

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.

bash
gh pr edit <pr-number> --add-label ci-manual-dispatch

With the label present:

  • normal PR-triggered CI produces an empty plan for the heavy jobs
  • workflow_dispatch remains available for explicit focused runs
  • the PR must not be treated as merge-ready from partial runs alone

Before final readiness:

bash
gh pr edit <pr-number> --remove-label ci-manual-dispatch

Then let the normal full CI surface run. Removing the label triggers PR CI because the workflow listens to labeled and unlabeled pull request events.

3 Manual Dispatch PR Comment

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.

4 Local Planning

Before dispatching an expensive manual run, smoke the filter locally:

bash
./frb_internal plan-ci --filter 'test_dart_web[package=frb_example--pure_dart_pde]'

The command emits a GitHub Actions output line:

text
plan={...}

The workflow consumes it with paths like:

yaml
fromJSON(needs.plan_ci.outputs.plan).test_dart_web.enable
fromJSON(needs.plan_ci.outputs.plan).test_dart_web.matrix

That output shape is intentional; each CI job has its own top-level entry containing enable, and matrix jobs also contain matrix.

5 Repeated Precise Validation

Use repeated precise validation when a flaky fix needs several independent executions of one CI job or matrix entry on exactly the same commit.

  • Fix the commit: Push the branch once, record its SHA, and do not move the branch until all runs finish.
  • Smoke the filter: Run ./frb_internal plan-ci --filter '<filter>' before dispatching.
  • Dispatch independently: Create five separate workflow_dispatch runs, not one run with five matrix copies and not five attempts of one run.
  • Keep the filter identical: Pass the same exact ci_filter to every dispatch.
  • Verify the SHA: Confirm every selected run reports the recorded headSha; a branch name alone is not evidence that queued runs used the same commit.
  • Count target jobs: Count the conclusion of the selected job or matrix entry, not the workflow conclusion or skipped jobs.
  • Preserve every run link: Report all five run URLs, the fixed SHA, the filter, and the target-job result.
  • Do not move or cancel: A new commit invalidates the comparison; cancellation does not count as a completed validation.
Show full SKILL.md (329 more words)Show less

Record the immutable input:

bash
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:

bash
for run_number in 1 2 3 4 5; do
  gh workflow run ci.yaml --ref "$branch" -f "ci_filter=$filter"
done

List the candidate runs once, then select the five runs created for this validation window:

bash
gh run list \
  --workflow ci.yaml \
  --branch "$branch" \
  --event workflow_dispatch \
  --limit 10 \
  --json databaseId,createdAt,headSha,status,conclusion,url

For each selected run:

  • Confirm headSha == expected_sha.
  • Confirm Plan :: CI creates only the requested job or matrix entry.
  • Wait for the target job to complete.
  • If it fails, archive and inspect that job's complete log.
  • Report a result only after all five target jobs finish.

Do not claim “5/5” from any of these shapes:

  • One workflow run containing five matrix entries.
  • One workflow run rerun five times.
  • Five workflow runs whose headSha values differ.
  • Five workflow conclusions where the target job was skipped, cancelled, or never started.
  • Fewer than five completed target jobs plus queued or in-progress jobs.

6 Examples

These examples are protected by tools/frb_internal/test/ci_plan_test.dart; update that test whenever adding or changing examples here.

Full CI:

bash
gh workflow run ci.yaml --ref <branch> -f 'ci_filter=full'

One non-matrix job:

bash
gh workflow run ci.yaml --ref <branch> -f 'ci_filter=lint_dart_primary'

Several whole jobs:

bash
gh workflow run ci.yaml --ref <branch> -f 'ci_filter=lint_dart_primary,test_dart_web'

One non-matrix job plus one matrix entry:

bash
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:

bash
gh workflow run ci.yaml --ref <branch> -f 'ci_filter=test_dart_web[package=frb_example--pure_dart_pde]'

Two Dart web packages:

bash
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:

bash
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:

bash
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:

bash
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:

bash
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:

bash
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:

bash
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:

bash
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:

bash
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:

bash
gh workflow run ci.yaml --ref <branch> -f 'ci_filter=generate_run_frb_codegen_command_integrate[platforms=ohos]'

One sanitizer entry:

bash
gh workflow run ci.yaml --ref <branch> -f 'ci_filter=test_dart_sanitizer[sanitizer=asan,package=frb_example--pure_dart]'

One benchmark runner:

bash
gh workflow run ci.yaml --ref <branch> -f 'ci_filter=bench_dart_native[image=ubuntu-24.04]'

7 Choosing Evidence

For intentional red reproduction PRs:

  • Run only the single job or matrix entry that proves the reported bad behavior.
  • State the exact ci_filter in the PR body.
  • State the expected failure text or behavior.
  • Do not treat the narrowed red run as fix readiness evidence.

For ordinary iteration branches:

  • Prefer the smallest filter that exercises the changed behavior.
  • Say in PR status/comments when only filtered CI has run.
  • Before final review or merge readiness, remove ci-manual-dispatch and run normal CI.

8 Validation

Before pushing changes to the filter mechanism or examples:

bash
cd tools/frb_internal
dart test test/ci_plan_test.dart

Useful smoke check:

bash
./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

Files

Just SKILL.md in .claude/skills/frb-ci-filter of fzyzcjy/flutter_rust_bridge.

Open the folder on GitHubat commit 848e438

Compare with similar skills

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.

Frb CI Filter compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Frb CI Filter this skillfzyzcjy/flutter_rust_bridge5.4k—~2.4kAutomated safety check: PassMIT
Flutter CicdHoangNguyen0403/agent-skills-standard572—~578Automated safety check: NotesMIT
GitHub Actions CreatorFNOSP/FlyNarwhal5091 repos~2.4kAutomated safety check: PassAGPL-3.0
CIsoftspark/ai-toolkit180—~1.1kAutomated safety check: NotesApache-2.0
Android Cicddavila7/claude-code-templates33k—~2.2kAutomated safety check: PassMIT
Flutter Pub ReleaseMixinNetwork/flutter-plugins512—~1.3kAutomated safety check: PassMIT

Similar skills

  • Flutter Cicd

    HoangNguyen0403/agent-skills-standard

    Set up CI/CD pipelines for Flutter apps. An agent skill from HoangNguyen0403/agent-skills-standard.

    572 GitHub stars~578 tokensUpdated yesterday
    MobileAuto-check: notes
  • GitHub Actions Creator

    FNOSP/FlyNarwhal

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

    509 GitHub starsUsed in 1 repo~2.4k tokens
    DevOps & CloudAuto-check passed
  • CI

    softspark/ai-toolkit

    Detect/generate/debug CI pipeline config (GitHub Actions, GitLab CI).

    180 GitHub stars~1.1k tokensUpdated yesterday
    DevOps & CloudAuto-check: notes
  • Android Cicd

    davila7/claude-code-templates

    Automated Android CI/CD pipeline to Google Play — supports TWA, React Native, Flutter, and native Android.

    33k GitHub stars~2.2k tokensUpdated yesterday
    MobileAuto-check passed
  • 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
  • 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 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
  • Frb Develop Feature

    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

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

Questions about Frb CI Filter

What does Frb CI Filter do?

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.

When should I use Frb CI Filter?

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.

How do I install Frb CI Filter in Claude Code?

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.

How do I install Frb CI Filter in Codex?

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.

Can I use Frb CI Filter 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-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.

What does Frb CI Filter need to run?

Going by SKILL.md and its folder, Frb CI Filter needs the command-line tools its instructions call (gh, git and dart).

Does Frb CI Filter access the network?

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.

Is Frb CI Filter 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 CI Filter use?

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.

How many tokens does Frb CI Filter use?

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.

What are the alternatives to Frb CI Filter?

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.

Who maintains Frb CI Filter?

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.