# N-013 Shader Node 图 状态:`in_progress(七节点 Main + 有界 WebGL2 compiler 子集)` 详细分解、ShaderIR、typed socket 校验、Main 写回、Web 编译、GLB 映射和验收命令见 [`docs/UNDECLARED_CAPABILITIES_EXECUTION_PLAN.md`](../UNDECLARED_CAPABILITIES_EXECUTION_PLAN.md)。 本轮已交付版本化 `ShaderGraphIR`、单 Material Output、typed socket/隐式转换、图循环、 Material/Image stable ID 以及 linked/missing/corrupt image 资源门。首个 native Main 写回 子集开放 RGB、Value、有限 Math、Principled、Image Texture、Normal Map 和 Material Output;整图替换在一个 history transaction 中完成,并通过节点/链接及 RGB/Value defaultValue 保存重开回归。 Math 已开放 ADD/SUBTRACT/MULTIPLY/DIVIDE/MINIMUM/MAXIMUM 的 Main `custom1` 写回和 operation 保存重开;其他运算继续结构化阻断。RGB/Value 到 Principled Base Color、 Roughness、Metallic 的有限常量链接现可确定性映射为 glTF PBR factor;缺值、越界、 重复输入和未知链接继续返回 `SHADER_GRAPH_UNMAPPABLE`。Mix、Mapping、Texture Coordinate、Bump 及任意节点仍返回 `SHADER_NODE_UNSUPPORTED`。node properties 仅开放 Math operation。M10-07 新增 schema 1 有界 compiler:只把 RGB/Value 常量、六项 Math、Image Texture、Normal Map、Principled 和 Output 编译为 `WEBGL2_THREE_PHYSICAL` report;Native reader 发布 graph SHA-256,Worker 在 Main transaction 前编译并失败关闭,主线程和 Offscreen 复用同一 `createPBRMaterial` 入口。M10-08 为 report 增加 graph/texture/color-space/backend 绑定的 `compileKey`,M10-09 由 `PBRMaterialPipeline` 保留上一份可用材质并记录失败报告。节点/链接/ 深度/纹理/标识预算固定;M10-10 将任意未知节点名称归一化排序后返回稳定 `PBR-012/ARBITRARY_SHADER` capability block,未知节点不被删除或静默降级。 M10-15 在独立 Chromium Worker 中连续完成 100 次有界 compile、129-node 超预算阻断、恶意 cycle 阻断和同会话小图恢复;performance/OOM-prevention/malicious-input 三门均使用现有 compiler, 不以 mock 成功替代材质编译。 完整色彩管理、sampler/alpha/tangent、WebGPU、完整 GLB 图映射和桌面渲染 golden 仍为 planned。验收: `npm --prefix web run test:shader-compile`、`npm --prefix web run test:authoring-roundtrip`、 `npm --prefix web run test:capability-gates`、`npm --prefix web run test:m10-domain-gates` 以及 Shader GLB mapping E2E。