项目接续文件：剩余 77 个 SKIP promotion 复核完成

生成时间：2026-06-20 CST

一、本轮完成内容

按上一轮 `text31.txt` 的要求，已重新生成并复核当前 sim-config
inventory artifact：

```bash
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh
```

当前结果：

```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
sim_configs_wasm_node_inventory=ok
```

二、77 个 SKIP 复核结论

`remaining-skip-main-program-promotion-audit.tsv` 中只有 2 个 class=main
的 SKIP：

```text
axis/vismach/5axis/table-rotary_spindle-rotary-nutating/demos/incremental_repetition_g533.ngc
  skip_kind=UPSTREAM-DEMO
  native_status=FAIL
  native_expected_failure=upstream-demo-missing-motion-gcode
  promotion_allowed=0
  conclusion=保留 upstream demo edge，不强行 PASS

axis/vismach/millturn/example.ngc
  skip_kind=L4-USER-M-PROCESS
  native_status=PASS
  simulation_proof_status=ready_disabled_by_default:native=0:node=0:browser=0
  promotion_allowed=0
  conclusion=Web virtual HAL 已有 M428/M429 -> M128/M129 状态 proof，
             但 external user-M arbitrary process execution 仍 disabled，
             不能作为 inventory promotion proof
```

其余 SKIP：

```text
ASSET-ONLY=65
NON_MAIN_CLASS=10
```

这些不是 standalone browser main-program promotion 对象。

本轮最终结论：

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

三、本轮代码/文档改动

已更新：

```text
PROJECT_COMPLETION_TRACKER.md
wasm-port/docs/sim-config-coverage-promotion-analysis.md
wasm-port/docs/sim-configs-coverage-handoff.md
wasm-port/tests/docs/node/verify_sim_configs_coverage_docs.mjs
text32.txt
```

新增 docs smoke 断言：

```text
1. skip-summary.tsv 仍是 ASSET-ONLY=65 / L4-USER-M-PROCESS=1 /
   NON_MAIN_CLASS=10 / UPSTREAM-DEMO=1；
2. remaining-skip-main-program-promotion-audit.tsv 只有 2 行；
3. 两行均 class=main；
4. 两行均 promotion_allowed=0 且 promotion_ready=0；
5. 路径必须是 millturn/example.ngc 和 incremental_repetition_g533.ngc。
```

四、已运行验证

```bash
git diff --check
wasm-port/tests/docs/node/verify_sim_configs_coverage_docs.sh
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/ui/node/verify_real_simulation_programs.sh
SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_real_simulation_browser.sh
wasm-port/tools/verify_no_standalone_cnc_semantics.sh
```

结果：

```text
sim_configs_coverage_docs_node_smoke=ok
sim_configs_wasm_node_inventory=ok
sdk_surface_node_smoke=ok
project_release_gate_manifest_node_smoke=ok
project_release_artifact_url_workflow_node_smoke=ok
project_batch_acceptance_workflow_node_smoke=ok
real_simulation_programs_node_smoke=ok
browser_real_simulation_page_smoke=ok
standalone CNC semantics guard complete
```

五、下一步工作计划

不要继续尝试把 77 个 SKIP 直接改 PASS。当前没有可直接 promotion 的
remaining SKIP main-program row。

下一批应推进已经 PASS 的 row 的 browser diagnostics / release evidence，
不改 inventory baseline。优先顺序：

```text
1. 读取 evidence-expansion-candidates.tsv；
2. 从已 PASS 且 matrix_layer4_browser=REP 的五轴/vismach row 中选一组；
3. 优先建议：
   - axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc
   - axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins.ngc
   - axis/vismach/melfa-sim/example.ngc
   - axis/vismach/puma/puma_cube.ngc
4. 为首个候选补 browser diagnostics evidence，不新增 JS CNC 语义；
5. 让 release artifact / real simulation diagnostics DOM 能显示该 evidence；
6. 补 Node/browser smoke；
7. 保持 inventory baseline=82/82/77/0。
```

推荐下一轮验证命令：

