Dart Agent Skills(Google 官方 Dart 开发技能集) Skill 技能

## 产品简介 Dart Agent Skills 是由 Google Dart 官方团队维护的开源技能库

产品简介

Dart Agent Skills 是由 Google Dart 官方团队维护的开源技能库,专门为 AI 编程助手提供 Dart 开发领域的专业工作流指引。该技能集填补了通用 AI 助手在 Dart 语言特定最佳实践上的知识空白,让 AI Agent 能够像资深 Dart 开发者一样完成单元测试编写、CLI 应用构建、FFI 集成、静态分析修复等高频开发任务。

Dart Agent Skills 的核心理念是:MCP 协议解决的是「工具有无」的问题,而 Skills 解决的是「工具怎么用」的问题。每个 Skill 都包含完整的分步指令、代码示例和错误处理方案,AI 读取后可在实际任务中输出符合 Dart 团队官方规范的生产级代码。


核心能力

1. 单元测试编写(dart-add-unit-test)

指导 AI 使用 package:test 编写和组织单元测试,覆盖函数测试、类方法测试和 bug 修复场景。确保新增逻辑有测试覆盖、历史功能不引入回归,是每一个 Dart 项目质量保障的基础设施。

使用场景: 创建新逻辑时自动生成测试,或修复 bug 时同步补充回归测试用例。

2. CLI 应用构建(dart-build-cli-app)

覆盖 Dart 命令行应用的入口结构、退出码规范和跨平台脚本编写规范。包含参数解析、帮助文本生成和错误处理的标准模式,帮助 AI 构建专业级别的命令行工具。

使用场景: 需要生成 Dart CLI 工具时,确保代码结构符合社区公认的工程标准。

3. 测试覆盖率收集(dart-collect-coverage)

集成 coverage 包执行测试覆盖率收集,并生成 LCOV 格式覆盖率报告。覆盖率数据是团队代码健康度的重要指标,也是 CI/CD 流水线质量关卡的核心依据。

使用场景: 在 CI 流程中自动运行覆盖率检查,或在本地评估测试套件完整性。

4. FFI 原生资产配置(dart-setup-ffi-assets)

通过 Dart Native Assets 钩子系统,自动化编译、打包 C/C++ 源码为动态或静态库的全流程。覆盖本地工具链配置、安全下载编排(含加密校验)以及高级 Tree-shaking 链接配置。

使用场景: 需要在 Dart 中调用 C 语言函数库(如调用系统级 API 或高性能计算模块)时,确保构建链路安全可靠。

5. 运行时错误修复(dart-fix-runtime-errors)

利用 get_runtime_errors 和 LSP 协议获取当前堆栈跟踪,定位报错行,应用修复方案,并通过热重载验证修复结果。传统的 AI 辅助调试往往只能「描述问题」,该 Skill 让 AI 真正执行完整的「发现问题→定位→修复→验证」闭环。

使用场景: 运行时出现空指针、类型错误等异常时,AI 可自动完成从诊断到修复的全流程。

6. Mock 对象生成(dart-generate-test-mocks)

使用 package:mockito 和 build_runner 为外部依赖(如 API 客户端、数据库连接)自动生成 Mock 对象。单元测试中隔离外部依赖是测试稳定性的关键,该 Skill 确保 AI 能正确生成符合项目规范的 Mock 代码。

使用场景: 测试涉及外部服务的类时,自动生成对应 Mock,避免真实网络调用影响测试结果。

7. checks 包迁移(dart-migrate-to-checks-package)

将项目中从 package:matcher(expect 等函数)迁移至 package:checks 等效 API 的完整工作流。checks 是 Dart 官方推荐的下一代断言库,该 Skill 指导 AI 自动完成迁移并确保测试语义不变。

使用场景: 升级 Dart SDK 或规范要求切换断言库时,AI 自动完成批量迁移。

8. 依赖冲突解决(dart-resolve-package-conflicts)

当 pub get 因包版本不兼容而失败时,该 Skill 提供标准化的冲突分析和解决方案生成流程。帮助 AI 理解依赖图、定位冲突来源,并生成最小改动的版本调整方案。

使用场景: 添加新依赖后 pubspec.yaml 报冲突,或升级某包后引发连锁依赖报错时。

9. 静态分析与自动修复(dart-run-static-analysis)

执行 dart analyze 识别警告和错误,并通过 dart fix --apply 自动修复机械性 Lint 问题。该 Skill 确保 AI 在生产代码时遵循 Dart 官方代码规范,减少人工 Code Review 负担。

使用场景: 开发过程中或提交前自动运行静态分析,确保代码质量符合社区规范。

10. FFI 绑定生成(dart-use-ffigen)

指导 AI 使用 package:ffigen 自动生成 Dart 与 C/Objective-C/Swift 的 FFI 绑定,避免手动编写容易出错的绑定代码。支持新 bindings 生成、现有 bindings 扩展和手动绑定替换。

使用场景: 需要在 Dart 中调用原生代码(如系统 API、硬件 SDK 或高性能 C++ 库)时。

11. 模式匹配应用(dart-use-pattern-matching)

在适合的场景中推广 switch 表达式和模式匹配语法,这是 Dart 3.x 最重要的语言特性之一。该 Skill 帮助 AI 识别可使用模式匹配的代码位置,并输出符合 Dart 风格的简洁表达。

使用场景: 重构条件分支时,或处理代数数据类型(ADT)时,自动建议使用模式匹配替代传统 if-else 链。

12. API 文档编写(dart-write-documentation)

制定 Dart /// API 文档和 doc 注释的编写规范和格式要求,遵循 Effective Dart 文档指南。覆盖所有 Dart 声明(库、类、方法、变量)的文档标准,确保 AI 生成的文档具有专业可读性。

使用场景: 为公共 API 补全文档,或批量为新类/方法添加符合规范的注释。

13. 文档示例注入(dart-use-doc-examples)

指导 AI 通过 {@example} 指令向 Dartdoc 注入外部代码示例,并使用 #hide、#region、#endregion 标签过滤文件内容。代码示例是 API 文档可用的核心保障,该 Skill 让 AI 生成可嵌入官方文档的规范示例。

使用场景: 为 Client 类等公共 API 补充可运行的代码示例,提升文档可用性。


安装配置

环境要求

  • Dart SDK 3.0 及以上版本
  • Node.js(用于运行 npx skills CLI)
  • 支持的 AI Agent:Claude Code、Cursor、Codex、Antigravity 等通用 Agent

安装步骤

第一步:安装 skills CLI 工具

skills CLI 通过 npm 分发,需确保本地已安装 Node.js:

npm install -g @anthropic-ai/skills-cli

第二步:安装 Dart Skills 到项目

在 Dart/Flutter 项目根目录执行以下命令,将所有 Skill 安装到 .agents/skills 目录:

npx skills add dart-lang/skills --skill '*' --agent universal --yes

该命令会自动创建 .agents/skills 目录并下载全部 13 个 Skill 文件。

第三步:选择性安装(可选)

如只需安装特定 Skill,可替换 --skill '*' 为具体 Skill 名称:

npx skills add dart-lang/skills --skill 'dart-add-unit-test' --agent universal --yes

第四步:验证安装

安装完成后,可询问 AI Agent:「我安装的 Skills 中哪些可以帮助我完成 [当前任务]?」Agent 将自动加载相关 Skill 并提供精准指引。


使用步骤

基础使用流程

第一步:描述任务

在 AI Agent 对话中描述你需要完成的 Dart 开发任务,例如:「为 Point 类添加单元测试」或「修复 user_profile_service.dart 中的空指针错误」。

第二步:Agent 自动加载 Skill

Agent 识别任务类型后,自动从 .agents/skills 目录读取对应的 SKILL.md 文件,加载该任务的分步指令和代码规范。

第三步:执行并反馈

Agent 按照 Skill 中的工作流执行任务,完成后输出符合 Dart 官方规范的代码和说明。

第四步:验证结果

运行 dart analyze 和相关测试,确认 Agent 输出符合预期。如有问题,Agent 会根据 Skill 指引进行自修复。


适用场景

场景一:TDD 开发流程

在测试驱动开发(TDD)模式下,开发者先描述需求,AI Agent 加载 dart-add-unit-test Skill 生成测试骨架,运行失败后加载对应实现 Skill 编写代码,循环直至测试通过。整个过程无需人工编写测试代码。

场景二:遗留代码重构

对于历史遗留的 Dart 项目,使用 dart-migrate-to-checks-package 和 dart-run-static-analysis 批量升级断言语法并清理 Lint 警告,AI Agent 可在短时间内完成原本需要数天的规范化工作。

场景三:FFI 原生集成

当 Dart 项目需要调用 C 语言函数库(如硬件 SDK、系统 API)时,dart-setup-ffi-assets 和 dart-use-ffigen 提供从编译到绑定的完整链路,减少手动编写 FFI 的出错风险。

场景四:持续集成质量门禁

在 CI/CD 流水线中集成 dart-run-static-analysis 和 dart-collect-coverage,AI Agent 在每次 Pull Request 时自动检查代码质量和测试覆盖率,低于阈值则阻止合并。


适用人群

  • Flutter/Dart 开发者:需要在项目中引入 AI 辅助编程,并希望 AI 输出符合官方规范的生产级代码。
  • AI 工程化团队:构建 AI Coding Agent 能力,希望接入标准化的领域知识库来提升 Agent 在特定技术栈的表现。
  • 技术负责人 / 工程效能团队:制定 AI 辅助开发规范,通过统一 Skill 库确保团队内 AI 输出的代码风格和质量标准一致。
  • 开源贡献者:为 dart-lang/skills 贡献新的 Skill,覆盖更多 Dart 开发工作流,共同完善官方 AI 开发工具链。

工作原理

Dart Agent Skills 的底层设计基于「渐进式披露」(Progressive Disclosure)原则,与 Dart 语言的 Deferred Loading 理念一脉相承。

元数据优先加载:Agent 执行任务时,首先读取 Skill 的轻量元数据(名称、描述、适用条件),判断该 Skill 是否与当前任务相关,避免一次性将所有 Skill 全文加载进 LLM 上下文窗口,造成 token 浪费和注意力稀释。

按需完整加载:仅当 Skill 与当前任务匹配时,Agent 才会加载完整的 SKILL.md 文件内容,执行其中的分步指令。这种机制确保即使在复杂的 Flutter/Dart 项目中,Agent 也能保持高效和精准。

Skill 标准格式:每个 Skill 就是一个包含 SKILL.md 的文件夹,SKILL.md 中定义了任务目标、标准操作流程、代码模板和验证方法。这种标准化格式使 Skill 可以在不同 Agent(Claude Code、Cursor、Codex)之间无缝迁移。


官方链接

团队信息

由 AI 猎手自动发现

评论与建议

0 条评论