参考所有分组,完成尽量多的内容。禁止顺手扩功能 smoke:锁定六分组策略边界

结论:把六分组 workstreams 总索引与 docs/linuxcnc-source-policy.md 的单上下文推进、OPFS-only、smoke 仅验证等边界做机器检查绑定;未新增 CNC 行为,未扩展 smoke fallback。\n\n测试:./check-linuxcnc-workstreams-source-map.sh;git diff --check;CNC_SIM_ALL_NATIVE_GUARDRAILS_ONLY=1 ./test-all-native.sh;./test-native.sh;./test-linuxcnc-source-link.sh。
This commit is contained in:
cnc
2026-06-04 18:14:23 +08:00
parent 340966b6f7
commit 7502684780
3 changed files with 27 additions and 0 deletions

View File

@@ -41,13 +41,26 @@ grep -F 'must not add CNC' docs/linuxcnc-workstreams-source-map.md >/dev/null
grep -F 'temporary smoke parser' docs/linuxcnc-workstreams-source-map.md >/dev/null
grep -F 'Every active workstream must have at least one source-map document and guard' \
docs/linuxcnc-workstreams-source-map.md >/dev/null
grep -F 'docs/linuxcnc-source-policy.md` must keep the same one-context workflow' \
docs/linuxcnc-workstreams-source-map.md >/dev/null
grep -F 'Browser filesystem persistence remains OPFS-only.' docs/linuxcnc-workstreams-source-map.md >/dev/null
grep -F 'Smoke coverage remains verification only' docs/linuxcnc-workstreams-source-map.md >/dev/null
grep -F 'Keep the change inside one active workstream context unless a dependency is' \
docs/linuxcnc-source-policy.md >/dev/null
grep -F 'Each pass should advance one reasonable, reviewable context.' \
docs/linuxcnc-source-policy.md >/dev/null
grep -F 'Smoke tests are verification guardrails. They must not be expanded with new' \
docs/linuxcnc-source-policy.md >/dev/null
grep -F 'Do not mix generator/table work, manifests, OPFS/browser work, and build' \
docs/linuxcnc-source-policy.md >/dev/null
grep -F 'Browser-side wasm filesystem behavior must use OPFS-backed storage.' \
docs/linuxcnc-source-policy.md >/dev/null
python3 - <<'PY'
from pathlib import Path
doc = Path("docs/linuxcnc-workstreams-source-map.md").read_text(encoding="utf-8")
policy = Path("docs/linuxcnc-source-policy.md").read_text(encoding="utf-8")
expected = {
"switchkins/remap": [
"docs/linuxcnc-switchkins-remap-source-map.md",
@@ -87,6 +100,16 @@ expected = {
for workstream, paths in expected.items():
if workstream not in doc:
raise SystemExit(f"missing workstream row in docs/linuxcnc-workstreams-source-map.md: {workstream}")
policy_terms = {
"switchkins/remap": ["switchkins/remap", "M428/M429/M430"],
"linuxcnc-kinematics": ["kinematics manifest", "RTCP coverage"],
"WASM filesystem and OPFS persistence": ["OPFS", "filesystem"],
"browser app integration": ["Browser app", "wasm bridge"],
"Node and browser smoke coverage": ["Smoke tests are verification guardrails", "temporary smoke parser"],
"source-link, build, and documentation constraints": ["source-link", "build-policy"],
}[workstream]
if not any(term in policy for term in policy_terms):
raise SystemExit(f"docs/linuxcnc-source-policy.md no longer references workstream boundary: {workstream}")
for path in paths:
if path not in doc:
raise SystemExit(f"missing source-map path in workstream index: {path}")

View File

@@ -32,6 +32,8 @@ the temporary smoke parser.
- Every active workstream must have at least one source-map document and guard
script.
- `docs/linuxcnc-source-policy.md` must keep the same one-context workflow
boundary and smoke-verification-only rule used by this index.
- `test-native.sh` and `test-linuxcnc-source-link.sh` must run the workstream
source-map guard before consuming generated config aliases or source-linked
LinuxCNC objects.

View File

@@ -257,6 +257,8 @@ grep -F 'The visible backend selector must stay limited to the LinuxCNC RS274 ba
grep -F 'LinuxCNC workstreams source map' docs/linuxcnc-workstreams-source-map.md >/dev/null
grep -F '| `switchkins/remap` generator and tables | `docs/linuxcnc-switchkins-remap-source-map.md` |' docs/linuxcnc-workstreams-source-map.md >/dev/null
grep -F 'Every active workstream must have at least one source-map document and guard' docs/linuxcnc-workstreams-source-map.md >/dev/null
grep -F 'docs/linuxcnc-source-policy.md` must keep the same one-context workflow' docs/linuxcnc-workstreams-source-map.md >/dev/null
grep -F 'Smoke tests are verification guardrails. They must not be expanded with new' docs/linuxcnc-source-policy.md >/dev/null
grep -F 'LinuxCNC tooldata source map' docs/linuxcnc-tooldata-source-map.md >/dev/null
grep -F '`src/emc/tooldata/Submakefile` selects `tooldata_mmap.cc`' docs/linuxcnc-tooldata-source-map.md >/dev/null
grep -F 'Tool table files referenced by switchkins INI files are source coverage only' docs/linuxcnc-tooldata-source-map.md >/dev/null