What problem does it solve? Migrating Dart test suites from the legacy package:matcher assertions (exported by package:test) to the modern package:checks library is error-prone: subtle differences like deep collection equality, async throws behavior, and strict null safety can silently break tests or cause compiler errors. This Skill provides a structured workflow, a matcher mapping table, and pitfall guidance to perform the migration safely. ## Core Features & Use Cases - Step-by-step migration workflow: Update pubspec.yaml dependencies, swap imports (package:test/scaffolding.dart + package:checks/checks.dart), translate assertions, and verify with dart analyze and dart test. - Matcher-to-Checks mapping table: Direct replacements for expect, isA, hasLength, completion, throwsA, emits, and more, plus workarounds for matchers with no equivalent (e.g., isPositive, inClosedOpenRange). - Pitfall documentation: Covers ten critical differences including .deepEquals for collections, because replacing reason, RegExp handling in .matchesPattern, and sync vs. async .throws<E>() chaining. - Use Case: You inherit a legacy Dart package with hundreds of expect(actual, expected) calls. Use this Skill to incrementally convert each test file, using the compiler to surface remaining unmigrated assertions. ## Quick Start Migrate the tests in my Dart project's test directory from package:matcher expect calls to package:checks syntax.