What problem does it solve? Flutter CI pipelines often drift into gate-sprawl, floating toolchains, and coverage thresholds that lie, so green builds stop meaning anything. This Skill enforces a lean single-workflow CI where every gate maps to one named release-blocking contract and nothing is silently blessed or mutated. ## Core Features & Use Cases - Pinned single-file workflow: Provides a copy-paste ci.yml skeleton with pinned ubuntu-24.04 runner, subosito/flutter-action@v2, explicit flutter-version, and VERIFY markers on unconfirmed action majors. - Freshness and static gates: Runs build_runner and drift schema dumps followed by git diff --exit-code, plus comment-stripped, structure-anchored banned-import greps that accumulate offenders and fail once. - Honest coverage and goldens policy: Fixes the upward coverage lie by including untested files, strips generated code from lcov, publishes coverage as a report never a gate, and forbids --update-goldens in CI. - Use Case: When adding a new job to .github/workflows/ci.yml or writing a policy test under test/policy, use this Skill to ensure the gate is pinned, contract-backed, and reproducible locally via scripts/ci-gates.sh before opening a PR. ## Quick Start Ask the assistant to review or generate the GitHub Actions workflow for the Flutter app so every gate is pinned, contract-backed, and reproducible locally.