创建AXIS风格仿真实现文档

结论:新增 AXIS-style browser simulation 实现计划,明确布局、阶段、API、验收 gate 和 LinuxCNC 语义边界,并接入文档 smoke 与 release gate。
This commit is contained in:
2026-06-16 21:41:30 +08:00
parent 9e149107dc
commit c88aac551b
9 changed files with 357 additions and 0 deletions

View File

@@ -0,0 +1,39 @@
import assert from "node:assert/strict";
import { readFileSync } from "node:fs";
import { dirname, resolve } from "node:path";
import { fileURLToPath } from "node:url";
const root = resolve(dirname(fileURLToPath(import.meta.url)), "../../..");
const doc = readFileSync(resolve(root, "docs/axis-style-simulation-implementation.md"), "utf8");
const readme = readFileSync(resolve(root, "README.md"), "utf8");
const priority = readFileSync(resolve(root, "docs/real-browser-simulation-priority.md"), "utf8");
for (const required of [
"AXIS-Style Browser Simulation Implementation Plan",
"LinuxCNC remains the only CNC semantic source",
"Manual Control and MDI",
"Preview and DRO",
"G-code source with active execution line",
"window.linuxCncRealSimulationApi",
"SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_real_simulation_browser.sh",
"Immediate Next Batch",
]) {
assert.ok(doc.includes(required), `axis-style simulation doc missing ${required}`);
}
for (const forbidden of [
"reimplement LinuxCNC CNC semantics in JavaScript",
]) {
assert.ok(doc.includes(forbidden), `axis-style simulation doc should explicitly reject ${forbidden}`);
}
assert.ok(
readme.includes("docs/axis-style-simulation-implementation.md"),
"README should link AXIS-style implementation plan",
);
assert.ok(
priority.includes("docs/axis-style-simulation-implementation.md"),
"priority doc should link AXIS-style implementation plan",
);
console.log("axis_style_simulation_docs_node_smoke=ok");

View File

@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "$0")/../../.." && pwd)"
node "$ROOT_DIR/tests/docs/node/verify_axis_style_simulation_docs.mjs"