```bash
git diff --check
wasm-port/tests/docs/node/verify_sim_configs_coverage_docs.sh
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh
wasm-port/tests/sdk/node/verify_sdk_surface.sh
SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_real_simulation_browser.sh
wasm-port/tools/verify_no_standalone_cnc_semantics.sh
```

六、本轮接续推进：五轴 TRT browser diagnostics evidence expansion

执行时间：2026-06-20 CST

已按上面的下一步计划推进，不改 inventory baseline，不把 77 个 SKIP
强行 promotion。

新增 browser diagnostics evidence expansion 候选：

```text
trt-boat-xyzac
  gcode=linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc
  ini=linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini
  remap_subs=428remap.ngc,429remap.ngc,430remap.ngc
  currentNodeInventoryStatus=PASS
  currentMatrixBrowserStatus=REP
  targetBrowserEvidence=browser-diagnostics-expansion
  promotionAllowed=false

trt-xyzac-switchkins
  gcode=linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins.ngc
  ini=linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini
  remap_subs=428remap.ngc,429remap.ngc,430remap.ngc
  currentNodeInventoryStatus=PASS
  currentMatrixBrowserStatus=REP
  targetBrowserEvidence=browser-diagnostics-expansion
  promotionAllowed=false
```

当前 evidence expansion report：

```text
candidateCount=11
readyCandidateCount=11
inventoryBaselineUnchanged=true
promotionAllowed=false
```

覆盖面：

```text
woodpecker-on-abort
puma-cube
melfa-example
trt-boat-xyzac
trt-xyzac-switchkins
```

已更新：

```text
PROJECT_COMPLETION_TRACKER.md
wasm-port/runtime/sdk/src/linuxcnc-hal.js
wasm-port/runtime/sdk/src/project-release-readiness.js
wasm-port/runtime/ui/simulation diagnostics artifact smoke
wasm-port/tests/browser/ini_panel_workflow_overview_smoke.html
wasm-port/tests/browser/real_simulation_page_smoke.html
wasm-port/tests/docs/node/verify_sim_configs_coverage_docs.mjs
wasm-port/tests/sdk/node/verify_sdk_surface.mjs
wasm-port/tests/ui/node/verify_ini_panel_ui_shell.mjs
wasm-port/docs/sim-config-coverage-promotion-analysis.md
```

已运行验证：

```text
git diff --check
wasm-port/tests/sdk/node/verify_sdk_surface.sh
wasm-port/tests/sdk/node/verify_project_release_artifact_url_workflow.sh
wasm-port/tests/sdk/node/verify_project_release_gate_manifest.sh
wasm-port/tests/ui/node/verify_ini_panel_ui_shell.sh
SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_real_simulation_browser.sh
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_ini_panel_browser.sh
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_release_artifact_url_workflow_browser.sh
wasm-port/tests/docs/node/verify_sim_configs_coverage_docs.sh
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh
wasm-port/tools/verify_no_standalone_cnc_semantics.sh
```

结果：

```text
sdk_surface_node_smoke=ok
project_release_gate_manifest_node_smoke=ok
project_release_artifact_url_workflow_node_smoke=ok
project_batch_acceptance_workflow_node_smoke=ok
ini_panel_ui_shell_node_smoke=ok
browser_real_simulation_page_smoke=ok
browser_ini_opfs_smoke=ok
browser_ini_control_page_smoke=ok
browser_ini_launch_smoke=ok
browser_ini_workflow_overview_smoke=ok
browser_ini_shell_integration_workflow_smoke=ok
browser_release_artifact_url_workflow_smoke=ok
sim_configs_coverage_docs_node_smoke=ok
sim_configs_wasm_node_inventory=ok
standalone CNC semantics guard complete
```

七、下一步工作计划

继续沿 browser diagnostics / release evidence 方向推进，不改变
`82/82/77/0` inventory baseline。

优先建议：

