# M03-RND-M2-CACHED-ANIMATION-RESOURCE-OBSERVER-001 ## Owner - Agent ID: `sindo-main-codex` - Target: M03 Renderer Facade and Safe Extraction - Branch: `work/sindo-main-codex/m03-m2-cached-animation-resource-observer` - Worktree: `C:\Users\sindo\open-wc-worktrees\m03-m2-cached-animation-resource-observer` ## Outcome Move cached-GLB animated M2 lookup, allow/deny and primitive/schema safety selection, threaded request admission and static-only transition from the loader into a service that produces `M2BuildResourceSnapshot`. ## Non-goals - Move native GryphonRoost raw-data build, debug logging or finalize drains. - Own/free prototype Nodes or change cache/pipeline ownership. - Change allow/deny defaults, primitive limits, candidate order or GLB rules. - Change batching, permits, cache formats, profiles or visible output. ## Paths - Exclusive: `src/render/m2/m2_cached_animation_resource_observer.gd`, `src/tools/verify_m2_cached_animation_resource_observer.gd`, `docs/modules/m2-cached-animation-resource-observer.md`, this claim - Shared: loader, M2 snapshot/animation pipeline/prototype specs and verifiers, world renderer, module registry, `RENDER.md` and M03 Evidence ## Contracts and data - Cached animated prototype wins; static-only and pending states do not request. - Empty allowlist rejects; denylist wins; matching is stripped/case-insensitive. - Historical nested/lowercase/basename `.glb` order remains exact. - Candidate requires animations, primitive limit and accepted empty or `pivot_prefix_v1` schema; other schemas are rejected. - Successful/`ERR_BUSY` request is remembered and reported pending; no usable candidate or request failure marks animation static. - Service produces a snapshot borrowing the exact prototype and frees nothing. ## Dependencies - Requires: accepted static observer `5ebf4de`, snapshot and animation pipeline - Blocks: native animation observation and remaining finalize extraction ## Verification - Synthetic cache/pipeline/snapshot lifecycle, policy/path/GLB metadata fixtures, source boundaries and timing; 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: