# M15-01B:Blender 5.2 operator idname/poll/property inventory - `task`: `M15-01B` - `parent`: `M15-01A` - `status`: `in_progress` ## 目标 从 pinned Blender 5.2 的真实 `bpy.ops` registry 生成确定性的 operator 清单,记录 operator idname、RNA identifier、factory-startup poll 结果和排序后的 RNA properties。此项只生成机器 基线,不把 operator 自动标记为已支持。 ## 输入 - 上一个 manifest:`tests/golden/M15-01A/manifest.json` - Blender runtime:`build_blender_5.2.0/bin/blender` - 生成器:`tools/web/generate-blender-operator-inventory.py` - checker:`tools/web/check-blender-operator-inventory.mjs` ## 范围 做: - 递归枚举 `bpy.ops` 的注册 module/operator。 - 记录稳定 operator path、RNA identifier、poll result/error 和属性 identifier/type。 - 固定排序、去重、runtime identity 和 inventory hash;临时重生成必须字节相同。 不做: - 执行任意 operator 或修改 `.blend`。 - 生成 modifier、node、editor 或 import/export 清单。 - 把 `poll=false` 或 build-disabled 当成 parity 完成/阻断结论。 ## 验收 ```text npm --prefix web run test:blender-operator-inventory ``` 必要的补充门: ```text npm --prefix web run typecheck git diff --check ``` ## 产物和交接 - inventory:`tests/golden/M15-01B/blender-operator-inventory.json` - report:`tests/golden/M15-01B/operator-inventory-check-report.json` - manifest:`tests/golden/M15-01B/manifest.json` - 状态页:`docs/status/M15-01B.md` - 下一任务:由 manifest 的 `nextTask` 决定 ## 回滚 删除 operator generator、checker、inventory、report、manifest、package 命令和本任务状态页;恢复 `M15-01A` 作为队列尾,不修改 data-block inventory。