# N-014 NLA 状态:`in_progress(Action Clip Main/求值 + reverse/repeat 子集)` 详细分解、AnimationIR strip/track、Main 编辑、原生 NLA 求值、UI、GLB 映射和验收命令见 [`docs/UNDECLARED_CAPABILITIES_EXECUTION_PLAN.md`](../UNDECLARED_CAPABILITIES_EXECUTION_PLAN.md)。 本轮已交付 `NlaTrackIR`/`NlaStripIR`、Action 存在性、owner/path、稳定排序、不重叠、 range/scale/repeat/influence 一致性、blend/extrapolation 和 time-warp 阻断。SceneIR reader 可恢复 Track/Action Clip 摘要;`setNLAStack` 以整栈替换事务写 Blender Main,并经过 undo 历史、保存重开和 frame 5 native depsgraph 求值。Action Clip `reverse` 已映射到 Blender `NLASTRIP_FLAG_REVERSE`,reader 可恢复该标志;反向正例得到预期线性位置约 `[0.555556, 1.111111, 1.666667]`。 同一正例已扩为 `repeat=2`,frame 5 与第二周期 frame 14 的 native Depsgraph 矩阵一致。 M10-11 另以桌面 Blender 5.2 生成只读 fixture:同一 Track 包含 scale=2 的正向 Clip 和 reverse + repeat=2 的 Clip。桌面、Node WASM 与生产 Chromium Worker 在 12 个边界/周期帧上 逐矩阵比较,最大误差为 0;每帧求值前后的 Track/Strip/Action JSON 完全一致。本切片不调用 `setNLAStack`,不提前关闭细粒度 operator 工作。 当前只支持单对象 Action Clip、正 scale、Replace/Add/Multiply/Combine 和有限外插。 M10-12 仅新增 `moveNLAStrip`,以 revision gate 和单次 Main transaction 保留时长移动现有 Clip, 并已通过 undo/redo 与保存重开。Transition/Meta/Sound、Animated Time、Drivers、其余 create/remove/resize/active 命令、NLA UI、 骨骼/约束混合矩阵及 GLB 展开仍为 planned/结构化阻断。 M10-15 冻结 4,096 tracks、每 track 16,384 strips、总 65,536 strips 及 ID/name/reason 字节预算, 拒绝未声明字段。隔离 Chromium Worker 对 20 次 256-strip stack、超 track budget、恶意字段和 同会话小 stack 恢复分别建立 performance/OOM-prevention/malicious-input 门。 验收:`npm --prefix web run test:nla-evaluation-golden`、`npm --prefix web run test:nla-operator`、 `npm --prefix web run test:authoring-roundtrip`、 `npm --prefix web run test:capability-gates`、`npm --prefix web run test:m10-domain-gates`。