From 0decd10e09aa4da37737e4c7c379d6e7f6b9153f Mon Sep 17 00:00:00 2001 From: sindoring Date: Sat, 18 Jul 2026 02:38:46 +0400 Subject: [PATCH] coordination: claim M2 build resource snapshot --- .../M03-RND-M2-BUILD-RESOURCE-SNAPSHOT-001.md | 86 +++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 coordination/claims/M03-RND-M2-BUILD-RESOURCE-SNAPSHOT-001.md diff --git a/coordination/claims/M03-RND-M2-BUILD-RESOURCE-SNAPSHOT-001.md b/coordination/claims/M03-RND-M2-BUILD-RESOURCE-SNAPSHOT-001.md new file mode 100644 index 0000000..d1849c8 --- /dev/null +++ b/coordination/claims/M03-RND-M2-BUILD-RESOURCE-SNAPSHOT-001.md @@ -0,0 +1,86 @@ +# M03-RND-M2-BUILD-RESOURCE-SNAPSHOT-001 + + + +## Owner + +- Agent ID: `sindo-main-codex` +- Target: M03 Renderer Facade and Safe Extraction +- Branch: `work/sindo-main-codex/m03-m2-build-resource-snapshot` +- Worktree: `C:\Users\sindo\open-wc-worktrees\m03-m2-build-resource-snapshot` + +## Outcome + +Replace loose per-step M2 animated/static resource variables with a typed +observation snapshot consumed by the dispatch planner and materializer adapter. + +## Non-goals + +- Move ResourceLoader I/O, cache lookup/request execution or retry ownership. +- Own or free prototype Nodes or Mesh Resources. +- Change dispatch priority, batch sizing, queue ordering, permits or visuals. +- Change M2 cache paths, formats, allowlists or native animation selection. + +## Paths + +- Exclusive: `src/render/m2/m2_build_resource_snapshot.gd`, + `src/tools/verify_m2_build_resource_snapshot.gd`, + `docs/modules/m2-build-resource-snapshot.md`, this claim +- Shared/hotspots: `src/render/m2/m2_build_dispatch_planner.gd`, its verifier/spec, + `src/scenes/streaming/streaming_world_loader.gd`, M2 queue/materializer/cache + specs and tests, `docs/modules/world-renderer.md`, `docs/modules/README.md`, + `RENDER.md`, `targets/03-renderer-facade.md` +- Generated/ignored: `.godot`, native DLL, generated resources/caches and proprietary corpus + +## Contracts and data + +- Snapshot retains normalized path, optional animated prototype, animation + request state, optional static Mesh and terminal missing-model state. +- Static observation is adopted only after animation is not pending, the batch + is positive and no animated prototype exists. +- Accessors borrow exact engine references without transferring/freeing ownership. +- Diagnostics expose only path and scalar availability flags. + +## Dependencies + +- Requires: accepted M2 dispatch planner on master `b113db0` +- Blocks: extracting M2 resource observation/request service ownership +- External state: prototype/cache/pipeline/resource lifetime remains loader-owned + +## Verification + +- Commands: dedicated identity/adoption/diagnostic/lifetime/source/timing verifier; + dispatch/queue/batch/materializer/cache/pipeline/shutdown/facade/internal-access/ + manifest regressions; documentation, coordination and checkpoint dry-run gates +- Fixtures: synthetic Node3D prototype and ArrayMesh resources +- Fidelity evidence: exact resource presence/pending/missing values and branch order +- Performance budget: 20,000 snapshot construct/adopt/read cycles under one second + +## Documentation deliverables + +- Inline API docs +- Module spec with inputs/outputs, ownership and source map +- Data-flow, lifecycle/state, sequence and dependency diagrams +- Adjacent dispatch/queue/world-renderer/module-registry/RENDER updates + +## Simplicity and naming + +- Important name: `M2BuildResourceSnapshot` +- Simplest solution: one small RefCounted value holder with explicit accessors +- Rejected complexity: generic resource union, signals, callbacks and cache ownership +- Unavoidable complexity: two-phase animation then optional static observation +- Measured optimization evidence: bounded synthetic lifecycle loop + +## Status + +- State: active +- Done: contract and ownership boundary +- Next: implementation, verification and documentation +- Blocked by: + +## Handoff + +- Commit: +- Results: +- Remaining risks: +- Documentation updated: