What problem does it solve? Flutter and Dart projects accumulate dependencies that silently pull in network clients, telemetry SDKs, or abandoned packages, and a gitignored or stale pubspec.lock means every machine resolves a different graph. This Skill enforces a repeatable discipline so a project still resolves and builds years later. ## Core Features & Use Cases - Policy-based transitive auditing: Walks the full resolved dependency graph via dart pub deps --json and flags banned packages (network clients, crash reporting, analytics, ads, device identifiers) whether they arrive directly or transitively, separating shipping deps from build/test-only ones. - Pubspec and lock discipline: Enforces caret ranges in pubspec.yaml with exact pins only in a committed pubspec.lock, and verifies the version-pinned lint include file still exists after an SDK bump. - Vendoring escape hatch: Provides a procedure for wrapping a bus-factor-1 native plugin behind an interface and vendoring it into third_party/ only when it actually breaks. - Use Case: Before adding a new package to an offline-first Flutter app, run the audit script to discover that the package transitively pulls in a telemetry core, then reject it before it ever reaches pubspec.yaml. ## Quick Start Ask the assistant to audit the project's dependencies by running scripts/audit-deps.sh and report any banned packages in the resolved tree.