Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when working with flutter_rust_bridge Docker/devcontainer setup, local Docker usage, Apple Silicon containers, or publishing the dev Docker image
.claude/skills/fzyzcjy-frb-docker/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | -19% | 0% |
| case-02 | ✗→✓ | ▲ Improved | -11% | 0% |
| case-03 | ✗→✓ | ▲ Improved | -11% | 0% |
| case-04 | ✗→✓ | ▲ Improved | -9% | 0% |
| case-05 | ✗→✓ | ▲ Improved | -19% | 0% |
Use this skill for ordinary FRB Docker/devcontainer work: local container usage, Apple Silicon behavior, and local Dockerfile validation.
Read frb-upgrade-docker before changing toolchain inputs or publishing fzyzcjy/flutter_rust_bridge_dev. It owns PR boundaries, candidate tags, stable-tag promotion, and registry workflow policy.
.devcontainer/devcontainer.json.devcontainer/Dockerfile.github/workflows/publish_dev_docker.yamlfzyzcjy/flutter_rust_bridge_devThe Dockerfile is the source of truth for tool versions. Derive image tags from its ARG values instead of hardcoding stale versions.
Prefer devcontainer for normal development.
shellDev Containers: Reopen in Container
The devcontainer builds from .devcontainer/Dockerfile and runs ./frb_internal pub-get-all to prepare Dart/Flutter package dependencies; first Rust/wasm builds may still be slow because crate compilation caches are not warmed.
Default behavior is still to build locally from .devcontainer/Dockerfile. If you want to use a prebuilt image instead, switch to the full version tag derived from the current Dockerfile args rather than latest.
shelldocker run --rm -it -v "$PWD:/workspace" -w /workspace fzyzcjy/flutter_rust_bridge_dev:latest bash
Use latest only for quick local checks where reproducibility does not matter.
Use this when not using VS Code devcontainers, or when validating local Dockerfile changes.
shelldocker build -f .devcontainer/Dockerfile -t frb-dev .devcontainer docker run --rm -it -v "$PWD:/workspace" -w /workspace frb-dev bash
Inside a fresh manual container, run:
shell./frb_internal pub-get-all
Then run normal development commands such as:
shell./frb_internal lint cargo check
Apple Silicon Macs use the same commands as other platforms. Do not add --platform linux/amd64 for normal local development.
Docker should select linux/arm64 automatically for multi-arch images. If a command only works with --platform linux/amd64, treat that as a regression to investigate.
For Dockerfile changes, validate at least:
shelldocker build -f .devcontainer/Dockerfile -t frb-dev .devcontainer docker run --rm -v "$PWD:/workspace" -w /workspace frb-dev bash -lc './frb_internal --help'
For environment changes, smoke-test the installed tools:
shelldocker run --rm -v "$PWD:/workspace" -w /workspace frb-dev bash -lc ' set -euo pipefail flutter --version dart --version node --version npm --version cargo --version wasm-pack --version "${CHROME_BIN}" --version '
For broader confidence, run:
shelldocker run --rm -v "$PWD:/workspace" -w /workspace frb-dev bash -lc './frb_internal pub-get-all && ./frb_internal lint --fix' docker run --rm -v "$PWD:/workspace" -w /workspace/frb_rust frb-dev bash -lc 'cargo check && cargo check --target wasm32-unknown-unknown'
If generated files drift during lint/codegen, do not manually edit generated files. Restore unrelated generated drift unless the task intentionally changes generation outputs.
Do not publish from this ordinary-use workflow. Continue with frb-upgrade-docker when validation must produce a candidate or stable registry image.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 18,055 | 10,328 | -43% | 1 | 1 | 0% | 2,411 | 1,944 | -19% | 0 | 0 | — |
case-02 | fail→pass | 41,883 | 15,139 | -64% | 1 | 1 | 0% | 2,800 | 2,490 | -11% | 0 | 0 | — |
case-03 | fail→pass | 17,799 | 10,942 | -39% | 1 | 1 | 0% | 2,313 | 2,050 | -11% | 0 | 0 | — |
case-04 | fail→pass | 16,055 | 7,605 | -53% | 1 | 1 | 0% | 1,436 | 1,312 | -9% | 0 | 0 | — |
case-05 | fail→pass | 15,107 | 7,987 | -47% | 1 | 1 | 0% | 1,702 | 1,374 | -19% | 0 | 0 | — |
case-06 | fail→pass | 41,614 | 14,775 | -64% | 1 | 1 | 0% | 2,963 | 2,248 | -24% | 0 | 0 | — |
case-07 | pass→pass | 16,012 | 7,703 | -52% | 1 | 1 | 0% | 2,081 | 1,255 | -40% | 0 | 0 | — |
case-08 | fail→pass | 15,781 | 8,442 | -47% | 1 | 1 | 0% | 1,953 | 1,477 | -24% | 0 | 0 | — |
case-09 | fail→pass | 15,174 | 7,959 | -48% | 1 | 1 | 0% | 1,696 | 1,352 | -20% | 0 | 0 | — |
case-10 | fail→pass | 19,442 | 8,506 | -56% | 1 | 1 | 0% | 2,454 | 1,448 | -41% | 0 | 0 | — |
case-11 | pass→pass | 19,675 | 9,948 | -49% | 1 | 1 | 0% | 2,442 | 1,809 | -26% | 0 | 0 | — |
case-12 | fail→pass | 11,367 | 3,595 | -68% | 1 | 1 | 0% | 2,148 | 1,433 | -33% | 0 | 0 | — |
case-13 | fail→pass | 9,505 | 9,458 | -0% | 1 | 1 | 0% | 1,343 | 1,507 | +12% | 0 | 0 | — |
case-14 | fail→fail | 12,008 | 4,206 | -65% | 1 | 1 | 0% | 966 | 1,089 | +13% | 0 | 0 | — |
case-15 | fail→pass | 14,739 | 8,812 | -40% | 1 | 1 | 0% | 1,826 | 1,510 | -17% | 0 | 0 | — |
case-16 | fail→pass | 12,682 | 7,826 | -38% | 1 | 1 | 0% | 2,041 | 1,352 | -34% | 0 | 0 | — |
case-17 | fail→pass | 7,985 | 4,346 | -46% | 1 | 1 | 0% | 1,399 | 1,436 | +3% | 0 | 0 | — |
case-18 | fail→pass | 15,317 | 3,964 | -74% | 1 | 1 | 0% | 2,430 | 1,564 | -36% | 0 | 0 | — |
case-19 | pass→pass | 3,491 | 1,382 | -60% | 1 | 1 | 0% | 660 | 1,071 | +62% | 0 | 0 | — |
case-20 | fail→fail | 9,697 | 3,608 | -63% | 1 | 1 | 0% | 1,817 | 1,449 | -20% | 0 | 0 | — |
case-21 | fail→pass | 10,536 | 2,502 | -76% | 1 | 1 | 0% | 1,801 | 1,279 | -29% | 0 | 0 | — |
case-22 | fail→fail | 11,521 | 8,120 | -30% | 1 | 1 | 0% | 1,846 | 1,402 | -24% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +73 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
| Model | Method | Date | Lift |
|---|---|---|---|
| gemini-3.6-flash | verified | 8/10/2026 | +68% |
Other measured skills in the registry, with their headline benchmark lift.