# Sim Configs Coverage Matrix

This matrix maps every current `wasm-port/tests/native/verify_sim_configs.sh` entry
to its native classification and current Layer 3/4 coverage status. It is the
tracked review surface for `linuxcnc/configs/sim` inventory; the native harness
also emits machine-readable artifacts for automation.

Current baseline:

- Source file: `wasm-port/build/native/sim-configs/summary.tsv`
- Generated class summary: `wasm-port/build/native/sim-configs/class-summary.tsv`
- Generated path matrix: `wasm-port/build/native/sim-configs/path-matrix.tsv`
- Total records: `159`
- Native result: `pass 151`, `expected_fail 8`, `unexpected_fail 0`
- Current Layer 4 representative subset: `axis/foam`, `axis/geometry`,
  `axis/external_offsets`, `axis/gladevcp`, `woodpecker/on_abort.ngc`,
  bridge-mill `5axisgui.ngc`, TDR/TRT five-axis switchkins demos,
  `melfa-sim`, and `puma_cube.ngc`
- `wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.mjs` checks that
  this tracked matrix and generated `path-matrix.tsv` contain the same 159 paths
  as native `summary.tsv` before running Node inventory.
- Node inventory artifact: `wasm-port/build/wasm/sim-configs-inventory/summary.tsv`
- Node skip/block artifact: `wasm-port/build/wasm/sim-configs-inventory/skip-summary.tsv`
- Node runtime-boundary artifact: `wasm-port/build/wasm/sim-configs-inventory/boundary-summary.tsv`
- Node INI runtime-boundary artifact:
  `wasm-port/build/wasm/sim-configs-inventory/ini-boundary-summary.tsv`
- Node blocked-dependency artifact:
  `wasm-port/build/wasm/sim-configs-inventory/blocked-dependency-summary.tsv`
- Node full-process boundary design artifact:
  `wasm-port/build/wasm/sim-configs-inventory/full-process-boundary-summary.tsv`
- Node user-M process boundary design artifact:
  `wasm-port/build/wasm/sim-configs-inventory/user-m-process-boundary-summary.tsv`
- Node user-M process transition contract artifact:
  `wasm-port/build/wasm/sim-configs-inventory/user-m-process-transition-plan.tsv`
- Node tool DB process boundary design artifact:
  `wasm-port/build/wasm/sim-configs-inventory/tool-db-process-boundary-summary.tsv`
- Node tool DB process transaction contract artifact:
  `wasm-port/build/wasm/sim-configs-inventory/tool-db-process-transaction-plan.tsv`
- Node tool DB native runtime probe gate artifact:
  `wasm-port/build/wasm/sim-configs-inventory/tool-db-process-native-runtime-probe-gate.tsv`
- Node Python-remap boundary inventory artifact:
  `wasm-port/build/wasm/sim-configs-inventory/python-remap-boundary-summary.tsv`
- Node Python-remap family inventory artifact:
  `wasm-port/build/wasm/sim-configs-inventory/python-remap-family-summary.tsv`
- Node Python-remap runtime contract artifact:
  `wasm-port/build/wasm/sim-configs-inventory/python-remap-runtime-contract.tsv`
- Node Python-remap native runtime readiness artifact:
  `wasm-port/build/wasm/sim-configs-inventory/python-remap-native-runtime-readiness.tsv`
- Node Python-remap native runtime probe gate artifact:
  `wasm-port/build/wasm/sim-configs-inventory/python-remap-native-runtime-probe-gate.tsv`
- Node Python-remap native runtime state-plan artifact:
  `wasm-port/build/wasm/sim-configs-inventory/python-remap-native-runtime-state-plan.tsv`
- Node Python-remap native runtime fixture-plan artifact:
  `wasm-port/build/wasm/sim-configs-inventory/python-remap-native-runtime-fixture-plan.tsv`
- Node Python-remap browser row proof artifact:
  `wasm-port/build/wasm/sim-configs-inventory/python-remap-browser-row-proof.tsv`
- Node Python-remap bulk promotion plan artifact:
  `wasm-port/build/wasm/sim-configs-inventory/python-remap-bulk-promotion-plan.tsv`
- Node Python-remap row runtime proof artifact:
  `wasm-port/build/wasm/sim-configs-inventory/python-remap-row-runtime-proof.tsv`
- Node Python-remap WASM row proof artifact:
  `wasm-port/build/wasm/sim-configs-inventory/python-remap-wasm-node-row-proof.tsv`
- Node runtime-boundary contract summary artifact:
  `wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-contract-summary.tsv`
- Node boundary-phase completion artifact:
  `wasm-port/build/wasm/sim-configs-inventory/boundary-phase-completion-summary.tsv`
- Node native runtime probe execution-plan artifact:
  `wasm-port/build/wasm/sim-configs-inventory/native-runtime-probe-execution-plan.tsv`
- Node next-boundary worklist artifact:
  `wasm-port/build/wasm/sim-configs-inventory/next-boundary-worklist.tsv`
- Node next-boundary recommendation artifact:
  `wasm-port/build/wasm/sim-configs-inventory/next-boundary-recommendations.tsv`
- Node promotion candidate artifact:
  `wasm-port/build/wasm/sim-configs-inventory/promotion-candidates.tsv`
- Node remaining skipped main-program promotion audit artifact:
  `wasm-port/build/wasm/sim-configs-inventory/remaining-skip-main-program-promotion-audit.tsv`
- Node remaining skip simulation implementation coverage artifact:
  `wasm-port/build/wasm/sim-configs-inventory/remaining-skip-simulation-implementation-coverage.tsv`
- Node native evidence acceptance gate artifact:
  `wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-native-evidence-acceptance-gate.tsv`
- Node promotion blocker summary artifact:
  `wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-promotion-blockers.tsv`
- Node blocked-runtime host preflight artifact:
  `wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-host-preflight.tsv`
- Node blocked-runtime host requirement summary artifact:
  `wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-host-requirement-summary.tsv`
- Node blocked-runtime host unblock plan artifact:
  `wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-host-unblock-plan.tsv`
- Node blocked-runtime family host readiness artifact:
  `wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-family-host-readiness.tsv`
- Node blocked-runtime aggregate host readiness artifact:
  `wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-host-readiness-rollup.tsv`
- Node blocked-runtime opt-in probe dispatch plan artifact:
  `wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-opt-in-probe-dispatch-plan.tsv`
- Node blocked-runtime opt-in probe dispatch rollup artifact:
  `wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-opt-in-probe-dispatch-rollup.tsv`
- Node blocked-runtime opt-in probe skip/evidence contract artifact:
  `wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-opt-in-probe-skip-evidence-contract.tsv`
- Node blocked-runtime opt-in probe skip/evidence rollup artifact:
  `wasm-port/build/wasm/sim-configs-inventory/runtime-boundary-opt-in-probe-skip-evidence-rollup.tsv`
- Current Node inventory: `executed 82`, `passed 82`, `skipped 77`,
  `unexpected_fail 0`
- Current Node skip/block counts: `ASSET-ONLY 65`, `L4-USER-M-PROCESS 1`,
  `NON_MAIN_CLASS 10`, `UPSTREAM-DEMO 1`

Legend:

- `Layer 3`: `SIM-*` means dedicated native runtime probe coverage; `5AX-EXEC` means
  native five-axis remap execution coverage; `-` means no dedicated runtime probe yet.
- `Layer 4 Node/Browser`: `REP` means the current representative smoke covers this
  exact program; `INV` means the Node inventory runner covers the exact program;
  `N/A` means the row is a subroutine asset and should not be judged as a standalone
  browser main program; `-` means the row is not individually promoted at that layer
  and must be interpreted with the row's blocked or class-coverage note.
- `Blocked`: current hard blocked dependency or non-target classification for future
  inventory work. `ASSET-ONLY` means the row is not a browser/main-program target.
  `L4-PYTHON-REMAP` means native `rs274` coverage exists but Node/browser full inventory
  is blocked on an intentional Python-remap runtime boundary decision. `UPSTREAM-DEMO`
  means the file is a preserved upstream expected-failure edge.
