3.2 KiB
3.2 KiB
C0-003 classify_legacy_273
状态:done
计划:BLENDER_WASM_CORRECTIVE_TASK_PLAN
阶段:P0
Gate:G0
依赖:C0-002
lifecycleStatus:done
blockedBy:none
writeScope:evidence_only
queueMutationAllowed:false
目标
把旧 M16 已有任务按实际证据重新分类,避免把 metadata-only 或 negative-only 当作正向
feature parity,并为后续 capability clustering 产生可复现的候选映射。分类不改变旧任务
的 status、manifest、completion registry 或 queue。
分类来源
只能读取并交叉验证:
- task manifest 的 operation/status/artifact hashes;
- desktop report 的 poll/operatorStatus/mainMutation;
- web report 的 WASM fields、revision、save/reopen、negative;
- reader、API、WASM 构件 hashes;
- focused command 和 governance report。
禁止根据 task ID、gap 名称或 status: done 单独推断 feature parity。
分类规则
FEATURE_PARITY:至少 L2,必须有 WASM positive command 和 Main mutation;READ_COMPATIBILITY:L0/L1,只有读取/观察证据;NEGATIVE_BOUNDARY:只证明取消、不支持、资源缺失或坏输入;METADATA_ONLY:snapshot 有字段,但没有等价 mutation;UNSUPPORTED_DECLARED:明确记录能力边界和用户可见错误;BLOCKED:证据不完整、hash 漂移或流程 gate 失败。PLANNED:只有 capability 设计材料,没有可核验的旧任务证据;只能出现在新 capability 候选,不得出现在 legacy completion。
输出
tests/golden/corrective/C0-003/legacy-gap-classification.jsontests/golden/corrective/C0-003/cluster-summary.jsontests/golden/corrective/C0-003/classification-report.md
每条记录至少包含 task、gapId、evidenceLevel、completionClass、desktopPositive、
wasmPositiveMutation、readerChanged、wasmChanged、saveReopen、reason、
candidateCapabilityId、mappingState、evidenceRefs 和 sourceHashes。其中:
candidateCapabilityId只能是一个 primary capability;其它复用关系写入coverageCapabilityIds,不得让一个 gap 隐式重复完成;mappingState只能是UNMAPPED、CANDIDATE、COVERED、RETAINED_NEGATIVE、DUPLICATE或BLOCKED;evidenceRefs必须指向具体 manifest/report/command,而不是目录或 task 名称;sourceHashes必须覆盖被分类的 manifest、desktop/web report 和 production artifact。
通过条件
- 273 条旧记录均有分类;
- 每条分类都能追溯到具体 manifest/report/hash;
- 生成两次 bytes 相同;
- 能识别至少一个真实 L2+ cluster 和至少一个 metadata/negative cluster;
- 每个
FEATURE_PARITY记录都有wasmPositiveMutation:true、evidenceLevel为 L2-L5, 且desktopPositive:true; - 每个
RETAINED_NEGATIVE或READ_COMPATIBILITY记录不会生成 queue completion; - 不修改旧 manifest、status 或 queue。
失败边界
无法从现有证据区分正向 mutation 与 metadata-only 时,分类为 BLOCKED,不得向上乐观归类。
mapping 发生多对一冲突、hash 漂移或 source 目录不完整时也必须保持 BLOCKED,并记录
冲突原因,不能自动选择 capability。