text35.txt

一、接续说明

执行时间：2026-06-20 CST

本文件作为 `text34.txt` 之后的新接续文件，用来明确区分两条并行工作线：

```text
1. 当前实际进行中的工作：real simulation page handoff smoke 断言收敛；
2. 已经完成结论但尚未继续推进的工作：剩余 77 个 SKIP 中哪些是真正可 promotion 的 main-program row。
```

本文件的目标不是重新打开 77 SKIP 结论，而是把“当前在做什么、已经完成什么、后续该接哪条线”写清楚，避免继续混线。

当前继续保持项目边界：

```text
LinuxCNC remains the only CNC semantic source
promotionAllowed=false
baselineChanging=false
inventoryBaselineUnchanged=true
inventory baseline=82/82/77/0
diagnostics artifact schema unchanged
release artifact schema unchanged
```

二、我当前实际在做的工作

本轮实际在做的不是 77 SKIP promotion 复核，而是：

```text
real simulation page handoff browser smoke 断言收敛
```

范围：

```text
文件：wasm-port/tests/browser/real_simulation_page_smoke.html
目标：把 blocked / saved ready / restored ready 三态大 if 中重复的 handoff 兼容入口旧断言，继续迁移到共享 helper；
不改 runtime surface；
不改 diagnostics artifact schema；
不改 release artifact schema；
不改 inventory baseline=82/82/77/0。
```

本轮已完成：

```text
1. 新增 handoff summary / operator snapshot / action plan / compact status / preflight / history 的共享 smoke helper；
2. 将三态大 if 中对应的 dataset / DOM / status-history 重复断言迁移到 helper；
3. 补上 restored ready 分支缺失的 actionPlan / compactStatus 读取；
4. 删除同一批 helper 已覆盖的旧兼容断言，减少测试重复；
5. 保持 review/statusbar/external shell 相关 getter 行为不变；
6. 浏览器 smoke 继续通过。
```

本轮已运行验证：

```text
git diff --check
SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_real_simulation_browser.sh
```

结果：

```text
browser_real_simulation_page_smoke=ok
```

三、“剩余 77 个 SKIP promotion 复核”已经完成了哪些工作

这条线并不是未开始，而是已经完成一轮明确结论。对应记录主要在：

```text
text28.txt
text31.txt
text32.txt
wasm-port/docs/sim-config-coverage-promotion-analysis.md
wasm-port/docs/sim-configs-coverage-handoff.md
```

已完成工作：

```text
1. 重新生成并复核了 sim-config inventory baseline；
2. 固化了当前 baseline：PASS=82 / SKIP=77 / unexpected_fail=0；
3. 新增并检查了 remaining-skip-main-program-promotion-audit.tsv；
4. 把 77 个 SKIP 按 skip_kind 分解清楚；
5. 确认其中真正 class=main 的 skipped row 只有 2 个；
6. 确认这 2 个 main-program skipped row 当前都 promotion_allowed=0；
7. 记录了“不应再试图把剩余 77 个 SKIP 直接改 PASS”的结论。
```

当前固定 inventory 结果：

```text
sim_configs_wasm_node_inventory_executed=82
sim_configs_wasm_node_inventory_passed=82
sim_configs_wasm_node_inventory_skipped=77
sim_configs_wasm_node_inventory_unexpected_fail=0
sim_configs_wasm_node_inventory_skip_ASSET_ONLY=65
sim_configs_wasm_node_inventory_skip_L4_USER_M_PROCESS=1
sim_configs_wasm_node_inventory_skip_NON_MAIN_CLASS=10
sim_configs_wasm_node_inventory_skip_UPSTREAM_DEMO=1
```

四、77 个 SKIP promotion 复核的最终结论

当前结论已经明确：

```text
剩余 77 个 SKIP 中，没有真正可直接 promotion 的 skipped main-program row。
```

原因拆解：

```text
1. ASSET-ONLY=65
   - 不是 standalone main-program row；
   - 不属于 inventory promotion 目标。

2. NON_MAIN_CLASS=10
   - 不是 standalone main-program row；
   - 不属于 inventory promotion 目标。

3. L4-USER-M-PROCESS=1
   - path=axis/vismach/millturn/example.ngc
   - 属于 main-program row；
   - Web / virtual HAL 状态 proof 已接入；
   - 但 external user-M arbitrary process execution 仍 disabled；
   - promotion_allowed=0。

4. UPSTREAM-DEMO=1
   - path=axis/vismach/5axis/table-rotary_spindle-rotary-nutating/demos/incremental_repetition_g533.ngc
   - 属于 main-program row；
   - upstream demo 本身缺失 motion G-code；
   - promotion_allowed=0。
```

因此当时的固定结论是：

```text
remaining_skipped_main_program_rows=2
remaining_skipped_main_program_promotion_allowed=0
direct_inventory_promotion_rows=0
baseline_change_allowed=no
```

五、这条 77 SKIP 线还没完成什么

如果按“是否找到可 promotion row”来衡量，这条线已经完成结论；
如果按“是否让 baseline 继续变化”来衡量，这条线没有继续推进，原因是当前结论本来就是：

```text
不允许继续从剩余 77 个 SKIP 中直接提升 PASS。
```

也就是说，未完成的不是“还没审完”，而是以下这些后续动作尚未展开：

```text
1. 没有新的 skipped main-program row 被解锁为 promotion_allowed=1；
2. 没有新的 inventory PASS baseline 变化；
3. 没有继续解决 L4-USER-M-PROCESS native runtime probe 成为 promotion proof；
4. 没有把后续工作转回“已 PASS row 的 browser diagnostics / release evidence 扩展”主线。
```

六、后续工作建议

后续工作应分两条，不要再混在一句“继续推进”里：

第一条，收尾当前 smoke 收敛：

```text
1. 继续把 real_simulation_page_smoke.html 中剩余的 review/statusbar/external-shell 兼容对象字段重复断言收平；
2. 保持 blocked / saved ready / restored ready 三态覆盖；
3. 不新增 runtime getter / dataset / DOM selector；
4. 继续以 browser_real_simulation_page_smoke=ok 为完成标准。
```

第二条，若切回 77 SKIP / promotion 主线，不要重做旧结论，而是直接转向下面两类工作：

```text
1. 若继续攻 L4-USER-M-PROCESS：
   - 只聚焦 native runtime opt-in probe；
   - 目标是 runtime_state_probe_passed；
   - 只有 probe 真正通过后，才重开 inventory promotion 讨论。

2. 若继续按当前主线推进：
   - 不再尝试 promotion 剩余 77 个 SKIP；
   - 直接扩展已 PASS row 的 browser diagnostics / release evidence；
   - 优先沿现有 five-axis TRT / vismach evidence expansion 路线继续做。
```

七、建议下一轮入口

推荐下一轮优先级：

```text
优先级 1：完成当前 real simulation page handoff smoke 收敛收尾；
优先级 2：如果要回到 promotion 主线，先选“继续 L4-USER-M-PROCESS probe”或“继续已 PASS row evidence expansion”二选一；
优先级 3：不要重新做“77 个 SKIP 哪些可 promotion”的总复核，因为这一步已经有明确结论。
```

推荐验证命令：

```bash
git diff --check
SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_real_simulation_browser.sh

# 如果切回 promotion / inventory 主线，再补：
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh
wasm-port/tests/docs/node/verify_sim_configs_coverage_docs.sh
wasm-port/tools/verify_no_standalone_cnc_semantics.sh
```
