Green Gate
VeryGoodOpenSource/vgv-ai-flutter-plugin
Drives a Dart or Flutter package fully green through a verify-fix-rerun loop across four gates: analyze, format, test, coverage.
A skill your agent uses when CI fails in flutterrustbridge - before deep investigation
$ npx skills add fzyzcjy/flutter_rust_bridge --skill frb-fix-ci -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install fzyzcjy/flutter_rust_bridge frb-fix-ci --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-fix-ci .claude/skills/frb-fix-ci && 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-fix-ci" agent skill from https://github.com/fzyzcjy/flutter_rust_bridge/tree/master/.claude/skills/frb-fix-ci into .claude/skills/frb-fix-ci/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "frb-fix-ci", 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-fix-ciType 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-fix-ci -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install fzyzcjy/flutter_rust_bridge frb-fix-ci --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-fix-ci .agents/skills/frb-fix-ci && 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-fix-ci" agent skill from https://github.com/fzyzcjy/flutter_rust_bridge/tree/master/.claude/skills/frb-fix-ci into .agents/skills/frb-fix-ci/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "frb-fix-ci", 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-fix-ci -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install fzyzcjy/flutter_rust_bridge frb-fix-ci --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-fix-ci .cursor/skills/frb-fix-ci && 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-fix-ci" agent skill from https://github.com/fzyzcjy/flutter_rust_bridge/tree/master/.claude/skills/frb-fix-ci into .cursor/skills/frb-fix-ci/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "frb-fix-ci", 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-fix-ci--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-fix-ci -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install fzyzcjy/flutter_rust_bridge frb-fix-ci --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-fix-ci .gemini/skills/frb-fix-ci && 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-fix-ci" agent skill from https://github.com/fzyzcjy/flutter_rust_bridge/tree/master/.claude/skills/frb-fix-ci into .gemini/skills/frb-fix-ci/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "frb-fix-ci", 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-fix-ciInstalls 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-fix-ci -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-fix-ci .github/skills/frb-fix-ci && 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-fix-ci" agent skill from https://github.com/fzyzcjy/flutter_rust_bridge/tree/master/.claude/skills/frb-fix-ci into .github/skills/frb-fix-ci/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "frb-fix-ci", 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-fix-ci -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-fix-ci --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-fix-ci .opencode/skills/frb-fix-ci && 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-fix-ci" agent skill from https://github.com/fzyzcjy/flutter_rust_bridge/tree/master/.claude/skills/frb-fix-ci into .opencode/skills/frb-fix-ci/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "frb-fix-ci", 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-fix-ciA skill your agent uses when CI fails in flutterrustbridge - before deep investigation
Frb Fix CI is an agent skill from fzyzcjy/flutter_rust_bridge. Use when CI fails in flutterrustbridge - before deep investigation
Its SKILL.md is about 4.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 Failing and flaky tests and Cross-platform mobile apps. It works with Flutter and Rust. The repository describes itself as: Flutter/Dart <- Rust binding generator, feature-rich, but seamless and simple. The licence is MIT.
5 steps, taken from the first numbered list 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.
Shell commands in SKILL.md call:
gitdartghcargoFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git and gh, 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 Fix CI loads about 4.4k tokens when it runs. Until then it costs about 20 tokens; SKILL.md has 2,020 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). 2,020 words, ~4,394 tokens.
.claude/skills/frb-fix-ci/SKILL.md (or your agent's skills folder).Note: Read
frb-dev-envbefore running commands and follow the active user's environment rules. Note: When reproducing FRB failures remotely, do not run multiple remote commands in parallel against the same workspace/container. Serialize them unless you have isolated workspaces.
CI failures in flutter_rust_bridge often have simple fixes. Try the appropriate approach below before deep investigation.
Core principle: Start with lazy fixes (re-run, copy diff, --fix) before expensive investigation.
If the CI failure or PR state is caused by merge/rebase conflicts, especially conflicts in generated files after master and a PR both added tests or APIs, read the /frb-fix-merge-conflict skill before resolving them.
Use this order before diving into individual failure types:
./frb_internal ... command from CI, using frb-dev-env and the active user's environment rules.
If reproducing remotely, keep one remote workspace single-writer: do not run multiple FRB reproduction commands in parallel against that same workspace.
Also do not trust a dirty remote workspace by default: FRB remote runs often leave stray generated or untracked files behind, so prefer git reset --hard HEAD && git clean -fdx before a meaningful reproduction.Generate, Integrate, or a high-relevance Generate Internal stage) or a downstream symptom (Build :: Flutter, native tests)?Do not answer from stale CI state. Read the latest relevant run or job information first.
When CI feedback is slow and only one job family matters for the current investigation, read frb-ci-filter before using ci_filter, the ci-manual-dispatch label, or related workflow configuration.
| Symptom | Fix |
|---|---|
| Flaky test (passes sometimes) | gh run rerun --failed |
| Git diff shown in CI | git apply OR regenerate |
| Lint/format errors | Add --fix flag |
| Can't reproduce locally | Use same ./frb_internal command from CI, following frb-dev-env |
When several related jobs are failing, use this dependency graph instead of treating all failures as peers:
Legend: rectangles are files or directories. Ovals are CI operations. In each oval, the first line is the CI job name and the second line in parentheses is the corresponding ./frb_internal ... command when there is one.
flowchart LR
CodegenSources["frb_codegen/src/** + codegen config"]
Versions["pinned Flutter / Dart / Rust versions"]
Templates["frb_codegen/assets/integration_template/**"]
Cargokit["cargokit"]
PureDart["frb_example/pure_dart/**"]
GeneratedOutputs["frb_example/**/frb_generated.*"]
PureDartGenerated["frb_example/pure_dart/**/frb_generated.*"]
ExampleOutputs["integrate outputs under frb_example/**"]
PureDartPde["frb_example/pure_dart_pde/**"]
PureDartPdeGenerated["frb_example/pure_dart_pde/**/frb_generated.*"]
NativeTests(["Test :: Flutter :: Native::*\n(./frb_internal test-flutter-native ...)"])
Generate(["Generate :: FRB Codegen :: Command Generate\n(./frb_internal generate-run-frb-codegen-command-generate)"])
Integrate(["Generate :: FRB Codegen :: Command Integrate\n(./frb_internal generate-run-frb-codegen-command-integrate)"])
Build(["Build :: Flutter\n(./frb_internal build-flutter ...)"])
subgraph GenerateInternal["Generate Internal stages"]
GenerateInternalPureDart(["Generate Internal :: frb_example pure_dart chain\n(./frb_internal generate-internal-frb-example-pure-dart)"])
GenerateInternalRust(["Generate Internal :: Rust\n(./frb_internal generate-internal-rust)"])
GenerateInternalOther(["Other internal stages\n(book-help / dart-source /\nbuild-runner / contributor / readme)"])
end
CodegenSources -->|used by| Generate
Versions -->|used by| Generate
Generate -->|writes| GeneratedOutputs
CodegenSources -->|used by| GenerateInternalPureDart
Versions -->|used by| GenerateInternalPureDart
PureDart -->|read by| GenerateInternalPureDart
GenerateInternalPureDart -->|rewrites| PureDart
GenerateInternalPureDart -->|derives| PureDartPde
GenerateInternalPureDart -->|writes| PureDartGenerated
GenerateInternalPureDart -->|writes| PureDartPdeGenerated
CodegenSources -->|used by| GenerateInternalRust
Versions -->|used by| GenerateInternalRust
Versions -->|used by| GenerateInternalOther
CodegenSources -->|used by| Integrate
Versions -->|used by| Integrate
Templates -->|used by| Integrate
Cargokit -->|used by| Integrate
Integrate -->|writes| ExampleOutputs
GeneratedOutputs -->|consumed by| Build
GeneratedOutputs -->|consumed by| NativeTests
PureDartGenerated -->|consumed by| Build
PureDartPdeGenerated -->|consumed by| Build
ExampleOutputs -->|consumed by| Build
ExampleOutputs -->|consumed by| NativeTestsRead the graph as artifact and input dependencies, not as a literal GitHub Actions job graph.
frb_codegen/assets/integration_template/ + cargokit -> integrate outputs under frb_example/**
If Flutter integrate examples, example platform files, Build :: Flutter, and native Flutter tests regress together, suspect these template inputs first. Do not hand-edit generated example outputs. If the bug is actually inside the embedded cargokit submodule, it is acceptable to edit that submodule directly and push to fzyzcjy/cargokit, then update the submodule ref.create/integrate does not reproduce checked-in Apple files such as .metadata iOS stanzas, ios/**, example/ios/**, macos/Podfile, or Apple-specific pubspec.yaml fragments, do not treat that as proof the checked-in files are wrong. In this repo, checked-in mac-generated Apple scaffold may be the source of truth, and Linux integrate may explicitly apply it before diff comparison.Generate Internal + frb_example/pure_dart/** -> frb_example/pure_dart_pde/**
If pure_dart_pde is failing, do not only refresh pure_dart_pde. First check whether ./frb_internal generate-internal-frb-example-pure-dart --set-exit-if-changed ... is still changing frb_example/pure_dart.Use this graph when several nearby categories start failing together in the same run, especially when earlier nodes such as Generate, Integrate, or the high-relevance Generate Internal stages are already red and later failures look consistent with missing, stale, or mismatched generated files or platform files.
Prefer fixing prerequisite nodes before symptom nodes. If a prerequisite node is still unstable, treat later failures as propagated symptoms until proven otherwise. If this pattern keeps repeating across multiple commits or CI runs, jump to Whack-a-Mole Prevention.
This section is about history across multiple commits or CI runs, not a single failing job.
Use it when the same area keeps becoming green and then red again, especially with commits like refresh, regenerate, sync, and revert.
What this usually means:
What to do:
frb_codegen/src/**, frb_codegen/assets/integration_template/**, pinned Flutter/Dart/Rust versions, generation order, or package relationshipGenerate sync commits with very similar generated Dart drift in one session or across adjacent CI runs, stop the package-by-package loop and escalate to a clean remote ./frb_internal precommit-generateCommon FRB patterns:
frb_codegen/assets/integration_template/ and cargokit; do not hand-edit generated example outputs. If the real fix belongs in cargokit, patch the submodule and update its ref instead of only patching copied outputs.pure_dart and pure_dart_pde:
if both are moving, stabilize frb_example/pure_dart first and treat pure_dart_pde as a dependent outputGenerate failures across different example packages:
if the same Generate :: FRB Codegen :: Command Generate symptom keeps rotating across packages with similar generated Dart diffs, stop fixing one package at a time. Re-run clean remote ./frb_internal precommit-generate and treat that full run as the source of truth for the whole Generate chain. Only after that full run stabilizes should you accept any remaining per-package tail diff.
Practical cutoff:
after two similar package-level sync fixes, the burden of proof switches. Do not add a third similar package sync until you have checked whether clean remote precommit-generate collapses the whole diff surface.Trigger this protocol if both are true:
Generate :: FRB Codegen :: Command Generate family across the current session or adjacent CI runsfrb_generated.dart, frb_generated.io.dart, frb_generated.web.dart, generated API wrapper files, or nearby formatting/layout churn, with no evidence yet of a package-specific semantic bug or hand-written file changeThen do this, in order:
./frb_internal precommit-generateprecommit-generate as the authoritative Generate source and debug the shared generation workflow before touching more package-level symptomsExample:
dart_minimal, then rust_ui_counter--ui, then gallery fail in separate Generate jobs with similar generated Dart drift, stop after the second one and escalate to clean remote precommit-generateSometimes CI fails due to timing issues, not real bugs. Rerun only failed jobs:
gh run rerun --failedIf it passes on retry -> flaky, not your bug.
When CI shows a diff, you have two options:
Option A: git apply (faster)
CI already ran the generator. Just apply what it computed:
# Copy the diff from CI, then:
pbpaste | git apply # macOSOption B: Regenerate (slower but more "proper")
./frb_internal precommit-generateAfter codegen: Follow
frb-dev-envand verify generated output is present in the selected worktree before reviewing the diff.
Both are correct. Option A is faster; Option B is more thorough.
Do not hand-edit generated files as the final fix.
You may use CI diffs only as a diagnosis aid to understand what changed, but the final accepted output should come from re-running the appropriate generation workflow in a clean matching environment.
CI shows the command it ran. Read frb-dev-env before running it.
Before reproducing, make sure the toolchain versions match CI closely enough to be meaningful. In practice this usually means Flutter, Dart, Rust, cargo subcommands, and any pinned template or helper dependency should match the versions used by CI.
If reproducing remotely, clean the remote workspace first unless you have a specific reason not to. In FRB this often matters because old generated files and untracked outputs can survive earlier runs and create fake diffs:
git reset --hard HEAD && git clean -fdxThen run the same command:
# CI shows: ./frb_internal test-dart --package frb_example/pure_dart
./frb_internal test-dart --package frb_example/pure_dartFor clippy, dart analyze, or format errors, use --fix:
./frb_internal lint --fixThis runs:
cargo clippy --fix - Rust lint fixescargo fmt - Rust formatdart format - Dart formatdart fix --apply - Dart auto fixesWhen lint/format failures happen on generated files, do not default to hand-editing those files just to match formatter output.
Instead:
Command Integrate FailuresWhen Generate :: FRB Codegen :: Command Integrate fails because integrated output is wrong, do not hand-edit the generated integrate example outputs.
Instead:
frb_codegen/assets/integration_template/cargokit submodule, fix and push fzyzcjy/cargokit, then update the submodule refSpecial case: Apple scaffold
create/integrate drops checked-in Apple files, do not describe the current fix as "restoring old scaffold" unless it really is an accidental workaround.If CI previously failed mainly in Generate while other jobs passed, and after accepting generated changes additional non-Generate jobs start failing, treat this as strong evidence that the accepted generated outputs are incorrect or incomplete.
In that situation:
Generate regressionsIf the symptom is not one package but a sequence of packages failing with very similar generated Dart drift, prefer validating clean remote ./frb_internal precommit-generate before accepting more package-by-package sync commits.
If clean remote precommit-generate reduces the remaining diff surface to one small tail package, accept that tail from the same clean run and rerun CI. Do not go back into a long per-package loop unless a new failure class appears.
When Test :: Dart :: Web (...) fails after the web build and server startup already succeeded, and the failure is:
Exception: Websocket url not found.treat it as a likely browser / puppeteer startup flake first, not an immediate code regression.
In that situation:
dart compile js, and local web server startup already succeededgit apply first when CI provides a diffGeneratefrb_codegen/assets/integration_template/cargokit submodule changes are off-limits when the real bug is thererefresh/regenerate/sync diffs without re-checking the upstream generation inputsGenerate sync commits after two similar generated Dart drifts, instead of escalating to clean remote precommit-generateci-manual-dispatch and rerun normal CI before treating the PR as readyfrb-code-generation - Which generation commands to runfrb-debugging - Deep debugging when simple fixes don't work© 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-fix-ci of fzyzcjy/flutter_rust_bridge.
Open the folder on GitHubat commit 848e438
Frb Fix CI 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 Fix CI this skillfzyzcjy/flutter_rust_bridge | 5.4k | — | ~4.4k | Automated safety check: Pass | MIT | |
| Green GateVeryGoodOpenSource/vgv-ai-flutter-plugin | 170 | — | ~4.7k | Automated safety check: Notes | MIT | |
| Mock Call Count Retry Fallbackdivinevideo/divine-mobile | 266 | — | ~1.2k | Automated safety check: Pass | MPL-2.0 | |
| Mockito Stale Mock Silent Trycatch Failuredivinevideo/divine-mobile | 266 | — | ~1.4k | Automated safety check: Pass | MPL-2.0 | |
| Analyze GitHub Flakeflutter/flutter | 180k | — | ~1.1k | Automated safety check: Pass | BSD-3-Clause | |
| Puremusicqingyueyin/Pure-music | 188 | — | ~907 | Automated safety check: Pass | GPL-3.0 |
VeryGoodOpenSource/vgv-ai-flutter-plugin
Drives a Dart or Flutter package fully green through a verify-fix-rerun loop across four gates: analyze, format, test, coverage.
divinevideo/divine-mobile
Fix test failures when adding retry/fallback logic causes mock call count mismatches.
divinevideo/divine-mobile
Fix misleading Flutter/Dart test failures where expected data is empty ([]) or default values instead of the mocked response, caused by stale Mockito generated mocks or missing stubs being silently…
flutter/flutter
Expertise in analyzing flake github issues in the flutter/flutter repository.
qingyueyin/Pure-music
Pure-music 项目开发指南,覆盖 Windows Flutter/Dart 前端、Rust 后端、音频播放、歌词解析与渲染、桌面歌词、主题背景、设置、FFI、文档和测试。处理此仓库的代码理解、问题诊断、功能开发、缺陷修复、性能优化或代码审查时使用。
getsentry/sentry-dart
A discipline for hard bugs, flaky tests, CI hangs, and performance regressions in this SDK.
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
A skill your agent uses when CI fails in flutterrustbridge - before deep investigation. Frb Fix CI is an agent skill from fzyzcjy/flutter_rust_bridge.
Frb Fix CI fits situations like: CI fails in flutterrustbridge - before deep investigation; tasks that involve Failing and flaky tests; tasks that involve Cross-platform mobile apps.
Run `npx skills add fzyzcjy/flutter_rust_bridge --skill frb-fix-ci -a claude-code`. Or copy the skill folder (.claude/skills/frb-fix-ci in fzyzcjy/flutter_rust_bridge) into .claude/skills/frb-fix-ci in your project. Claude Code loads it when a task matches its description.
Run `npx skills add fzyzcjy/flutter_rust_bridge --skill frb-fix-ci -a codex`. Or copy the skill folder (.claude/skills/frb-fix-ci in fzyzcjy/flutter_rust_bridge) into .agents/skills/frb-fix-ci 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-fix-ci -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-fix-ci, .gemini/skills/frb-fix-ci, .github/skills/frb-fix-ci and .opencode/skills/frb-fix-ci in your project.
Going by SKILL.md and its folder, Frb Fix CI needs the command-line tools its instructions call (git, dart, gh and cargo).
SKILL.md contains no URLs. Its commands use git and gh, 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 Fix CI is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.4k tokens (SKILL.md is roughly 18k 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 Fix CI: Green Gate (VeryGoodOpenSource/vgv-ai-flutter-plugin, 170 stars), Mock Call Count Retry Fallback (divinevideo/divine-mobile, 266 stars), Mockito Stale Mock Silent Trycatch Failure (divinevideo/divine-mobile, 266 stars) and Analyze GitHub Flake (flutter/flutter, 180k 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.