- `boundary-summary.tsv`: one row per native inventory path. It records the
  matrix blocked kind, the SDK classifier's recommended hard block when an INI
  is vendored, declared HAL/UI/HALUI/Python process dependencies, tool database
  declarations, user-M process codes seen in the execution text, and which of
  those user-M codes are not staged by vendored `USER_M_PATH` files. Python is
  split into total process dependency, UI/DB process dependency, and Python
  remap runtime dependency so safe UI representatives such as `gladevcp` are
  not mislabeled as Python-remap coverage. Rows whose INI has not been
  vendored yet use `recommended_blocked=UNAVAILABLE` and keep their tracked
  matrix policy as the source of truth until the relevant boundary inventory
  batch vendors the missing context.
- `ini-boundary-summary.tsv`: one row per unique INI referenced by the native
  inventory. It aggregates path-level boundary reports so vendored INIs have a
  direct machine-readable `report_available=1` check and hard block
  recommendations can be audited at INI granularity.
- `blocked-dependency-summary.tsv`: one row per hard blocked
  `L4-PYTHON-REMAP` and `L4-USER-M-PROCESS` path. It reads the
  source `linuxcnc/configs/sim` INI files without vendoring or executing those
  families, records Python modules, remap/prolog/epilog function ownership,
  NGC remap subpaths, HAL/UI/HALUI process declarations, `DB_PROGRAM`, and
  tool database protocol evidence, plus external user-M execution codes, their
  process script files, and process side-effect evidence. The `linuxcnc_owner`
  field records the LinuxCNC source/config files that own the blocked behavior,
  and keeps those rows blocked until a LinuxCNC-owned runtime boundary is
  designed.
- `full-process-boundary-summary.tsv`: one row for each designed-but-still-blocked
  non-Python full-process boundary. It currently covers
  `axis/vismach/millturn/example.ngc`, records LinuxCNC runtime owner evidence,
  records required native/Node/browser proof, and requires `execution_enabled=0`.
- `user-m-process-boundary-summary.tsv`: one row for each designed-but-still-blocked
  external user-M process boundary. It currently records the `millturn`
  `M128`/`M129` process files, remap call chain, kinstype guards, and
  source-traceable `ini.[xyz].*` HAL pin state targets, while requiring
  `execution_enabled=0` and `promotion_allowed=0`.
- `user-m-process-transition-plan.tsv`: the pending non-executing transition
  contract for the `millturn` user-M boundary. It binds `M428` to `M128` and
  `M429` to `M129`, records switchkins output/target, active G5x work offset,
  guard pin, state mode, and expected `ini.[xyz].*` outputs, and still requires
  `execution_enabled=0` and `promotion_allowed=0`.
- `user-m-process-native-transition-alignment.tsv`: the native source
  alignment for the two `millturn` transition rows. It proves the generated
  `M428/M429` transition contract still matches the native probe stdout for
  switchkins output/target, G5x, offset pocket, and `M428 -> M128` /
  `M429 -> M129` calls, while remaining pending and non-executing.
- `user-m-process-native-runtime-state-plan.tsv`: the pending native runnable
  state-probe contract for `millturn`. It records the required LinuxCNC
  task/HAL/Tcl user-M runtime, the HAL/INI environment, and exact
  `ini.[xyz].*` values that a future runtime probe must observe after the
  transitions, while keeping `execution_enabled=0` and `promotion_allowed=0`.
- `user-m-process-native-runtime-readiness.tsv`: the host capability gate for
  that future native probe. It records whether `tclsh`, `halrun`, `halcmd`,
  and `linuxcnc` are available on PATH and keeps the boundary pending and
  non-promotable regardless of host readiness.
- `user-m-process-native-runtime-probe-gate.tsv`: the generated execution gate
  for that future native probe. It records per-transition runtime readiness,
  missing host commands, source-proof readiness, and the pending gate status.
  The native `probe_millturn_user_m_runtime.sh` entry point reports
  `skipped_missing_host_runtime` on hosts without the full LinuxCNC HAL/Tcl
  runtime, `ready_disabled_by_default` when the host is ready but the guarded
  runtime probe is not explicitly enabled, or `runtime_state_probe_passed` when
  `ENABLE_MILLTURN_USER_M_RUNTIME_PROBE=1` proves the LinuxCNC-owned
  `M128`/`M129` Tcl scripts update the expected `ini.[xyz].*` HAL pins.
  command set and does not enable execution or promotion.
- `tool-db-process-boundary-summary.tsv`: one row for each designed-but-still-blocked
  tool database process boundary. It currently records `db_nonran.py`,
  LinuxCNC tooldata protocol messages, DB program callbacks, nonrandom tool
  database state targets, and runtime owner evidence, while requiring
  `execution_enabled=0` and `promotion_allowed=0`.
- `tool-db-process-transaction-plan.tsv`: the pending non-executing transaction
  contract for the `db_demo` tool database boundary. It orders startup
  handshake, get-all, spindle load notify, tool offset notify, and spindle
  unload notify steps, binds each protocol message to the expected `db.py`
  callback and state targets, and still requires `execution_enabled=0` and
  `promotion_allowed=0`.
- `tool-db-process-native-runtime-readiness.tsv`: the host capability gate for
  the guarded native DB process protocol probe. It records whether `python3`,
  `linuxcnc`, `milltask`, `halcmd`, the configured `db_nonran.py`, and
  LinuxCNC's `linuxcnc.so` / `tooldb.py` Python modules are available, while
  keeping the DB boundary pending and non-promotable. The native
  `probe_tool_db_runtime.sh` entry point reports `skipped_missing_host_runtime`
  when the host runtime is unavailable, `ready_disabled_by_default` when it is
  available but not explicitly enabled, or `runtime_protocol_probe_passed` when
  `ENABLE_TOOL_DB_RUNTIME_PROBE=1` proves the LinuxCNC-owned `DB_PROGRAM`
  `v2.1`/`g`/`p`/`l`/`u` protocol, nonrandom state updates, and flat-file
  persistence.
- `tool-db-process-native-runtime-probe-gate.tsv`: the execution gate for the
  guarded native DB process protocol probe. It combines source proof and host
  readiness, records missing runtime requirements, and keeps the DB boundary
  non-executing and non-promotable until the manual opt-in probe is allowed.
- `python-remap-boundary-summary.tsv`: one row for each `L4-PYTHON-REMAP`
  path. It records Python modules, remap/prolog/epilog functions, NGC-only
  subpaths, HAL/UI/HALUI assumptions, the LinuxCNC Python owner set, LinuxCNC
  Python runtime owner evidence, and requires `execution_enabled=0`.
- `python-remap-family-summary.tsv`: one row per blocked Python-remap runtime
  family. It aggregates row and INI counts plus Python module,
  remap/prolog/epilog, NGC-only subpath, Python runtime owner evidence,
  HAL/UI/HALUI, and `execution_enabled=0` evidence without vendoring or
  executing those families.
- `python-remap-runtime-contract.tsv`: one row per blocked Python-remap runtime
  family. It records LinuxCNC-owned Python runtime phases, Python modules,
  remap/prolog/epilog callables, NGC-only subpaths, HAL/UI/HALUI assumptions,
  native/Node/browser proof requirements, and keeps `proof_status=pending`,
  `execution_enabled=0`, and `promotion_allowed=0`.
- `python-remap-native-runtime-readiness.tsv`: the host/source capability gate
  for guarded native Python-remap runtime probes. It records `python3`,
  `linuxcnc`, LinuxCNC's Python interpreter/plugin owner source files, and the
  configured Python modules for each blocked family, while keeping every row
  pending, non-executing, and non-promotable.
- `python-remap-native-runtime-probe-gate.tsv`: the execution gate for the
  selected Python remap lifecycle fixture. It combines source proof and host
  readiness, records missing runtime requirements, and keeps Python remap
  execution blocked until the LinuxCNC host runtime and dispatch gate allow a
  manual opt-in probe.
- `python-remap-native-runtime-state-plan.tsv`: one row per blocked
  Python-remap family. It records the runtime phases, modules, callables,
  NGC-only subpaths, process assumptions, readiness counts, source-alignment
  inputs, and exact future native state-probe targets while keeping every row
  pending, non-executing, and non-promotable.
- `python-remap-native-runtime-fixture-plan.tsv`: the first non-executing
  Python runtime fixture plan. It selects
  `axis/remap/stop-lookahead/nc_files` as the minimal lifecycle fixture because
  it has Python modules and runtime phases without Python callable or NGC-only
  subpath complexity, and keeps execution/promotion disabled. The native
  `probe_python_remap_runtime.sh` entry point reports
  `skipped_missing_host_runtime` without the host runtime,
  `ready_disabled_by_default` when the host is ready but the probe is not
  explicitly enabled, or `runtime_lifecycle_probe_passed` when
  `ENABLE_PYTHON_REMAP_RUNTIME_PROBE=1` proves the `demo.ini`
  path/toplevel import, `queuebuster` callable lookup, generator return, and
  first `INTERP_EXECUTE_FINISH` yield.
- `python-remap-bulk-promotion-plan.tsv`: one row per current
  `L4-PYTHON-REMAP` inventory row. It records the Phase 1 blockers required
  before any bulk promotion, including row runtime proof, Python module and
  callable binding, NGC remap asset staging, NGC-only standalone guards,
  interpreter/canonical bridges, HAL/UI/HALUI boundaries, native/WASM/browser
  row pass proof, and the manual lock. It keeps every row
  `execution_enabled=0` and `promotion_allowed=0`, so the current
  PASS/SKIP baseline is unchanged.
- `python-remap-row-runtime-proof.tsv`: one row per current
  `L4-PYTHON-REMAP` inventory row. It records the Phase 2 row-aware runtime
  proof substrate: the SDK row runtime port API and row proof plan are ready,
  while module staging, TOPLEVEL execution, PATH_PREPEND application, callable
  binding, generator lifecycle, NGC remap staging, NGC-only standalone guards,
  interpreter/canonical bridges, and native/WASM/browser row pass proof remain
  pending. Every row keeps `execution_enabled=0`.
- `python-remap-wasm-node-row-proof.tsv`: one row per current
  `L4-PYTHON-REMAP` inventory row after Phase 3 native proof is ready. It is
  produced by the WASM Node runtime-port proof, validates each row bridge
  transcript independently, and only then lets inventory mark
  `wasm_node_pass_ready=1`. Browser proof and execution remain locked.
- `python-remap-browser-row-proof.tsv`: one row per current
  `L4-PYTHON-REMAP` inventory row after Phase 4 Node proof is ready. It is
  produced by the browser runtime smoke, validates each browser worker row
  transcript independently, and only then lets inventory mark
  `browser_pass_ready=1`. Execution and manual promotion remain locked.
- `runtime-boundary-contract-summary.tsv`: one row per blocked runtime boundary
  class. It unifies the user-M transition contract, tool DB transaction
  contract, and Python runtime contract with their native-alignment artifact,
  and requires every contract row to remain pending with execution and
  promotion disabled.
- `boundary-phase-completion-summary.tsv`: one row per boundary-phase
  completion criterion. It requires vendored INI boundary reports, dependency
  evidence for hard blocks, safe HAL/UI representative coverage, blocked
  families remaining skipped/non-representative with execution disabled, and
  LinuxCNC-owned runtime proof fields for user-M, tool DB, and Python runtime
  blockers. When native source proof is available, it also requires that proof
  to be consumed by generated worklist/native proof-gate rows without enabling
  execution or promotion. It also records WASM sim-config inventory artifact
  documentation coverage and native generated TSV documentation coverage as
  explicit completion criteria. It also records the blocked runtime
  worklist/recommendation consistency guard, the blocked runtime promotion gate
  consistency guard, the blocked runtime host requirement consistency guard,
  the blocked runtime host/dispatch/skip-evidence rollup consistency guard, the
  blocked runtime opt-in cross-artifact consistency guard, the native source
  proof/runtime probe consistency guard, and the runtime family
  contract/alignment consistency guard as explicit completion criteria. The
  family contract/alignment check keeps the user-M, tool DB, and Python
  contract/readiness/probe artifacts aligned with the aggregate runtime
  contract and native-alignment summaries without enabling execution or
  promotion.
  Browser smoke mirrors this completion-summary criterion list and fails on
  criterion drift, so browser-side validation sees the same boundary-phase
  gate set as the Node inventory without executing blocked runtime probes.
  It also checks selected completion-summary counts against the blocked-runtime
  and family-specific artifact rows already loaded by browser smoke, so the
  machine-readable completion summary cannot claim a different row count from
  the visible gate artifacts.
  The Node coverage gate also checks that browser smoke keeps the same
  generated WASM/native artifact tokens, fixed-count guards, duplicate-free
  guards, fetchability/header guards, documentation-missing guards, completion
  count-parity guards, review-document fetches, and native skipped-artifact
  empty allowance as the Node inventory gate.
  It also checks that `runtime-boundary-contract-summary.tsv` and
  `runtime-boundary-native-alignment-summary.tsv` agree on boundary kind,
  runtime alignment artifact, alignment row count, and disabled execution and
  promotion state.
  It also cross-checks user-M, tool DB, and Python family-specific
  contract/readiness/probe artifacts against `runtime-boundary-contract-summary.tsv`
  so browser validation sees the same runtime-family contract alignment as
  Node inventory without executing blocked runtime processes.
  Browser smoke also cross-checks `native-proof-alignment-summary.tsv`,
  `native-runtime-probe-summary.tsv`, and `runtime-probe-gate-alignment.tsv`
  for source-proof readiness, runtime readiness, required native proof, target,
  and disabled execution/promotion parity.
  It also cross-checks the native runtime probe execution plan, pass evidence
  contract, host preflight, dispatch plan, and skip-evidence contract so the
  browser smoke sees the same host-blocked opt-in command, missing
  requirements, evidence status, and disabled execution/promotion state as the
  Node inventory.
  It also cross-checks the host-readiness, dispatch, and skip-evidence rollups
  for counts, blocked families, missing requirements, blocked commands,
  host/dispatch/evidence status, and disabled execution/promotion parity.
  It also cross-checks the promotion lock, promotion readiness, promotion
  blockers, post-native-pass gates, native evidence acceptance gate, and pass
  evidence contract so browser validation sees the same locked promotion state
  as Node inventory.
  It also cross-checks recommendations, execution plans, host preflight,
  family readiness, dispatch plans, skip-evidence contracts, and evidence
  acceptance gates so browser validation sees the same opt-in command, proof,
  missing requirement, and disabled execution/promotion state as Node inventory.
  It also checks recommendation artifact row counts against the generated
  user-M probe-gate, tool DB probe-gate, and Python runtime-contract source
  rows, so priority handoffs cannot drift from the visible source artifacts.
  It also checks each recommendation primary artifact and source artifact list
  against the generated WASM inventory artifact set, including duplicate
  detection, primary-artifact traceability, and exact per-family source
  artifact sets. The Node coverage gate also verifies that browser smoke passes
  the `wasmArtifactNames` returned by artifact documentation coverage into this
  recommendation source-artifact coverage check.
- `native-proof-alignment-summary.tsv`: one row per native source proof class.
  It aligns the native source proof summary with generated worklist/native
  proof-gate consumers for user-M, tool DB, and Python runtime blockers.
- `next-boundary-worklist.tsv`: one row per next blocked runtime-boundary
  design target. It keeps execution and promotion disabled, records the
  LinuxCNC owner set and runtime owner evidence, records native, Node, and
  browser proof requirements, and names the next boundary-design action before
  any blocked family can be promoted.
- `next-boundary-recommendations.tsv`: the generated priority queue for the
  next blocked runtime-boundary work. It currently ranks millturn `M128/M129`
  state proof, tool DB protocol proof, and Python remap lifecycle proof, while
  preserving active promotion locks and disabled execution. The Node inventory
  verifies exact per-family source artifact sets, duplicate-free source lists,
  primary-artifact traceability, and generated artifact existence for each
  recommendation.
