con un clic
videomaker-composition
VideoMaker MaterialSpec 交卷约束、composition shell、沙箱与 lint 前置要求。
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
VideoMaker MaterialSpec 交卷约束、composition shell、沙箱与 lint 前置要求。
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Basado en la clasificación ocupacional 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 校验。