一键导入
dataforge
指导用户在 dataforge 项目中完成安装、模型声明、代码生成、调试与迁移。只要用户提到 Dataforge 用法、@Dataforge 注解、copyWith、fromJson/toJson、生成 .data.dart、CLI 与 build_runner 取舍、或报错排查,都应主动使用本技能。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
指导用户在 dataforge 项目中完成安装、模型声明、代码生成、调试与迁移。只要用户提到 Dataforge 用法、@Dataforge 注解、copyWith、fromJson/toJson、生成 .data.dart、CLI 与 build_runner 取舍、或报错排查,都应主动使用本技能。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | dataforge |
| description | 指导用户在 dataforge 项目中完成安装、模型声明、代码生成、调试与迁移。只要用户提到 Dataforge 用法、@Dataforge 注解、copyWith、fromJson/toJson、生成 .data.dart、CLI 与 build_runner 取舍、或报错排查,都应主动使用本技能。 |
用于回答和执行 dataforge 的日常使用问题,重点覆盖:
@Dataforge() 数据类.data.dartbuild_runner 两种模式之间选择Dataforge 不是广泛的通用知识。触发本技能后,不要只依赖记忆,必须优先读取 references/ 下的完整 README,再输出答案或改动建议。
最少读取策略:
references/root_README.md 与相关子模块 READMEreferences/cli_README.md(中文用户可优先 references/cli_README_ZH.md)references/generator_README.md(中文可读 references/generator_README_ZH.md)references/dataforge_base_README.md若用户问题跨模块或你不确定答案,直接读取全部 README,再给结论。
先看 references/README_INDEX.md 再决定读取顺序。
当用户提到以下任一内容时,优先使用本技能:
@Dataforge、@JsonKeycopyWith、链式深拷贝fromJson / toJsonpart 'xxx.data.dart'dataforge . 或 dart run build_runner buildfactory ... fromJson 报错build_runner:优先保留 build_runner。先从 references/ 读取相关文档段落,再回答。
给出最小可运行示例(不要只讲概念)。
pubspec.yaml 依赖with _ClassName@overridepart 'xxx.data.dart'factory Class.fromJson(...) => _Class.fromJson(...)(当用户需要 fromJson)给出可直接执行的命令,并按用户工作目录说明。
如果用户遇到报错,先定位到下面“故障快速检查清单”,按顺序排查。
CLI 模式(推荐速度):
dependencies:
dataforge_annotation: ^latest
并安装命令行工具:
dart pub global activate dataforge_cli
build_runner 模式:
dependencies:
dataforge_annotation: ^latest
dev_dependencies:
build_runner: ^latest
dataforge: ^latest
import 'package:dataforge_annotation/dataforge_annotation.dart';
part 'user.data.dart';
@Dataforge(includeFromJson: true, includeToJson: true)
class User with _User {
@override
final String name;
@override
final int age;
const User({required this.name, required this.age});
factory User.fromJson(Map<String, dynamic> json) => _User.fromJson(json);
}
CLI:
dataforge .
# 或
dataforge lib/models/user.dart
build_runner:
dart run build_runner build
# 持续监听
dart run build_runner watch
按这个顺序检查:
part 'xxx.data.dart',且文件名匹配。with _ClassName(大小写必须一致)。@override。factory ... fromJson 是否指向 _ClassName.fromJson(json)。build_runner。默认用这个结构回答用户:
模式选择:CLI / build_runner(附一句原因)
步骤:
1. 修改依赖
2. 创建/修正模型
3. 运行生成命令
可直接复制的代码:
- pubspec 片段
- 模型代码
- 命令
排查建议(如有报错):
- 给出 1~3 条最可能原因和修复方式
本仓库是 Dataforge monorepo,主要目录:
annotation/ 注解包dataforge_base/ 基础能力generator/ 生成器cli/ 命令行工具如果用户是在维护本仓库本身,不是在业务项目接入: