The page promised "every prompt below has been run end-to-end", then a Note
admitted the Level 3 motion grammar was "stated once here rather than repeated in
all of them". So the printed prompts are not the prompts that produced the
embedded videos, and a reader copying one gets a different result with no way to
know why.
Rather than pretend, the page now says it plainly: each video came from the prompt
beneath it plus a shared preamble, copy both, and the preamble is labelled as the
thing to paste first. The title stays honest because the prompts *were* run — just
not alone.
Five prompts also ended on a frozen frame — "Hold on the card at the end.",
"settles on white, holds.", "then holds.", "hold.", "Hold the last 1.5s." — while
the same Note claimed every one asks for an ambient idle. motion.mdx:62 calls a
motionless hold the tell to avoid, and motion-graphics.mdx already carries the
corrected form of two of these. All five now end the way the rule says.
Thirty-two published videos were the raw render output. One 20-second catalog
preview was 60 MB at 25 Mbps — Blu-ray bitrate for a screen capture in a docs
page. Nothing autoplays, so no page shipped that silently, but a reader who
pressed play paid for it.
Re-encoded at 1280 wide, CRF 28, faststart, keeping audio where it existed.
Measured PSNR against the originals at ~38.5 dB, which is visually identical —
the first check I ran returned nothing and I mistook that for a pass, so this
number comes from a filter that actually worked.
Worth correcting one thing I said earlier: the catalog is not systemically
over-encoded. 190 videos, 0.36 GB, about 1.9 MB each. Six were over 10 MB. I
found two monsters and generalised from them.
Pages carrying more than 8 MB of video: 26 before, and the heaviest went from
140 MB to under 15 MB.
The durable fix is in generate-catalog-previews.ts, which had no delivery encode
at all — it published the render master directly. It has a web pass now, so the
next preview is born small instead of being cleaned up later.
Level 2 (anatomy, specification-dial, vocabulary, visual-specs, examples)
gets entry/exit bridges tying it into the Level 1 -> Level 3 arc, plus a
short note on the composition-structure mandate (0aaac7aa3 / PR #2599)
showing the framework enforces its own version of the prompt skeleton.
All existing prompts, renders, and tables are untouched.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Two real conflicts:
- docs/guides/prompting.mdx: modify/delete. This branch already deleted
it (383dd3568, replaced by the docs/prompting/* multi-page structure);
main separately fixed one line in the old file (cf7c1d760: lint+validate
-> the new consolidated `check` command). Kept the deletion — a
redirect to /prompting/overview already exists in docs.json — and
ported the same check-command fix forward into the two new-structure
pages that still had the stale lint+validate phrasing
(examples.mdx, rules-and-anti-patterns.mdx), so main's fix isn't lost.
- skills-manifest.json: auto-generated, regenerated fresh via
packages/cli/scripts/gen-skills-manifest.ts rather than hand-resolving
the JSON conflict markers.
Everything else auto-merged cleanly (no conflicts) — this pulls in
main's independent work since the branch diverged (media-use v2, the
check command consolidation, studio timeline updates, etc).
Co-Authored-By: Claude Opus <noreply@anthropic.com>
Moves all 28 example/validation renders to the docs' canonical media
host (s3://heygen-public via scripts/upload-docs-images.sh) and points
every embed at static.heygen.ai instead of HeyGenVerse asset URLs.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Runs validation builds for the primary prompt on every new feature page
(all pass lint/validate/render) and applies the fixes they surfaced:
lower-third exit-length note, block-adaptation framing on the anatomy
technique slot, code-typing per-character wording, caption-component
demo-content note, map determinism/merge-at-source notes, device-mockup
demo-UI expectation, variables img clarification. Embeds 29 unedited
renders next to their prompts (HeyGenVerse-hosted), including a
default-vs-overridden pair demonstrating variables.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Splits guides/prompting into a Prompt Guide nav group (overview + Fundamentals
+ Making it look good, 11 pages) with a redirect from the old URL. Applies
research-validated upgrades: beat content formula, before/after prompt rewrites
with engine rationale, single-variable iteration moves, absolute-target
calibration, camera/depth/pacing vocabulary, prerequisites gate.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>