slideshow

GitHub

用于构建 HyperFrames 交互式幻灯片演示,支持场景切换、片段揭示、分支热点及演讲者模式。适用于需要可导航演示文稿而非视频导出的场景。

skills/slideshow/SKILL.md heygen-com/hyperframes

Trigger Scenarios

用户希望创建或转换交互式演示文稿 需要将现有页面转换为幻灯片结构 请求使用 presenter mode 或 speaker notes

Install

npx skills add heygen-com/hyperframes --skill slideshow -g -y
More Options

Use without installing

npx skills use heygen-com/hyperframes@slideshow

指定 Agent (Claude Code)

npx skills add heygen-com/hyperframes --skill slideshow -a claude-code -g -y

安装 repo 全部 skill

npx skills add heygen-com/hyperframes --all -g -y

预览 repo 内 skill

npx skills add heygen-com/hyperframes --list

SKILL.md

Frontmatter
{
    "name": "slideshow",
    "description": "Build a HyperFrames slideshow to present live - slides, fragment reveals, branching hotspots and presenter mode with speaker notes, served by `hyperframes present` - or turn an existing page into one. Use when the person wants a deck or presentation rather than a rendered video."
}

Plugin installs: Before setup or freshness commands, follow plugin execution rules when this skill is inside a HyperFrames plugin.

HyperFrames slideshow

A slideshow is a normal composition (the /hyperframes contract applies) plus one JSON island that says which scenes are slides and how they connect. The deliverable is a running deck, not an MP4.

What changes from a video project

  • Each slide is a top-level scene in the composition file: data-composition-id, data-start, data-duration, data-label, data-width, data-height. There is no master root composition wrapping them.
  • One island per composition, near the top of <body>, written in the HTML (never generated by script; present reads the file statically):
<script type="application/hyperframes-slideshow+json">
  {
    "slides": [
      { "sceneId": "hook", "notes": "Pause on the number." },
      {
        "sceneId": "problem",
        "fragments": [11.0, 15.0],
        "hotspots": [
          {
            "id": "h1",
            "label": "Where does $40B come from?",
            "target": "market-detail",
            "region": { "x": 55, "y": 60, "w": 40, "h": 20 }
          }
        ]
      }
    ],
    "slideSequences": [
      { "id": "market-detail", "label": "Market sizing", "slides": [{ "sceneId": "mkt-math" }] }
    ]
  }
</script>
  • sceneId equals a scene's data-composition-id (or give startTime/endTime). notes are presenter-only. ttsScript, ttsAudioUrl and ttsDurationMs are reserved and not wired yet.
  • Fragments are absolute timeline times (the same clock as data-start, not offsets inside the slide) within the slide's [start, end]. Navigation seeks, it never plays: each hold state must look right when the timeline is seeked straight to that time. A slide without fragments enters at a rest frame inside it.
  • Branch slides are ordinary scenes listed only in slideSequences, never in the main slides array. A hotspot's target is a sequence id; region is a percentage box (omit it for a full-slide button). Back returns to the slide that held the hotspot.
  • Text the audience must read is at least 40 px at 1920×1080. Before hand-building any named visual, search npx hyperframes catalog --query "<the visual, in English>" --json: it ranks the whole registry with nothing installed.

Porting an existing page

  • Keep the source's look, motion, interactions and media behaviour; port its widgets, players and visualizers rather than approximating them.
  • Movement the page drove by scroll, wheel or a camera layer becomes a camera move from one focal point to the next on slide navigation, never a page visibly scrolling. Keep each move direct, without reversals the source doesn't make.
  • Screenshots, posts, charts, code and any image with readable text are evidence: keep their aspect (object-fit: contain) and check all four edges for crops.
  • Every copied <video>/<audio> needs data-start and data-duration (data-has-audio="true" when its sound plays), and no preload="none". Custom media chrome reads the native element's events and currentTime, never its own timer.
  • Hidden stacked slides need opacity: 0, visibility: hidden and pointer-events: none together, or an invisible layer swallows clicks.

