open-design/prompt-templates/video
Tom Huang e11e86d468
feat(hyperframes): land HTML-in-Canvas across web + skills (#866)
* feat(hyperframes): land HTML-in-Canvas across web + skills

Ships HTML-in-Canvas as a first-class HyperFrames video path:
- 7 new video prompt templates (liquid glass, iPhone+MacBook, portal,
  shatter, magnetic, liquid background, text-cursor reveal).
- skills/hyperframes/references/html-in-canvas.md, surfaced via
  SKILL.md description+triggers and the system-prompt pre-flight
  references list.
- ChatPane starter prompts now branch by project kind and video model,
  so the hyperframes-html surface shows HTML-in-canvas-shaped prompts
  instead of the generic prototype trio.
- NewProjectPanel propagates a picked template's model+aspect onto
  the project, and defaults videoModel to hyperframes-html when the
  hyperframes skill resolves for the video tab.

Polish bundled in the same branch:
- DesignFilesPanel empty state becomes a centered pill with a "New
  sketch" CTA; designFiles.empty copy simplified across 19 locales.
- Topbar project title + meta render on one baseline row separated
  by a middot.
- scripts/seed-test-projects.ts hardens daemon URL discovery against
  pnpm engine warnings on stdout.

* fix(new-project): preserve explicit video model choice across tab revisits

Latch a videoModelTouched guard once the user picks a model via the
dropdown or via a template that declares one, so the hyperframes-html
auto-default no longer silently overwrites the override when the Video
tab is re-entered.

Generated-By: looper 0.6.1 (runner=fixer, agent=claude-code)

* fix(i18n): register hyperframes html-in-canvas templates, category, and tags

Adds the seven new prompt-template ids, the "VFX / HTML-in-Canvas"
category, and the new tag set to the de/ru/fr i18n bundles so the
e2e localized-content coverage test passes.

Generated-By: looper 0.6.1 (runner=fixer, agent=claude-code)

* fix(daemon): inject html-in-canvas preflight for hyperframes runs

The contracts-side derivePreflight() learned about
references/html-in-canvas.md when this PR landed, but the daemon
copy at apps/daemon/src/prompts/system.ts kept the older five-ref
allowlist. server.ts:4138 wires composeSystemPrompt from the
daemon copy into live chat runs, so the main HyperFrames flow this
PR is meant to improve still wasn't auto-injecting the preflight
directive in production.

Mirror the html-in-canvas case into the daemon composer and lock it
behind a daemon-side test so the two copies cannot drift again on
this reference. The broader live-artifact preflight gap (artifact-
schema / connector-policy / refresh-contract) is pre-existing drift
and is intentionally out of scope here.

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix(web): restyle designs empty state as centered card on grid backdrop

Swap the horizontal pill for a stacked card and add a faint grid backdrop
so the empty designs surface reads as an intentional canvas rather than a
gap. Title now wraps instead of truncating; container is taller.

* fix(new-project): pin skillId to hyperframes when videoModel is hyperframes-html

When the Video tab resolves its skill it used to fall back to `list[0]?.id`
if no skill declared `default_for: video`. That list is built from an
unsorted `readdir()` in apps/daemon/src/skills.ts, so a freshly mounted
project could land on `video-shortform` even when the user had explicitly
chosen the HyperFrames-HTML model (or one of the new
`hyperframes-html-in-canvas-*` templates). The agent then ran without the
hyperframes SKILL body or its `references/html-in-canvas.md` preflight —
the exact regression PR #866 was meant to land.

`skillIdForTab` now pins to `hyperframes` whenever the current video model
is `hyperframes-html`, regardless of discovery order. Added a unit test
that mounts both `video-shortform` and `hyperframes` (with hyperframes
last, simulating the bad readdir order) and asserts the create payload
routes through `hyperframes`.

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-11 15:45:12 +08:00
..
3d-animated-boy-building-lego.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
a-decade-of-refinement-glow-up.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
ancient-guardian-dragon-rescue.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
ancient-indian-kingdom-fpv-video.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
animation-transfer-and-camera-tracking-prompt.json docs: fix spelling mistakes in CLI comment, spec, and video prompt (#300) 2026-05-02 22:32:26 +08:00
beat-synced-outfit-transformation-dance.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
character-intro-motion-graphics-sequence.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
cinematic-birthday-celebration-sequence.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
cinematic-dragon-interaction-flight.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
cinematic-east-asian-woman-hand-dance.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
cinematic-emotional-face-close-up.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
cinematic-marine-biologist-exploration.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
cinematic-music-podcast-and-guitar-technique.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
cinematic-route-navigation-guide.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
cinematic-street-racing-sequence-for-seedance-2.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
cinematic-vampire-alley-fight-sequence.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
crimson-horizon-sci-fi-cinematic-sequence.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
cyberpunk-game-trailer-script.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
forbidden-city-cat-satire.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
hollywood-haute-couture-fantasy-video-prompt.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
hunched-character-animation.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
hyperframes-app-showcase-three-phones.json feat(prompt-templates): HyperFrames video previews + provider badge + source filter (#293) 2026-05-06 18:09:30 +08:00
hyperframes-brand-sizzle-reel.json feat(prompt-templates): HyperFrames video previews + provider badge + source filter (#293) 2026-05-06 18:09:30 +08:00
hyperframes-data-bar-chart-race.json feat(prompt-templates): HyperFrames video previews + provider badge + source filter (#293) 2026-05-06 18:09:30 +08:00
hyperframes-flight-map-route.json feat(prompt-templates): HyperFrames video previews + provider badge + source filter (#293) 2026-05-06 18:09:30 +08:00
hyperframes-html-in-canvas-iphone-device.json feat(hyperframes): land HTML-in-Canvas across web + skills (#866) 2026-05-11 15:45:12 +08:00
hyperframes-html-in-canvas-liquid-background.json feat(hyperframes): land HTML-in-Canvas across web + skills (#866) 2026-05-11 15:45:12 +08:00
hyperframes-html-in-canvas-liquid-glass.json feat(hyperframes): land HTML-in-Canvas across web + skills (#866) 2026-05-11 15:45:12 +08:00
hyperframes-html-in-canvas-magnetic.json feat(hyperframes): land HTML-in-Canvas across web + skills (#866) 2026-05-11 15:45:12 +08:00
hyperframes-html-in-canvas-portal-reveal.json feat(hyperframes): land HTML-in-Canvas across web + skills (#866) 2026-05-11 15:45:12 +08:00
hyperframes-html-in-canvas-shatter.json feat(hyperframes): land HTML-in-Canvas across web + skills (#866) 2026-05-11 15:45:12 +08:00
hyperframes-html-in-canvas-text-cursor.json feat(hyperframes): land HTML-in-Canvas across web + skills (#866) 2026-05-11 15:45:12 +08:00
hyperframes-logo-outro-cinematic.json feat(prompt-templates): HyperFrames video previews + provider badge + source filter (#293) 2026-05-06 18:09:30 +08:00
hyperframes-money-counter-hype.json feat(prompt-templates): HyperFrames video previews + provider badge + source filter (#293) 2026-05-06 18:09:30 +08:00
hyperframes-product-reveal-minimal.json feat(prompt-templates): HyperFrames video previews + provider badge + source filter (#293) 2026-05-06 18:09:30 +08:00
hyperframes-saas-product-promo-30s.json feat(prompt-templates): HyperFrames video previews + provider badge + source filter (#293) 2026-05-06 18:09:30 +08:00
hyperframes-social-overlay-stack.json feat(prompt-templates): HyperFrames video previews + provider badge + source filter (#293) 2026-05-06 18:09:30 +08:00
hyperframes-tiktok-karaoke-talking-head.json feat(prompt-templates): HyperFrames video previews + provider badge + source filter (#293) 2026-05-06 18:09:30 +08:00
hyperframes-website-to-video-promo.json feat(prompt-templates): HyperFrames video previews + provider badge + source filter (#293) 2026-05-06 18:09:30 +08:00
live-action-anime-adaptation-water-vs-thunder-breathing-duel.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
luxury-supercar-cinematic-narrative.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
magical-academy-storyboard-sequence.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
modern-rural-aesthetics-healing-short-film-video-prompt.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
nightclub-flyer-atmospheric-animation.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
retro-hk-wuxia-film-aesthetic.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
seedance-2-0-15-second-cinematic-japanese-romance-short-film.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
seedance-2-0-80-year-old-rapper-mv.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
sequence-and-movement-instruction-for-martial-arts-video.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
soul-switching-mirror-magic-sequence.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
toaster-rocket-jumpscare.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
traditional-dance-performance.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
video-seedance-three-kingdoms-guanyu-slaying-yanliang.json feat(prompt-templates): add three Three Kingdoms ARPG Seedance 2.0 video templates (#212) 2026-05-01 22:27:38 +08:00
video-seedance-three-kingdoms-lyubu-yuanmen-archery.json feat(prompt-templates): add three Three Kingdoms ARPG Seedance 2.0 video templates (#212) 2026-05-01 22:27:38 +08:00
video-seedance-three-kingdoms-zhaoyun-cradle-escape.json feat(prompt-templates): add three Three Kingdoms ARPG Seedance 2.0 video templates (#212) 2026-05-01 22:27:38 +08:00
vintage-disney-style-pirate-crocodile-animation.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
viral-k-pop-dance-choreography.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00
wasteland-factory-chase.json feat(media): port generation workflow onto main (#12) 2026-04-30 22:44:00 +08:00