ワンクリックで
videomaker-composition
VideoMaker MaterialSpec 交卷约束、composition shell、沙箱与 lint 前置要求。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
VideoMaker MaterialSpec 交卷约束、composition shell、沙箱与 lint 前置要求。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Debug VideoMaker composition material author (internal ReAct or external ACP Cursor/Claude/Codex) using on-disk traces, tool-runs, model-calls, scratch artifacts, and material-review reports. Use when analyzing slow/failed slot authoring, gate NL revise, lint/MCP bypass, in-session review, ACP Internal error, or when the user names projectId/generationId/slotId/traceId and asks to diagnose agent behavior from logs.
槽位画面审美、反 AI 视觉指纹与内容驱动动效。触发:任何 template=composition 或 HF 包装 slot。
| name | videomaker-composition |
| description | VideoMaker MaterialSpec 交卷约束、composition shell、沙箱与 lint 前置要求。 |
material_author / HyperFrames 槽位包装任务template=composition 的 MaterialSpeccomposition_lint_draft画面审美与反 AI 指纹见 skills/private/videomaker-visual-craft/SKILL.md(与本文并列必读)。
输出 JSON 必须符合 material-spec schema:
{
"template": "composition",
"durationSec": 3,
"composition": {
"bodyHtml": "<div id=\"card\" class=\"card\"><span id=\"line1\">…</span></div>",
"styles": ":root { --vm-bg:#1a1410; --vm-fg:#f5f0e8; --vm-accent:#d4a017; } .card { color: var(--vm-fg); }",
"timelineScript": "tl.from('#line1', { opacity: 0, y: 20, duration: 0.4 }, 0); tl.set('#card', { autoAlpha: 1 }, 0);",
"registryBlocks": []
}
}
Shell 已经提供
#root。bodyHtml只写#root内部子节点,禁止再写id="root"。
tl — 禁止在 timelineScript 里写 const tl、let tl 或 gsap.timeline()tl.set(...) / tl.from(...) / tl.to(...) 即可window.__timelines['main'] = tl;,且 main 必须与根节点 data-composition-id 一致opacity: 0 与 gsap.from({ opacity: 0 }) 叠用(会 0→0 永不显示)。入场隐藏只交给 GSAP from,CSS 保持默认可见当 assetRefs 含 video 或 bodyHtml 含 <video>:
<video> 必须有 唯一 id(如 id="base-video")src 的 <video> 必须有 data-start="0"(或正确入点)data-start 的 <video> 必须 muted(口播走全局 TTS;仅当底片本身需出声时才加 data-has-audio="true")data-duration 等于槽位秒数提交前用 composition_lint_draft 验证以上项。
<!doctype html> 或 <html> 文档 — shell 由 builder 注入javascript: URL、eval、fetch 到外部域bodyHtml 仅允许槽位片段(挂在 shell #root 下的子节点;禁止 id="root")<script src=...> 加载外部库 — 使用 shell 已提供的 GSAP / HyperFrames 适配器画布由 renderTarget / aspectRatio 决定。按画幅选择字号与安全区:
| aspectRatio | 画布 | 主标题 | 副标题 | 安全边距 | 构图 |
|---|---|---|---|---|---|
| 9:16 | 1080×1920 | 72–96px | 40–52px | 左右 8% / 上下 12% | hf_native 竖屏居中;source_then_polish overlay 贴底/顶 |
| 16:9 | 1920×1080 | 48–64px | 28–36px | 6% | 横屏 lower-third 优先 |
| 1:1 | 1080×1080 | 56–72px | 32–40px | 7% | 方形居中卡片 |
slotTiming)durationSec 必须等于 slotTiming.durationSectimelineScript 动画应铺满整段时长,末帧 hold,禁止动画结束后黑场<video> 的 data-duration 与 slotTiming.durationSec 一致creativeBrief / finishIntent / slot.creativeDirection / packagingRequirements → 执行规格,禁止 verbatim 写入 DOM 或 params.title/bullets。voiceoverContext.line / storyboardScene.script)→ 仅 timing/情绪参考;成片字幕由 timeline 轨烧录,HF 槽位内禁止任何口播文字。renderPolicy.allowedDisplayCopy ∪ authorContract.allowedDisplayCopy ∪ displayCopyPolicy.allowed(合并白名单);无此项时默认 零可读文本,用动效/图形/底片表达。<span> 包在完整句内。finishBrief + video 底片)当 payload 含 finishBrief.completionMode=source_then_polish 且 assetRefs 含 video:
<video> 必须保持可见,占主视觉层;overlay 在上层params.assetRefs,URI 相对 asset_rootregistryBlocks 须来自 registry_list 或已安装 catalogskill_view 相关 HF skills,再 composition_lint_draft,最后 submit_material_spec若无法产出安全 composition,可回退 legacy 模板(benefit-card / title-lower-third / ken-burns),但仍须通过 schema 校验。