If you use AI coding assistants—whether it is Claude Code, Google Antigravity, OpenAI Codex, GitHub Copilot, Cursor, or Cline—you have likely experienced the Training Cutoff Frustration in Dart and Flutter. Dart moves fast. Over the last few years, we have seen: Dart 2.12 : Sound Null Safety ( ? , late , ! , required ). Dart 2.17 : Super-parameters ( super.key ) and enhanced enums. Dart 3.0 : Records, pattern matching, switch expressions, and sealed classes (while permanently dropping non-null-safe mode). Dart 3.12–3.13+ : Private named parameters, constructor shorthands, and primary constructors ( class Point(var int x, var int y); ). Because pre-training datasets naturally lag behind the bleeding edge, vanilla LLMs frequently: Reject modern Dart 3.13 syntax as "syntax errors". Write 15 lines of repetitive constructor and equality boilerplate where modern primary constructors belong. Mess up the environment.sdk lower bound ( minSdk ) in pubspec.yaml . Struggle to rescue pre-2.12 legacy apps because they don't know the exact milestone sequence to cross the null-safety divide. To solve this once and for all, I extracted and open-sourced dart-sdk-skills . 🎯 What is dart-sdk-skills ? dart-sdk-skills is an authoritative, version-by-version skill package designed specifically for AI coding agents. Rather than dumping thousands of lines into your prompt on every turn, it uses progressive disclosure : The agent holds a compact, fast Feature Matrix covering every version from Dart 1.0 to 3.14. When an agent is asked "What's new in Dart 3.13?" , "What minSdk do I need for private named parameters?" , or "Help me modernize this legacy Flutter app" , it dynamically reads the exact changelog reference guide on demand. 🛠️ Two Massive Use Cases 1. Modern Greenfield & Bleeding-Edge Dart 3.13+ Instead of fighting the LLM over modern language ergonomics, your agent immediately knows: Primary constructors & this : assert(...) bodies. Wildcard variables ( _ ) and digit separators ( 1_000_000 ). Exact minSdk verification so your pubspec.yaml never breaks CI. 2. Rescuing Legacy Codebases (Dart 1.x & Pre-2.12) Because Dart 3 completely disallows running without sound null safety, rescuing older codebases requires a strict 4-stage pipeline: Dart 1.x ➔ 2.0 : Drop obsolete new keywords and enforce sound static typing. Pre-2.12 ➔ 2.12 : Transform @required annotations, uninitialized nullable fields, and defensive runtime assertions. pubspec.yaml : Bump environment lower bound to ^3.5.0 or ^3.13.0 and replace deprecated packages ( pedantic , tuple ). Dart 3 Modernization : Adopt super-initializers, sealed classes, and pattern matching. 📦 How to Install (One Command) You can install dart-sdk-skills globally across all your projects in seconds using any skill package manager: Using npx skills (Universal / Node): npx skills add RandalSchwartz/dart-sdk-skills -g Using the Dart skills CLI: skills add https://github.com/RandalSchwartz/dart-sdk-skills --global --all Once installed, your agent is automatically equipped with the entire Dart SDK knowledge base. Check out the full repository on GitHub: 👉 https://github.com/RandalSchwartz/dart-sdk-skills

Bridging the AI Cutoff: Teaching Coding Agents Every Dart Feature from 1.0 to 3.14
Randal L. Schwartz

