mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-09-12 15:20:13 +00:00
## Summary - Run `oxfmt .` across the entire codebase to establish formatted baseline - 299 files changed — mechanical formatting only, no logic changes - Double quotes, semicolons, 2-space indent, trailing commas, 100 print width Part 3/4 of [VA-851](https://linear.app/heygen/issue/VA-851/pre-migration-configure-eslint-prettier-and-conventional-commits) ## Test plan - [x] `pnpm format:check` — all 426 files pass - [x] `pnpm -r typecheck` — all packages pass - [x] `pnpm build` — all packages build - [x] All 348 tests pass
3.0 KiB
3.0 KiB
HyperFrame Schema Compliance Review
Executive Summary
- Total files reviewed: 5
- Critical issues: 1
- Overall compliance status: NEEDS_WORK
Critical Issues
Empty Tween for Duration
- File: compositions/captions.html:98
- Violation:
tl.to({}, { duration: 2 }); - Schema Rule: "NEVER create empty tweens like
tl.to({}, { duration: N })just to set duration — usedata-durationinstead" - Impact: Violates the declarative timing model. The framework uses
data-durationto determine the composition's length on the master timeline.
Compliance Checklist
- All compositions have
data-widthanddata-heightattributes - All timelines are finite with duration > 0
- All compositions registered in
window.__timelines - No use of
Math.random(),Date.now(), or non-deterministic code - Primitive clips have required data attributes (
id,data-start,data-track) data-durationspecified for all<img>clips (N/A - no images used)- No manual media playback control (
video.play(),audio.pause(), etc.) - No manual clip mounting/unmounting in scripts
- Relative timing references are valid (no circular refs, referenced clips have known duration)
- Clips on same track don't overlap in time
- Reusable compositions in separate HTML files
- Composition files use
<template>tags - External compositions loaded via
data-composition-src - All script-animated content wrapped in compositions
- No infinite or zero-duration timelines
File-Specific Reviews
index.html
Status: COMPLIANT
- Correctly uses
data-composition-id,data-width,data-height, anddata-duration. - Correctly loads sub-compositions using
data-composition-src. - Registers
mastertimeline inwindow.__timelines. - Note: The
videoelement (line 67) uses an absolutedata-start="3". This is valid.
compositions/intro-seq.html
Status: COMPLIANT
- Correctly uses
<template>anddata-composition-id. - Dimensions and duration are explicitly set.
- Script is deterministic (uses fixed text and timing).
- Registers
intro-seqtimeline.
compositions/grid-bg.html
Status: COMPLIANT
- Correctly uses
<template>anddata-composition-id. - Dimensions and duration are explicitly set.
- Loops are finite and deterministic.
- Registers
grid-bgtimeline.
compositions/captions.html
Status: HAS_ISSUES
- Issue: Line 98 uses an empty tween
tl.to({}, { duration: 2 })to extend the timeline. - Fix: Remove the empty tween. The duration is already correctly defined in the
data-duration="16.04"attribute on the rootdiv(line 2). - Issue: The
data-durationis set to16.04, but the last caption ends at16.019. This is fine asdata-durationtakes precedence.
compositions/data-graphics.html
Status: COMPLIANT
- Correctly uses
<template>anddata-composition-id. - Dimensions and duration are explicitly set.
- Counter animation is deterministic in its logic.
- Registers
data-graphicstimeline.