```text
1. 把 evidence expansion 从“候选 report/API/smoke”推进到更可见的 UI
   surface：
   - real simulation diagnostics panel 显示 evidence expansion ready count；
   - INI workflow overview URL summary 显示 5 个 ready candidates 的完整列表
     或 drilldown；
   - 保持 summary preview 的前三项兼容现有 UI。

2. 继续扩展五轴 TRT family 的 browser diagnostics evidence：
   - boat-xyzbc.ngc
   - impeller-7bl-xyzac.ngc
   - xyzac_switchkins_test_1.ngc
   - xyzac_switchkins_test_2.ngc
   - xyzac_switchkins_test_3.ngc
   - xyzbc_switchkins.ngc

3. 每新增一批都必须满足：
   - currentNodeInventoryStatus=PASS；
   - currentMatrixBrowserStatus=REP；
   - targetBrowserEvidence=browser-diagnostics-expansion；
   - promotionAllowed=false；
   - inventoryBaselineUnchanged=true；
   - real browser diagnostics artifact smoke 覆盖。
```

八、本轮接续推进：evidence expansion UI surface

执行时间：2026-06-20 CST

已完成第七节优先建议中的 UI 可见性推进：

```text
1. real simulation diagnostics panel 显示 evidence expansion ready count；
2. real simulation diagnostics panel 显示完整 ready candidates；
3. release artifact URL workflow summary 暴露完整 candidate / G-code list；
4. INI workflow overview URL summary 暴露完整 candidate / G-code list；
5. 保留原有 preview 的前三项，兼容既有 UI 和测试。
```

新增可见/API 字段：

```text
real-browser-simulation-evidence-expansion-summary
data-evidence-expansion-summary-value="candidate-count" => 11/11 ready
data-evidence-expansion-summary-value="candidate-list" =>
  woodpecker-on-abort, puma-cube, melfa-example, trt-boat-xyzac, trt-xyzac-switchkins, trt-boat-xyzbc, trt-impeller-7bl-xyzac, trt-xyzac-switchkins-test-1, trt-xyzac-switchkins-test-2, trt-xyzac-switchkins-test-3, trt-xyzbc-switchkins
evidence-expansion-full-candidate-list
evidence-expansion-full-gcode-list
```

边界仍保持：

```text
inventoryBaselineUnchanged=true
promotionAllowed=false
inventory baseline=82/82/77/0
```

本轮已运行验证：

```text
wasm-port/tests/sdk/node/verify_project_release_artifact_url_workflow.sh
wasm-port/tests/sdk/node/verify_project_release_gate_manifest.sh
wasm-port/tests/sdk/node/verify_sdk_surface.sh
wasm-port/tests/ui/node/verify_ini_panel_ui_shell.sh
SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_real_simulation_browser.sh
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_ini_panel_browser.sh
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_release_artifact_url_workflow_browser.sh
```

结果：

```text
project_release_artifact_url_workflow_node_smoke=ok
project_release_gate_manifest_node_smoke=ok
sdk_surface_node_smoke=ok
ini_panel_ui_shell_node_smoke=ok
browser_real_simulation_page_smoke=ok
browser_ini_workflow_overview_smoke=ok
browser_ini_shell_integration_workflow_smoke=ok
browser_release_artifact_url_workflow_smoke=ok
```

九、下一步工作计划

本轮已把计划中的六个五轴 TRT row 加入 browser diagnostics evidence
expansion，当前完整 ready candidates 为：

```text
woodpecker-on-abort
puma-cube
melfa-example
trt-boat-xyzac
trt-xyzac-switchkins
trt-boat-xyzbc
trt-impeller-7bl-xyzac
trt-xyzac-switchkins-test-1
trt-xyzac-switchkins-test-2
trt-xyzac-switchkins-test-3
trt-xyzbc-switchkins
```

下一步建议不要继续堆同一 TRT family，改为做“evidence expansion
source drilldown / family grouping”，让 UI 按 family 或 source kind 查看
11 个 candidates：

```text
1. 在 real simulation diagnostics panel 增加 evidence-expansion family rows；
2. 在 release URL / INI workflow summary 增加 source-count 或 family-count
   drilldown；
3. 保持 preview 三项兼容；
4. inventory baseline 仍保持 82/82/77/0；
5. promotionAllowed 仍保持 false。
```

十、本轮接续推进：evidence expansion family/source drilldown

执行时间：2026-06-20 CST

已完成第九节建议的 family/source drilldown，不改变
`82/82/77/0` inventory baseline，也不允许 evidence expansion 触发
inventory promotion。

