Files
hyperframes/packages/producer/tests/style-3-prod/src/code_review.md
T
Vance IngallsandClaude Opus 4.6 9f8e5ba5a1 initial code (#2)
* feat: initial code port from hyperframes-internal

Port all OSS-ready packages from the internal monorepo:
- @hyperframes/core — shared types, HTML generation, GSAP utilities, runtime
- @hyperframes/cli — CLI for creating, previewing, and rendering compositions
- @hyperframes/engine — framework-agnostic rendering engine (BeginFrame + FFmpeg)
- @hyperframes/producer — video rendering pipeline (Puppeteer + FFmpeg)
- @hyperframes/ui-player — browser-based video player component
- @hyperframes/studio — composition editor (React frontend + Hono backend)

Includes regression test suite with Docker-based test harness.

All HeyGen-internal references, deployment infrastructure, and
proprietary assets have been removed. Package names migrated
from @app/* to @hyperframes/*.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: scrub internal codenames and stale references from OSS port

- Replace static.heygen.ai runtime URLs in test fixtures
- Remove internal CDN publish script (publish-hyperframe-runtime.ts)
- Replace sandbox-studio, sandbox-interceptor, __magicEditRuntime
  with neutral names (studio, hyperframe-runtime, __hyperframeRuntime)
- Fix stale Vault API / localhost references in docs
- Remove broken deprecated_studio link

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: remove remaining internal codenames and stale references

- Delete stale producer README.md and PIPELINE.md (referenced nonexistent files)
- Replace "Cerberus" codename with "HyperFrames" in test design reviews
- Replace magic-edit postMessage identifiers with hf-preview/hf-parent
- Rename debug-magic-edit-timeline.ts to debug-timeline.ts
- Replace "Motion Cut" with "HyperFrames" in Timeline comments
- Fix studio/CLI references to nonexistent archive package
  (use local data/projects/ dir, stub render proxy)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 22:43:56 -07:00

2.0 KiB

HyperFrame Schema Compliance Review

Executive Summary

  • Total files reviewed: 4
  • Critical issues: 0
  • Overall compliance status: PASS

Critical Issues

None. All files now comply with the HyperFrame schema.

Compliance Checklist

  • All compositions have data-width and data-height attributes
  • 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-duration specified for all <img> clips
  • 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 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

Issues Found:

  • None. Correctly uses data-composition-id, data-width, data-height, and data-duration. Registers master timeline.

compositions/intro.html

Status: COMPLIANT

Issues Found:

  • None. Correctly uses <template>, registers intro timeline, and has required attributes.

compositions/captions.html

Status: HAS_ISSUES

Issues Found:

  • Line 95: Attempting to set data-duration via script. This should be a static attribute on the composition root (Line 2).
  • Line 2: data-duration="30" is set, but the script calculates a different duration. These should be synchronized manually in the HTML.

compositions/graphics.html

Status: COMPLIANT

Issues Found:

  • Line 135: Redundant GSAP script import inside a composition template. While not a schema violation, it's unnecessary as GSAP is loaded in index.html.