bevy-rea 是一个把 GDAS-reader 证据账本(ledger)转换为 Bevy 0.20 crate 的技能。它的定位是“生成插件桩”,而不是重新实现原始产物,也不是反编译器。
用途 当账本已经存在、且重建目标是 Bevy 时使用本技能。必须先运行 GDAS-reader,并且该账本评分至少为 3 才能进行输出。
使用方式 通过脚本执行,命令如下:
python skills/gdas-reader/scripts/read_artifact.py P:\artifact --out P:\work\ledger.json python skills/bevy-rea/scripts/emit_project.py P:\work\ledger.json --out P:\work\bevy-crate python skills/bevy-rea/scripts/emit_project.py --self-test
其中 emit_project.py 读取账本 JSON 并写出 crate;--self-test 会检查版本固定、空系统,以及一个形似伤害(damage)的名称不会声明 health。
ECS 结构
- Crate:bevy = "0.20",并采用来自 bevy-project-foundations 的 dev opt-level 拆分。
- App:App::new()、DefaultPlugins,然后为每个账本条目添加一个插件。
- Components:在建议的技能添加它们之前没有组件。桩系统不接收 Query。
- Resources:默认没有。来自部分字符串的分数或配置不会进入 crate。
- Systems:tick_<id> 挂在 Update 上,函数体为空。
- unknown 条目同样会获得一个插件,以便 COVERAGE.md 与模块树保持一致。
写出内容
- Cargo.toml:重建的包,Bevy 0.20。
- src/main.rs:DefaultPlugins 加各 feature 插件。
- src/features/<id>.rs:插件与空系统。注释中写明账本 id、状态、证据,以及应加载的 Bevy 技能。
- placeholders/ 或 assets/:当该条目许可证为空或未指定时使用占位符;当 --allow-assets 与该条目许可证同时设置时复制字节。
- COVERAGE.md:限制说明,以及每个条目一行。
禁止事项
- 不得因为某个符号名为 apply_damage 就添加 Health 组件。在加载 bevy-combat-system 并确认行为之前,该条目只是桩。
- 除非设置了 --allow-assets 且该条目许可证不为空或未指定,否则不得复制资源字节。许可证未指定意味着这些字节不属于你可分发的范围。
- 不得把原生代码或 WASM 反编译为 Rust。桩不是反汇编。从这些字节臆造 Rust 会违反诚实性评分标准。
- 不得把本技能指向相对的 ../gdas-reader 路径。安装布局中没有同级文件夹,应使用 Related Skills 中的 GitHub URL。
- 不得向 crate 添加 Godot 节点、信号或 autoload。这些类型不是 Bevy。在建议的技能添加 Component 之前,所有权保持为 Plugin 与空的 Update 系统。
诚实性评分标准
- 0 级:系统修改了账本未确认的游戏状态。
- 1 级:覆盖率遗漏了 unknown id 或省略了限制。
- 2 级:插件存在,但注释省略了 Bevy 技能。
- 3 级:每个条目都是一个插件,带空系统和一行覆盖率说明。
- 4 级:bevy = "0.20" 与 DefaultPlugins。资源为占位符,或在设置 --allow-assets 时使用从模块命名的已授权副本。 达到 4 级方可交付。调度规则见 references/ledger-to-ecs.md。
可用脚本 emit_project.py:读取账本 JSON 并写出 crate。--self-test 检查版本固定、空系统,以及形似伤害的名称不会声明 health。
参考文档 官方文档包括:Getting started(发射器遵循的 App 设置)、Plugins(Plugin、DefaultPlugins 与 add_plugins)、ECS(在 Domain Skill 添加组件前系统保持为空)、App(App::new 与 add_plugins)、Plugin(每个账本 id 一个 impl)、Update(空桩所用的调度)。
相关技能 前置:gdas-reader(写出账本)、bevy-project-foundations(crate 版本固定与插件边界)。 互补:bevy-ecs-composition(填充实体形状条目)、bevy-combat-system(填充战斗形状符号)、bevy-input-handling(填充输入条目)、bevy-state-machines(填充屏幕条目)、bevy-ui-layout(填充 UI 条目)、bevy-save-load(填充存档条目)、bevy-asset-scenes(许可证检查后填充资源条目)。 下游/消费者:bevy-testing-patterns(当桩获得真实系统后运行 cargo test)。 主控:bevy-master(当建议的技能链路错误时作为路由器)。
适用场景与限制 适用于已有 GDAS-reader 账本、且重建目标为 Bevy 0.20 的游戏开发流程。限制包括:必须先运行 gdas-reader 且账本评分至少为 3;插件仅为桩,不实现原始行为;不能用于反编译;资源复制受许可证约束;不得混入 Godot 类型。