diff --git a/coordination/claims/M03-RND-M2-CACHED-ANIMATION-RESOURCE-OBSERVER-001.md b/coordination/claims/M03-RND-M2-CACHED-ANIMATION-RESOURCE-OBSERVER-001.md new file mode 100644 index 0000000..4e3a5ba --- /dev/null +++ b/coordination/claims/M03-RND-M2-CACHED-ANIMATION-RESOURCE-OBSERVER-001.md @@ -0,0 +1,72 @@ +# 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: