What problem does it solve? Flutter codebases decay into unreviewable tangles: junk-drawer folders, cross-feature imports, MethodChannels scattered through widgets, and packages extracted before any logic earns them. This Skill makes structural defects greppable by enforcing a single-package feature-first layout, a downward-only dependency DAG, and pubspec manifests that act as audit artifacts. ## Core Features & Use Cases - Placement-by-failure rules: Deterministic guidance for where repositories, Notifiers, MethodChannels, value types, and tokens belong across lib/features/, core/, data/, services/, routing/, theme/, and l10n/. - Package extraction discipline: Criteria and wiring for extracting a generically-named pure-Dart package (meta-only deps, resolution: workspace, one public barrel over lib/src/) only when logic earns isolation. - Automated boundary checks: Two shell scripts flag junk-drawer folders, app-package barrels, MethodChannels outside services/native/, relative imports, cross-package lib/src/ imports, and Flutter/dart:io/wall-clock usage in pure roots. - Use Case: When adding a new repository or reviewing a diff, run the placement decision procedure and the check scripts before a PR to prove no feature imports another feature and lib/core/ stays Flutter-free. ## Quick Start Ask the assistant to decide where a new Dart class belongs in the Flutter project and to run the structure and import-boundary checks before committing.