docs: address remaining prompt guide feedback

This commit is contained in:
Vance Ingalls
2026-07-30 05:01:12 -07:00
parent 73ebc7c621
commit fdf3ad8fdd
7 changed files with 6 additions and 874 deletions
+2
View File
@@ -6,6 +6,8 @@ description: "One prompt, one continuous camera move, every technique in this gu
<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> <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>
*"The Timeline" — 1920x1080, ~62 seconds, one prompt, one unbroken camera move, unedited.* *"The Timeline" — 1920x1080, ~62 seconds, one prompt, one unbroken camera move, unedited.*
The prompt targeted roughly 60 seconds; the delivered render runs 1:02 because the final lockup holds for a two-second breath.
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. 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.
The concept is the product: the viewer travels along one literal timeline — the thing HyperFrames is built on — from the first typed character to the finished MP4. Everything in it is true: real catalog counts, real cloud regions, real product surfaces, footage staged as the material the tool processes. And the film has no scenes in the slideshow sense — it is one continuous camera journey through one wide world, which is the chapter's biggest lesson. The concept is the product: the viewer travels along one literal timeline — the thing HyperFrames is built on — from the first typed character to the finished MP4. Everything in it is true: real catalog counts, real cloud regions, real product surfaces, footage staged as the material the tool processes. And the film has no scenes in the slideshow sense — it is one continuous camera journey through one wide world, which is the chapter's biggest lesson.
+1 -1
View File
@@ -1,6 +1,6 @@
--- ---
title: Motion that reads premium title: Motion that reads premium
description: "Seven motion-grammar rules from frame-by-frame study of professional work — nothing stops, the camera acts, action overlaps, imperfection stays reproducible." description: "Eight motion-grammar rules from frame-by-frame study of professional work — nothing stops, the camera acts, action overlaps, imperfection stays reproducible."
--- ---
By now you can specify a frame precisely — exact copy, exact colors, exact layout, exact timing. This level makes it move. But "make it move" is the wrong instruction, and it is worth understanding why before you write a single motion clause. By now you can specify a frame precisely — exact copy, exact colors, exact layout, exact timing. This level makes it move. But "make it move" is the wrong instruction, and it is worth understanding why before you write a single motion clause.
+2
View File
@@ -5,6 +5,8 @@ description: "For multi-scene work, don't prompt the scenes one by one — promp
[Variables and templating](/prompting/variables-and-templating) was about reusing one composition across many renders. This page is the other axis of scale: one film with many scenes. Past a handful of beats, describing each scene from a blank page — "then frame 2 shows X, then frame 3 shows Y" — is the slow way and the way that drifts, because nothing ties the frames to each other. The fast way is to prompt the **plan** once — the throughline, the job each frame does, the rule that paces reveals — and let the build put frames against it. [Variables and templating](/prompting/variables-and-templating) was about reusing one composition across many renders. This page is the other axis of scale: one film with many scenes. Past a handful of beats, describing each scene from a blank page — "then frame 2 shows X, then frame 3 shows Y" — is the slow way and the way that drifts, because nothing ties the frames to each other. The fast way is to prompt the **plan** once — the throughline, the job each frame does, the rule that paces reveals — and let the build put frames against it.
This narrative vocabulary is a writing discipline, not additional `STORYBOARD.md` schema: the workflow translates the plan into the smaller machine-readable shape the build consumes.
## Prompt the plan, not the scenes ## Prompt the plan, not the scenes
A storyboard is a short, structured document that sits above the individual frames: one arc, one direction block that every frame inherits, and a light per-frame spec (not a full description) for each key moment. The workflow reads the plan and builds each frame's HTML sub-composition against it — so a plan that's precise about the *shape* of the film produces frames that already agree with each other on pacing, palette, and payoff, without you re-stating any of that per frame. A storyboard is a short, structured document that sits above the individual frames: one arc, one direction block that every frame inherits, and a light per-frame spec (not a full description) for each key moment. The workflow reads the plan and builds each frame's HTML sub-composition against it — so a plan that's precise about the *shape* of the film produces frames that already agree with each other on pacing, palette, and payoff, without you re-stating any of that per frame.
-508
View File
@@ -1,508 +0,0 @@
# Prompt Guide Arc Restructure — Implementation Plan
> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
**Goal:** Restructure the 29-page Prompt Guide from a reference manual into a novice→advanced arc (spec: `plans/prompt-guide-arc.md`) where each level builds on the prior one and ends in a validated capstone film.
**Architecture:** Pages keep their slugs (`docs/prompting/*.mdx`) — only `docs.json` grouping, page content framing, and two new pages (`storyboards`, `capstone`) change. Content rewrites are per-level editorial passes with a fixed bridge template. New prompts follow the standing validation protocol (built as written → lint/check → render → embed).
**Tech Stack:** Mintlify docs (`docs/`), oxfmt/oxlint, HyperFrames CLI validation builds, S3 render hosting via `scripts/upload-docs-images.sh`.
## Global Constraints
- All work in worktree `~/src/wt/hyperframes/prompt-guide` on branch `fix/prompt-guide-validation-bugs` (PR #2109). Commit with `/usr/bin/git` (the `rtk` proxy silently no-ops commits). Conventional commits; header ≤ 100 chars.
- **No prompt ships unverified.** Every NEW prompt printed in the guide must pass the Validation Protocol below before its page is committed. Existing prompts keep their existing 64 embedded renders; do not rewrite a validated prompt's text (rewriting voids its render).
- **Bridge template** — every chapter page gets both:
- Entry bridge: first paragraph after the frontmatter opens with what the reader can already do, then what this chapter adds. Pattern: `You can already <prior-level skill>. This chapter adds <this chapter's skill>.` (Adapt the wording per page; keep the two-beat shape.)
- Exit bridge: final line of the page, italic: `*Next: [<next chapter title>](/prompting/<next-slug>) — <one clause on what it adds>.*` The last chapter of a level points at the first chapter of the next level.
- Keep page counts out of prose (drift rule). Never say "29 pages" / "30 pages" in any `.mdx`.
- Embed snippet for renders (copy exactly, swap filename):
```mdx
<video
controls
muted
loop
playsinline
preload="metadata"
src="https://static.heygen.ai/hyperframes-oss/docs/images/prompting/<name>.mp4"
style={{ borderRadius: "0.5rem", marginTop: "0.75rem" }}
></video>
```
- `docs/images/` is gitignored by design — renders go to S3 via `bash scripts/upload-docs-images.sh` (AWS profile `engineering-767398024897`), then verify each URL: `curl -sI <url> | head -1` → `HTTP/2 200`.
- After editing any file: `bunx oxfmt <files>` then `bunx oxlint <files>`. Markdown/MDX gets oxfmt only.
- Docs sanity gate (run before every commit that touches `docs/`):
```bash
cd ~/src/wt/hyperframes/prompt-guide
python3 -c "import json; json.load(open('docs/docs.json')); print('docs.json ok')"
cd docs && npx mintlify broken-links
```
- Do not modify `.gitignore`. Do not close or open PRs. Push only in the final task.
## Validation Protocol (for every NEW prompt)
Used by Tasks 3, 7, 8, 9, 10. The executor dispatches a fresh builder subagent per prompt:
1. `mkdir -p ~/src/hyperframes-prompt-examples/guide-v3/<name>`
2. Dispatch a `general-purpose` subagent with EXACTLY this framing: "You are a HyperFrames builder. Your entire brief is the prompt below, verbatim — do not use any knowledge of why this prompt exists. Work in `~/src/hyperframes-prompt-examples/guide-v3/<name>`. Follow the `/hyperframes` skill routing. The project must pass `npx hyperframes lint` and `npx hyperframes check`, then render an MP4. Report the render path and any prompt ambiguity you had to resolve yourself." + the prompt text.
3. If the builder reports ambiguity or a gate failure caused by the prompt text: fix the page's prompt, re-run with a fresh subagent. The page ships the text that passed.
4. Copy the render: `cp <render>.mp4 ~/src/wt/hyperframes/prompt-guide/docs/images/prompting/<name>.mp4`
5. Upload + verify (see Global Constraints), embed under the prompt with the standard snippet and a one-line italic caption stating it is the unedited render of the prompt above.
---
### Task 1: Fix the red Format CI check
**Files:**
- Modify: `plans/prompt-guide-expansion.md` (formatting only)
- [ ] **Step 1: Reproduce**
```bash
cd ~/src/wt/hyperframes/prompt-guide && bun run format:check
```
Expected: FAIL listing `plans/prompt-guide-expansion.md`.
- [ ] **Step 2: Fix**
```bash
bunx oxfmt plans/prompt-guide-expansion.md
```
- [ ] **Step 3: Verify**
```bash
bun run format:check
```
Expected: exit 0.
- [ ] **Step 4: Commit**
```bash
/usr/bin/git add plans/prompt-guide-expansion.md
/usr/bin/git commit -m "chore: format prompt-guide-expansion plan (fixes Format CI)"
```
---
### Task 2: Restructure docs.json nav into levels
**Files:**
- Modify: `docs/docs.json` (the `Prompt Guide` group only)
**Interfaces:**
- Produces: the level grouping every later task's pages live in. Slugs unchanged; no new redirects needed (the existing `/guides/prompting` → `/prompting/overview` redirect stays untouched).
- [ ] **Step 1: Replace the Prompt Guide group's subgroups**
In `docs/docs.json`, find the group `"Prompt Guide"` and replace its `pages` array with:
```json
[
"prompting/overview",
{
"group": "Level 1 — Your first video",
"pages": [
"prompting/product-launch",
"prompting/explainers",
"prompting/code-and-prs",
"prompting/captions-and-talking-heads",
"prompting/music-and-slideshows",
"prompting/motion-graphics"
]
},
{
"group": "Level 2 — Control",
"pages": [
"prompting/anatomy",
"prompting/specification-dial",
"prompting/vocabulary",
"prompting/visual-specs",
"prompting/examples"
]
},
{
"group": "Level 3 — Life",
"pages": ["prompting/motion", "prompting/transitions"]
},
{
"group": "Level 4 — Substance",
"pages": [
"prompting/code-blocks",
"prompting/data-and-maps",
"prompting/overlays-and-lower-thirds",
"prompting/captions-catalog",
"prompting/generated-artwork",
"prompting/vfx-and-liquid-glass",
"prompting/runtimes-and-3d"
]
},
{
"group": "Level 5 — Voice and sound",
"pages": ["prompting/media-and-audio"]
},
{
"group": "Level 6 — Scale",
"pages": [
"prompting/design-systems",
"prompting/variables-and-templating",
"prompting/editing-existing-videos",
"prompting/iterating",
"prompting/recreating-references",
"prompting/rendering-and-output",
"prompting/remotion-migration"
]
},
{
"group": "Appendix",
"pages": ["prompting/rules-and-anti-patterns"]
}
]
```
Notes: `prompting/storyboards` is added to Level 6 (before `editing-existing-videos`) in Task 9 when the file exists; `prompting/capstone` is added as a `"Level 7 — Capstone"` group between Level 6 and Appendix in Task 11. Mintlify fails on nav entries whose files don't exist yet — that's why they're deferred.
- [ ] **Step 2: Verify**
Run the docs sanity gate (Global Constraints). Expected: `docs.json ok`, no broken links.
- [ ] **Step 3: Commit**
```bash
/usr/bin/git add docs/docs.json
/usr/bin/git commit -m "docs(prompting): regroup Prompt Guide nav into novice-to-advanced levels"
```
---
### Task 3: Level 1 — workflow-ride rewrites (6 pages)
**Files:**
- Modify: `docs/prompting/product-launch.mdx`, `docs/prompting/explainers.mdx`, `docs/prompting/code-and-prs.mdx`, `docs/prompting/captions-and-talking-heads.mdx`, `docs/prompting/music-and-slideshows.mdx`, `docs/prompting/motion-graphics.mdx`
**Interfaces:**
- Consumes: nav order from Task 2 (bridge targets follow that order: product-launch → explainers → code-and-prs → captions-and-talking-heads → music-and-slideshows → motion-graphics → anatomy).
- Produces: L1 framing later levels refer back to ("you rode a workflow; now open the hood").
**Editorial contract (each page):**
1. Reframe the page intro as a _first win_: one prompt to the workflow gets a finished video; the page's first validated prompt + its existing render move to the top.
2. Keep every existing validated prompt and embed verbatim (moving them on the page is fine; editing their text is not).
3. Existing "knobs that matter" material stays but moves after the first-win section, introduced as "what you can steer from the prompt before you've learned any technique."
4. Apply the bridge template. Entry bridge for `product-launch` (the arc's first chapter) instead states the level premise: you need zero technique to get a first video — one sentence describing your product is enough.
5. `motion-graphics` exit bridge points to `anatomy` and names the turn: "you've been riding workflows; Level 2 opens the prompt itself."
**`code-and-prs` additionally** gains a short "Changelog videos" section: the `changelog-video` skill (landed after the original guide) turns a repo's recent merges into a changelog video. Write one prompt for it and run the Validation Protocol with name `changelog-video` — the builder runs against the public `heygen-com/hyperframes` repo history so the render is publishable.
- [ ] **Step 1: Rewrite the 6 pages per the contract**
- [ ] **Step 2: Validate the new changelog-video prompt** (Validation Protocol, name `changelog-video`; embed render in `code-and-prs.mdx`)
- [ ] **Step 3: Format + docs sanity gate**
```bash
bunx oxfmt docs/prompting/product-launch.mdx docs/prompting/explainers.mdx docs/prompting/code-and-prs.mdx docs/prompting/captions-and-talking-heads.mdx docs/prompting/music-and-slideshows.mdx docs/prompting/motion-graphics.mdx
```
Then the docs sanity gate.
- [ ] **Step 4: Commit**
```bash
/usr/bin/git add docs/prompting/
/usr/bin/git commit -m "docs(prompting): Level 1 — reframe workflow pages as first-win rides + changelog-video"
```
---
### Task 4: Level 2 — Control rewrites (5 pages)
**Files:**
- Modify: `docs/prompting/anatomy.mdx`, `docs/prompting/specification-dial.mdx`, `docs/prompting/vocabulary.mdx`, `docs/prompting/visual-specs.mdx`, `docs/prompting/examples.mdx`
**Editorial contract:**
1. `anatomy` entry bridge: "your Level 1 prompts worked because the workflow filled the gaps; the skeleton is how you take that control yourself." Add one short paragraph noting the composition-structure mandate now enforced by the framework (main commit `0aaac7aa3` / PR #2599): compositions follow a required structural shape, so the skeleton isn't style advice — the framework soft-warns when structure drifts. No new prompt needed.
2. `examples` reframed as the level-end gallery: entry bridge frames the 18 dissections as "read these with your new vocabulary — spot the skeleton parts in each."
3. Chapter order for bridges: anatomy → specification-dial → vocabulary → visual-specs → examples → motion.
4. All existing prompts/renders/tables stay verbatim.
- [ ] **Step 1: Rewrite the 5 pages per the contract**
- [ ] **Step 2: Format + docs sanity gate** (`bunx oxfmt` the five files, then the gate)
- [ ] **Step 3: Commit**
```bash
/usr/bin/git add docs/prompting/
/usr/bin/git commit -m "docs(prompting): Level 2 — control chapters with bridges + structure mandate note"
```
---
### Task 5: Level 3 — Life rewrites (2 pages)
**Files:**
- Modify: `docs/prompting/motion.mdx`, `docs/prompting/transitions.mdx`
**Editorial contract:**
1. `motion` entry bridge: "you can specify a frame precisely; this level makes it feel alive." Content (grammar, measured A/B, rule 7 seeded motion) already complete — bridges only.
2. `transitions` moves from feature-reference framing to "motion between scenes": entry bridge builds on the grammar ("rule 2's camera and rule 3's overlap apply _between_ scenes too"). Existing prompts/renders stay.
3. Bridge order: motion → transitions → code-blocks.
- [ ] **Step 1: Rewrite the 2 pages per the contract**
- [ ] **Step 2: Format + docs sanity gate**
- [ ] **Step 3: Commit**
```bash
/usr/bin/git add docs/prompting/
/usr/bin/git commit -m "docs(prompting): Level 3 — life chapters with bridges"
```
---
### Task 6: Level 4 — Substance rewrites (7 pages)
**Files:**
- Modify: `docs/prompting/code-blocks.mdx`, `docs/prompting/data-and-maps.mdx`, `docs/prompting/overlays-and-lower-thirds.mdx`, `docs/prompting/captions-catalog.mdx`, `docs/prompting/generated-artwork.mdx`, `docs/prompting/vfx-and-liquid-glass.mdx`, `docs/prompting/runtimes-and-3d.mdx`
**Editorial contract:**
1. Every page reframes from "the X feature" to "add X to what you already have": the entry bridge names a Level 1-3 artifact the capability slots into (e.g. code-blocks → "your PR video from Level 1, now with a diff that types itself").
2. All existing prompts/renders stay verbatim.
3. Bridge order: code-blocks → data-and-maps → overlays-and-lower-thirds → captions-catalog → generated-artwork → vfx-and-liquid-glass → runtimes-and-3d → media-and-audio.
- [ ] **Step 1: Rewrite the 7 pages per the contract**
- [ ] **Step 2: Format + docs sanity gate**
- [ ] **Step 3: Commit**
```bash
/usr/bin/git add docs/prompting/
/usr/bin/git commit -m "docs(prompting): Level 4 — capability chapters framed as additive"
```
---
### Task 7: Level 5 — media-and-audio + the proxy subsystem
**Files:**
- Modify: `docs/prompting/media-and-audio.mdx`
- Read for grounding: `git log main --oneline` commits `9ca1e1710`, `9d148d288`, `645880706`, `39b588cbd`, `74b4f1e8c`, `35eff5038`, `e8371a7ac`, `664c39db9`, and `docs/` pages touched by `5f2819b1e`, `8c1b6c515` (the existing proxy docs — link to them rather than duplicating mechanics).
**Editorial contract:**
1. Entry bridge: "your video moves and reads right; this level gives it a voice" — narration/TTS/BGM material stays.
2. New section "Bring any footage" covering the proxy subsystem _from the prompter's perspective_: you can now hand the workflow HEVC/HDR/odd-codec footage and preview/play/publish keep working — the framework probes codecs and builds bounded H.264 (and alpha-capable) proxies automatically; renders still use the original; `hyperframes lint` flags hostile codecs at info level; projects can opt out. Link to the concepts/media docs added by `8c1b6c515` for mechanics.
3. One new validated prompt exercising it: a prompt that builds a short picture-in-picture piece from a provided HEVC clip. Validation Protocol name `proxy-footage`; the builder gets a real HEVC test clip (generate one first: `ffmpeg -f lavfi -i testsrc2=size=1280x720:rate=30 -t 6 -c:v libx265 -tag:v hvc1 ~/src/hyperframes-prompt-examples/guide-v3/proxy-footage/source-hevc.mp4`) and the prompt references `source-hevc.mp4` by relative path.
- [ ] **Step 1: Ground against the proxy commits, then rewrite the page**
- [ ] **Step 2: Validate the proxy-footage prompt** (Validation Protocol; embed render)
- [ ] **Step 3: Format + docs sanity gate**
- [ ] **Step 4: Commit**
```bash
/usr/bin/git add docs/prompting/media-and-audio.mdx
/usr/bin/git commit -m "docs(prompting): Level 5 — voice, sound, and automatic media proxies"
```
---
### Task 8: Level 6 — Scale rewrites (7 pages)
**Files:**
- Modify: `docs/prompting/design-systems.mdx`, `docs/prompting/variables-and-templating.mdx`, `docs/prompting/editing-existing-videos.mdx`, `docs/prompting/iterating.mdx`, `docs/prompting/recreating-references.mdx`, `docs/prompting/rendering-and-output.mdx`, `docs/prompting/remotion-migration.mdx`
**Editorial contract:**
1. Level premise (design-systems entry bridge): "everything so far was one scene at a time; this level is about videos as systems — design that persists across scenes, edits that don't regress, output that ships."
2. `variables-and-templating`: add a correction note — composition variables no longer shadow authored CSS custom properties (main commit `406894061`); verify the page's existing wording against that commit's behavior and fix any sentence it invalidates. Existing default-vs-overridden render pair stays.
3. `remotion-migration` framed as "bringing an existing Remotion project into everything you now know," last chapter before the capstone level.
4. Bridge order: design-systems → variables-and-templating → storyboards (added in Task 9) → editing-existing-videos → iterating → recreating-references → rendering-and-output → remotion-migration → capstone (added in Task 11; until then point remotion-migration's exit bridge at rules-and-anti-patterns and fix it in Task 11).
- [ ] **Step 1: Verify the variables claim against `git show 406894061`, then rewrite the 7 pages**
- [ ] **Step 2: Format + docs sanity gate**
- [ ] **Step 3: Commit**
```bash
/usr/bin/git add docs/prompting/
/usr/bin/git commit -m "docs(prompting): Level 6 — scale chapters + variables CSS-shadow correction"
```
---
### Task 9: New chapter — storyboards
**Files:**
- Create: `docs/prompting/storyboards.mdx`
- Modify: `docs/docs.json` (insert `prompting/storyboards` into Level 6 before `editing-existing-videos`), `docs/prompting/variables-and-templating.mdx` (exit bridge now points to storyboards)
- Source material: `videos/team-vault-explained/STORYBOARD.md` (in-repo), `~/src/videos/hyperframes-infra-proposals/STORYBOARD.md` — mine structure, not content.
**Editorial contract:**
1. Teach prompting _into_ a storyboard: for multi-scene work you don't prompt scenes, you prompt the plan — arc, per-frame beats, VO pacing — and the workflow builds frames against it.
2. Document the storyboard vocabulary the internal films prove, as prompt language: narrative arc line, VO-paced reveals ("at t=0 only what the narrator is saying is on screen; each element lands on its spoken cue"), persuasion/beat per frame, a callback (an early motif returning denser late), exactly one breather frame, a per-frame negative list. Do NOT reproduce internal film content — invent neutral examples.
3. One new validated prompt: a 3-frame mini storyboard piece (hook → substance → landing with callback), ~15s, no narration (keeps the build cheap). Validation Protocol name `storyboard-mini`; embed render.
4. Bridges: entry from variables-and-templating; exit to editing-existing-videos.
- [ ] **Step 1: Write the chapter per the contract**
- [ ] **Step 2: Validate the storyboard-mini prompt** (Validation Protocol; embed render)
- [ ] **Step 3: Add to nav, fix neighboring bridges, format + docs sanity gate**
- [ ] **Step 4: Commit**
```bash
/usr/bin/git add docs/prompting/storyboards.mdx docs/prompting/variables-and-templating.mdx docs/prompting/editing-existing-videos.mdx docs/docs.json
/usr/bin/git commit -m "docs(prompting): add storyboards chapter — prompting the plan, not the scenes"
```
---
### Task 10: Appendix — rules cheat sheet + new lint rules
**Files:**
- Modify: `docs/prompting/rules-and-anti-patterns.mdx`; plus one-sentence in-context mentions on `docs/prompting/motion.mdx` (seek-safety) and `docs/prompting/runtimes-and-3d.mdx` (SVG draw-on) where the gotchas bite.
**Editorial contract:**
1. Reframe as the consolidated cheat sheet: entry bridge says every rule here was taught in context — this page is the lookup table; each rule row links its teaching chapter.
2. Add the post-guide lint rules, phrased as prompt guidance (what to write / avoid so the build passes first try), each verified against its lint source before writing:
- `gsap_cold_seek_hidden_fromto_missing_reveal` (#2503) — elements hidden at t=0 need an explicit reveal tween.
- `gsap_callback_dom_measurement`, `gsap_function_value_hazard`, `gsap_repeat_refresh_relative_value`, `svg_drawon_css_dasharray_conflict`, `svg_measure_before_path_d` (#2611 / `f3d210066`) — seek-order safety and SVG draw-on.
- `gsap_relative_value_second_writer`, `gsap_timeline_set_initial_hide` (#2612 / `4ad582606`).
Ground each row: `git show <commit> -- packages/lint/src/rules/gsap.ts` and read the rule's message string; the guide row must match what the linter actually says.
3. Rows are prompt guidance, not prompts — but any row that prints a runnable example prompt must pass the Validation Protocol (name `lint-<rule>`); rows with phrasing-only guidance need no build.
- [ ] **Step 1: Ground each rule against lint source, write the rows + in-context mentions**
- [ ] **Step 2: Format + docs sanity gate**
- [ ] **Step 3: Commit**
```bash
/usr/bin/git add docs/prompting/
/usr/bin/git commit -m "docs(prompting): appendix cheat sheet + post-guide lint rules as prompt guidance"
```
---
### Task 11: Capstone film — build, validate, render
**Files:**
- Create (outside repo): `~/src/hyperframes-prompt-examples/capstone/` (brief, `frame.md`, `STORYBOARD.md`, compositions, audio, renders)
- Create (repo, this task): nothing yet — the chapter is Task 12; this task produces the artifacts.
**The film (from the spec):** public promo for HyperFrames itself ("write HTML, render video"), ~45-60s, 7 frames, 1920×1080. Required technique checklist and its frame mapping:
| Frame | Content | Techniques it must carry |
| ----- | ----------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- |
| F1 | Hook — kinetic type on the one-line pitch | L2 skeleton, L3 grammar (staggered overshoot entrances) |
| F2 | "Write HTML" — a composition types itself | L4 code-blocks (per-character typing beat) |
| F3 | "It becomes video" — pipeline diagram; **matched-motion transition into F4** (a diagram line becomes the F4 chart axis) | L3 transitions |
| F4 | Proof — data-viz beat (e.g. render-speed or catalog count-up) | L4 data-and-maps |
| F5 | Generated-artwork hybrid — one illustration-led beat (generated raster on contrasting solid bg, keyed, code-layer animation on top) | L4 generated-artwork |
| F6 | Capability montage — quick cuts, continuous camera push across them | L3 camera-as-actor, L1 callbacks to workflows |
| F7 | Landing lockup — F1 motif returns denser (callback), the film's one breather, CTA `npx skills add heygen-com/hyperframes` | L6 storyboard craft |
Production constraints:
- `frame.md`: strict two-color system + negative list, per the internal-promo pattern — but pick a palette that is NOT cream/cobalt (do not read as a reuse of the internal films).
- `STORYBOARD.md` uses the same frontmatter + per-frame field shape as `videos/team-vault-explained/STORYBOARD.md` (format/message/arc/audience/music; per-frame scene/voiceover/duration/transition_in/type/persuasion/beat/blueprint/focal). VO-paced reveals throughout.
- Narration: TTS via `/media-use` (pick a voice explicitly — pass `--voice`); BGM resolved via `/media-use` at the default bed level (post-#2110 `bgmDefaultVolume`, do not override).
- Variables: expose the two palette colors + product name as composition variables; render twice — default, and one `--variables` re-skin.
- The film is built BY a builder subagent from a single long-form prompt (the "capstone prompt") that the guide will print in full — this is the point: the prompt IS the most advanced artifact. Author the capstone prompt first (brief + design system + storyboard direction + technique requirements in prose, per the guide's own anatomy), then run the Validation Protocol with name `capstone`. Iterate the prompt (fresh builder each time) until the render passes review; the shipped chapter prints the exact prompt that produced the shipped render.
- [ ] **Step 1: Author the capstone prompt** (long-form; follows the guide's own 6-part anatomy; encodes the table above without naming levels)
- [ ] **Step 2: Run the Validation Protocol, name `capstone`** — builder must produce: `frame.md`, `STORYBOARD.md`, frames, passing `lint`/`check`, `capstone.mp4`
- [ ] **Step 3: Re-skin render** — `npx hyperframes render` with `--variables` overriding the palette colors → `capstone-reskin.mp4`
- [ ] **Step 4: Review gate** — watch both renders; check every row of the technique table is visibly present; if not, revise the prompt and re-run Step 2 with a fresh builder
- [ ] **Step 5: Upload** — copy `capstone.mp4` + `capstone-reskin.mp4` to `docs/images/prompting/`, run `bash scripts/upload-docs-images.sh`, `curl -sI` both URLs → 200
No repo commit in this task (artifacts live outside the repo + on S3).
---
### Task 12: Capstone chapter + overview rewrite
**Files:**
- Create: `docs/prompting/capstone.mdx`
- Modify: `docs/prompting/overview.mdx` (full rewrite), `docs/docs.json` (add `"Level 7 — Capstone"` group with `["prompting/capstone"]` between Level 6 and Appendix), `docs/prompting/remotion-migration.mdx` (exit bridge → capstone)
**Editorial contract — `capstone.mdx`:**
1. Opens with the embedded `capstone.mp4` render, then: "every technique in this film has a chapter in this guide."
2. Prints the full capstone prompt verbatim (the one that produced the render), then dissects it: walk brief → design system → storyboard → frames → validation → render, each step linking the chapter that taught it (anatomy, visual-specs, motion, transitions, code-blocks, data-and-maps, generated-artwork, media-and-audio, design-systems, variables-and-templating, storyboards, rendering-and-output).
3. Shows the `capstone-reskin.mp4` pair with the exact `--variables` invocation used.
4. Exit bridge points at the Appendix cheat sheet: "keep this open while you build."
**Editorial contract — `overview.mdx`:**
1. Rewrite as the arc's map: open with the capstone embed and the promise "by the end of this guide you can build this with a prompt"; then the level ladder (one line per level: what you can do after it); then the existing one-time skill setup; then the two prompt shapes + workflow loop condensed.
2. Existing "best of" example embeds may stay at the bottom.
- [ ] **Step 1: Write `capstone.mdx` per the contract**
- [ ] **Step 2: Rewrite `overview.mdx` per the contract**
- [ ] **Step 3: Nav + bridges, format + docs sanity gate**
- [ ] **Step 4: Commit**
```bash
/usr/bin/git add docs/prompting/capstone.mdx docs/prompting/overview.mdx docs/prompting/remotion-migration.mdx docs/docs.json
/usr/bin/git commit -m "docs(prompting): capstone chapter + overview rewritten as the arc's map"
```
---
### Task 13: Final QA + PR update
**Files:**
- Modify: PR #2109 description (via `gh`), spec `plans/prompt-guide-arc.md` status line.
- [ ] **Step 1: Full-guide QA sweep**
```bash
cd ~/src/wt/hyperframes/prompt-guide
bun run format:check # expect exit 0
python3 -c "import json; json.load(open('docs/docs.json')); print('ok')"
cd docs && npx mintlify broken-links # expect none
# every S3 embed resolves:
grep -rhoE 'https://static\.heygen\.ai/[^" ]+\.mp4' docs/prompting/ | sort -u | while read u; do
code=$(curl -s -o /dev/null -w '%{http_code}' -I "$u"); [ "$code" = 200 ] || echo "BROKEN $code $u"
done
```
Also start `npx mintlify dev --port 3333` in `docs/` and click through the level nav once.
- [ ] **Step 2: Bridge-chain check** — read only entry/exit bridges of all chapters in nav order; every exit target matches the next chapter; fix any mismatch.
- [ ] **Step 3: Update spec status** — change `plans/prompt-guide-arc.md` line 3 `Status:` to `implemented <today's date>`; commit with the bridge fixes if any:
```bash
/usr/bin/git add -A plans/prompt-guide-arc.md docs/
/usr/bin/git commit -m "docs(prompting): final QA pass for the guide arc"
```
- [ ] **Step 4: Push + update PR #2109**
```bash
/usr/bin/git push origin fix/prompt-guide-validation-bugs
gh pr edit 2109 --title "docs: Prompt Guide as a novice-to-capstone arc + text corrections from validation"
```
Rewrite the PR body (via `gh pr edit 2109 --body-file`) to describe: the arc restructure (levels, full dissolve, bridges), the capstone film + its validated prompt, new topics covered (proxies, new lint rules, changelog-video, structure mandate, variables/CSS fix), the new validation builds, and keep the existing "text corrections" section. Keep the existing footer convention.
- [ ] **Step 5: Verify CI green**
```bash
gh pr checks 2109 --watch
```
Expected: Format passes (Task 1); docs-only lanes skip as before.
-98
View File
@@ -1,98 +0,0 @@
# Prompt Guide arc restructure — novice → capstone
Status: implemented 2026-07-22. Owner: Vance. Supersedes the _structure_ of
`plans/prompt-guide-expansion.md` (its content and validation rule carry over unchanged).
Lands on `fix/prompt-guide-validation-bugs`, amending PR #2109.
## Why
Reviewer feedback on the 29-page guide: it reads as a reference manual — "how to do
specific things with prompts" — with no story in the hierarchy. The fix: restructure as a
progression from novice to advanced where each section builds on techniques learned in the
prior one, culminating in the most advanced artifact a reader can build with everything
the guide teaches.
Structure model ("full dissolve"): no standalone by-video-type / by-feature reference
sections survive. Every page becomes a chapter at the level where the reader is ready for
it, with an entry bridge ("you can now X") and an exit bridge ("next you'll Y").
## The capstone (design target — everything builds to this)
A new, public, promo-style film about HyperFrames itself ("write HTML, render video"),
~4560s, 68 frames. It is the "final form": the artifact only a reader who has absorbed
every level can prompt into existence. Modeled on the internal promo compositions
(`videos/team-vault-explained`, `~/src/videos/hyperframes-infra-proposals`) — the proven
advanced stack:
- `frame.md` design system: strict two-color palette discipline, negative list,
permanent grid/chrome that rides every frame
- Storyboard with narrative arc, VO-paced reveals (each element lands on its spoken cue),
persuasion/beat columns, a callback (early motif returns denser late), one breather frame
- TTS narration + BGM at the fixed bed level (post-#2110 default)
- One generated-artwork hybrid frame (illustration-led → generated raster + code-layer
animation), one data-viz frame, one code frame
- Matched-motion transition between at least one frame pair
- Variables re-skin: default vs overridden render pair
- Full `lint` / `check` / render validation; built for real in
`~/src/hyperframes-prompt-examples/capstone/`; renders hosted on static.heygen.ai
The capstone chapter walks brief → design system → storyboard → per-frame build →
validate → render, and each step links back to the level that taught it. The finished
MP4 is also embedded in the overview intro as the guide's promise ("by the end you can
build this").
## Level structure and page mapping
Nav: the `Prompt Guide` top-level group's subgroups become levels.
| Level | Title | Chapters (existing page → new role) |
| ----- | ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| — | Start here | `overview` — rewritten: the arc's map, skill setup, capstone teaser embed |
| L1 | Your first video | Workflow rides, one prompt + embedded render each: `product-launch`, `explainers`, `code-and-prs` (gains changelog-video), `captions-and-talking-heads`, `music-and-slideshows`, `motion-graphics` |
| L2 | Control | `anatomy`, `specification-dial`, `vocabulary`, `visual-specs`; `examples` becomes the level-end gallery (18 dissections) |
| L3 | Life | `motion` (grammar + measured A/B), `transitions`, seeded-motion rule 7 material |
| L4 | Substance | Capability chapters framed as "add this to what you have": `code-blocks`, `data-and-maps`, `overlays-and-lower-thirds`, `captions-catalog`, `generated-artwork`, `vfx-and-liquid-glass`, `runtimes-and-3d` |
| L5 | Voice & sound | `media-and-audio` expanded with the media-proxy subsystem (see New topics) |
| L6 | Scale | `design-systems`, `variables-and-templating` (+ CSS-shadow fix), **storyboards** (new chapter, extracted from internal-promo practice), `editing-existing-videos`, `iterating`, `recreating-references`, `rendering-and-output`, `remotion-migration` |
| L7 | Capstone | New chapter as specified above |
| — | Appendix | `rules-and-anti-patterns` kept as the consolidated cheat sheet; each rule is _also_ taught in-context at its level |
Page count: ~30 (29 existing, minus none, plus storyboards + capstone; overview rewritten).
Keep page counts out of prose (standing drift rule).
## New topics (landed on main after the guide was written, Jul 922)
1. **Media proxy subsystem** → L5 chapter section: HEVC/hostile-codec probe, automatic
bounded H.264 and alpha-capable authoring proxies, serving from preview/play/static
server, baking into published archives, project opt-out, runtime swap of undecodable
video (#2585#2598 range).
2. **New lint rules** → taught at the level where each gotcha becomes relevant AND listed
in the appendix: seek-order safety, SVG draw-on rules, relative-value second writers,
`tl.set` initial hides, cold-seek opacity reveals (#2503, #2612, f3d210066).
3. **Composition-structure mandate block** (#2599, 0aaac7aa3) → L2 anatomy context.
4. **changelog-video skill** (e96ebd74d) → L1 code-and-prs chapter.
5. **Variables no longer shadow authored CSS custom properties** (406894061) → L6
variables chapter correction.
## Validation
Standing rule unchanged: no prompt ships unverified. Existing 64 renders are reused
wherever the prompt text survives the move verbatim. New validation builds required for:
the capstone film (full pipeline), the proxy-chapter prompt, new-lint-gotcha examples,
and the storyboard-chapter example. Same bar: built exactly as written by a builder
agent, lint/check pass, render embedded.
## Mechanics
- All work on `fix/prompt-guide-validation-bugs` in worktree
`~/src/wt/hyperframes/prompt-guide`; PR #2109 description updated to describe the arc.
- `docs.json` nav rewritten to the level groups; Mintlify redirects for any `prompting/*`
slug that moves; the existing `guides/prompting``prompting/overview` redirect stays.
- Renders synced via `scripts/upload-docs-images.sh` (S3, `docs/images/` stays gitignored).
- Fix the currently red Format CI check on the branch while in there.
## Out of scope
- Tier 3 registry-block overhauls (issue #2107) — unchanged.
- HeyGenVerse article resync / llms.txt check — post-deploy follow-ups as before.
- No behavior changes to skills or pipeline (that was PR #2110, merged).
-266
View File
@@ -1,266 +0,0 @@
# Prompt Guide expansion plan
Status: draft 2026-07-08. Owner: Vance. Source of validated content: the 2026-07-07/08
prompting-guide work (18 verified example prompts, showreel recreation, motion grammar,
asset-gen hybrid, recreation protocol; renders in ~/src/hyperframes-prompt-examples,
preview page https://www.heygenverse.com/a/5db0a33b-97e3-4fdb-8747-823a73ad9bbe).
## Goal
Promote `guides/prompting` from a single page to a top-level **Prompt Guide** nav group:
the current page splits into focused sub-pages, each expanded, and every documented
feature that _implies_ a promptable action gets actual prompting guidance. Standing
rule carried over from the original guide: **no prompt ships unverified** — every
example is built, rendered, and (where feasible) embedded next to its prompt.
## Navigation (docs.json)
New top-level group between **Concepts** and **Guides**:
```
[Prompt Guide]
prompting/overview
[Fundamentals]
prompting/anatomy
prompting/specification-dial
prompting/vocabulary
prompting/iterating
prompting/rules-and-anti-patterns
[Making it look good]
prompting/visual-specs
prompting/motion
prompting/generated-artwork
prompting/recreating-references
[By video type]
prompting/product-launch
prompting/explainers
prompting/code-and-prs
prompting/music-and-slideshows
prompting/captions-and-talking-heads
prompting/motion-graphics
[By feature]
prompting/transitions
prompting/captions-catalog
prompting/overlays-and-lower-thirds
prompting/code-blocks
prompting/data-and-maps
prompting/vfx-and-liquid-glass
prompting/rendering-and-output
prompting/editing-existing-videos
prompting/media-and-audio
prompting/variables-and-templating
prompting/runtimes-and-3d
prompting/design-systems
```
`guides/prompting` becomes a redirect to `prompting/overview`. Keep the page count out
of prose (drift rule, same as skills.mdx).
## Page-by-page
### prompting/overview
Landing: what prompting a video means, one-time skill setup (moved from current page),
the two prompt shapes (cold/warm), the recommended workflow loop, and a map of the
section. Ends with 3 "best of" example prompts w/ embedded renders.
### Fundamentals (split + expand current content — all already validated)
- **anatomy** — the 6-part skeleton, per-part rationale, assembled terminal example,
plus 3 dissections: take a weak prompt, show the fixed version, diff annotated.
- **specification-dial** — mood → style tokens → full spec; cross-model validation
result; the two always-pins (Three.js, sequencing). Expand: when looseness is a
feature (creative exploration) vs when density is mandatory.
- **vocabulary** — existing mapping tables (easing, caption tones, transition energy,
audio-reactive, marker highlights, TTS voices, render quality) + new validated ones:
camera language ("push in 6%", "drone orbit"), depth language ("near-lens bokeh"),
pacing language ("punchy 2s cuts" vs "cinematic holds").
- **iterating** — talk-like-an-editor edits (existing) + the calibration rules from the
recreation work: absolute targets not relative nudges, one axis at a time, freeze
what works.
- **rules-and-anti-patterns** — the 7 technical rules, anti-patterns, plus the newly
validated ones: never "holds motionless", don't create simultaneity conflicts,
don't override skill-mandated styles, "~60s" with verbatim scripts.
### Making it look good (current sections promoted to pages, each gains examples)
- **visual-specs** — density ladder + mountain-title worked example + 2 more specs
(one UI piece, one typographic piece) with renders.
- **motion** — the six-rule premium-motion grammar; before/after render pair
(frozen-hold build vs motion-pass build of the same piece — we have both).
- **generated-artwork** — hybrid pattern, 3 keying/restraint rules, before/after
(hand-drawn SVG team vs asset-gen team — we have both renders).
- **recreating-references** — the transcribe → iterate → distill protocol, fidelity
table, globe worked example + its one-shot render; honest-ceiling callout.
### By video type (one page per workflow; the 8 current examples seed them)
Each page: what the workflow does, 3-5 verified prompts (the existing one + variants:
different durations, aspect ratios, tones), the knobs that matter for that workflow
(e.g. explainer: verbatim vs summarized script, caption style, scene density), and
common failure modes. NEW VALIDATION NEEDED: ~2-4 variant builds per page.
Pages: product-launch (also covers website-to-video), explainers, code-and-prs
(pr-to-video + code blocks context), music-and-slideshows, captions-and-talking-heads
(embedded-captions + talking-head-recut), motion-graphics (also logo stings, stats).
### By feature — the "implied but unguided" gap pages
Sourced from existing docs that document a capability without prompting guidance:
- **transitions** (sources: 14 shader + 13 CSS catalog groups, transitions skill) —
energy/mood → named block mapping, when shader vs CSS, per-seam prompting
("whip-pan on phrase changes"), full block name table. Validation: montage build
exercising ~6 transitions.
- **captions-catalog** (sources: 15 caption components + embedded-captions skill) —
tone → component mapping ("karaoke pill", "kinetic slam", "matrix decode"), per-word
styling asks, safe-area/vertical notes. Validation: one clip rendered with 4 styles.
- **overlays-and-lower-thirds** (sources: social overlays, lower-thirds, news-ticker
catalog groups) — "add a lower third at 0:03 with name/title" class of prompts,
picking styles by brand tone, transparent-overlay output for NLEs.
- **code-blocks** (sources: code animations + 24 code-snippet themes) — prompting
code walkthroughs: typing, diff, highlight, scroll; theme selection language.
- **data-and-maps** (sources: data-chart, 5 US-map variants, world/spain maps) — chart
prompts from CSV/inline data, map highlight/flow/bubble asks, the animated-map
motion-graphics pattern.
- **vfx-and-liquid-glass** (sources: HTML-in-Canvas group, html-in-canvas guide) —
device mockups, liquid glass, shatter/portal/magnetic effects; when these need the
canvas pipeline and what to say.
- **rendering-and-output** (sources: rendering, 4k-rendering, hdr, deploy/lambda) —
quality/format/framerate asks, transparent WebM (and when it's incoherent — full-frame
designs), 4K/HDR guidance incl. cost warnings, "render this on Lambda" cloud prompts.
- **editing-existing-videos** (sources: timeline-editing, keyframes,
video-editor-cheatsheet, studio docs) — NLE-verb prompts: trim/split/move/retime
scenes, keyframe nudges, "make scene 2 snappier", swap assets; maps the cheatsheet's
editor verbs to prompt phrasings. Likely the highest-traffic page of the group.
- **media-and-audio** (sources: video-components, remove-background, media-use skill)
— TTS voice/tone/speed asks, BGM mood + loudness targets ("under -18dB"), SFX cues,
transcription/captions from audio, background removal, video-in-video/PiP, and the
supplied-assets rule (explicit paths).
- **variables-and-templating** (sources: concepts/variables, sdk) — parameterized
compositions ("make name/logo/color variables"), batch/personalization prompts,
template-then-instantiate pattern.
- **runtimes-and-3d** (sources: concepts/frame-adapters, gsap-animation) — the
Three.js-via-adapter pin with worked language, when Lottie/CSS/WAAPI make sense to
request, shader transition requests, canvas/WebGL determinism caveats in prompt form.
- **design-systems** (sources: claude-design, open-design, figma skill) — design.md /
brand-token driven prompting, "use the site's own palette", Figma import asks.
## Validation & build plan
Reuse the proven pipeline: Opus builder subagents, one-shot from the page's prompts,
lint+validate+render gates, frame verification; embed finished MP4s next to prompts
(Mintlify supports video embeds; assets go wherever docs media lives today — confirm
hosting path, else link the HeyGenVerse gallery).
Phasing (each phase shippable):
1. **Restructure** — split current page into overview + Fundamentals + Making-it-look-good
(no new validation needed; content exists). Add nav group + redirect. ~1 PR.
2. **High-traffic gaps** — editing-existing-videos, rendering-and-output,
media-and-audio, transitions, captions-catalog. Each needs a validation build day.
3. **By video type** — 6 pages, variant builds per workflow.
4. **Long tail** — remaining feature pages (data-and-maps, vfx, variables, runtimes,
design-systems, overlays, code-blocks).
## Competitive research findings (2026-07-08, adversarially verified)
Deep-research survey of first-party prompt guides — Sora 2 (OpenAI Cookbook), Runway
Gen-3/Gen-4, Veo (DeepMind + Cloud Veo 3.1), Luma, Anthropic prompt-engineering docs.
(Pika/Kling/Midjourney/Gemini/Copilot claims failed verification — resurvey later.)
What the best guides converge on, and what we adopt:
1. **Named content-slot anatomy.** Every major guide teaches a slot formula
(camera + subject + action + context + style [+ audio]); Veo 3.1 and Runway Gen-3
make it a literal bracket template. We already have a _process_ skeleton
(route/spec/beats/copy/technique/negatives) — ADD a named _content_ formula whose
slots map to HyperFrames concepts (beat + element + motion + layout + style/brand
- audio), demonstrated in one worked example. Lives on the anatomy page.
2. **Keyword→Output tables.** Runway Gen-3's gold standard: six categorized keyword
tables where every row pairs the keyword with the actual generated output. Our
vocabulary tables get the same treatment: motion verbs → GSAP behavior, camera
terms → transform/Three.js choreography, style terms → CSS treatment — each row
with a small rendered clip. (Borrow the format, not their legacy keywords.)
3. **Output pairing is the differentiator.** Even the best guides skip outputs on
their most complex examples (Sora's longest templates ship without any; both Veo
guides mostly unpaired — refuted 0-3). Our article standard (every prompt +
unedited render) beats the field; keep it absolute.
4. **❌/✅ paired rewrites under named rules with engine rationale** — Runway's
dominant device (e.g. ❌ "no clouds in the sky" → ✅ "a clear blue sky", because
negative prompts backfire). Adopt across anatomy + rules pages using our own
validated pairs: ❌ "holds motionless" → ✅ "settles into ambient idle";
❌ "both at 4s" → ✅ "fades out by 4.2s; at 4.2s..."; ❌ "make dots 2x finer" →
✅ "dot radius = 25% of row spacing".
5. **Iteration as single-variable science.** Sora: "editing is for nudging, not
gambling" — one change per edit; Runway Gen-4: minimal motion-only prompt first,
then add ONE element type at a time; strip-then-relayer when a shot misfires.
Expand the iterating page with these three moves + our absolute-targets rule.
6. **Timestamped/beat-segmented prompting as a signature device.** Veo 3.1's
[00:00-00:02] per-segment prompting is the survey's most distinctive device — and
it maps one-to-one onto HyperFrames' native data-\* timing. Our "Beat N (x-ys)"
convention is this; promote it explicitly ("more native here than in any
diffusion model") on anatomy + by-video-type pages.
7. **Anthropic's IA moves**: thin-router overview, one consolidated living
best-practices reference (legacy URLs 301 into anchors), prerequisite gate
("before prompting, have X"). Adopt: keep overview thin; add a short
prerequisites block (skills installed, preview running, project scaffolded);
plan redirects when pages consolidate later.
8. **Efficacy evidence as differentiation** (research open question): no surveyed
guide shows its advice measurably works. Ours can — renders are deterministic and
cheap; we already hold before/after pairs (frozen vs motion-passed, hand-drawn vs
generated, loose vs dense builds). Add "before/after" render pairs as a standard
device on making-it-look-good pages.
Full cited report: deep-research run wf_c81199b6-b15 (22 confirmed claims, 3 refuted;
sources incl. cookbook.openai.com, help.runwayml.com, deepmind.google, cloud.google.com,
lumalabs.ai, platform.claude.com).
## Incorporate the article's drafted guidance
The HeyGenVerse article (https://www.heygenverse.com/a/5db0a33b-97e3-4fdb-8747-823a73ad9bbe)
drafted guidance and presentation patterns beyond the current mdx — these become the
template for every expanded page:
- **Proof pairing**: every example prompt is immediately followed by its unedited
render with the label "Rendered from the prompt above, unedited." This is the
guide's core credibility device — pages without renders don't ship.
- **Provenance line**: each page states how its claims were validated (built,
rendered, frame-verified) and when. The article's footer wording is the model.
- **Example tags**: prompts carry a visible registry-block / workflow / freeform tag
so readers learn which layer of the system they're exercising.
- **Drafted section prose to carry over into the split pages** (the article's phrasing
is tighter than the mdx in places — reconcile toward the article):
- Specification dial: "controls how far the result drifts from what you imagined,
not whether it works" + the two-pins callout as a distinct highlighted element.
- Generated artwork: the wins/loses two-column comparison (code-drawn wins /
code-drawn loses) rather than prose paragraphs.
- Motion: six numbered rules with the "frozen final second is the biggest
cheap-motion tell" line.
- Recreation: the 3-row fidelity table (transcribe ~75% / iterate ~90% /
distill ~80-90%) + honest-ceiling callout, with the one-shot render embedded
under the distilled spec (not the hand-tuned version — the honest artifact).
- **Article lifecycle**: the HV page stays the shareable preview/marketing surface;
it gets regenerated from the docs content at the end of each phase so the two never
fork. Renders already uploaded as HV assets (19 MP4s) are reusable by URL in the
docs if we choose the link-out hosting option (open question 2).
## Consistency obligations
- CLAUDE.md "skill catalog maintenance" applies: skills' SKILL.md descriptions stay the
source of truth for one-line blurbs; the by-video-type pages must link the matching
skill and not fork its routing language.
- llms.txt regenerates from docs — verify the new group lands there.
- Vocabulary tables must match what skills actually implement (easing map, caption
tones) — audit against skills/hyperframes-animation + embedded-captions at write time.
- Catalog pages already demo each block; feature pages link to them rather than
duplicating block docs. Prompting pages own only the "what to say" layer.
## Open questions
1. Group vs tab in docs.json (Mintlify): group keeps single-sidebar; tab gives the
guide its own sidebar. Current nav is single-tab groups — start as group, promote to
tab if it crowds.
2. Where do example MP4s live for docs embeds — repo (heavy), CDN bucket, or link out
to the HeyGenVerse gallery page? Decide before Phase 1 ships renders.
3. Do by-video-type pages absorb the existing standalone guides (website-to-video) or
link them? Proposal: link, don't absorb — those guides cover mechanics, prompting
pages cover phrasing.
+1 -1
View File
@@ -22,7 +22,7 @@
"files": 17 "files": 17
}, },
"hyperframes-animation": { "hyperframes-animation": {
"hash": "07ca0a5ce9d127ac", "hash": "6c13cdce4f3a23c2",
"files": 121 "files": 121
}, },
"hyperframes-cli": { "hyperframes-cli": {