diff --git a/docs/prompting/anatomy.mdx b/docs/prompting/anatomy.mdx
index 7ff58673f..4e8262839 100644
--- a/docs/prompting/anatomy.mdx
+++ b/docs/prompting/anatomy.mdx
@@ -3,6 +3,8 @@ title: Anatomy of a one-shot prompt
description: "The six-part skeleton — route, spec, beats, copy, technique, negatives — that removes the decisions agents most often get wrong."
---
+Your Level 1 prompts worked because the workflow filled the gaps for you — the palette, the pacing, the structure. This is Level 2: the skeleton is how you take that control yourself.
+
The [copy-paste examples](/prompting/examples) share one skeleton. Each part removes a decision agents most often get wrong on a first try:
```text
@@ -28,6 +30,9 @@ Assembled:
*Rendered from the prompt above, unedited.*
+
+ The skeleton isn't just prompting style — the framework enforces a version of it on itself. Since the composition-structure mandate (`0aaac7aa3`, PR #2599), a `hyperframes feedback` report on a visual defect requires a `COMPOSITION_STRUCTURE:` block — element census, attribute presence, timeline shape — auto-filled from the composition's own HTML; the CLI soft-warns (never blocks) when it's missing. Same idea as the six parts above: name the shape explicitly, and both you and the framework reason about it faster.
+
## The beat formula
@@ -70,3 +75,5 @@ The fixes that come up most, as before/after pairs — each exists because of ho
**Format-blind numbers.** An odometer needs fixed digit columns — "counts $0 → $4.2M" forces an awkward "$0.0M" start.
- ❌ `counts from $0 to $4.2M`
- ✅ `counts up to $4.2M`
+
+*Next: [The specification dial](/prompting/specification-dial) — how much of the skeleton to fill in, and when density stops being optional.*
diff --git a/docs/prompting/examples.mdx b/docs/prompting/examples.mdx
index 73aaa7a67..61923fdc5 100644
--- a/docs/prompting/examples.mdx
+++ b/docs/prompting/examples.mdx
@@ -3,6 +3,8 @@ title: Verified example prompts
description: "18 copy-paste prompts, every one run end-to-end to a finished video that passes check."
---
+This is the level's gallery, not a new lesson — read these with the vocabulary you just picked up: the [six-part skeleton](/prompting/anatomy), the [specification dial](/prompting/specification-dial), and the [word list](/prompting/vocabulary) or [full visual spec](/prompting/visual-specs) it maps to. Spot the skeleton parts in each prompt below as you read it.
+
Every prompt below has been run end-to-end and one-shots a finished video that passes `check`. Swap the copy, colors, and inputs for your own.
### With registry blocks and workflows
@@ -106,3 +108,5 @@ Every prompt below has been run end-to-end and one-shots a finished video that p
*Rendered from the prompt above, unedited.*
+
+*Next: [Motion that reads premium](/prompting/motion) — Level 3: the grammar rules behind why these moves read as professional instead of generic.*
diff --git a/docs/prompting/specification-dial.mdx b/docs/prompting/specification-dial.mdx
index b384eefca..585ec6e41 100644
--- a/docs/prompting/specification-dial.mdx
+++ b/docs/prompting/specification-dial.mdx
@@ -3,7 +3,7 @@ title: The specification dial
description: "Spec density controls how far the result drifts from what you imagined — not whether it works."
---
-How much you specify sets how much you delegate — it controls how far the result can drift from what you imagined, not whether it works. Mood-level prompts ("snappy", "cinematic") get a designer's interpretation: coherent, but the agent picks the colors, staging, and details. Dense specs — hexes, timestamps, easings, pinned techniques — get *your* frame.
+The [skeleton](/prompting/anatomy) tells you where each decision lives; this page tells you how hard to turn each one. How much you specify sets how much you delegate — it controls how far the result can drift from what you imagined, not whether it works. Mood-level prompts ("snappy", "cinematic") get a designer's interpretation: coherent, but the agent picks the colors, staging, and details. Dense specs — hexes, timestamps, easings, pinned techniques — get *your* frame.
Three settings:
@@ -15,3 +15,5 @@ Density never hurts — a stronger model just uses less of its own taste. It mat
- **3D**: any real depth, lighting, or camera motion → say **"Three.js via the adapter"**. CSS perspective transforms read flat on lighting-critical scenes, and Three.js is a supported seek-safe runtime.
- **Sequencing**: resolve simultaneity in the text. "The counter fades out and READY stamps in at 4s" produces an overlap; "fades out fully by 4.2s; at 4.2s READY stamps in" doesn't.
+
+*Next: [Vocabulary that changes output](/prompting/vocabulary) — the exact words that turn a mood into a specific framework setting.*
diff --git a/docs/prompting/visual-specs.mdx b/docs/prompting/visual-specs.mdx
index ce35b6a1b..202f795b0 100644
--- a/docs/prompting/visual-specs.mdx
+++ b/docs/prompting/visual-specs.mdx
@@ -3,7 +3,7 @@ title: High-fidelity looks
description: "Write a visual spec — every element named, positioned, colored, and timed — to carry a specific look in words."
---
-You can carry a specific look in words alone when the prompt reads like a designer's spec — every element named, positioned, colored, and timed. Compare a loose description ("dark night scene, mountain, glowing ring, title fades in") with a spec:
+This is the dial's third setting, [full visual spec](/prompting/specification-dial), pushed all the way: not a word from the [vocabulary](/prompting/vocabulary) list, but every element of a scene written out like a designer's spec. You can carry a specific look in words alone when the prompt reads like a designer's spec — every element named, positioned, colored, and timed. Compare a loose description ("dark night scene, mountain, glowing ring, title fades in") with a spec:
> 8-second 1920x1080 title card. Scene, back to front: #0a0e2a night sky with faint grain; a huge concentric ring system (5 rings, 1px strokes at 8% white opacity, innermost ring glowing #4a5fd9) centered 40% from the top; behind the rings an orange radial glow (#ff6a2b core → transparent, ~300px) igniting at the peak's right shoulder from 2s; a low-poly mountain (6-8 dark navy facets, #141a3d–#1e2650) filling the lower third, a white road S-curving up its face with a soft glow; thin horizontal cloud streaks (white, 6% opacity) drifting right at two heights; a man's silhouette, pure black, ~90px tall, bottom-right, fading in at 2.5s. At 3.5s "SHOWREEL" — thin geometric sans, ~140px, 0.35em tracking, white at 90% — fades in per letter across the ring center, the orange glow bleeding through the O. Slow 4% push-in across the full 8s. No audio.
@@ -26,3 +26,5 @@ The same density applied to a product-UI piece and a typographic piece — both
*Rendered from the spec above, unedited.*
+*Next: [Verified example prompts](/prompting/examples) — the level's gallery: 18 prompts to read with the vocabulary you now have.*
+
diff --git a/docs/prompting/vocabulary.mdx b/docs/prompting/vocabulary.mdx
index c15b72029..c0c7480c2 100644
--- a/docs/prompting/vocabulary.mdx
+++ b/docs/prompting/vocabulary.mdx
@@ -3,7 +3,7 @@ title: Vocabulary that changes output
description: "Natural-language adjectives the skills map to specific framework settings — easing, captions, transitions, audio, voices."
---
-The skills map natural-language adjectives to specific framework settings. Using the right word gets you the right result without specifying technical details.
+[The dial](/prompting/specification-dial) told you *how much* to specify; this page is the word list for the cheap-precision setting — style tokens that cost you nothing to say and remove real ambiguity. The skills map natural-language adjectives to specific framework settings. Using the right word gets you the right result without specifying technical details.
### Motion & easing
@@ -188,3 +188,5 @@ TTS runs locally via Kokoro (no API key needed). Describe the content and the ag
"Render at high quality"
"Export as transparent WebM"
```
+
+*Next: [High-fidelity looks](/prompting/visual-specs) — past single words, into full visual specs that carry an entire look.*