mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-09-11 06:30:03 +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.2 KiB
3.2 KiB
HyperFrame Schema Compliance Review
Executive Summary
- Total files reviewed: 3
- Critical issues: 0
- Overall compliance status: PASS
Critical Issues
None. The compositions follow the deterministic requirements and essential timeline registration rules.
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 (N/A - absolute timing used)
- 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 Reviews
index.html
Status: COMPLIANT
Observations:
- Correctly defines the root composition
main-video. - Uses
data-width="1920"anddata-height="1080"as requested for Landscape orientation. - Properly registers
window.__timelines["main-video"]. - Loads sub-compositions using
data-composition-src. - Primitive clips (
video,audio) have requiredid,data-start, anddata-track. - Track assignments are clean: Track 0 (BG), Track 1 (Video), Track 2 (Graphics), Track 3 (Captions), Track 4 (Audio).
compositions/captions.html
Status: COMPLIANT
Observations:
- Uses
<template>tag correctly. - Root element has
data-composition-id,data-width,data-height, anddata-duration. - Script is deterministic, using a fixed
TRANSCRIPTarray. - Correctly registers
window.__timelines["captions"]. - Note: The
data-composition-idin the HTML iscaptions, and the script registerscaptions. Inindex.html, the container hasdata-composition-id="captions-comp". The framework typically matches the registration to the ID of the element being instantiated. Since the template root hasdata-composition-id="captions", this is the ID that should be registered.
compositions/graphics.html
Status: COMPLIANT
Observations:
- Uses
<template>tag correctly. - Root element has
data-composition-id,data-width,data-height, anddata-duration. - Animations are deterministic GSAP tweens.
- Correctly registers
window.__timelines["graphics-comp"]. - Layout is well-coordinated with the A-roll positioning defined in the master timeline.
Recommendations
- Consistency: In
index.html, the captions container usesdata-composition-id="captions-comp", but the template insidecaptions.htmlusesdata-composition-id="captions". While the framework handles the swap during instantiation, keeping these IDs identical (e.g., bothcaptions) improves maintainability. - Deterministic Logic: The use of
(function() { ... })()in sub-compositions is a good practice for scoping.