Skip to content

docs: say one paused ROOT timeline, not "timelines must be paused" - #3428

Open
miguel-heygen wants to merge 1 commit into
mainfrom
docs/one-paused-root-timeline
Open

docs: say one paused ROOT timeline, not "timelines must be paused"#3428
miguel-heygen wants to merge 1 commit into
mainfrom
docs/one-paused-root-timeline

Conversation

@miguel-heygen

Copy link
Copy Markdown
Collaborator

What

The four compressed copies of the timeline contract now say what the skill says: one
paused timeline, the registered root, and don't nest your own paused sub-timelines into it.

Why

skills/hyperframes-core/SKILL.md has always been correct:

Each composition registers exactly one gsap.timeline({ paused: true }) ... Don't
manually nest sub-timelines into the host.

Every compressed copy dropped both halves:

GSAP timelines must be paused and registered on window.__timelines.

Plural, no cap, no warning against nesting. An author following that writes a paused
timeline per scene and combines them with .add() — exactly the shape that renders black,
because a paused child never advances when the root is seeked. Every frame is the t=0 state,
and lint, check and validate all pass, none of them looking at pixels.

This is the drift the skill-catalog sync rule exists to prevent: a compressed copy asserting
something the skill does not.

How

Four surfaces, all previously carrying the same sentence:

  • CLAUDE.md
  • AGENTS.md
  • packages/cli/src/templates/_shared/CLAUDE.md
  • packages/cli/src/templates/_shared/AGENTS.md

The two template files are written into every hyperframes init project and must stay
byte-identical — verified with diff -q after the edit.

Relationship to #3427

#3427 makes the runtime repair this
shape, so nobody following the old wording is stuck. This PR stops it being authored in the
first place. Either alone is a partial fix: the runtime one leaves the misleading guidance in
place, and this one leaves every existing composition broken.

Not covered

`skills/hyperframes-core/SKILL.md` has always been right: "Each composition
registers exactly one gsap.timeline({ paused: true })... Don't manually nest
sub-timelines into the host."

The four compressed copies dropped both halves and said only "GSAP timelines
must be paused and registered on window.__timelines". Plural, with no cap and
no warning against nesting. An author following that writes a paused timeline
per scene and combines them, which is precisely the shape that renders black:
a paused child never advances when the root is seeked, so every frame is the
t=0 state, and lint, check and validate all pass because none looks at pixels.

This is the drift the skill-catalog rule exists to prevent — a compressed copy
asserting something the skill does not.

The runtime now repairs this shape (#3427), so nobody is stuck. This closes the
door on authoring it in the first place.

Both template files kept byte-identical, as required.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant