docs(website-to-hyperframes): add load-bearing GSAP authoring rules#364
Open
ibrews wants to merge 1 commit intoheygen-com:mainfrom
Open
docs(website-to-hyperframes): add load-bearing GSAP authoring rules#364ibrews wants to merge 1 commit intoheygen-com:mainfrom
ibrews wants to merge 1 commit intoheygen-com:mainfrom
Conversation
Add five animation-authoring rules to step-6-build.md that the linter cannot catch but that silently ship broken output. Surfaced from two independent builds (2026-04-20) where compositions passed lint and still rendered elements invisible / unscrubbing. Rules added: - No iframes for captured content (don't scrub) - Never stack transform tweens on one element (entrance + Ken Burns on same img silently kills it) - Prefer tl.fromTo() over tl.from() inside .clip scenes (immediateRender interacts badly with scene boundaries) - Ambient pulses must attach to seekable tl, not standalone gsap.to() - Generalize the caption hard-kill rule to every scene-boundary exit
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a new Load-bearing rules for animation authoring subsection to
skills/website-to-hyperframes/references/step-6-build.md, capturing five GSAP authoring rules the linter cannot catch but that silently ship broken output — compositions that pass lint and render elements invisible, unscrubbing, or frozen.Evidence
Surfaced from two independent website-to-hyperframes builds on 2026-04-20:
spatial-deck/promo/hyperframes-auto/— single-page SPA source~/harvardxr-auto/— marketing-site sourceBoth lint-clean on the first try. Both rendered cleanly only because we injected these rules into the sub-agent prompt before dispatch. Without them, sub-agents produced lint-passing compositions with:
y-entrance +scaleKen Burns tweens on one element)gsap.to()that didn't scrub)gsap.from()immediateRenderinteracting with.clipboundaries)Rules added
immediateRenderresets the first, element ends up invisible. With before/after code showing two fixes (combine into onefromTo, or split across parent/child wrappers).tl.fromTo()overtl.from()inside.clipscenes —from()'s defaultimmediateRender: truewrites state before the scene'sdata-startis active and misbehaves under non-linear seeking.tl, never baregsap.to()— standalone tweens run on wallclock, don't scrub, absent from rendered output.tl.set()kill after its fade, not just captions.Rules already present in the file (
repeat: -1,data-start/data-durationon template roots, caption hard-kill) are untouched — these five are net-new or are generalizations.Related observations (not in this PR, flagging for maintainers)
Two adjacent findings from the same builds, worth filing separately if you want them tracked:
overlapping_gsap_tweenson some builds but not others. Stabilizing this heuristic would remove a source of sub-agent confusion.step-1-capture.mdthin output on canvas-driven / deck-style sources. Single-page apps that navigate via keyboard or internal state producesections: 0, CTAs: 0, scroll-screenshots: 1. A--deck-modeflag that navigates via keyboard and captures per-state — or a documented pre-seed-screenshots workaround — would help.Happy to open either as a separate issue if useful.
Test plan
step-6-build.md(code fences, hyphen bullets, em-dashes).