diff --git a/coordination/claims/M03-RND-M2-ANIMATION-RESOURCE-FINALIZER-001.md b/coordination/claims/M03-RND-M2-ANIMATION-RESOURCE-FINALIZER-001.md new file mode 100644 index 0000000..278f946 --- /dev/null +++ b/coordination/claims/M03-RND-M2-ANIMATION-RESOURCE-FINALIZER-001.md @@ -0,0 +1,71 @@ +# M03-RND-M2-ANIMATION-RESOURCE-FINALIZER-001 + + + +## Owner + +- Agent ID: `sindo-main-codex` +- Target: M03 Renderer Facade and Safe Extraction +- Branch: `work/sindo-main-codex/m03-m2-animation-resource-finalizer` +- Worktree: `C:\Users\sindo\open-wc-worktrees\m03-m2-animation-resource-finalizer` + +## Outcome + +Move cached animated M2 ResourceLoader status polling, terminal Resource load, +candidate finalization, prototype/static-only adoption and success diagnostics +from the loader into a dedicated two-phase finalization service. + +## Non-goals + +- Change cached animation eligibility, request admission or native-first order. +- Move material-prototype lookup, permit ownership, playback or materialization. +- Change ResourceLoader status order, cache formats, profiles or visible output. +- Generalize static and animated ResourceLoader paths behind callbacks/frameworks. + +## Paths + +- Exclusive: `src/render/m2/m2_animation_resource_finalizer.gd`, + `src/tools/verify_m2_animation_resource_finalizer.gd`, + `docs/modules/m2-animation-resource-finalizer.md`, this claim +- Shared: loader, animation pipeline/scene finalizer/prototype cache/cached + observer/world-renderer specs and verifiers, module registry, `RENDER.md`, M03 Evidence + +## Contracts and data + +- Pending request snapshots are polled in existing Dictionary insertion order. +- Empty Resource paths are discarded and marked static-only immediately. +- Only LOADED/FAILED statuses move into completion-order finalize FIFO. +- One permit processes one popped terminal record, including skipped/stale records. +- Existing prototype/static-only state suppresses terminal Resource loading. +- LOADED Resource is instantiated before material-prototype lookup is requested. +- Candidate repair/finalize/adoption and exact `M2_ANIM_CACHE` debug fields remain. +- Rejected candidates are released by the existing animated scene finalizer. + +## Dependencies + +- Requires: accepted animation pipeline, scene finalizer, cached/native observers +- Blocks: remaining loader-owned M2 material-prototype lookup and action execution + +## Verification + +- Synthetic polling/status/FIFO/skip/load/candidate/repair/adoption/log/source and + timing contracts; adjacent M2/renderer gates; full headless suite and checkpoint dry-run. + +## Documentation deliverables + +- Inline API docs; module API/I/O/ownership; data-flow/state/sequence/dependency + diagrams; adjacent renderer docs and M03 Evidence. + +## Status + +- State: active +- Done: ownership/compatibility contract +- Next: implementation, verification and documentation +- Blocked by: + +## Handoff + +- Commit: +- Results: +- Remaining risks: +- Documentation updated: