Skip to content

Commit 73ebc7c

Browse files
committed
docs: address prompt guide review findings
1 parent 8fb1482 commit 73ebc7c

40 files changed

Lines changed: 127 additions & 127 deletions

docs/docs.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -493,7 +493,8 @@
493493
"redirects": [
494494
{
495495
"source": "/guides/prompting",
496-
"destination": "/prompting/overview"
496+
"destination": "/prompting/overview",
497+
"permanent": true
497498
}
498499
]
499-
}
500+
}

docs/guides/antigravity.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ HyperFrames projects created with `npx hyperframes init` scaffold both `CLAUDE.m
135135
## Next steps
136136

137137
<CardGroup cols={2}>
138-
<Card title="Prompting guide" icon="message" href="/guides/prompting">
138+
<Card title="Prompting guide" icon="message" href="/prompting/overview">
139139
Vocabulary and patterns that produce better compositions.
140140
</Card>
141141
<Card title="Catalog" icon="grid-2" href="/catalog/blocks/data-chart">

docs/guides/claude-design.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ Then iterate:
143143
## Next steps
144144

145145
<CardGroup cols={2}>
146-
<Card title="Prompt Guide" icon="message" href="/guides/prompting">
146+
<Card title="Prompt Guide" icon="message" href="/prompting/overview">
147147
More prompt patterns for HyperFrames across Claude Code, Claude Design, and other agents.
148148
</Card>
149149
<Card title="@hyperframes/player" icon="play" href="/packages/player">

docs/guides/copilot-cli.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ Authorize via OAuth when prompted. See the [MCP guide](/guides/mcp) for full det
175175
## Next steps
176176

177177
<CardGroup cols={2}>
178-
<Card title="Prompting guide" icon="message" href="/guides/prompting">
178+
<Card title="Prompting guide" icon="message" href="/prompting/overview">
179179
Vocabulary and patterns that produce better compositions.
180180
</Card>
181181
<Card title="Catalog" icon="grid-2" href="/catalog/blocks/data-chart">

docs/guides/mcp.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -320,7 +320,7 @@ The MCP is a HeyGen-hosted product that wraps:
320320
<Card title="Quickstart" href="/quickstart">
321321
Try HyperFrames locally with the open-source CLI.
322322
</Card>
323-
<Card title="Prompting guide" href="/guides/prompting">
323+
<Card title="Prompting guide" href="/prompting/overview">
324324
Tips for getting the best results when working with AI agents.
325325
</Card>
326326
<Card title="Catalog" href="/catalog/blocks/data-chart">

docs/guides/open-design.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ Then iterate the same way as the Claude Design path:
169169
<Card title="Claude Design Guide" icon="message" href="/guides/claude-design">
170170
The closed-source flavor of the same workflow — useful when you don't have a CLI on your laptop.
171171
</Card>
172-
<Card title="Prompt Guide" icon="message" href="/guides/prompting">
172+
<Card title="Prompt Guide" icon="message" href="/prompting/overview">
173173
More prompt patterns for HyperFrames across Claude Code, Claude Design, Open Design, and other agents.
174174
</Card>
175175
</CardGroup>

docs/guides/pipeline.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ npx hyperframes transcribe narration.wav
141141
| `narration.txt` | The exact spoken text with pronunciation substitutions applied (`API``A P I`, `$2T``two trillion`). Distinct from `SCRIPT.md` so you can regenerate the audio later with a different voice without redoing the substitutions. |
142142
| `transcript.json`| `[{ text, start, end }]` for every word. Every later step reads this for timing. |
143143

144-
Hyperframes ships multiple TTS adapters (Kokoro, ElevenLabs, HeyGen); see [`/media-use`](/guides/prompting) for the skill that picks one. After generating audio, update `STORYBOARD.md` with the real beat boundaries from `transcript.json`.
144+
Hyperframes ships multiple TTS adapters (Kokoro, ElevenLabs, HeyGen); see [`/media-use`](/guides/skills#domain-skills-loaded-on-demand) for the skill that picks one. After generating audio, update `STORYBOARD.md` with the real beat boundaries from `transcript.json`.
145145

146146
**Gate:** `narration.wav`, `narration.txt`, and `transcript.json` exist. `STORYBOARD.md` beat timings reference real timestamps, not estimates.
147147

@@ -153,7 +153,7 @@ This is where the storyboard becomes runnable HTML. Each composition is a self-c
153153

154154
For multi-beat videos, spawn a focused sub-agent per beat. Each one gets fresh context, the storyboard section for its beat, the asset paths it needs, and the relevant technique references. That produces noticeably better output than building every beat in one long-running context.
155155

156-
After each composition is built, run a self-review for layout, asset placement, and animation quality. The [`/hyperframes-core`](/guides/prompting) skill encodes the composition rules — required `class="clip"` attributes, `data-*` attribute semantics — and [`/hyperframes-animation`](/guides/prompting) covers GSAP timeline registration and adapter registries.
156+
After each composition is built, run a self-review for layout, asset placement, and animation quality. The [`/hyperframes-core`](/guides/skills#domain-skills-loaded-on-demand) skill encodes the composition rules — required `class="clip"` attributes, `data-*` attribute semantics — and [`/hyperframes-animation`](/guides/skills#domain-skills-loaded-on-demand) covers GSAP timeline registration and adapter registries.
157157

158158
**Gate:** Every composition is self-reviewed. No overlapping elements, no misplaced assets, no static images sitting unanimated.
159159

@@ -209,7 +209,7 @@ For a 5-second one-shot animation, a single hand-authored composition is fine; t
209209
<Card title="Website to Video" icon="globe" href="/guides/website-to-video">
210210
The full website-to-video guide built on this pipeline.
211211
</Card>
212-
<Card title="Prompting" icon="comment" href="/guides/prompting">
212+
<Card title="Prompting" icon="comment" href="/prompting/overview">
213213
How to invoke the pipeline through your AI agent.
214214
</Card>
215215
<Card title="Launch Videos" icon="rocket" href="/launch-videos">

docs/guides/video-editor-cheatsheet.mdx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -217,14 +217,13 @@ For GSAP animation, register one paused timeline per composition:
217217
const tl = gsap.timeline({ paused: true });
218218
219219
tl.from("#title", { opacity: 0, y: 40, duration: 0.6 });
220-
tl.set({}, {}, 5); // keeps the timeline at least 5 seconds long
221220
222221
window.__timelines["main"] = tl;
223222
</script>
224223
```
225224

226225
<Warning>
227-
If a video cuts off early, check that the GSAP timeline is at least as long as the intended edit. The final `tl.set({}, {}, 5)` pattern is the fix.
226+
Render duration comes from `data-duration` on the composition and clips, not from GSAP timeline length. If a video cuts off early, check those timing attributes. Do not pad the timeline with an empty `tl.set()` sentinel.
228227
</Warning>
229228

230229
## Render Presets
@@ -285,7 +284,7 @@ For editor-facing changes, keep `npx hyperframes preview` running, then have the
285284
| Need to share editable project | `npx hyperframes publish` |
286285

287286
<CardGroup cols={2}>
288-
<Card title="Prompt Guide" icon="wand-magic-sparkles" href="/guides/prompting">
287+
<Card title="Prompt Guide" icon="wand-magic-sparkles" href="/prompting/overview">
289288
How to direct AI agents to build better videos
290289
</Card>
291290
<Card title="Timeline Editing" icon="timeline" href="/guides/timeline-editing">

docs/prompting/anatomy.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ Assembled:
2727

2828
> /motion-graphics Make an 8-second 1920x1080 video. Beat 1 (0-4s): dark macOS terminal types "npx skills add heygen-com/hyperframes" character by character, then hold on the blinking cursor. Beat 2 (4-5s): the terminal shatters into fragments. Beat 3 (5-8s): bold white kinetic text on black slams in word by word, snappy: "YOU JUST MADE THIS / WITH HYPERFRAMES." Adapt the `code-typing` and `vfx-shatter` registry blocks; hand-author the kinetic text. No narration, no image or media files.
2929
30-
<video controls muted loop playsinline preload="metadata" src="https://static.heygen.ai/hyperframes-oss/docs/images/prompting/validate-anatomy-terminal.mp4" style={{ borderRadius: "0.5rem", marginTop: "0.75rem" }}></video>
30+
<video controls muted loop playsinline preload="metadata" src="https://static.heygen.ai/hyperframes-oss/docs/images/prompting/validate-anatomy-terminal.mp4#t=0.1" style={{ borderRadius: "0.5rem", marginTop: "0.75rem" }}></video>
3131
*Rendered from the prompt above, unedited.*
3232

3333
<Note>
@@ -88,7 +88,7 @@ The skeleton above is how you ask. This is what the agent writes, and it's worth
8888
| --- | --- |
8989
| `class="clip"` | Marks a timed section. The framework owns its visibility — never animate a clip's own opacity or `display` to hide it. |
9090
| `data-start` / `data-duration` / `data-track-index` | When the clip begins, how long it runs, and which track it sits on. Two clips on the same track index must not overlap in time. |
91-
| `window.__timelines["<id>"]` | Every composition registers exactly one paused GSAP timeline here, built synchronously at load. The renderer seeks that timeline frame by frame — which is why nothing may depend on wall-clock time or unseeded randomness. |
91+
| `window.__timelines["<id>"]` | Every GSAP-driven composition registers exactly one paused timeline here, built synchronously at load. The renderer seeks that timeline frame by frame — which is why nothing may depend on wall-clock time or unseeded randomness. Other adapters, including Lottie, CSS animations, and WAAPI, register through their own seekable runtime contracts. |
9292
| `<video muted>` + a separate `<audio>` | Video elements render muted and their sound rides a sibling audio element, so the mixer can duck and balance it independently. |
9393

9494
You rarely write these by hand, but naming them in a prompt is legitimate and sometimes necessary — "put the captions on their own track index," "keep it one composition file, one timeline" — and it's the vocabulary every error message uses. The full contract lives in the `/hyperframes-core` skill; the [appendix](/prompting/rules-and-anti-patterns) carries the rules that most often bite.
@@ -101,7 +101,7 @@ This is the clause in the [full capstone prompt](/prompting/capstone#the-full-pr
101101

102102
> **Mount (7–14s).** Traveling along the wire: it splits into three parallel track lanes; clip chips slide in along the direction of travel and seat onto the lanes on their spoken cues (audio track chip, video track chip, our protagonist chip among them). Small mono labels (`data-start`, `data-track-index`) tag themselves onto chips as the camera passes. The lanes merge back to one wire as the camera accelerates out.
103103
104-
<video controls muted loop playsinline preload="metadata" src="https://static.heygen.ai/hyperframes-oss/docs/images/prompting/capstone-region-mount.mp4" style={{ borderRadius: "0.5rem", marginTop: "0.75rem" }}></video>
104+
<video controls muted loop playsinline preload="metadata" src="https://static.heygen.ai/hyperframes-oss/docs/images/prompting/capstone-region-mount.mp4#t=0.1" style={{ borderRadius: "0.5rem", marginTop: "0.75rem" }}></video>
105105
*That clause, rendered — the region cut from the finished film.*
106106

107107
*Next: [The specification dial](/prompting/specification-dial) — how much of the skeleton to fill in, and when density stops being optional.*

docs/prompting/capstone.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Capstone — every technique, one journey
33
description: "One prompt, one continuous camera move, every technique in this guide — the viewer rides the timeline itself from typed markup to rendered MP4."
44
---
55

6-
<video controls muted loop playsinline preload="metadata" src="https://static.heygen.ai/hyperframes-oss/docs/images/prompting/capstone-timeline-default.mp4" style={{ borderRadius: "0.5rem", marginTop: "0.75rem" }}></video>
6+
<video controls muted loop playsinline preload="metadata" src="https://static.heygen.ai/hyperframes-oss/docs/images/prompting/capstone-timeline-default.mp4#t=0.1" style={{ borderRadius: "0.5rem", marginTop: "0.75rem" }}></video>
77
*"The Timeline" — 1920x1080, ~62 seconds, one prompt, one unbroken camera move, unedited.*
88

99
If you read the guide in order, you have already seen every piece of this film. Each region was cut out and embedded in the chapter that teaches its technique — the typed opening in [Code animations](/prompting/code-blocks), the chart and map in [Data and maps](/prompting/data-and-maps), the footage pipeline in [Media and audio](/prompting/media-and-audio), the glass and mural in [VFX](/prompting/vfx-and-liquid-glass) and [Generated artwork](/prompting/generated-artwork), the beat grid in [Music](/prompting/music-and-slideshows), the 3D coil in [Runtimes and 3D](/prompting/runtimes-and-3d), the continuous camera in [Motion](/prompting/motion), the seeded finale in [Rendering and output](/prompting/rendering-and-output). This page is where the pieces become one composition, and the prompt below is the glue: every paragraph of it is a chapter of this guide restated as a binding clause.
@@ -109,7 +109,7 @@ HyperFrames scopes `data-composition-variables` **per composition file**, so the
109109
hyperframes render --variables '{"ground":"#0d1420","ink":"#c8ff3d"}' --strict-variables
110110
```
111111

112-
<video controls muted loop playsinline preload="metadata" src="https://static.heygen.ai/hyperframes-oss/docs/images/prompting/capstone-timeline-reskin.mp4" style={{ borderRadius: "0.5rem", marginTop: "0.75rem" }}></video>
112+
<video controls muted loop playsinline preload="metadata" src="https://static.heygen.ai/hyperframes-oss/docs/images/prompting/capstone-timeline-reskin.mp4#t=0.1" style={{ borderRadius: "0.5rem", marginTop: "0.75rem" }}></video>
113113
*The same composition, navy/acid-green — the wire, ruler, chart, map, glass, and even the generated mural all follow the override.*
114114

115115
The mural trick from the previous capstone carries over: the artwork is generated **palette-neutral** (grayscale) and duotoned live by CSS layers driven by the `ground`/`ink` variables, so even the raster re-skins. Keep color in CSS and shapes in the raster whenever a template frame needs to survive a re-skin.

0 commit comments

Comments
 (0)