- `native-runtime-probe-execution-plan.tsv`: the guarded opt-in execution
  plan for blocked runtime native probes. It records the exact command,
  required native proof key, current runtime readiness, expected pass status,
  missing requirements, gate alignment, and promotion prerequisites. It is not
  a probe runner and does not promote rows.
- `runtime-boundary-native-evidence-acceptance-gate.tsv`: one row per blocked
  runtime family deciding whether native pass evidence may be accepted. While
  probes are skipped for missing host requirements, evidence acceptance is
  blocked and Node/browser gates remain blocked.
- `runtime-boundary-promotion-blockers.tsv`: the expanded blocker summary for
  non-ready promotions. Current rows record missing host runtime, native
  probe not passed, native evidence not ready, Node/browser gates incomplete,
  active promotion lock, and manual lock update required.
- The Node inventory also performs a cross-artifact consistency guard across
  the blocked runtime opt-in target set. The guard requires the
  recommendations, execution plan, host preflight, family readiness, dispatch
  plan, skip/evidence contract, native evidence acceptance gate, promotion
  readiness, promotion blockers, and post-native-pass gates to agree on the
  target, proof keys, opt-in command, missing host requirements, active
  promotion lock, and disabled execution/promotion fields.
- The Node inventory also checks documentation coverage for generated
  sim-config inventory TSVs. Every artifact emitted under
  `build/wasm/sim-configs-inventory/` must be referenced by the current
  compatibility, matrix, or full-process boundary docs, so generated gate
  artifacts cannot silently appear without review text. The generated WASM
  inventory artifact list must remain the exact duplicate-free 61-entry
  baseline, and every token plus the fixed-count, duplicate-free, and
  fetchability guards must also be listed by browser smoke.
- The same inventory check covers native generated TSV artifacts under
  `build/native/` by relative path, including native source-proof,
  runtime-probe, `nc_files`, and sim-config baseline artifacts. The native
  generated TSV token list must remain the exact duplicate-free 8-token
  baseline, and every token plus the fixed-count, duplicate-free, fetchability,
  and empty-skipped allowance guards must also be listed by browser smoke.
- Browser smoke mirrors this documentation coverage by fetching the current
  compatibility, matrix, and full-process boundary docs and checking the
  generated WASM inventory artifact names plus native TSV tokens against the
  same completion-summary counts. The Node coverage gate also locks the two
  documentation-coverage completion counts to the current `61` WASM inventory
  artifacts and `8` native TSV artifacts. It verifies that browser smoke
  executes the artifact documentation coverage helper, calls the completion
  count-parity helper with the generated completion rows, fetches and joins the
  exact compatibility, matrix, and full-process boundary review-document set
  used for the missing-reference checks, requires those checks to iterate
  `wasmArtifactNames` and `nativeArtifactTokens` against the joined
  `documentationText`, fetches generated WASM TSVs by artifact name, fetches
  native TSVs by relative artifact token, binds the documentation-coverage
  completion counts to the returned `wasmArtifactNames` and
  `nativeArtifactTokens` arrays, and keeps completion evidence reviewable when
  browser-side count parity is checked. Browser smoke also requires a
  non-empty TSV header, duplicate-free expected lists, and fixed artifact/token
  counts. This is
  documentation/artifact fetchability parity only and does not execute blocked
  runtime probes. The native
  `build/native/sim-configs/skipped.tsv` artifact may be empty when the native
  strict sim-config baseline has no skipped rows.
- The Node inventory also checks native source proof consistency. Native
  source proof alignment rows, the native runtime probe summary, and runtime
  probe gate alignment must cover the same blocked classes, agree that source
  proof is ready, and keep execution and promotion disabled.
- `runtime-boundary-host-preflight.tsv`: the host-facing preflight for the
  guarded blocked-runtime native probes. It records each blocked family,
  required host/runtime commands, opt-in environment variable, exact native
  probe command, current probe status, and keeps execution and promotion
  disabled. It does not run the probes.
- `runtime-boundary-host-requirement-summary.tsv`: a normalized requirement
  table for the blocked runtime probes. It records each required host command
  or source/module, its availability, affected blocked families, affected
  opt-in probe environment variables, and whether the missing requirement
  currently blocks execution.
- `runtime-boundary-host-unblock-plan.tsv`: the filtered plan for unavailable
  host requirements. It records the affected blocked families, affected
  opt-in commands, and remaining missing requirements after each single
  requirement is provided. It is advisory only and does not install anything
  or allow promotion.
- `runtime-boundary-family-host-readiness.tsv`: one host-readiness row per
  blocked runtime family. It records missing requirements, available
  prerequisites, the opt-in command, current probe/preflight status, and keeps
  `execution_enabled=0` and `promotion_allowed=0`.
- Browser smoke cross-checks the host requirement summary, unblock plan,
  family host readiness, and host preflight rows. The check verifies
  unavailable requirement ownership, available prerequisite ownership,
  affected opt-in environments, and exact probe command traceability while
  remaining non-executing and non-promoting.
- `runtime-boundary-host-readiness-rollup.tsv`: the aggregate host-readiness
  decision for all runtime-boundary proof families. On this host it records
  three ready opt-in native probes, no missing host requirements, and
  `host_ready_for_all_opt_in_native_probes`.
- `runtime-boundary-opt-in-probe-dispatch-plan.tsv`: one dispatch row per
  guarded native runtime probe. It turns host readiness into a dispatch action
  and remains non-promoting; a dispatchable row only means the manual opt-in
  native probe may be attempted on a ready host.
- `runtime-boundary-opt-in-probe-dispatch-rollup.tsv`: the aggregate dispatch
  switch for runtime-boundary probes. Current rows are dispatchable for manual
  opt-in native probes, while `execution_enabled=0` and `promotion_allowed=0`
  remain unchanged.
- `runtime-boundary-opt-in-probe-skip-evidence-contract.tsv`: the per-probe
  skip/evidence contract. It records the skip reason, missing host
  requirements, current probe status, whether native pass evidence is required
  now, and keeps every skipped probe non-executing and non-promoting.
- `runtime-boundary-opt-in-probe-skip-evidence-rollup.tsv`: the aggregate
  evidence decision for opt-in probes. Dispatchable probes do not require skip
  evidence; accepted Python remap lifecycle evidence still does not allow
  promotion.

## Summary

| Class | Count |
| --- | --- |
| `main` | `48` |
| `macro_load` | `46` |
| `remap_subroutine` | `65` |

## Family Summary

| Family | Count |
| --- | --- |
| `axis/db_demo` | `1` |
| `axis/external_offsets` | `6` |
| `axis/foam` | `1` |
| `axis/geometry` | `1` |
| `axis/gladevcp` | `1` |
| `axis/laser` | `3` |
| `axis/lathe-fanucy` | `1` |
| `axis/remap` | `29` |
| `axis/rose_engine` | `2` |
| `axis/vismach` | `57` |
| `gmoccapy/lathe_configs` | `8` |
| `gmoccapy/macros` | `25` |
| `gmoccapy/non_trivial_kinematics` | `5` |
| `gscreen/industrial_lathe_wear` | `1` |
| `gscreen/silverdragon` | `4` |
| `qtaxis/non-trivial` | `3` |
| `qtdragon/qtdragon_multi_joint` | `1` |
| `qtdragon/qtdragon_xyz` | `1` |
| `qtdragon/qtdragon_xyz45` | `1` |
| `qtdragon_hd/qtdragon_hd_xyz` | `1` |
| `qtdragon_hd/qtdragon_hd_z_compensation` | `1` |
| `qtvcp_screens/industrial_lathe_wear` | `1` |
| `qtvcp_screens/non-trivial` | `3` |
| `qtvcp_screens/qtdragon` | `1` |
| `woodpecker` | `1` |

## Program Matrix

| Path | Family | Class | Native | Expected Failure | Layer 3 | Layer 4 Node | Layer 4 Browser | Blocked | Notes |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| `axis/db_demo/base.ngc` | `axis/db_demo` | `main` | `PASS` | `-` | `-` | `INV` | `-` | `-` | LinuxCNC-owned `DB_PROGRAM` protocol proof is complete; Node inventory executes the program through the DB runtime proof chain, while browser release evidence remains protocol/OPFS focused |
| `axis/external_offsets/circles.ngc` | `axis/external_offsets` | `macro_load` | `PASS` | `-` | `SIM-EOFF` | `REP` | `REP` | `-` | Layer 4 macro-only class representative now covered through wrapped execution with native staging inputs |
| `axis/external_offsets/dyn_demo.ngc` | `axis/external_offsets` | `main` | `FAIL` | `user-m-code-M111` | `SIM-EOFF` | `REP` | `REP` | `-` | Layer 2 expected-fail; M111 runtime edge covered |
| `axis/external_offsets/eoffsets.ngc` | `axis/external_offsets` | `main` | `FAIL` | `user-m-code-M111` | `SIM-EOFF` | `REP` | `REP` | `-` | Layer 2 expected-fail; M111 runtime edge covered |
| `axis/external_offsets/jwp_z.ngc` | `axis/external_offsets` | `main` | `FAIL` | `user-m-code-M111` | `SIM-EOFF` | `REP` | `REP` | `-` | Layer 2 expected-fail; M111 runtime edge covered |
| `axis/external_offsets/opa_demo.ngc` | `axis/external_offsets` | `main` | `FAIL` | `user-m-code-M111` | `SIM-EOFF` | `REP` | `REP` | `-` | Layer 2 expected-fail; M111 runtime edge covered |
| `axis/external_offsets/queuebuster.ngc` | `axis/external_offsets` | `macro_load` | `PASS` | `-` | `SIM-EOFF` | `-` | `-` | `-` | non-main macro/load fixture diagnostics evidence is now required by virtual HAL release validation through the owning `eoffsets.ini` NGCGUI declaration; not promoted as a standalone browser main program |
| `axis/foam/foam.ngc` | `axis/foam` | `main` | `FAIL` | `ini-axis-mask-UV` | `SIM-FOAM` | `REP` | `REP` | `-` | Layer 2 expected-fail; Layer 3/4 runtime edge covered |
| `axis/geometry/xyzc.ngc` | `axis/geometry` | `main` | `FAIL` | `user-m-code-M110` | `SIM-XYZC` | `REP` | `REP` | `-` | Layer 2 expected-fail; M110 runtime edge covered |
| `axis/gladevcp/probe.ngc` | `axis/gladevcp` | `main` | `PASS` | `-` | `-` | `REP` | `REP` | `-` | plain INI/tool-table main-program class representative covered in Node and browser through vendored staging inputs |
| `axis/laser/raster_test.ngc` | `axis/laser` | `main` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native pass; Layer 4 is blocked until the Python-remap runtime boundary is deliberately designed |
| `axis/laser/vector_test.ngc` | `axis/laser` | `main` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native pass; Layer 4 is blocked until the Python-remap runtime boundary is deliberately designed |
| `axis/laser/vector_test2.ngc` | `axis/laser` | `main` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native pass; Layer 4 is blocked until the Python-remap runtime boundary is deliberately designed |
| `axis/lathe-fanucy/toolchange.ngc` | `axis/lathe-fanucy` | `macro_load` | `PASS` | `-` | `-` | `-` | `-` | `-` | inventory-only macro/load path; macro_load class coverage is represented by `axis/external_offsets/circles.ngc` unless this family is deliberately promoted later |
| `axis/remap/cycle/nc_files/examples.ngc` | `axis/remap` | `main` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native baseline pass, but Layer 4 full inventory is blocked by Python remap/prolog/epilog runtime boundaries; remap subroutine assets remain `ASSET-ONLY` |
| `axis/remap/cycle/nc_subroutines/g843.ngc` | `axis/remap` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/remap/extend-builtins/nc_files/examples.ngc` | `axis/remap` | `main` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native baseline pass, but Layer 4 full inventory is blocked by Python prolog/epilog remap runtime boundaries; remap subroutine assets remain `ASSET-ONLY` |
| `axis/remap/extend-builtins/nc_subroutines/change.ngc` | `axis/remap` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/remap/extend-builtins/nc_subroutines/extend_m0.ngc` | `axis/remap` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/remap/extend-builtins/nc_subroutines/extend_m1.ngc` | `axis/remap` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/remap/extend-builtins/nc_subroutines/extend_m60.ngc` | `axis/remap` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/remap/extend-builtins/nc_subroutines/extend_m7.ngc` | `axis/remap` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/remap/extend-builtins/nc_subroutines/extend_m8.ngc` | `axis/remap` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/remap/extend-builtins/nc_subroutines/extend_m9.ngc` | `axis/remap` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/remap/extend-builtins/nc_subroutines/prepare.ngc` | `axis/remap` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/remap/extend-builtins/nc_subroutines/setfeed.ngc` | `axis/remap` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/remap/extend-builtins/nc_subroutines/setspeed.ngc` | `axis/remap` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/remap/extend-builtins/nc_subroutines/settool.ngc` | `axis/remap` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/remap/getting-started/nc_files/examples.ngc` | `axis/remap` | `main` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native baseline pass, but Layer 4 full inventory is blocked by Python remap handlers such as `G88.1`; remap subroutine assets remain `ASSET-ONLY` |
| `axis/remap/getting-started/nc_subroutines/change_min.ngc` | `axis/remap` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/remap/getting-started/nc_subroutines/m400.ngc` | `axis/remap` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/remap/getting-started/nc_subroutines/m410.ngc` | `axis/remap` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/remap/getting-started/nc_subroutines/prepare_min.ngc` | `axis/remap` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/remap/manual-toolchange-with-tool-length-switch/nc_files/tcdemo.ngc` | `axis/remap` | `main` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native baseline pass, but Layer 4 full inventory is blocked by Python tool-change prolog/epilog runtime boundaries; remap subroutine assets remain `ASSET-ONLY` |
| `axis/remap/manual-toolchange-with-tool-length-switch/nc_subroutines/manual_change.ngc` | `axis/remap` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/remap/manual-toolchange-with-tool-length-switch/nc_subroutines/on_abort.ngc` | `axis/remap` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/remap/manual-toolchange-with-tool-length-switch/nc_subroutines/restore.ngc` | `axis/remap` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/remap/rack-toolchange/nc_files/tcdemo.ngc` | `axis/remap` | `main` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native baseline pass, but Layer 4 full inventory is blocked by Python tool-change prolog/epilog runtime boundaries; remap subroutine assets remain `ASSET-ONLY` |
| `axis/remap/rack-toolchange/nc_subroutines/on_abort.ngc` | `axis/remap` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/remap/rack-toolchange/nc_subroutines/rack_change.ngc` | `axis/remap` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/remap/rack-toolchange/nc_subroutines/tool_getput_move.ngc` | `axis/remap` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/remap/rack-toolchange/nc_subroutines/tool_holder_clear_move.ngc` | `axis/remap` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/remap/stop-lookahead/nc_files/examples.ngc` | `axis/remap` | `main` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native baseline pass, but Layer 4 full inventory is blocked by Python `queuebuster` remap runtime boundaries; remap subroutine assets remain `ASSET-ONLY` |
| `axis/rose_engine/rcone.ngc` | `axis/rose_engine` | `macro_load` | `PASS` | `-` | `-` | `-` | `-` | `-` | non-main macro/load fixture diagnostics evidence is now required by virtual HAL release validation and paired with `rcone_demo.ngc`; not promoted as a standalone browser main program |
| `axis/rose_engine/rcone_demo.ngc` | `axis/rose_engine` | `main` | `PASS` | `-` | `-` | `INV` | `-` | `-` | Node inventory coverage uses the native harness-selected `axis/sim.tbl` fallback staged at the INI-declared tool-table path; virtual HAL promotion candidate gate now exports explicit browser diagnostics evidence while inventory baseline remains unchanged |
| `axis/vismach/5axis/bridgemill/5axisgui.ngc` | `axis/vismach` | `main` | `FAIL` | `ini-axis-mask-W` | `SIM-BRIDGE,5AX-EXEC` | `REP` | `REP` | `-` | Layer 2 expected-fail; W-axis and remap runtime edge covered |
| `axis/vismach/5axis/bridgemill/remap_subs/428remap.ngc` | `axis/vismach` | `remap_subroutine` | `PASS` | `-` | `5AX-EXEC` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/vismach/5axis/bridgemill/remap_subs/429remap.ngc` | `axis/vismach` | `remap_subroutine` | `PASS` | `-` | `5AX-EXEC` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/vismach/5axis/bridgemill/remap_subs/430remap.ngc` | `axis/vismach` | `remap_subroutine` | `PASS` | `-` | `5AX-EXEC` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/vismach/5axis/table-dual-rotary/demos/xyzab-tdr-demo.ngc` | `axis/vismach` | `main` | `PASS` | `-` | `5AX-EXEC` | `REP` | `REP` | `-` | TDR five-axis remap class covered in Node and browser through vendored INI, tool-table, remap-subroutine, and demo staging |
| `axis/vismach/5axis/table-dual-rotary/remap_subs/428remap.ngc` | `axis/vismach` | `remap_subroutine` | `PASS` | `-` | `5AX-EXEC` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/vismach/5axis/table-dual-rotary/remap_subs/429remap.ngc` | `axis/vismach` | `remap_subroutine` | `PASS` | `-` | `5AX-EXEC` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc` | `axis/vismach` | `main` | `PASS` | `-` | `5AX-EXEC` | `REP` | `REP` | `-` | TRT five-axis remap class covered in Node and browser through vendored INI, tool-table, remap-subroutine, and demo staging |
| `axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzbc.ngc` | `axis/vismach` | `main` | `PASS` | `-` | `5AX-EXEC` | `REP` | `REP` | `-` | TRT five-axis remap class covered in Node and browser through vendored INI, tool-table, remap-subroutine, and demo staging |
| `axis/vismach/5axis/table-rotary-tilting/demos/impeller-7bl-xyzac.ngc` | `axis/vismach` | `main` | `PASS` | `-` | `5AX-EXEC` | `REP` | `REP` | `-` | TRT five-axis remap class covered in Node and browser through vendored INI, tool-table, remap-subroutine, and demo staging |
| `axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins.ngc` | `axis/vismach` | `main` | `PASS` | `-` | `5AX-EXEC` | `REP` | `REP` | `-` | TRT five-axis remap class covered in Node and browser through vendored INI, tool-table, remap-subroutine, and demo staging |
| `axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins_test_1.ngc` | `axis/vismach` | `main` | `PASS` | `-` | `5AX-EXEC` | `REP` | `REP` | `-` | TRT five-axis remap class covered in Node and browser through vendored INI, tool-table, remap-subroutine, and demo staging |
| `axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins_test_2.ngc` | `axis/vismach` | `main` | `PASS` | `-` | `5AX-EXEC` | `REP` | `REP` | `-` | TRT five-axis remap class covered in Node and browser through vendored INI, tool-table, remap-subroutine, and demo staging |
| `axis/vismach/5axis/table-rotary-tilting/demos/xyzac_switchkins_test_3.ngc` | `axis/vismach` | `main` | `PASS` | `-` | `5AX-EXEC` | `REP` | `REP` | `-` | TRT five-axis remap class covered in Node and browser through vendored INI, tool-table, remap-subroutine, and demo staging |
| `axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc` | `axis/vismach` | `main` | `PASS` | `-` | `5AX-EXEC` | `REP` | `REP` | `-` | TRT five-axis remap class covered in Node and browser through vendored INI, tool-table, remap-subroutine, and demo staging |
| `axis/vismach/5axis/table-rotary-tilting/remap_subs/428remap.ngc` | `axis/vismach` | `remap_subroutine` | `PASS` | `-` | `5AX-EXEC` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/vismach/5axis/table-rotary-tilting/remap_subs/429remap.ngc` | `axis/vismach` | `remap_subroutine` | `PASS` | `-` | `5AX-EXEC` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/vismach/5axis/table-rotary-tilting/remap_subs/430remap.ngc` | `axis/vismach` | `remap_subroutine` | `PASS` | `-` | `5AX-EXEC` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/vismach/5axis/table-rotary-tilting/remap_subs/centering.ngc` | `axis/vismach` | `remap_subroutine` | `PASS` | `-` | `5AX-EXEC` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/vismach/5axis/table-rotary-tilting/remap_subs/helix_ac.ngc` | `axis/vismach` | `remap_subroutine` | `PASS` | `-` | `5AX-EXEC` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/vismach/5axis/table-rotary-tilting/remap_subs/helix_bc.ngc` | `axis/vismach` | `remap_subroutine` | `PASS` | `-` | `5AX-EXEC` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/vismach/5axis/table-rotary-tilting/remap_subs/xyzac_switchkins_sub.ngc` | `axis/vismach` | `remap_subroutine` | `PASS` | `-` | `5AX-EXEC` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/vismach/5axis/table-rotary-tilting/remap_subs/xyzbc_switchkins_sub.ngc` | `axis/vismach` | `remap_subroutine` | `PASS` | `-` | `5AX-EXEC` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/vismach/5axis/table-rotary_spindle-rotary-nutating/demos/circular_pocket.ngc` | `axis/vismach` | `main` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native pass, but Layer 4 full inventory is blocked on Python remap entry points such as g682, g69_core, and g53x_core |
| `axis/vismach/5axis/table-rotary_spindle-rotary-nutating/demos/incremental_repetition.ngc` | `axis/vismach` | `main` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native pass, but Layer 4 full inventory is blocked on Python remap entry points such as g682, g69_core, and g53x_core |
| `axis/vismach/5axis/table-rotary_spindle-rotary-nutating/demos/incremental_repetition_back_and_forth.ngc` | `axis/vismach` | `main` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native pass, but Layer 4 full inventory is blocked on Python remap entry points such as g682, g69_core, and g53x_core |
| `axis/vismach/5axis/table-rotary_spindle-rotary-nutating/demos/incremental_repetition_g533.ngc` | `axis/vismach` | `main` | `FAIL` | `upstream-demo-missing-motion-gcode` | `-` | `-` | `-` | `UPSTREAM-DEMO` | preserve upstream demo failure; do not force PASS |
| `axis/vismach/5axis/table-rotary_spindle-rotary-nutating/demos/simple_example.ngc` | `axis/vismach` | `main` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native pass, but Layer 4 full inventory is blocked on Python remap entry points such as g682, g69_core, and g53x_core |
| `axis/vismach/5axis/table-rotary_spindle-rotary-nutating/demos/square.ngc` | `axis/vismach` | `macro_load` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native pass, but Layer 4 full inventory is blocked on Python remap entry points such as g682, g69_core, and g53x_core |
| `axis/vismach/5axis/table-rotary_spindle-rotary-nutating/remap_subs/428remap.ngc` | `axis/vismach` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/vismach/5axis/table-rotary_spindle-rotary-nutating/remap_subs/429remap.ngc` | `axis/vismach` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/vismach/5axis/table-rotary_spindle-rotary-nutating/remap_subs/430remap.ngc` | `axis/vismach` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/vismach/5axis/table-rotary_spindle-rotary-nutating/remap_subs/g531remap.ngc` | `axis/vismach` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/vismach/5axis/table-rotary_spindle-rotary-nutating/remap_subs/g533remap.ngc` | `axis/vismach` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/vismach/5axis/table-rotary_spindle-rotary-nutating/remap_subs/g536remap.ngc` | `axis/vismach` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/vismach/5axis/table-rotary_spindle-rotary-nutating/remap_subs/g69remap.ngc` | `axis/vismach` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/vismach/5axis/table-rotary_spindle-rotary-nutating/remap_subs/on_abort_no_twp_reset.ngc` | `axis/vismach` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/vismach/5axis/table-rotary_spindle-rotary-nutating/remap_subs/on_abort_with_twp_reset.ngc` | `axis/vismach` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/vismach/VMC_toolchange/toolchange.ngc` | `axis/vismach` | `main` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native baseline pass, but Layer 4 full inventory is blocked by Python tool-change prolog/epilog and full tool-change runtime boundaries |
| `axis/vismach/hexapod-sim/remap_subs/428remap.ngc` | `axis/vismach` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/vismach/hexapod-sim/remap_subs/429remap.ngc` | `axis/vismach` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/vismach/hexapod-sim/remap_subs/430remap.ngc` | `axis/vismach` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/vismach/melfa-sim/example.ngc` | `axis/vismach` | `main` | `PASS` | `-` | `-` | `REP` | `REP` | `-` | robot/Genser-style remap machine class representative covered in Node and browser through vendored INI, tool-table, and remap-subroutine staging |
| `axis/vismach/melfa-sim/remap_subs/428remap.ngc` | `axis/vismach` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/vismach/melfa-sim/remap_subs/429remap.ngc` | `axis/vismach` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/vismach/melfa-sim/remap_subs/430remap.ngc` | `axis/vismach` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/vismach/millturn/example.ngc` | `axis/vismach` | `main` | `PASS` | `-` | `-` | `-` | `-` | `L4-USER-M-PROCESS` | native pass, but Node/browser inventory is blocked by external `USER_M_PATH` process M-codes `M128` and `M129` rather than the deterministic `M110`/`M111` boundary already modeled by the standalone runtime |
| `axis/vismach/millturn/remap_subs/428remap.ngc` | `axis/vismach` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/vismach/millturn/remap_subs/429remap.ngc` | `axis/vismach` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/vismach/puma/puma_cube.ngc` | `axis/vismach` | `main` | `PASS` | `-` | `-` | `REP` | `REP` | `-` | PUMA kinematics/remap machine class representative covered in Node and browser through vendored INI, tool-table, and remap-subroutine staging |
| `axis/vismach/puma/puma_seam_weld.ngc` | `axis/vismach` | `main` | `PASS` | `-` | `-` | `INV` | `-` | `-` | Node inventory covered with the same vendored puma machine context; virtual HAL promotion candidate gate now exports explicit browser diagnostics evidence paired with the `puma_cube.ngc` representative while inventory baseline remains unchanged |
| `axis/vismach/puma/remap_subs/428remap.ngc` | `axis/vismach` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/vismach/puma/remap_subs/429remap.ngc` | `axis/vismach` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/vismach/puma/remap_subs/430remap.ngc` | `axis/vismach` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/vismach/scara/remap_subs/428remap.ngc` | `axis/vismach` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/vismach/scara/remap_subs/429remap.ngc` | `axis/vismach` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `axis/vismach/scara/remap_subs/430remap.ngc` | `axis/vismach` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `gmoccapy/lathe_configs/boring.ngc` | `gmoccapy/lathe_configs` | `macro_load` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native pass; Layer 4 is blocked until the Python-remap runtime boundary is deliberately designed |
| `gmoccapy/lathe_configs/chamfer.ngc` | `gmoccapy/lathe_configs` | `macro_load` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native pass; Layer 4 is blocked until the Python-remap runtime boundary is deliberately designed |
| `gmoccapy/lathe_configs/drilling.ngc` | `gmoccapy/lathe_configs` | `macro_load` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native pass; Layer 4 is blocked until the Python-remap runtime boundary is deliberately designed |
| `gmoccapy/lathe_configs/facing.ngc` | `gmoccapy/lathe_configs` | `macro_load` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native pass; Layer 4 is blocked until the Python-remap runtime boundary is deliberately designed |
| `gmoccapy/lathe_configs/grooving.ngc` | `gmoccapy/lathe_configs` | `macro_load` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native pass; Layer 4 is blocked until the Python-remap runtime boundary is deliberately designed |
| `gmoccapy/lathe_configs/radius.ngc` | `gmoccapy/lathe_configs` | `macro_load` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native pass; Layer 4 is blocked until the Python-remap runtime boundary is deliberately designed |
| `gmoccapy/lathe_configs/threading.ngc` | `gmoccapy/lathe_configs` | `macro_load` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native pass; Layer 4 is blocked until the Python-remap runtime boundary is deliberately designed |
| `gmoccapy/lathe_configs/turning.ngc` | `gmoccapy/lathe_configs` | `macro_load` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native pass; Layer 4 is blocked until the Python-remap runtime boundary is deliberately designed |
| `gmoccapy/macros/change.ngc` | `gmoccapy/macros` | `macro_load` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native pass; Layer 4 is blocked until the Python-remap runtime boundary is deliberately designed |
| `gmoccapy/macros/change_g43.ngc` | `gmoccapy/macros` | `macro_load` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native pass; Layer 4 is blocked until the Python-remap runtime boundary is deliberately designed |
| `gmoccapy/macros/go_to_position.ngc` | `gmoccapy/macros` | `macro_load` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native pass; Layer 4 is blocked until the Python-remap runtime boundary is deliberately designed |
| `gmoccapy/macros/halo_world.ngc` | `gmoccapy/macros` | `macro_load` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native pass; Layer 4 is blocked until the Python-remap runtime boundary is deliberately designed |
| `gmoccapy/macros/i_am_lost.ngc` | `gmoccapy/macros` | `macro_load` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native pass; Layer 4 is blocked until the Python-remap runtime boundary is deliberately designed |
| `gmoccapy/macros/increment.ngc` | `gmoccapy/macros` | `macro_load` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native pass; Layer 4 is blocked until the Python-remap runtime boundary is deliberately designed |
| `gmoccapy/macros/jog_around.ngc` | `gmoccapy/macros` | `macro_load` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native pass; Layer 4 is blocked until the Python-remap runtime boundary is deliberately designed |
| `gmoccapy/macros/macro_0.ngc` | `gmoccapy/macros` | `macro_load` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native pass; Layer 4 is blocked until the Python-remap runtime boundary is deliberately designed |
| `gmoccapy/macros/macro_1.ngc` | `gmoccapy/macros` | `macro_load` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native pass; Layer 4 is blocked until the Python-remap runtime boundary is deliberately designed |
| `gmoccapy/macros/macro_10.ngc` | `gmoccapy/macros` | `macro_load` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native pass; Layer 4 is blocked until the Python-remap runtime boundary is deliberately designed |
| `gmoccapy/macros/macro_11.ngc` | `gmoccapy/macros` | `macro_load` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native pass; Layer 4 is blocked until the Python-remap runtime boundary is deliberately designed |
| `gmoccapy/macros/macro_12.ngc` | `gmoccapy/macros` | `macro_load` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native pass; Layer 4 is blocked until the Python-remap runtime boundary is deliberately designed |
| `gmoccapy/macros/macro_13.ngc` | `gmoccapy/macros` | `macro_load` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native pass; Layer 4 is blocked until the Python-remap runtime boundary is deliberately designed |
| `gmoccapy/macros/macro_14.ngc` | `gmoccapy/macros` | `macro_load` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native pass; Layer 4 is blocked until the Python-remap runtime boundary is deliberately designed |
| `gmoccapy/macros/macro_15.ngc` | `gmoccapy/macros` | `macro_load` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native pass; Layer 4 is blocked until the Python-remap runtime boundary is deliberately designed |
| `gmoccapy/macros/macro_2.ngc` | `gmoccapy/macros` | `macro_load` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native pass; Layer 4 is blocked until the Python-remap runtime boundary is deliberately designed |
| `gmoccapy/macros/macro_3.ngc` | `gmoccapy/macros` | `macro_load` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native pass; Layer 4 is blocked until the Python-remap runtime boundary is deliberately designed |
| `gmoccapy/macros/macro_4.ngc` | `gmoccapy/macros` | `macro_load` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native pass; Layer 4 is blocked until the Python-remap runtime boundary is deliberately designed |
| `gmoccapy/macros/macro_5.ngc` | `gmoccapy/macros` | `macro_load` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native pass; Layer 4 is blocked until the Python-remap runtime boundary is deliberately designed |
| `gmoccapy/macros/macro_6.ngc` | `gmoccapy/macros` | `macro_load` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native pass; Layer 4 is blocked until the Python-remap runtime boundary is deliberately designed |
| `gmoccapy/macros/macro_7.ngc` | `gmoccapy/macros` | `macro_load` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native pass; Layer 4 is blocked until the Python-remap runtime boundary is deliberately designed |
| `gmoccapy/macros/macro_8.ngc` | `gmoccapy/macros` | `macro_load` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native pass; Layer 4 is blocked until the Python-remap runtime boundary is deliberately designed |
| `gmoccapy/macros/macro_9.ngc` | `gmoccapy/macros` | `macro_load` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native pass; Layer 4 is blocked until the Python-remap runtime boundary is deliberately designed |
| `gmoccapy/macros/on_abort.ngc` | `gmoccapy/macros` | `macro_load` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native pass; Layer 4 is blocked until the Python-remap runtime boundary is deliberately designed |
| `gmoccapy/macros/settool_g43.ngc` | `gmoccapy/macros` | `macro_load` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native pass; Layer 4 is blocked until the Python-remap runtime boundary is deliberately designed |
| `gmoccapy/non_trivial_kinematics/table-rotary-tilting/examples/boat-xyzac.ngc` | `gmoccapy/non_trivial_kinematics` | `main` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native pass; Layer 4 is blocked until the Python-remap runtime boundary is deliberately designed |
| `gmoccapy/non_trivial_kinematics/table-rotary-tilting/examples/boat-xyzbc.ngc` | `gmoccapy/non_trivial_kinematics` | `main` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native pass; Layer 4 is blocked until the Python-remap runtime boundary is deliberately designed |
| `gmoccapy/non_trivial_kinematics/table-rotary-tilting/examples/impeller-7bl-xyzac.ngc` | `gmoccapy/non_trivial_kinematics` | `main` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native pass; Layer 4 is blocked until the Python-remap runtime boundary is deliberately designed |
| `gmoccapy/non_trivial_kinematics/table-rotary-tilting/examples/test-xyzac.ngc` | `gmoccapy/non_trivial_kinematics` | `macro_load` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native pass; Layer 4 is blocked until the Python-remap runtime boundary is deliberately designed |
| `gmoccapy/non_trivial_kinematics/table-rotary-tilting/examples/test-xyzbc.ngc` | `gmoccapy/non_trivial_kinematics` | `macro_load` | `PASS` | `-` | `-` | `INV` | `-` | `L4-PYTHON-REMAP` | native pass; Layer 4 is blocked until the Python-remap runtime boundary is deliberately designed |
| `gscreen/industrial_lathe_wear/toolchange.ngc` | `gscreen/industrial_lathe_wear` | `macro_load` | `PASS` | `-` | `-` | `-` | `-` | `-` | inventory-only macro/load path; macro_load class coverage is represented by `axis/external_offsets/circles.ngc` unless this family is deliberately promoted later |
| `gscreen/silverdragon/macros/auto_zref.ngc` | `gscreen/silverdragon` | `macro_load` | `PASS` | `-` | `-` | `-` | `-` | `-` | inventory-only macro/load path; macro_load class coverage is represented by `axis/external_offsets/circles.ngc` unless this family is deliberately promoted later |
| `gscreen/silverdragon/macros/laserzero.ngc` | `gscreen/silverdragon` | `macro_load` | `PASS` | `-` | `-` | `-` | `-` | `-` | inventory-only macro/load path; macro_load class coverage is represented by `axis/external_offsets/circles.ngc` unless this family is deliberately promoted later |
| `gscreen/silverdragon/macros/tool_sensor.ngc` | `gscreen/silverdragon` | `macro_load` | `PASS` | `-` | `-` | `-` | `-` | `-` | virtual HAL macro/load report keeps this as a blocked negative fixture until the missing SilverDragon owning INI and Python UI/process boundary are proven; not promoted by virtual HAL |
| `gscreen/silverdragon/macros/touch_plate.ngc` | `gscreen/silverdragon` | `macro_load` | `PASS` | `-` | `-` | `-` | `-` | `-` | inventory-only macro/load path; macro_load class coverage is represented by `axis/external_offsets/circles.ngc` unless this family is deliberately promoted later |
| `qtaxis/non-trivial/scara/remap_subs/428remap.ngc` | `qtaxis/non-trivial` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `qtaxis/non-trivial/scara/remap_subs/429remap.ngc` | `qtaxis/non-trivial` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `qtaxis/non-trivial/scara/remap_subs/430remap.ngc` | `qtaxis/non-trivial` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `qtdragon/qtdragon_multi_joint/on_abort.ngc` | `qtdragon/qtdragon_multi_joint` | `main` | `PASS` | `-` | `-` | `INV` | `-` | `-` | vendored INI/tool-table allow Node inventory coverage; virtual HAL promotion candidate gate now exports explicit browser diagnostics evidence while inventory baseline remains unchanged |
| `qtdragon/qtdragon_xyz/on_abort.ngc` | `qtdragon/qtdragon_xyz` | `main` | `PASS` | `-` | `-` | `INV` | `-` | `-` | vendored INI/tool-table allow Node inventory coverage; QtDragon family promotion candidate gate now exports explicit browser diagnostics evidence while inventory baseline remains unchanged |
| `qtdragon/qtdragon_xyz45/on_abort.ngc` | `qtdragon/qtdragon_xyz45` | `main` | `PASS` | `-` | `-` | `INV` | `-` | `-` | vendored INI/tool-table allow Node inventory coverage; QtDragon family promotion candidate gate now exports explicit browser diagnostics evidence while inventory baseline remains unchanged |
| `qtdragon_hd/qtdragon_hd_xyz/on_abort.ngc` | `qtdragon_hd/qtdragon_hd_xyz` | `main` | `PASS` | `-` | `-` | `INV` | `-` | `-` | vendored INI/tool-table allow Node inventory coverage; QtDragon family promotion candidate gate now exports explicit browser diagnostics evidence while inventory baseline remains unchanged |
| `qtdragon_hd/qtdragon_hd_z_compensation/on_abort.ngc` | `qtdragon_hd/qtdragon_hd_z_compensation` | `main` | `PASS` | `-` | `-` | `INV` | `-` | `-` | vendored INI/tool-table allow Node inventory coverage; QtDragon family promotion candidate gate now exports explicit browser diagnostics evidence while inventory baseline remains unchanged |
| `qtvcp_screens/industrial_lathe_wear/toolchange.ngc` | `qtvcp_screens/industrial_lathe_wear` | `macro_load` | `PASS` | `-` | `-` | `-` | `-` | `-` | inventory-only macro/load path; macro_load class coverage is represented by `axis/external_offsets/circles.ngc` unless this family is deliberately promoted later |
| `qtvcp_screens/non-trivial/scara/remap_subs/428remap.ngc` | `qtvcp_screens/non-trivial` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `qtvcp_screens/non-trivial/scara/remap_subs/429remap.ngc` | `qtvcp_screens/non-trivial` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `qtvcp_screens/non-trivial/scara/remap_subs/430remap.ngc` | `qtvcp_screens/non-trivial` | `remap_subroutine` | `PASS` | `-` | `-` | `N/A` | `N/A` | `ASSET-ONLY` | subroutine asset; validate by parse/remap path rather than standalone main-program execution |
| `qtvcp_screens/qtdragon/on_abort.ngc` | `qtvcp_screens/qtdragon` | `main` | `PASS` | `-` | `-` | `INV` | `-` | `-` | vendored INI/tool-table allow Node inventory coverage; QtDragon family promotion candidate gate now exports explicit browser diagnostics evidence while inventory baseline remains unchanged |
| `woodpecker/on_abort.ngc` | `woodpecker` | `main` | `PASS` | `-` | `-` | `REP` | `REP` | `-` | Layer 4 deterministic on_abort class representative now covered |
