做了什么
- 七类落地(
R/classes-{utils,variants,catalog,signature,fit,refdb,engines,benchmark}.R):MsVariants(必需列/坐标/anyNA/somaticness 信号:caller+matched_normal+vaf_floor+FILTER 透传)、MsCatalog(counts+通道注册表快照,维度/标签/非负/anyNA)、MsSignature(catalog_summary 快照摘要:n_channels/n_samples/channel_name/channel_hash/build,绝不内嵌 MsCatalog)、MsFit(reference_summary)、MsRefDb(8 治理字段;NA build 仅允许 build_independent=TRUE,A13)、MsEngine(抽象 spec)、MsBenchmark。构造器 + print/format 一行摘要;未预挂分析泛型(属 M1s+)。 - 错误纪律(§3.5/A14):全部违规路径
rlang::abort+msuiter_error_<topic>+ i/j/c 三段 payload;禁裸 stop() 连程序员错误路径也执行(msuiter_error_internal)。 - DESCRIPTION:Imports S7+rlang、Suggests testthat ≥3.0.0、Collate 穷尽 11 个 R 文件(R 规则:Collate 存在必须列全);zzz.R 接
S7::methods_register()。 - 测试 564 PASS(含并行单元文件):坏输入/边界/错误 class 断言、saveRDS→readRDS 全泛型行为、快照摘要结构断言(无 counts、object.size 更小)、无 .state/externalptr/句柄(D12/A5)。
关键决策(PI 裁决,契约引用)
-
R/ 子目录不可安装(WRE §1.1.5 只装顶层 .R 文件)→ 实现代理先做了”规范目录+生成桥接+漂移测试”,PI 裁决改平铺前缀命名
classes-*.R+ Collate 定序,删桥接机制;ARCH §3.1 加实现注记,未来 section 一律<section>-<topic>.R,依赖方向规则由静态架构测试强制(M2 承接)。集成时还发现 Collate 必须穷尽 R/ 全部文件(漏列 3 个包级文件曾致 install ERROR)。 - 通道表哈希 = 长度前缀 UTF-8 载荷写临时文件 +
tools::md5sum(base 依赖、跨会话确定、长度前缀防拼接碰撞);refdb 侧用 SHA-256——两处算法不一致已备忘(devlog 遗留)。 - S7 0.2.2 实测与 research/06 蓝图的差异已记录:property default 只接受字面实例、
set_props参数名.check。
审核(3 轮,联合 U-M0-05/06)
第 1 轮 REVISE(RNG golden 交叉验证缺独立工件、zzz.R 过时注释、ms_signature 示例伪造 hash、SPP 基准未入库)→ 修复;第 2 轮 REVISE(RNG 输出位约定,见 U-M0-06 devlog)→ 修复;第 3 轮 PASS(2 条不阻塞 P2:ARCH §2 rng.rs 注释漂移已顺手修;md5sum 临时文件热路径备忘)。
遗留
- md5sum 若未来进热路径需换实现(当前只在 API 边界,终审已判定可接受)。
- 通道哈希(MD5)与 refdb(SHA-256)算法统一决策留 M3a refdb 设计时收口。
- ARCH/ROADMAP 已勾选;本单元未单独 commit(随 W2 整轮由用户决定)。