Install any skill in seconds. Free to start, no credit card required.
Get Started Free →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, or documenting intentionally partial CI runs.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-09 | ✗→✓ | ▲ Improved | 86% | 0% |
| case-01 | ✗→✓ | ▲ Improved | -13% | 0% |
| case-02 | ✗→✓ | ▲ Improved | -3% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 35% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 71% | 0% |
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:
bashgh 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.
textfull 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.
bashgh pr edit <pr-number> --add-label ci-manual-dispatch
With the label present:
workflow_dispatch remains available for explicit focused runsBefore final readiness:
bashgh 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.
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:
bash./frb_internal plan-ci --filter 'test_dart_web[package=frb_example--pure_dart_pde]'
The command emits a GitHub Actions output line:
textplan={...}
The workflow consumes it with paths like:
yamlfromJSON(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.
These examples are protected by tools/frb_internal/test/ci_plan_test.dart; update that test whenever adding or changing examples here.
Full CI:
bashgh workflow run ci.yaml --ref <branch> -f 'ci_filter=full'
One non-matrix job:
bashgh workflow run ci.yaml --ref <branch> -f 'ci_filter=lint_dart_primary'
Several whole jobs:
bashgh workflow run ci.yaml --ref <branch> -f 'ci_filter=lint_dart_primary,test_dart_web'
One non-matrix job plus one matrix entry:
bashgh workflow run ci.yaml --ref <branch> -f 'ci_filter=lint_dart_primary,test_dart_web[package=frb_example--pure_dart]'
One Dart web package:
bashgh workflow run ci.yaml --ref <branch> -f 'ci_filter=test_dart_web[package=frb_example--pure_dart_pde]'
Two Dart web packages:
bashgh 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:
bashgh 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:
bashgh 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:
bashgh 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:
bashgh 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:
bashgh workflow run ci.yaml --ref <branch> -f 'ci_filter=test_flutter_native_desktop[platform=linux,package=frb_example--gallery]'
One Android emulator matrix entry:
bashgh 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:
bashgh 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:
bashgh 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:
bashgh workflow run ci.yaml --ref <branch> -f 'ci_filter=generate_run_frb_codegen_command_integrate[platforms=ohos]'
One sanitizer entry:
bashgh workflow run ci.yaml --ref <branch> -f 'ci_filter=test_dart_sanitizer[sanitizer=asan,package=frb_example--pure_dart]'
One benchmark runner:
bashgh 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:
bashcd 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]'
Other measured skills in the registry, with their headline benchmark lift.