From e420a8724f3f4ebd19e8374f128f8dc049cc5c0b Mon Sep 17 00:00:00 2001 From: sindoring Date: Fri, 17 Jul 2026 00:42:19 +0400 Subject: [PATCH] coord(M03): claim WMO render build planner --- .../M03-RND-WMO-RENDER-BUILD-PLANNER-001.md | 92 +++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 coordination/claims/M03-RND-WMO-RENDER-BUILD-PLANNER-001.md diff --git a/coordination/claims/M03-RND-WMO-RENDER-BUILD-PLANNER-001.md b/coordination/claims/M03-RND-WMO-RENDER-BUILD-PLANNER-001.md new file mode 100644 index 0000000..ba49b21 --- /dev/null +++ b/coordination/claims/M03-RND-WMO-RENDER-BUILD-PLANNER-001.md @@ -0,0 +1,92 @@ +# M03-RND-WMO-RENDER-BUILD-PLANNER-001 — WMO render build step planner + + + +## Ownership + +- Target: M03 +- Program: RND +- Owner/Agent ID: sindo-main-codex +- Branch: `work/sindo-main-codex/m03-wmo-render-build-planner` +- Lease expires UTC: 2026-07-20 +- Integrator: M03 milestone integrator + +## Outcome + +Extract the pure one-operation WMO render build cursor decision from the loader +while preserving mesh-before-MultiMesh ordering and one budget permit per group. + +## Non-goals + +- Move Nodes, Resources, materials, jobs, queues, cancellation or permits. +- Change WMO placement, cache loading, transforms, visibility or shadows. +- Change build ordering, group names, editor ownership or finalization thread. +- Change cache formats, settings, presets or renderer diagnostics. +- Claim asset-backed WMO fidelity or p95/p99 acceptance. + +## Paths + +- Exclusive: `src/render/wmo/wmo_render_build_step_planner.gd`, + `src/tools/verify_wmo_render_build_step_planner.gd`, + `docs/modules/wmo-render-build-step-planner.md`, this claim +- Shared/hotspots: `src/scenes/streaming/streaming_world_loader.gd`, + `docs/modules/world-renderer.md`, `docs/modules/README.md`, `RENDER.md`, + `targets/03-renderer-facade.md` +- Generated/ignored: `.godot`, native DLL, generated ADT/WMO resources, caches + and proprietary renderer corpus + +## Contracts and data + +- Input: mesh count/index and MultiMesh count/index +- Output: `mesh`, `multimesh` or `complete` operation, selected index and next + cursor values +- Mesh is selected while its cursor is below count; MultiMesh is selected only + after mesh exhaustion; complete follows both exhausted ranges +- Loader retains cursor adoption, Resource array access, Node creation, material + refresh, ownership, queue cancellation and budget permit consumption +- Cache/schema/coordinate/profile versions: unchanged + +## Dependencies + +- Requires: current master `1e73e59`, accepted WMO placement registry/resolver +- Blocks: further WMO render build state decomposition +- External state: none; verification uses scalar synthetic fixtures + +## Verification + +- Commands: dedicated ordering/cursor/empty/raw-edge/source/timing verifier; + WMO registry/resolver/material/shutdown plus M2/terrain/facade/internal-access/ + manifest/scheduler/streaming/coordinate/docs/coord gates +- Fidelity evidence: exact mesh-first, one-step cursor behavior preserved +- Performance budget: 20,000 pure plans under 1 second; no Node, Resource, RID, + task, queue, mutex, cache or file access + +## Documentation deliverables + +- Inline public planner API documentation +- New module spec with inputs/outputs, data flow, sequence, ownership, + failure/recovery, performance/fidelity limits and source map +- Renderer module registry, world renderer and `RENDER.md` updates + +## Simplicity and naming + +- Important name: `WmoRenderBuildStepPlanner` +- Simplest solution: one stateless function and three operation constants +- Rejected complexity: job class, iterator, generic cursor framework, callbacks, + signals or ownership of engine objects +- Unavoidable complexity: loader still has separate mesh/MultiMesh materializers +- Measured optimization evidence: bounded synthetic planning loop + +## Status + +- State: claimed +- Done: cursor and ownership boundary published +- Next: implement planner, migrate loader decision, tests and docs +- Blocked by: + +## Handoff + +- Commit: +- Results: +- Remaining risks: +- Documentation updated: