Motion / animation parity coverage

mandatory

Tracks which Koder UI surfaces have shipped the motion/animation-parity suite (categories M1–M4) mandated by meta/docs/stack/specs/develop/animation-parity-tdds.kmd § R1. Temporal complement to registries/visual-regression-coverage.md (which tracks STATIC categories A–D). CI release engineering blocks any release whose row here isn't green for its `parity-achieved` interactions.

A row per Koder surface that ships timed motion (module × surface kind). Each row tracks the four motion categories (M1 curve/timing, M2 temporal frame diff, M3 effect geometry, M4 reference-target), the comparison mode, and — for surfaces under a parity program — the M4 phase.

Status cells

Cell Meaning
Suite exists, runs in CI / on s.khost1, passes at last invocation
Suite exists but has known failing rows / TODO bodies
No suite exists
n/a Category does not apply to this surface

Mode & phase

  • Modeself-golden (regression vs own committed golden) and/or

    reference-target (parity vs a captured reference impl, e.g. GNOME 48; animation-parity-tdds.kmd § R3).

  • M4 phasereport-only (produces the gap list → tickets) →

    parity-achieved (blocking; a later drift fails CI). Per parity.toml.

Coverage

Module Surface M1 curve/timing M2 frame diff M3 effect geom M4 ref-target Mode M4 phase Harness Last audit
infra/linux/kolide wayland-layer-shell (C/GTK4) ✅ (ripple, cairo prong — M1.1–M1.4) ❌ (live prong, s.khost1) ✅ (ripple, cairo prong — originradiusalpha/reduced-motion) ❌ (live prong, s.khost1) self-golden ✅ / reference-target pending clip report-only cairo prong ✅ / s.khost1 live ❌ 2026-06-07
infra/linux/x (Kompose) wlroots compositor self-golden
engines/sdk/koder_kit flutter (motion tokens) ⚠ (tokens validated, not per-surface M1) n/a n/a self-golden n/a flutter_test 2026-06-07

Seed at registry creation (2026-06-07 with projects/koder-stack#178). The harness that turns the live prong (M2/M4) ✅ is the s.khost1 AV parity engine (animation-parity-tdds.kmd § R6), built matched (Kompose + kolide-shell + kolide-services from one origin/master). The cairo geometry prong (M1/M3) is seat-free and runs in the meson suite / CI today.

Onboarding a new motion surface

  1. Author runs /k-test --gen-only <módulo> — the generator detects the

    surface per animation-parity-tdds.kmd § R5 and scaffolds tests/regression/motion/ (cairo prong + harness driver for native).

  2. Row appended here with status ❌ → ⚠ → ✅ per category.
  3. For a parity program, add tests/regression/motion/parity.toml (R3)

    and a committed __reference__/<impl>/ clip before flipping M4 to parity-achieved.

  4. /k-housekeep runs the cairo prong (M1/M3) and updates the column;

    nightly s.khost1 runs the live prong (M2/M4).

Notes

  • Per policies/heavy-work-isolation.kmd, the live prong runs on

    s.khost1, never the owner's laptop (NVIDIA-only hostile seat).

  • The cairo geometry prong is the seat-free, CI-portable path — prefer it

    wherever the motion math is GTK-free-extractable (the kolide#047 pattern).