新增/确认的 diagnostics/API/UI 字段：

```text
virtualHalSimConfigEvidenceExpansion.familyRows
evidence-expansion-family-count
evidence-expansion-family-summary
evidence-expansion-family-source-count-list
evidence-expansion-family-woodpecker
evidence-expansion-family-vismach-remap-sims
evidence-expansion-family-five-axis-trt
data-evidence-expansion-summary-value="family-count"
data-evidence-expansion-summary-value="family-summary"
data-evidence-expansion-summary-value="family-source-count-list"
```

当前 family drilldown：

```text
woodpecker: 1/1 ready; sources=3
vismach-remap-sims: 2/2 ready; sources=6
five-axis-trt: 8/8 ready; sources=12
```

边界仍保持：

```text
candidateCount=11
readyCandidateCount=11
inventoryBaselineUnchanged=true
promotionAllowed=false
inventory baseline=82/82/77/0
```

本轮已运行验证：

```text
wasm-port/tests/sdk/node/verify_sdk_surface.sh
wasm-port/tests/sdk/node/verify_project_release_gate_manifest.sh
wasm-port/tests/sdk/node/verify_project_release_artifact_url_workflow.sh
wasm-port/tests/ui/node/verify_ini_panel_ui_shell.sh
SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_real_simulation_browser.sh
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_ini_panel_browser.sh
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_release_artifact_url_workflow_browser.sh
```

结果：

```text
sdk_surface_node_smoke=ok
project_release_gate_manifest_node_smoke=ok
project_release_artifact_url_workflow_node_smoke=ok
project_batch_acceptance_workflow_node_smoke=ok
project_batch_acceptance_artifact_node_smoke=ok
ini_panel_ui_shell_node_smoke=ok
browser_real_simulation_page_smoke=ok
browser_ini_workflow_overview_smoke=ok
browser_ini_shell_integration_workflow_smoke=ok
browser_release_artifact_url_workflow_smoke=ok
```

十一、下一步工作计划

不要继续扩大同一个 TRT evidence expansion 列表，也不要改 inventory
baseline。下一批建议转向“drilldown 可用性/过滤”：

```text
1. 在 INI workflow overview 增加 evidence-expansion family/source filter
   render-state，类似现有 promotion family source filter；
2. 支持按 family 查看 candidateIds / gcodePaths / sourceFiles；
3. real simulation diagnostics panel 保持 summary 简洁，只暴露 family rows；
4. release URL workflow summary 保留 preview 三项和 full list 兼容；
5. 继续保持 promotionAllowed=false、baseline=82/82/77/0。
```

十二、本轮接续推进：evidence expansion family/source filter

执行时间：2026-06-20 CST

已完成第十一节建议的 evidence-expansion family/source filter。该 filter
独立于 promotion family source filter，避免把 promotion candidates 与
evidence expansion diagnostics rows 混在同一 API/DOM contract 中。

新增 API / DOM surface：

```text
getWorkflowOverviewEvidenceExpansionFamilyRowsRenderState
getWorkflowOverviewEvidenceExpansionFamilySourceFilterViewModel
getWorkflowOverviewEvidenceExpansionFamilySourceFilterDomContract
getWorkflowOverviewEvidenceExpansionFamilySourceFilterDomReadiness
getWorkflowOverviewEvidenceExpansionFamilySourceFilterSelectionActionPlan
handleWorkflowOverviewEvidenceExpansionFamilySourceFilterSelectionChange
bindWorkflowOverviewEvidenceExpansionFamilySourceFilterSelectionControls
renderWorkflowOverviewEvidenceExpansionFamilySourceFilterState
mountWorkflowOverviewEvidenceExpansionFamilySourceFilterState

data-workflow-overview-evidence-expansion-family-source-filter
data-workflow-overview-evidence-expansion-family-source-filter-controls
data-workflow-overview-evidence-expansion-family-source-filter-rows
```

当前 filter 覆盖：

```text
families=3
sourceFiles=21
candidates=11
sourceKinds=ini/gcode/remap-subroutine/source
evidence-expansion-family-five-axis-trt + gcode => 8 source files / 8 candidates
```

边界仍保持：

