Skip to content

Commit b9e4ca1

Browse files
authored
Merge pull request #1005 from heygen-com/feat/skill-website-to-hyperframes-v2
feat(skill): website-to-hyperframes — concept-first authoring + per-beat read protocol
2 parents 4c358e6 + 24aef54 commit b9e4ca1

38 files changed

Lines changed: 3062 additions & 863 deletions

skills/website-to-hyperframes/SKILL.md

Lines changed: 55 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -14,79 +14,80 @@ Users say things like:
1414
- "Turn this website into a 15-second social ad for Instagram"
1515
- "Create a 30-second product tour from https://..."
1616

17-
The workflow has 7 steps. Each produces an artifact that gates the next.
17+
The workflow has 7 steps. Each produces an artifact that gates the next. By default it's collaborative — gates marked 💬 stop and ask the user. If the user signals autonomous mode ("decide for me", "surprise me"), every 💬 gate is skipped; see step-2-brief.md for how that propagates.
1818

1919
---
2020

21-
## Step 1: Capture & Understand
21+
## Step 0: Capture & Understand the Brand
2222

23-
**Read:** [references/step-1-capture.md](references/step-1-capture.md)
23+
**Read:** [references/step-0-capture.md](references/step-0-capture.md)
2424

25-
Run the capture, read the extracted data, and build a working summary using the write-down-and-forget method.
25+
Capture the site, then read the extracted data to understand the **brand and product** — what it does, who it's for, what voice it speaks in, what mood it lives in. The captured assets are a brand toolkit for later, not the building blocks the video is made from.
2626

27-
**Gate:** Print your site summary (name, top colors, fonts, key assets, one-sentence vibe).
27+
**Gate:** Site summary printed — strategy-first (what the product does, who it's for, brand voice) before the asset / color / font inventory.
2828

2929
---
3030

31-
## Step 2: Write DESIGN.md
31+
## Step 1: Brand Identity
3232

33-
**Read:** [references/step-2-design.md](references/step-2-design.md)
33+
**Read:** [references/step-1-design.md](references/step-1-design.md)
3434

35-
Write a simple brand reference for the captured website. 6 sections, ~90 lines. This is a cheat sheet, not the creative plan — that comes in Step 4.
35+
Write DESIGN.md — a brand cheat sheet covering the visual identity: colors, typography, component styles, layout principles. Use `design-styles.json` for exact computed values.
3636

37-
**Gate:** `DESIGN.md` exists in the project directory.
37+
**Speed option:** For fast-pacing videos (billboard-per-beat), DESIGN.md can be a 50-line summary of colors + fonts + do's/don'ts — not a 300-line document. The sub-agent prompt in Step 5 pastes brand values directly, so DESIGN.md depth only matters for complex compositions.
38+
39+
**Gate:** `DESIGN.md` exists (any length) with at minimum: color palette, font choices, and do's/don'ts.
3840

3941
---
4042

41-
## Step 3: Write SCRIPT
43+
## Step 2: Strategy & Messaging
4244

43-
**Read:** [references/step-3-script.md](references/step-3-script.md)
45+
**Read:** [references/step-2-brief.md](references/step-2-brief.md), [references/capabilities.md](references/capabilities.md) (scan the Table of Contents — deep-dive sections only as needed)
4446

45-
Write the narration script. The story backbone. Scene durations come from the narration, not from guessing.
47+
Align with the user on **what the video must communicate** before talking visuals or assets. Parse the user's prompt — they probably already gave you the video type and style. Ask only what's missing: the ONE thing this video must say, the narrative arc, and the audience.
4648

47-
**Gate:** `SCRIPT.md` exists in the project directory.
49+
**Gate:** Video type, duration, format, and — critically — the message and narrative arc are locked. Without those, Step 3 can't write a concept-first storyboard.
4850

4951
---
5052

51-
## Step 4: Write STORYBOARD
53+
## Step 3: Storyboard + Script 💬
5254

53-
**Read:** [references/step-4-storyboard.md](references/step-4-storyboard.md)
55+
**Read:** [references/step-3-storyboard.md](references/step-3-storyboard.md)
5456

55-
Write per-beat creative direction: mood, camera, animations, transitions, assets, depth layers, SFX. This is the creative north star — the document the engineer follows to build each composition.
57+
Write the storyboard concept-first: message → narrative arc → beats that serve the arc → techniques per beat → brand accents pass at the end. Then write the narration script to match. Present both to the user with a beat-by-beat summary. Iterate until they approve.
5658

57-
**Gate:** `STORYBOARD.md` exists with beat-by-beat direction and an asset audit table.
59+
**Gate:** `STORYBOARD.md` + `SCRIPT.md` exist AND the user has approved the plan.
5860

5961
---
6062

61-
## Step 5: Generate VO + Map Timing
63+
## Step 4: VO, Timing + Captions 💬
6264

63-
**Read:** [references/step-5-vo.md](references/step-5-vo.md)
65+
**Read:** [references/step-4-vo.md](references/step-4-vo.md)
6466

65-
Generate TTS audio, transcribe for word-level timestamps, and map timestamps to beats. Update STORYBOARD.md with real durations.
67+
If Step 2 said no narration — ask about background music, then skip to Step 5. Otherwise: ask the user which TTS provider (HeyGen TTS, ElevenLabs, or Kokoro), generate audio, transcribe, map timestamps to beats. Then ask about captions.
6668

67-
**Gate:** `narration.wav` (or .mp3) + `transcript.json` exist. Beat timings in STORYBOARD.md updated.
69+
**Gate:** Either (a) no narration was requested and storyboard has manual beat timings, or (b) `narration.wav` + `transcript.json` exist and beat timings updated with real durations.
6870

6971
---
7072

71-
## Step 6: Build Compositions
73+
## Step 5: Build Compositions
7274

7375
**Read:** The `hyperframes` skill (load it — every rule matters)
74-
**Read:** [references/step-6-build.md](references/step-6-build.md)
76+
**Read:** [references/step-5-build.md](references/step-5-build.md)
7577

76-
Build each composition following the storyboard. After each one: self-review for layout, asset placement, and animation quality.
78+
Build index.html and compositions following the architecture and pacing chosen in the storyboard (Step 3). Sub-agents run `hyperframes lint` and `hyperframes snapshot` on each beat before reporting back.
7779

78-
**Gate:** Every composition has been self-reviewed. No overlapping elements, no misplaced assets, no static images without motion.
80+
**Gate:** Every `compositions/beat-N.html` has been read top-to-bottom by the main agent against DESIGN.md and STORYBOARD.md. The per-beat checklist lives in [step-5-build.md](references/step-5-build.md).
7981

8082
---
8183

82-
## Step 7: Validate & Deliver
84+
## Step 6: Validate & Deliver
85+
86+
**Read:** [references/step-6-validate.md](references/step-6-validate.md)
8387

84-
**Read:** [references/step-7-validate.md](references/step-7-validate.md)
88+
Lint, validate, take snapshots scaled to video length (formula: `max(beats × 3, ceil(duration_seconds / 2))`), and review each one. Fix issues before delivering. Deliver the localhost Studio project URL — only render to MP4 on explicit user request.
8589

86-
Lint, validate, snapshot, preview. Deliver the localhost Studio project URL
87-
(`http://localhost:<port>/#project/<project-name>`) to the user first — only
88-
render to MP4 on explicit request. Do not treat `index.html` as the project
89-
handoff link; it is source-code context only.
90+
**Deliver something you're proud of.** Before handing off, ask yourself: would I post this on social media with my name on it? If not, fix what's wrong.
9091

9192
**Gate:** `npx hyperframes lint` and `npx hyperframes validate` pass with zero errors, and the final response includes the active Studio project URL.
9293

@@ -96,13 +97,17 @@ handoff link; it is source-code context only.
9697

9798
### Video Types
9899

99-
| Type | Duration | Beats | Narration |
100-
| --------------------- | -------- | ----- | ---------------------- |
101-
| Social ad (IG/TikTok) | 10-15s | 3-4 | Optional hook sentence |
102-
| Product demo | 30-60s | 5-8 | Full narration |
103-
| Feature announcement | 15-30s | 3-5 | Full narration |
104-
| Brand reel | 20-45s | 4-6 | Optional, music focus |
105-
| Launch teaser | 10-20s | 2-4 | Minimal, high energy |
100+
Typical constraints by video type — use as a starting point, not a formula. Beat count should follow from the content and the narration, not from a target range.
101+
102+
| Type | Typical duration | Duration driver | Narration |
103+
| --------------------- | ---------------- | ------------------ | --------------------- |
104+
| Social ad (IG/TikTok) | 10–15s | Platform limit | Optional |
105+
| Product demo | 30–60s | Script length | Full narration |
106+
| Feature announcement | 15–30s | Feature complexity | Full narration |
107+
| Brand reel | 20–45s | Music track | Optional, music focus |
108+
| Launch teaser | 10–20s | Hook energy | Minimal |
109+
110+
Beat count is not in this table intentionally — it should come from the storyboard, not from "social ad = 3-4 beats." A social ad for a complex product might need 5 well-timed beats. A brand reel with one strong visual thesis might need 3.
106111

107112
### Format
108113

@@ -112,13 +117,15 @@ handoff link; it is source-code context only.
112117

113118
### Reference Files
114119

115-
| File | When to read |
116-
| -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
117-
| [step-1-capture.md](references/step-1-capture.md) | Step 1 — reading captured data |
118-
| [step-2-design.md](references/step-2-design.md) | Step 2 — writing DESIGN.md |
119-
| [step-3-script.md](references/step-3-script.md) | Step 3 — writing the narration script |
120-
| [step-4-storyboard.md](references/step-4-storyboard.md) | Step 4 — per-beat creative direction |
121-
| [step-5-vo.md](references/step-5-vo.md) | Step 5 — TTS, transcription, timing |
122-
| [step-6-build.md](references/step-6-build.md) | Step 6 — building compositions with self-review |
123-
| [step-7-validate.md](references/step-7-validate.md) | Step 7 — lint, validate, snapshot, preview |
124-
| [techniques.md](../hyperframes/references/techniques.md) | Steps 4 & 6 — 11 visual techniques with code patterns (SVG drawing, Canvas 2D, 3D, typography, Lottie, video, typing, variable fonts, MotionPath, transitions, audio-reactive) |
120+
| File | When to read |
121+
| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
122+
| [step-0-capture.md](references/step-0-capture.md) | Step 0 — capture, understand the brand and product, write strategy-first site summary |
123+
| [step-1-design.md](references/step-1-design.md) | Step 1 — write DESIGN.md brand cheat sheet (6 sections, 250-350 lines) |
124+
| [step-2-brief.md](references/step-2-brief.md) | Step 2 — align on message, narrative arc, audience with user |
125+
| [capabilities.md](references/capabilities.md) | Steps 2 & 5 — full inventory of what HyperFrames can do (24 sections). Scan the TOC during the brief, deep-dive specific sections during build |
126+
| [step-3-storyboard.md](references/step-3-storyboard.md) | Step 3 — storyboard + script (combined) with user review gate |
127+
| [step-4-vo.md](references/step-4-vo.md) | Step 4 — TTS provider choice, generation, timing |
128+
| [step-5-build.md](references/step-5-build.md) | Step 5 — build index.html + compositions |
129+
| [step-6-validate.md](references/step-6-validate.md) | Step 6 — lint, validate, snapshots (scaled to video length), preview |
130+
| [techniques.md](../hyperframes/references/techniques.md) | Steps 3 & 5 — 13 primitive animation techniques with code patterns (adapt, don't copy-paste) |
131+
| [html-in-canvas-patterns.md](../hyperframes/references/html-in-canvas-patterns.md) | Step 5 — complete code patterns for HTML-in-Canvas effects (lives in the hyperframes skill) |
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# SFX Credits
2+
3+
All sound effects in this directory are sourced from [Pixabay](https://pixabay.com/sound-effects/) and used under the [Pixabay Content License](https://pixabay.com/service/license-summary/).
4+
5+
The Pixabay license allows free use for commercial and non-commercial purposes without attribution, but attribution is appreciated and given here for transparency.
6+
7+
## Files
8+
9+
The following `.mp3` files are bundled with this skill:
10+
11+
- `chime.mp3`
12+
- `click.mp3` / `click-soft.mp3`
13+
- `error.mp3`
14+
- `glitch-1.mp3` / `glitch-2.mp3` / `glitch-3.mp3`
15+
- `impact-bass-1.mp3` / `impact-bass-2.mp3`
16+
- `key-press.mp3`
17+
- `notification.mp3`
18+
- `ping.mp3`
19+
- `pop.mp3`
20+
- `riser.mp3`
21+
- `sparkle.mp3`
22+
- `typing.mp3`
23+
- `whoosh.mp3` / `whoosh-short.mp3` / `whoosh-cinematic.mp3`
24+
25+
See `manifest.json` for per-file metadata (duration, energy character, recommended use).
26+
27+
## License
28+
29+
All files are distributed under the [Pixabay Content License](https://pixabay.com/service/license-summary/), which permits:
30+
31+
- Commercial and non-commercial use
32+
- Modification and remixing
33+
- Redistribution as part of derivative works (such as videos rendered with HyperFrames)
34+
35+
without any attribution requirement.
26.7 KB
Binary file not shown.
11.4 KB
Binary file not shown.
11.4 KB
Binary file not shown.
50.6 KB
Binary file not shown.
82.4 KB
Binary file not shown.
110 KB
Binary file not shown.
96.8 KB
Binary file not shown.
66.1 KB
Binary file not shown.

0 commit comments

Comments
 (0)