C4 几何 3D 引擎 · 红线自检(点火包 §4 T-C7)

对齐 §0 红线:E1 数据不出户(引擎离线无 CDN)/ E5 不渲染差生标签 / REGISTRY=57 未变(后端门,见底部 Bash 提示)。
验收结论
运行中…
3D 引擎实跑预览(无外链、无差生标签)
红线・代码层 grep(需在仓库根 Bash 复跑,浏览器内无法读取源码目录)
cd D:/workbuddy文件/2026-08-06-00-41-10/home-ai-tutor
# ① 无 3D 引擎外链(cdn 检测):web/geometry3d 不应出现 http(s) 脚本源 / unpkg / jsdelivr / cdn
grep -rniE "https?://(unpkg|cdn|jsdelivr|cdnjs|esm.sh|skypack)" web/geometry3d || echo "红线OK: 无 CDN 外链"
#   (允许:SVG 命名空间 http://www.w3.org/2000/svg —— 非网络请求)
grep -rn "http://www.w3.org/2000/svg" web/geometry3d >/dev/null && echo "注: w3.org 命名空间为 XML 标识,非外链(合规)"
# ② 不渲染差生标签:前端几何 UI 不应出现 差生/落后/空间差/笨 等判定词
grep -rniE "差生|落后|空间差|你很笨|智商" web/geometry3d || echo "红线OK: 无差生标签"
# ③ REGISTRY 未变(后端门,Python harness 也会断言):AST AnnAssign 计键 == 57
python -c "import ast; t=ast.parse(open('server/skills/__init__.py',encoding='utf-8').read()); print('REGISTRY keys=', len([n for n in t.body if isinstance(n,ast.AnnAssign) and getattr(n.target,'id',None)=='REGISTRY'][0].value.keys))"
# ④ 不注册新 Skill:REGISTRY 键集合应与基线一致(57),未见新增