```text
promotionAllowed=false
inventoryBaselineUnchanged=true
inventory baseline=82/82/77/0
```

本轮已运行验证：

```text
wasm-port/tests/ui/node/verify_ini_panel_ui_shell.sh
wasm-port/tests/sdk/node/verify_sdk_surface.sh
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_ini_panel_browser.sh
```

结果：

```text
ini_panel_ui_shell_node_smoke=ok
sdk_surface_node_smoke=ok
project_release_gate_manifest_node_smoke=ok
project_release_artifact_url_workflow_node_smoke=ok
project_batch_acceptance_workflow_node_smoke=ok
project_batch_acceptance_artifact_node_smoke=ok
browser_ini_workflow_overview_smoke=ok
browser_ini_shell_integration_workflow_smoke=ok
```

十三、下一步工作计划

不要改 inventory baseline，也不要扩大同一 TRT family。下一批建议做
filter 状态的可复用输出/深链：

```text
1. 为 evidence-expansion family/source filter 增加 summary/action-plan
   helper，输出 selectedFamilyId / selectedSourceKind / filtered counts；
2. 在 workflow overview URL workflow result 中保留当前 filter selection
   的 structured summary，方便外部 shell 读取；
3. 可选：支持 query/hash 参数预选 family/sourceKind；
4. 继续保持 promotionAllowed=false、baseline=82/82/77/0；
5. 验证仍以 Node UI smoke、INI browser smoke、SDK surface、docs smoke 为主。
```

十四、本轮接续推进：evidence expansion filter summary/action-plan

执行时间：2026-06-20 CST

已完成第十三节建议中的可复用输出层，不改变 inventory baseline，也不扩大
TRT family 候选集合。

新增 API / SDK / 页面 surface：

```text
createIniPanelShellWorkflowOverviewEvidenceExpansionFamilySourceFilterSummary
createIniPanelShellWorkflowOverviewEvidenceExpansionFamilySourceFilterActionPlan
getWorkflowOverviewEvidenceExpansionFamilySourceFilterSummary
getWorkflowOverviewEvidenceExpansionFamilySourceFilterActionPlan
```

当前 structured summary/action-plan 覆盖：

```text
selectedFamilyId
selectedSourceKind
filteredSourceFileCount
scopedSourceFileCount
totalSourceFileCount
filteredCandidateCount
totalCandidateCount
familyIds
sourceKinds
candidateIds
gcodePaths
sourceFiles
promotionAllowed=false
baselineChanging=false
```

页面侧 `workflow-overview.html` 现在会在 fixed release artifact URL workflow
执行后保留当前 evidence-expansion filter selection 的 structured summary
和 action-plan，并通过 workflow overview API 暴露给外部 shell。默认状态：

```text
all / all => 21/21 source files selected
five-axis-trt / gcode => 8/21 source files selected, 8 candidates
```

边界仍保持：

```text
promotionAllowed=false
baselineChanging=false
inventoryBaselineUnchanged=true
inventory baseline=82/82/77/0
```

本轮已运行验证：

```text
git diff --check
wasm-port/tests/sdk/node/verify_sdk_surface.sh
wasm-port/tests/ui/node/verify_ini_panel_ui_shell.sh
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_ini_panel_browser.sh
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_release_artifact_url_workflow_browser.sh
SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_real_simulation_browser.sh
wasm-port/tests/docs/node/verify_sim_configs_coverage_docs.sh
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh
wasm-port/tools/verify_no_standalone_cnc_semantics.sh
```

结果：

```text
sdk_surface_node_smoke=ok
project_release_gate_manifest_node_smoke=ok
project_release_artifact_url_workflow_node_smoke=ok
project_batch_acceptance_workflow_node_smoke=ok
project_batch_acceptance_artifact_node_smoke=ok
ini_panel_ui_shell_node_smoke=ok
browser_ini_opfs_smoke=ok
browser_ini_control_page_smoke=ok
browser_ini_launch_smoke=ok
browser_ini_workflow_overview_smoke=ok
browser_ini_shell_integration_workflow_smoke=ok
browser_release_artifact_url_workflow_smoke=ok
browser_real_simulation_page_smoke=ok
sim_configs_coverage_docs_node_smoke=ok
sim_configs_wasm_node_inventory=ok
standalone CNC semantics guard complete
```

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
```

十五、下一步工作计划

继续不要改 inventory baseline，也不要继续扩大同一个 TRT evidence list。
下一批建议做可选的 filter 深链预选，但要保持为 UI 状态恢复能力，不影响
release evidence 或 promotion 结论：

```text
1. 支持 workflow overview 的 query/hash 参数预选：
   - evidenceExpansionFamily=evidence-expansion-family-five-axis-trt
   - evidenceExpansionSourceKind=gcode
