项目接续文件:按铁律收束当前阶段 promotion 工作 生成时间:2026-06-18 CST 本文件接替 `text19.txt`,并对 `text20.txt` / `text21.txt` 做范围收束。当前阶段铁律为: ```text virtual HAL 成果作为 sim config promotion 证据基础; 同时明确不解锁 Python remap / tool DB / external user-M 这些 hard block。 ``` 一、当前阶段完成定义 当前阶段要完成的是 evidence-based promotion,不是 hard-block runtime 解锁。 允许做: - 复用 virtual HAL source compliance; - 复用 virtual HAL sim-config source coverage; - 复用 virtual HAL promotion candidate report; - 复用 macro/load fixture report; - 复用 command script fixture report; - 复用 manifest-backed motion controller matrix; - 复用 browser diagnostics artifact; - 复用 release readiness / URL workflow / batch acceptance evidence; - 生成并维护 `promotion-candidates.tsv`,把候选分为: - `evidence-ready`; - `inventory-ready`。 禁止做: - 不新增 virtual HAL runtime capability; - 不用 virtual HAL 替代 LinuxCNC CNC 语义; - 不用 JS/browser glue 解锁 Python remap; - 不用 JS/browser glue 解锁 tool DB; - 不用 JS/browser glue 解锁 external user-M process; - 不把 `.tbl` fallback 当作 tool DB pass; - 不把 macro/load asset 当 standalone main program; - 不靠改 docs 声称 skipped 下降。 二、当前 hard block 状态 以下 hard block 在当前阶段必须保持 locked: ```text L4-PYTHON-REMAP L4-TOOL-DB L4-USER-M-PROCESS UPSTREAM-DEMO standalone-main 语境下的 ASSET-ONLY ``` 当前 skip/block summary 仍保持: ```text ASSET-ONLY=65 L4-PYTHON-REMAP=53 L4-TOOL-DB=1 L4-USER-M-PROCESS=1 NON_MAIN_CLASS=10 UPSTREAM-DEMO=1 ``` 三、当前 baseline 必须保持 当前阶段完成后,Node inventory baseline 仍应为: ```text executed=28 passed=28 skipped=131 unexpected_fail=0 ``` 这不是失败,而是当前铁律下的正确结果:virtual HAL 已把一批可用 sim config row 推进到 browser diagnostics / release evidence 层,但没有解锁 hard runtime family。 四、当前已完成的 evidence-ready promotion `promotion-candidates.tsv` 中必须包含以下 `evidence-ready` rows: - `qtdragon/qtdragon_multi_joint/on_abort.ngc` - `qtdragon/qtdragon_xyz/on_abort.ngc` - `qtdragon/qtdragon_xyz45/on_abort.ngc` - `qtdragon_hd/qtdragon_hd_xyz/on_abort.ngc` - `qtdragon_hd/qtdragon_hd_z_compensation/on_abort.ngc` - `qtvcp_screens/qtdragon/on_abort.ngc` - `axis/vismach/puma/puma_seam_weld.ngc` - `axis/rose_engine/rcone_demo.ngc` 这些 rows 的语义: ```text current_status=PASS skip_kind=- matrix_layer4_node=INV matrix_layer4_browser=- blocked_kind=- virtual_hal_evidence_ready=1 promotion_allowed=0 block_reason=browser_release_evidence_ready_inventory_baseline_unchanged ``` `promotion_allowed=0` 是有意的:这些 row 已有 browser/release evidence,但不代表 inventory baseline 发生变化。 五、当前 inventory-ready hard block rows `promotion-candidates.tsv` 中也会列出 `inventory-ready` 类型的 skipped main rows。 这些行用于后续分析,不代表当前可解锁。 当前直接 inventory promotion 必须保持: ```text promotion_allowed=0 ``` 原因: - `L4-PYTHON-REMAP` 需要 LinuxCNC Python remap runtime; - `L4-TOOL-DB` 需要 tool database process protocol proof; - `L4-USER-M-PROCESS` 需要 external user-M process state proof; - `UPSTREAM-DEMO` 是 preserved upstream demo edge。 六、text20 / text21 的范围解释 `text20.txt` 和 `text21.txt` 只作为未来解锁研究记录: - `text20.txt`:future tool DB native/runtime 解锁步骤; - `text21.txt`:future WASM + OPFS tool DB feasibility architecture。 它们不改变当前阶段铁律,不允许在当前阶段据此把 `L4-TOOL-DB` 解锁。 当前阶段若引用 `text20.txt` / `text21.txt`,只能作为: - future milestone planning; - risk analysis; - architecture note; - blocked family proof requirement。 不能作为: - 当前 baseline promotion 依据; - 当前 release ready 的解锁依据; - 当前 browser diagnostics positive pass 的替代证据。 七、当前阶段验收标准 当前阶段完成需要满足: 1. `promotion-candidates.tsv` 存在; 2. `promotion-candidates.tsv` 同时包含 `evidence-ready` 和 `inventory-ready` 两层; 3. `evidence-ready` rows 绑定 virtual HAL source-derived browser/release evidence; 4. `inventory-ready` hard block rows 仍 `promotion_allowed=0`; 5. baseline 保持 `28/28/131/0`; 6. `L4-PYTHON-REMAP`、`L4-TOOL-DB`、`L4-USER-M-PROCESS` 仍 locked; 7. docs 明确 artifact count 和 candidate report; 8. release / SDK gate 仍要求 virtual HAL promotion candidate summary; 9. 不新增 virtual HAL runtime capability; 10. 不新增 JS-owned CNC semantics。 八、已验证命令 当前阶段最小验证命令: ```text git diff --check SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh wasm-port/tests/sdk/node/verify_sdk_surface.sh wasm-port/tests/sdk/node/verify_project_release_gate_manifest.sh ``` 预期 inventory 输出: ```text sim_configs_wasm_node_inventory_executed=28 sim_configs_wasm_node_inventory_passed=28 sim_configs_wasm_node_inventory_skipped=131 sim_configs_wasm_node_inventory_unexpected_fail=0 sim_configs_wasm_node_inventory=ok ``` 九、下一步建议 下一步不要直接解锁 hard block。按当前铁律,优先做: 1. 扩展 `evidence-ready` browser diagnostics 展示; 2. 强化 release URL workflow 对 promotion candidate summary 的可见性; 3. 对 `blocked=-`、native `PASS`、class `main` 的非 hard-block family 继续找可真实 promotion row; 4. 对 Python remap / tool DB / external user-M 只维护 proof requirement 和 lock artifact; 5. 如果要解锁 tool DB、Python remap 或 external user-M,必须另开 milestone,不能混入当前阶段。 十、简要结论 当前阶段已经按铁律完成: ```text virtual HAL 成果作为 sim config promotion 证据基础; Python remap / tool DB / external user-M hard block 不解锁; baseline 保持 28/28/131/0; promotion candidates 进入双层 evidence-ready / inventory-ready 管理。 ```