# DevOps Report — Animation Standard Convergence (2026-07-23 → 24) **Author:** Claude (Fable 5), Jeremy's session · **Repos:** `animation` + `ariki-game` **Trigger:** Ozan landed the animation standardization contract on ariki-game main (2026-07-23: `5409a82e0`, `3d7f3ef94`); Jeremy requested a full conformance assessment of our lane (dance pipeline, this bridge repo, test beds), then execution of the fixes. --- ## 1. What the standard says (one paragraph) One runtime skeleton — the Quaternius 65-bone UE-named rig. Hero body = `Ariki_Female_QuatSkin.glb` (Mixamo weights on Quaternius rest orientations; the earlier MixamoSkin+msrig pairing is superseded). Clip policy: UAL1 Pro = locomotion, UAL2 Source = work (under `ariki-game/assets/quaternius/anim/`), Kevin packs gaps-only, Mixamo one-offs, and **our iClone/video-mocap lane is explicitly separate**: `cc_retarget.py` → `dancegen/` → dance JSON. Canonical docs: `ariki-game/.humans/animation-bone-sources.html`, wiki `player-quaternius-animator.md` + `quaternius-ual-packs.md`, skill `aaa-player-animation`. ## 2. The assessment (how it ran) - 52 checkable rules extracted from the 7 standard docs. - 10 audit roles, model-routed: GLM-5.2 ×2 (inline-input tasks), DeepSeek v4-pro ×5 (code/doc/bed sweeps; one run died and was completed by the orchestrator), Fable ×3 (wiring, dance system, synthesis). Every CRITICAL/HIGH re-verified mechanically. - Bone-census probe over 21 GLBs (this repo's `exchange/{converted,pingpong}-glb/` + ariki `dancegen/` + the three body GLBs). - Full report: `ariki-game/.agents/audits/animation-standard-assessment-2026-07-23.md`; meeting page: `ariki-game/.humans/animation-standard-assessment.html`. **Result:** the pipeline core was already conformant — 100% of runtime clip GLBs on the 65-bone contract, 4/4 `_pp` loop pairs, all dance JSONs clean post-rename, 16/17 test beds compliant. The defects clustered in the superseded MixamoSkin/msrig mechanism and stale doc/tool mirrors. ## 3. What we shipped ### This repo (`b4d9621`, pushed 2026-07-23) | Change | Why | |---|---| | `tools/cc_retarget.py` + `mixamo_retarget.py` re-synced from ariki-game | They were stale forks (2026-07-15) silently missing `--despike`, `--fingers`, `--map ual` — PC batches would have lost QC | | Tool **mirroring rule** added to `exchange/GUIDE.md` | Game copies are authoritative; never edit mirrors here | | `tools/kevin_retarget.py` path fix (mirrored) | Was hardcoded to Ozan's home dir | | `exchange/INBOX/lena/Ariki_Female_QuatSkin.glb` added (LFS) + README rewrite | The drop shipped only the superseded MixamoSkin body; **import the QuatSkin one on the PC** | | `docs/dances/REGISTRY.md` corrections | `tide_dance_01` flagged (NO `TideDance` in the sim enum); rain note fixed (`RainDance` IS in the enum); boat table now records live `canoedismount1`/`run_to_dive`; QC split documented (loop_qc = pre-commit gate here, anim_qc = post-ingest game-side) | | `docs/iclone-bridge.md` created | GUIDE referenced it; it never existed | Earlier same day (`998e306`): the original Lena INBOX drop (GLB + rigged/unrigged T-pose FBX + toned textures). ### ariki-game (`b70d5a11c` + `934b6d4dc`, pushed) - **Dance bed `LenaBodyPath` → QuatSkin** (the bed had gone Lena-only on the superseded MixamoSkin body whose msrig clip-reroute is dead — basename rot after the Pro rename). Build green. - Doc convergence: clip-inventory wiki corrected (23→30 wired UAL2; shield/sword set was mislabeled "unused"), UALPACKS "Standard removed" claim scoped, `animation-pipelines.md` coverage extended (+`anim-combined/ msrig/ derived-bodies/`), `pose-estimation` skill reference re-pointed to THIS repo. - Bug filed for Ozan: `.agents/bugs/2026-07-23-ninjajump-idle-missing-clip.md` — code requests `NinjaJump_Idle`, pack ships `NinjaJump_Idle_Loop`, resolver can't bridge. ## 4. Live verification (2026-07-24) Screenshot-verified on a running dance bed (post-fix build): QuatSkin Lena dancers upright, phase-locked, `war_challenge` playing on the stock clip libraries. Engine log carries **zero** `MISSING clip` warnings → the NinjaJump bug is **latent** (current Godot import config strips `_Loop`), not active; hardening still recommended. Bug file updated with this evidence (`934b6d4dc`). ## 5. Open items (owners) | Item | Owner | |---|---| | Import `INBOX/lena/Ariki_Female_QuatSkin.glb` on the PC (not the MixamoSkin one) | Jeremy | | Retire `msrig/` + MixamoSkin GLB outright (recommended) or re-retarget under new basenames | Ozan (negotiate) | | Amend the Kevin-swim keep-set rule to match the restored swim override in code | Ozan (negotiate) | | Add derived/import packs (Run_Punch, mixamo one-offs, canoe clips) to the BONES tables | Ozan (negotiate) | | NinjaJump 1-token fix + resolver `+_Loop` arm | Ozan (bug filed) | | Register `canoedismount1` under a `boat_*` code at next adoption pass | Jeremy (this repo) | ## 6. Ops notes - All syncs via `tinqs pull`/`tinqs push` (LFS-safe); QuatSkin GLB verified as an LFS pointer. - Executor telemetry: GLM headless = 1 clean / 1 silent-empty; DeepSeek = 4 clean / 1 SIGTERM; Fable tracks found both deep bugs (dead msrig reroute, NinjaJump). Full disclosure table in the audit report.