From 82266c97bb1283b15d5ee16eb199dffa6da7d2cc Mon Sep 17 00:00:00 2001 From: Jeremy Kashkett Date: Fri, 24 Jul 2026 10:58:43 -0700 Subject: [PATCH] =?UTF-8?q?docs(pm):=20devops=20report=20=E2=80=94=20anima?= =?UTF-8?q?tion-standard=20convergence=202026-07-23/24?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5 --- ...26-07-24-animation-standard-convergence.md | 87 +++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 pm/devops-reports/2026-07-24-animation-standard-convergence.md diff --git a/pm/devops-reports/2026-07-24-animation-standard-convergence.md b/pm/devops-reports/2026-07-24-animation-standard-convergence.md new file mode 100644 index 0000000..151ae11 --- /dev/null +++ b/pm/devops-reports/2026-07-24-animation-standard-convergence.md @@ -0,0 +1,87 @@ +# 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.