What problem does it solve? In this offline-first Flutter project, every dependency version must match a single decision record exactly, and unreviewed packages, caret ranges, or gate-silencing edits can break the build or void the app's no-network guarantee. This Skill enforces that discipline before any pubspec.yaml, analysis_options.yaml, or Makefile change. ## Core Features & Use Cases - Dependency admission control: Checks proposals against the decision record's accepted and rejected package tables, requiring audit of publisher, transitive graph, and merged Android permissions before any pin is added. - Pin enforcement: Guards non-negotiable pins such as Flutter 3.44.8 via FVM, flutter_riverpod 2.6.1 exact, build_runner >=2.15.0 <2.15.2, and intl any, and bans flutter pub add. - Gate ownership (G2/G3): Operates the lockfile allowlist gate and the import-level source scan, with a reference file explaining every rule id, the real fix, and the forbidden fix. - Use Case: Before adding a charting package, consult the rejection table, find fl_chart is rejected in favor of a hand-rolled CustomPainter, and apply that alternative instead of re-litigating. ## Quick Start Ask the assistant to review a proposed new Flutter package against the decision record and update pubspec.yaml and the policy allowlist correctly.