2. 预选只驱动 filter view-model 初始状态，不写入 inventory/report artifact；
3. browser smoke 覆盖预选后 body dataset / DOM selectedFamilyId /
   selectedSourceKind / filtered count；
4. SDK summary/action-plan 保持 promotionAllowed=false、baselineChanging=false；
5. baseline 继续保持 82/82/77/0。
```

十六、本轮接续推进：evidence expansion filter query/hash 预选

执行时间：2026-06-20 CST

已完成第十五节建议的 workflow overview filter 深链预选。该能力只影响
`workflow-overview.html` 中 evidence-expansion family/source filter 的初始
UI 状态，不写入 release artifact、不写入 diagnostics artifact、不改变
inventory/report 结论。

新增行为：

```text
workflow-overview.html?evidenceExpansionFamily=evidence-expansion-family-five-axis-trt&evidenceExpansionSourceKind=gcode

workflow-overview.html#evidenceExpansionFamily=evidence-expansion-family-five-axis-trt&evidenceExpansionSourceKind=gcode
```

当前预选结果：

```text
selectedFamilyId=evidence-expansion-family-five-axis-trt
selectedSourceKind=gcode
filteredSourceFileCount=8
filteredCandidateCount=8
baselineChanging=false
promotionAllowed=false
```

实现边界：

```text
1. 预选只通过 URL query/hash 读取；
2. 只传入 createIniPanelShellWorkflowOverviewEvidenceExpansionFamilySourceFilterViewModel；
3. 不改 SDK helper 的纯函数输入/输出；
4. 不改 diagnostics artifact 或 release readiness artifact；
5. 不改 inventory baseline。
```

本轮已运行验证：

```text
git diff --check
wasm-port/tests/ui/node/verify_ini_panel_ui_shell.sh
wasm-port/tests/sdk/node/verify_sdk_surface.sh
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_ini_panel_browser.sh
SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_release_artifact_url_workflow_browser.sh
SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_real_simulation_browser.sh
wasm-port/tests/docs/node/verify_sim_configs_coverage_docs.sh
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh
wasm-port/tools/verify_no_standalone_cnc_semantics.sh
```

结果：

```text
ini_panel_ui_shell_node_smoke=ok
sdk_surface_node_smoke=ok
project_release_gate_manifest_node_smoke=ok
project_release_artifact_url_workflow_node_smoke=ok
project_batch_acceptance_workflow_node_smoke=ok
project_batch_acceptance_artifact_node_smoke=ok
browser_ini_opfs_smoke=ok
browser_ini_control_page_smoke=ok
browser_ini_launch_smoke=ok
browser_ini_workflow_overview_smoke=ok
browser_ini_shell_integration_workflow_smoke=ok
browser_release_artifact_url_workflow_smoke=ok
browser_real_simulation_page_smoke=ok
sim_configs_coverage_docs_node_smoke=ok
sim_configs_wasm_node_inventory=ok
standalone CNC semantics guard complete
```

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
```

十七、下一步工作计划

不要改 inventory baseline，也不要把 evidence-expansion filter 状态写入
artifact。下一批建议转向真实浏览器模拟页面的 operator-facing 可用性：

```text
1. 在 real simulation page diagnostics 区增加 evidence-expansion family
   drilldown 的紧凑 operator view；
2. 只展示 family/count/source-kind summary，不新增 CNC 语义；
3. 保持 release artifact URL workflow 和 INI workflow overview 现有 API 兼容；
4. browser smoke 覆盖 real simulation page 的 family drilldown 可见状态；
5. baseline 继续保持 82/82/77/0。
```
