dart-sdk-skills 提取了 Dart 所有关键版本语法(空安全、Records、模式匹配、主构造函数等),解决 AI 编码助手因训练数据滞后而误判新语法、错写空安全迁移路径的问题。
如果你使用 AI 编程助手——无论是 Claude Code、Google Antigravity、OpenAI Codex、GitHub Copilot、Cursor 还是 Cline——你很可能在 Dart 和 Flutter 中经历过训练数据截止日期的困扰。
Dart 演进很快。过去几年里,我们见证了:
Dart 2.12:sound null safety(?、late、!、required)。
Dart 2.17:super-parameters(super.key)和增强型枚举。
Dart 3.0:Records、模式匹配、switch 表达式和 sealed 类(永久取消 non-null-safe 模式)。
Dart 3.12–3.13+:私有命名参数、构造函数简写和 primary constructors(class Point(var int x, var int y);)。
由于预训练数据集天然滞后于最新版本,原始 LLM 经常会:
将现代 Dart 3.13 语法标记为"语法错误"。
在应该使用 primary constructors 的地方写 15 行重复的构造函数和相等性样板代码。
搞错 pubspec.yaml 中的 environment.sdk 下限(minSdk)。
无法拯救 pre-2.12 的遗留应用,因为他们不知道跨越 null safety 边界的精确里程碑顺序。
为了彻底解决这个问题,我提取并开源了 dart-sdk-skills。
🎯 什么是 dart-sdk-skills?
dart-sdk-skills 是一个权威的、逐版本更新的技能包,专为 AI 编程助手设计。
它不会在每次对话中向你的 prompt 倾倒数千行代码,而是使用渐进式披露机制:
Agent 持有一份紧凑的、快速检索的特性矩阵,涵盖从 Dart 1.0 到 3.14 的每个版本。
当 Agent 被问到"Dart 3.13 有哪些新特性?""私有命名参数需要什么 minSdk?"或"帮我现代化这个遗留 Flutter 应用"时,它会按需动态读取精确的变更日志参考指南。
🛠️ 两个大规模使用场景
与其让 Agent 在现代语言 ergonomics 上与 LLM 纠缠,Agent 立即就知道:
Primary constructors 和 this : assert(...) 函数体。
Wildcard variables(_)和数字分隔符(1_000_000)。
精确的 minSdk 验证,让你的 pubspec.yaml 永远不会破坏 CI。
由于 Dart 3 完全禁止在无 sound null safety 的情况下运行,拯救旧代码库需要严格的 4 阶段流水线:
Dart 1.x ➔ 2.0:删除过时的 new 关键字并强制执行 sound static typing。
Pre-2.12 ➔ 2.12:转换 @required 注解、未初始化的可空字段和防御性运行时断言。
pubspec.yaml:将 environment 下限提升到 ^3.5.0 或 ^3.13.0,并替换已弃用的包(pedantic、tuple)。
Dart 3 现代化:采用 super-initializers、sealed 类和模式匹配。
📦 如何安装(一条命令)
你可以使用任意技能包管理器在几秒钟内全局安装 dart-sdk-skills 到所有项目:
使用 npx skills(通用 / Node):
npx skills add RandalSchwartz/dart-sdk-skills -g
使用 Dart skills CLI:
skills add https://github.com/RandalSchwartz/dart-sdk-skills --global --all
安装完成后,你的 Agent 自动拥有整个 Dart SDK 知识库。
在 GitHub 上查看完整仓库:👉 https://github.com/RandalSchwartz/dart-sdk-skills