coordination: claim native M2 animation resource observer
This commit is contained in:
@@ -0,0 +1,71 @@
|
|||||||
|
# M03-RND-M2-NATIVE-ANIMATION-RESOURCE-OBSERVER-001
|
||||||
|
|
||||||
|
<!-- OPENWC_CLAIM:M03-RND-M2-NATIVE-ANIMATION-RESOURCE-OBSERVER-001:sindo-main-codex:2026-07-20 -->
|
||||||
|
|
||||||
|
## Owner
|
||||||
|
|
||||||
|
- Agent ID: `sindo-main-codex`
|
||||||
|
- Target: M03 Renderer Facade and Safe Extraction
|
||||||
|
- Branch: `work/sindo-main-codex/m03-m2-native-animation-resource-observer`
|
||||||
|
- Worktree: `C:\Users\sindo\open-wc-worktrees\m03-m2-native-animation-resource-observer`
|
||||||
|
|
||||||
|
## Outcome
|
||||||
|
|
||||||
|
Move native GryphonRoost M2 animation candidate selection, synchronous raw read,
|
||||||
|
native animated build, prototype/static-only adoption and debug diagnostics from
|
||||||
|
the loader into a dedicated observer.
|
||||||
|
|
||||||
|
## Non-goals
|
||||||
|
|
||||||
|
- Change the exact native candidate predicate or add more animated models.
|
||||||
|
- Move cached-GLB observation, ResourceLoader polling/finalize or playback.
|
||||||
|
- Own attached instances, consume permits or change queue/batch behavior.
|
||||||
|
- Change native parsing/building, cache formats, profiles or visible output.
|
||||||
|
|
||||||
|
## Paths
|
||||||
|
|
||||||
|
- Exclusive: `src/render/m2/m2_native_animation_resource_observer.gd`,
|
||||||
|
`src/tools/verify_m2_native_animation_resource_observer.gd`,
|
||||||
|
`docs/modules/m2-native-animation-resource-observer.md`, this claim
|
||||||
|
- Shared: loader, M2 cached observer/snapshot/raw repository/prototype specs and
|
||||||
|
verifiers, world renderer, module registry, `RENDER.md` and M03 Evidence
|
||||||
|
|
||||||
|
## Contracts and data
|
||||||
|
|
||||||
|
- Only case-insensitive paths containing `gryphonroost` are native candidates.
|
||||||
|
- Cached animated prototype wins; static-only state suppresses repeated reads.
|
||||||
|
- Empty raw data or animated surfaces marks animation static.
|
||||||
|
- Builder result must be non-null with at least one child; rejection marks static.
|
||||||
|
- Successful result is adopted through first-wins prototype cache semantics.
|
||||||
|
- Existing `M2_NATIVE_ANIM_CACHE` fields and debug gating remain exact.
|
||||||
|
- Observer attaches/frees no Node and starts no async work.
|
||||||
|
|
||||||
|
## Dependencies
|
||||||
|
|
||||||
|
- Requires: accepted cached observer `6f385ed`, raw repository and prototype state
|
||||||
|
- Blocks: remaining ResourceLoader polling/finalize extraction
|
||||||
|
|
||||||
|
## Verification
|
||||||
|
|
||||||
|
- Synthetic candidate/cache/static/raw/build/adoption/lifetime/logging/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:
|
||||||
Reference in New Issue
Block a user