diff --git a/docs/报告/STEP-073_QBIN2_V4_Core与通用FieldProfileValidator_Codex完成报告_v1.md b/docs/报告/STEP-073_QBIN2_V4_Core与通用FieldProfileValidator_Codex完成报告_v1.md index 8cc7cb5ee..426f88036 100644 --- a/docs/报告/STEP-073_QBIN2_V4_Core与通用FieldProfileValidator_Codex完成报告_v1.md +++ b/docs/报告/STEP-073_QBIN2_V4_Core与通用FieldProfileValidator_Codex完成报告_v1.md @@ -7,10 +7,11 @@ ## Git 记录 - 任务开始 HEAD:`a0aa367f302ad0e3518931c311ae8764efd2d566`。 -- 实现 Final HEAD:`0a190adff3a24af59647af4977f1c1e7e107ec28`。 -- 实现提交:`0a190adff3a24af59647af4977f1c1e7e107ec28`,`feat: add QBIN2 V4 generic field profile validation`。 +- 初始实现提交:`0a190adff3a24af59647af4977f1c1e7e107ec28`,`feat: add QBIN2 V4 generic field profile validation`。 +- 最终实现 HEAD:`3526e324ce6c623cfacd4a658605549ccd32d4da`。 +- Final follow-up:`3526e324ce6c623cfacd4a658605549ccd32d4da`,`fix: enforce validity descriptor class`;强制独立 validity descriptor 自身为 `Validity`,避免被伪装为 Scalar。 - 远端分支:`origin/particle/main`。 -- push 结果:已成功从 `a0aa367f3` 推送至 `0a190adff`。 +- push 结果:已成功从 `a0aa367f3` 推送至 `0a190adff`,随后已成功推送 follow-up 至 `3526e324c`。 - 任务开始前的既有 modified/untracked 文件未暂存、未提交、未删除或格式化。 ## 实际修改文件 @@ -51,7 +52,7 @@ ## Validity、REQUIRED 与 Core 规则 -Validity 采用“独立 descriptor + `validityBits` payload”:`validityPlane.storage` 与 `validityBits` 是同一共享只读引用,因此不复制 payload,且后续 projection 可复用同一 validity domain。Validator 检查 Validity semantic/valueClass/unit/group/component/dtype/REQUIRED/count;要求 `BITSET`、`NONE`、group `0`、component `None`。 +Validity 采用“独立 descriptor + `validityBits` payload”:`validityPlane.storage` 与 `validityBits` 是同一共享只读引用,因此不复制 payload,且后续 projection 可复用同一 validity domain。Validator 强制该 descriptor 自身为 `Validity`,并检查 semantic/valueClass/unit/group/component/dtype/REQUIRED/count;要求 `BITSET`、`NONE`、group `0`、component `None`。 REQUIRED 为双向 fail-closed:Contract 每项必须在 Frame 中存在、完整 descriptor 匹配且实际 REQUIRED=true;任一实际 REQUIRED=true plane 必须被 Contract 完整声明。`allowAdditionalPlanes=true` 只允许额外的非 REQUIRED plane。