tools/ —— 最小 reader(验收工具)
tools/ —— 最小 reader(验收工具)
状态:✅ 已实现并通过验收——majo_reader.ts 正例 9/9 通过、负例 14/14 命中(
examples/全量)。
它是什么
本仓的硬验收口径的落地:照 spec/ 的规范从零写一个不依赖原始实现的
minimal reader,读取 examples/ 全量样例:
- 正例全部通过规范「载荷帧必需字段」校验清单,并打印对局摘要(玩法、帧数、结算、seed、有无天凤段);
- 负例按
manifest.json逐例命中 §5.1 错误码(too_large/bad_file/not_majo/bad_version/bad_shape/not_supported)。
这是「陌生人可按图索骥」的自验——reader 只凭规范文本实现,任何走不通的地方就是规范要补的地方
(实际上它已经抓到过一处:deltas 是稀疏的而非定长四家,规范已据实更正)。
运行
零 npm 依赖、单文件 TypeScript(Node ≥ 22.6 的 type stripping 或 Deno):
node --experimental-strip-types tools/minimal-reader/majo_reader.ts examples
# 或: deno run tools/minimal-reader/majo_reader.ts examples
参数为一个或多个目录/文件;目录会递归收集 .json/.jsonl(negative/ 由 manifest 驱动做负例断言)。
任一失败进程退出码非 0——CI 即以此作门禁。
许可
本目录代码与文档仓其他部分许可不同:Apache-2.0(随代码文件头标注);文档与样例数据为 CC-BY 4.0。