项目接续文件：L4-PYTHON-REMAP 53 rows 批量 PASS Phase 1 执行记录

生成时间：2026-06-19 CST

本文件接替 `text26.txt`。

目标：

```text
把“53 个 Python-remap inventory rows 批量提升为 PASS”的方法落成第一层
machine-readable promotion plan。

本轮只做 Phase 1：
- 生成 `python-remap-bulk-promotion-plan.tsv`；
- 校验它 1:1 覆盖 53 个 `L4-PYTHON-REMAP` rows；
- 明确每行还缺哪些 proof；
- 保持 inventory baseline 不变：PASS=29 / SKIP=130 / L4-PYTHON-REMAP=53。
```

禁止事项：

```text
- 不把 53 行直接改 PASS；
- 不删除 `L4-PYTHON-REMAP` skip reason；
- 不把 stop-lookahead lifecycle proof 扩大解释为 53 行全量 pass；
- 不让 fake/browser worker 充当 PASS 证据；
- 不把 Python import success 当作 remap execution proof；
- 不让 NGC-only remap subpath 被当成 standalone main program；
- 不手工改 `summary.tsv` / `skip-summary.tsv` 数字。
```

一、Phase 1 应生成的 artifact

新增：

```text
wasm-port/build/wasm/sim-configs-inventory/python-remap-bulk-promotion-plan.tsv
```

来源：

```text
wasm-port/build/wasm/sim-configs-inventory/python-remap-boundary-summary.tsv
wasm-port/build/wasm/sim-configs-inventory/python-remap-family-summary.tsv
wasm-port/build/wasm/sim-configs-inventory/python-remap-runtime-contract.tsv
wasm-port/build/wasm/sim-configs-inventory/python-remap-native-runtime-fixture-plan.tsv
wasm-port/build/wasm/sim-configs-inventory/python-remap-native-runtime-probe-gate.tsv
```

输出字段必须表达：

```text
path
ini
family
main_or_macro_load_class
python_modules_staged
toplevel_executed
path_prepend_applied
python_remap_functions_bound
prolog_functions_bound
epilog_functions_bound
ngc_remap_assets_staged
ngc_only_subpaths_not_standalone
interpreter_state_binding_ready
canonical_events_ready
hal_state_boundary_ready
ui_process_boundary_ready
halui_mdi_boundary_ready
native_pass_ready
wasm_node_pass_ready
browser_pass_ready
execution_enabled
promotion_allowed
blockers
notes
```

二、Phase 1 验收条件

```text
plan row count = 53
plan path set == python-remap-boundary-summary path set
所有 row blocked = L4-PYTHON-REMAP
所有 row execution_enabled = 0
所有 row promotion_allowed = 0
所有 row native_pass_ready = 0
所有 row wasm_node_pass_ready = 0
所有 row browser_pass_ready = 0
所有 row blockers 非空
HAL/UI/HALUI flags 与 boundary summary 保持一致
存在 NGC-only subpath 的 row 必须显式记录 ngc_remap_asset / ngc_only_subpaths_not_standalone blocker
```

三、后续 Phase 2/3 的输入

Phase 2 扩展 row-aware runtime 时消费：

```text
path
ini
family
python_modules_staged
toplevel_executed
path_prepend_applied
python_remap_functions_bound
prolog_functions_bound
epilog_functions_bound
ngc_remap_assets_staged
ngc_only_subpaths_not_standalone
interpreter_state_binding_ready
canonical_events_ready
```

Phase 3 HAL/UI/HALUI proof 时消费：

```text
hal_state_boundary_ready
ui_process_boundary_ready
halui_mdi_boundary_ready
```

四、本轮应改文件

```text
wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.mjs
wasm-port/tests/browser/interp_smoke.html
wasm-port/docs/compatibility-validation.md
wasm-port/docs/full-process-boundary-design.md
wasm-port/docs/sim-configs-coverage-matrix.md
text27.txt
```

五、本轮验收命令

```bash
git diff --check
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh
wasm-port/tests/browser/verify_python_remap_runtime_browser.sh
SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_real_simulation_browser.sh
wasm-port/tests/host/verify_project_release_gate.sh
```

六、完成后允许进入的下一步

```text
Phase 2：实现 row-aware Python remap runtime port。

下一轮不要先改 baseline。
先让 `python-remap-row-runtime-proof.tsv` 能逐 row 证明：
- INI [PYTHON] PATH_PREPEND；
- INI [PYTHON] TOPLEVEL；
- configured module import；
- Python remap callable / stdglue prolog / epilog lookup；
- generator lifecycle；
- interpreter state / canonical event bridge；
- NGC remap assets staged；
- NGC-only subpaths 不作为 standalone main。
```

七、2026-06-19 Phase 2 执行结果

本轮已完成 Phase 2 的 proof substrate，不做 baseline promotion。

新增 / 更新：

```text
wasm-port/runtime/sdk/src/python-remap-runtime-port.js
  新增 createLinuxCncPythonRemapRowRuntimePort()
  新增 createPythonRemapRowRuntimePlan()
  新增 validatePythonRemapRowRuntimeTranscript()
  新增 PYTHON_REMAP_ROW_RUNTIME_PROOF_PHASES

wasm-port/runtime/sdk/src/index.js
  导出 row-aware Python remap runtime API

wasm-port/tests/sdk/node/verify_python_remap_runtime_port.mjs
  覆盖 row runtime contract-only blocked path
  覆盖 fake row runtime adapter ready path
  验证 module/callable/NGC/canonical proof transcript

wasm-port/tests/sdk/node/verify_sdk_surface.mjs
wasm-port/runtime/sdk/README.md
  同步 SDK public surface

wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.mjs
  新增 python-remap-row-runtime-proof.tsv 生成与校验

wasm-port/tests/browser/interp_smoke.html
wasm-port/docs/compatibility-validation.md
wasm-port/docs/full-process-boundary-design.md
wasm-port/docs/sim-configs-coverage-matrix.md
  generated artifact coverage 从 56 个 WASM TSV 更新到 57 个
```

新增 artifact：

```text
wasm-port/build/wasm/sim-configs-inventory/python-remap-row-runtime-proof.tsv
```

artifact 当前状态：

```text
rows=53
row_runtime_port_api_ready=1 53
row_runtime_plan_ready=1 53
row_runtime_transcript_ready=0 53
native_pass_ready=0 53
wasm_node_pass_ready=0 53
browser_pass_ready=0 53
execution_enabled=0 53
proof_status=pending_row_runtime_adapter_execution 53
```

inventory baseline 保持不变：

```text
sim_configs_wasm_node_inventory_executed=29
sim_configs_wasm_node_inventory_passed=29
sim_configs_wasm_node_inventory_skipped=130
sim_configs_wasm_node_inventory_skip_L4_PYTHON_REMAP=53
sim_configs_wasm_node_inventory_unexpected_fail=0
```

本轮明确没有完成：

```text
- 未执行 53 rows 的真实 Python remap callbacks；
- 未把 row_runtime_transcript_ready 置 1；
- 未把 native_pass_ready / wasm_node_pass_ready / browser_pass_ready 置 1；
- 未解除 manual promotion lock；
- 未把 PASS=29 / SKIP=130 改为 PASS=82 / SKIP=77。
```

八、本轮已通过验证

```bash
git diff --check
wasm-port/tests/sdk/node/verify_python_remap_runtime_port.sh
node wasm-port/tests/sdk/node/verify_sdk_surface.mjs
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh
wasm-port/tests/wasm/node/verify_python_remap_runtime_port_wasm.sh
wasm-port/tests/browser/verify_python_remap_runtime_browser.sh
SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_real_simulation_browser.sh
wasm-port/tests/host/verify_project_release_gate.sh
```

九、下一步工作建议

建议下一轮进入 Phase 2.5，而不是直接 Phase 3 或 baseline promotion。

Phase 2.5 目标：

```text
让 python-remap-row-runtime-proof.tsv 对第一批小 family 产生真实 row runtime transcript：
1. axis/remap/stop-lookahead/nc_files
2. axis/remap/cycle/nc_files
3. axis/remap/getting-started/nc_files
```

推荐顺序：

```text
1. 为 createLinuxCncPythonRemapRowRuntimePort() 增加 Node/WASM row adapter；
2. adapter 只负责调用 LinuxCNC-owned Python runtime boundary，不解释 G-code；
3. 先让 stop-lookahead row 的：
   python_modules_staged=1
   toplevel_executed=1
   path_prepend_applied=1
   interpreter_state_binding_ready=1
   canonical_events_ready=1
   row_runtime_transcript_ready=1
4. cycle / getting-started 再加入 callable、prolog/epilog、NGC remap asset targets；
5. 继续保持 native_pass_ready=0 / wasm_node_pass_ready=0 / browser_pass_ready=0，
   直到 row runtime transcript 可以和 native proof 对齐。
```

下一轮仍禁止：

```text
- 不改 PASS/SKIP baseline；
- 不把 fake row adapter proof 当真实 PASS；
- 不把 module import 成功当 row execution pass；
- 不把 NGC-only subpath 当 standalone main program；
- 不解除 promotion_allowed。
```
