关于 dart-language
面向 Dart 项目开发的编程技能,指导代码编写遵循项目 SDK 约束、现有风格与 Effective Dart。它还涵盖 API 兼容性、生成文件边界,以及格式化、分析和测试验证。
主要功能
- 01检查 pubspec.yaml 中的 SDK 约束
- 02遵循 Effective Dart 与仓库 lint
- 03维护公共 API 兼容性
- 04避免手动编辑生成文件
- 05运行格式化、静态分析和相关测试
适用场景
- 01在既有 Dart 项目中实现功能
- 02设计封闭类型与清晰分支逻辑
- 03修改公共包 API 并检查调用方
- 04验证代码生成相关源文件的改动
MCP 相关
在当前环境提供相关能力时,使用 Dart MCP 进行语义查询和分析;否则检查源码并使用项目 CLI。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ thienqo/ flutter-skills --skill dart-language安装后在 Claude Code 中输入/dart-language确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/code-generation-with-build-runner.mdpatterns-and-records-migration.mdsealed-class-hierarchies.md详细介绍
Dart 语言
编写清晰的 Dart 代码,符合项目的 SDK 约束和既定风格。
决策
- 使用较新的语法前,先查看
pubspec.yaml中的 SDK 约束。 - 优先使用简单类型和直接控制流,避免使用没有明确复用场景的抽象。
- 当穷尽式切换能提升正确性时,使用密封类型表示封闭变体。
- 小型结构化值使用记录;当身份、验证、文档说明或演进需求很重要时,使用具名领域类型。
- 当模式匹配能让分支判断或解构更清晰时再使用,不要为了新奇而使用。
- 除非明确要求破坏性变更,否则保持公共 API 兼容。
- 将可变状态设为私有,并仅暴露必要的最小接口。
- 切勿手动编辑生成文件(
*.g.dart、*.freezed.dart或任何标记为生成文件的文件);请编辑带注解的源文件,并通过项目命令重新生成。
遵循 Effective Dart 的命名、文档、用法和设计指南。遵守仓库的 lint 规则,不要添加与之冲突的风格规范。
验证
如果当前环境支持 Dart MCP 语义查找和分析,请使用;否则检查源代码并使用项目 CLI。运行格式化、静态分析和范围最小的相关测试。更改公共包 API 时,检查示例和下游调用点。
边界
- 异步、流、取消和 isolates:使用
dart-concurrency。 - Flutter 小部件组合或状态归属:使用相关 Flutter 技能。
- JSON 和持久化架构行为属于相应的数据技能。
- 代码生成器或 build_runner 版本升级后的重新生成属于
flutter-dependency-upgrades;本技能负责确保代码能正确使用已固定版本的生成器。
参考资料
- 采用模式匹配、解构、switch 表达式或多重返回时,请阅读模式和记录迁移。
- 设计代数数据类型、封闭结果模型或需要穷尽验证的状态族时,请阅读密封类层次结构。
- 类使用
freezed、json_serializable或其他 build_runner 生成器,或者生成代码过时、冲突或构建失败时,请阅读使用 build_runner 进行代码生成。
来源
评论
支持 Markdown