python3 scripts/moon_proto_lab.py doctor examples/ai/bad_order.proto
输出包含稳定路径:
schema invalid
issues: 6
message.Order.field.1: duplicate field number
message.Order.field.invalid_labels.key: invalid map key type
message.Order.field.legacy_note.number: field uses reserved number
message.Order.field.legacy_note.name: field uses reserved name
Moon Proto Lab
Moon Proto Lab 是面向 MoonBit protobuf 生态的 schema 验证、兼容性检查与 AI 代码验证工具链。
它把
.proto从“看起来正确的文本”变成可诊断、可生成、可编译、可回归、可报告的工程资产:本项目不替代现有的
moonbitlang/protobuf或moonbitlang/protoc-gen-mbt。它提供的是围绕官方 protobuf 栈的验证与工具层,重点解决 AI 生成 schema/代码难以确认、schema 演进容易破坏兼容性、生成代码缺少持续验证等问题。30 秒快速开始
作为 MoonBit 库安装
在使用该库的
moon.pkg中导入:最小示例:
使用完整验证工具
完整本地验收:
运行要求:MoonBit;文件版报告工具需要 Python 3;完整跨语言 oracle 还需要 Python
protobuf与 Go。Agent 反馈闭环
下图展示 AI Agent 生成 schema 后,Moon Proto Lab 如何返回稳定诊断并驱动修复。它是工作流说明图;后面的终端图来自仓库真实命令记录。
实际运行证据
每张图都有同名
.txt命令记录,可核对命令、工作目录、时间和退出码。补充证据:
moon test --target all、moon package、Schema Doctor 负例。核心能力
.proto与 FileDescriptorSet 的破坏性变更检查moon check一个完整场景
故意错误的 schema:
运行:
输出包含稳定路径:
修复后再执行
verify与compat,生成代码必须真实编译,schema 演进也必须通过兼容性门禁。MoonBit API 示例
验证与质量
当前提交线的可复现结果:
moon check --deny-warn:通过;moon test --deny-warn:60/60 passed;moon test --target all:wasm、wasm-gc、JS、native 全通过;1935/2388,约81.0%;常用命令:
与现有 MoonBit protobuf 项目的关系
MoonBit 生态已有:
moonbitlang/protobuf:生产 runtime;moonbitlang/protoc-gen-mbt:官方代码生成器。Moon Proto Lab 的独立贡献是:
已知边界
当前版本是面向验证场景的 proto3 子集,不宣称完整 protobuf conformance:
service、rpc、custom option 等主要做解析容错,不生成完整 RPC 实现;MessageValue;conformance-lite是基于公开 protobuf 语义建模的小型 fixture 集,不是上游官方 conformance suite 的镜像;official source/output-shape contract检查验证公开接口契约;只有显式启用 live-generator 路径时才会实际运行官方生成器;文档
仓库与发布
123123213weqw/moon_protoLicense
项目原创代码采用 MIT License。第三方依赖、公开规范、测试 oracle 和契约 fixture 的来源与许可证见
THIRD_PARTY_NOTICES.md。