Present and hand off

  • Never render a deck to MP4: render keeps only the first scene and truncates silently. For stills, snapshot --at each slide.
  • Run npx hyperframes check --json until it is clean. The slideshow rule checks that every sceneId resolves, every hotspot target exists, fragments sit inside their slide, and main-line slides don't overlap.
  • Serve it with npx hyperframes present <project-dir> and hand over the URL it prints: "Click Present, or press P, to open the audience tab."
  • The project's root index.html should open as a working deck: <hyperframes-slideshow> around <hyperframes-player src="…">, with the raw composition in a subfolder if needed. The component owns Present (P), Prev/Next, the counter, global mute, fullscreen, swipe, hotspots, presenter notes (editable, kept per deck) and stopping media on slide exit. Don't build your own versions of any of these.
  • Screen sharing: in Google Meet share the audience tab, which keeps rendering in the background. In Zoom drag the audience tab into its own window and share that; a fully covered window freezes.
  • A deck opened from the bare player bundle without present needs workarounds: references/standalone-harness.md.

Version History

  • 34a8d48 Current 2026-11-02 22:56

    重构技能结构,将部分核心技能折叠为指南并更新路径;精简核心条目内容以优化体积和安装效率。

  • 9566f96 2026-10-19 05:57

    修正技能文档中的错误事实与断裂路径,解决跨技能矛盾,更新插件安装规则及 Figma 源文件处理流程。

  • a80d733 2026-09-22 11:13

    重构技能以保持 hyperframes-core 作为 HTML 契约;修复组件目录搜索逻辑,确保在手动构建样式前优先检索注册表;恢复相机配方和根尺寸设置。

  • 097d901 2026-08-27 19:55

    修正了技能更新机制,要求在执行前必须获得用户明确确认,禁止静默自动运行 npx 更新命令。

  • 634df5a 2026-08-19 22:13

    修复嵌入字幕分发作者专属路径问题,删除未引用的测试集和主题文档,并移除 SKILL.md 中重复的媒体清理代码块。

  • 9d4c349 2026-07-24 22:18

Same Skill Collection

.agents/skills/changelog-video/SKILL.md
.claude/skills/changelog-video/SKILL.md
registry/blocks/canopy-part-title/SKILL.md
registry/blocks/code-slice-hero/SKILL.md
registry/blocks/cuboid-carousel/SKILL.md
registry/blocks/frost-sequence-camera-orbit/SKILL.md
registry/blocks/glass-shard-title/SKILL.md
registry/blocks/orbit-card/SKILL.md
registry/blocks/wireframe-portal-title/SKILL.md
skills/faceless-explainer/SKILL.md
skills/figma/SKILL.md
skills/general-video/SKILL.md
skills/hyperframes-cli/SKILL.md
skills/hyperframes-core/SKILL.md
skills/hyperframes-creative/SKILL.md
skills/hyperframes-keyframes/SKILL.md
skills/hyperframes-registry/SKILL.md
skills/hyperframes/SKILL.md
skills/media-use/SKILL.md
skills/music-to-video/SKILL.md
skills/pr-to-video/SKILL.md
skills/product-launch-video/SKILL.md
skills/remotion-to-hyperframes/SKILL.md
skills/reverse-any-video/SKILL.md
skills/talking-head-recut/SKILL.md
.agents/skills/captions-overlay/SKILL.md
.agents/skills/cut-the-curve/SKILL.md
.agents/skills/motion-doctrine/SKILL.md
.agents/skills/oversized-cursor/SKILL.md
.agents/skills/seam-craft/SKILL.md
.claude/skills/captions-overlay/SKILL.md
.claude/skills/cut-the-curve/SKILL.md
.claude/skills/motion-doctrine/SKILL.md
.claude/skills/oversized-cursor/SKILL.md
.claude/skills/seam-craft/SKILL.md
skills/embedded-captions/SKILL.md
skills/hyperframes-animation/SKILL.md
skills/hyperframes-audio/SKILL.md
skills/hyperframes-studio/SKILL.md
skills/motion-graphics/SKILL.md

Metadata

Files
0
Version
34a8d48
Hash
4525f1a0
Indexed
2026-07-24 22:18

inicio - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-11-03 10:48
浙ICP备14020137号-1