本文へ移動
cccskills
無料GitHub で公開

customize-composition

Validate the generated content against the composition's real variable schema and stage it for rendering. Use after generate-script and before render-and-return.

日本語の概要は準備中です。原文の説明を表示しています。

heygen-com/hyperframes-gemini-agentスター 3(GitHub 3 + cccskills 0)

実行スコア 未検証

インストール方法を見る

含まれるファイル(1)

  • SKILL.md4.0 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Customize the composition

Turn the content you wrote into a validated, render-ready bundle. This step catches mistakes (wrong color format, a value that doesn't match a declared variable) locally, so the render API never sees a bad payload.

You don't edit the composition's HTML. HyperFrames injects your variable values at render time — the composition reads them with window.__hyperframes.getVariables(). So "customizing" means producing a clean variables.json and staging the composition directory.

Steps

  1. Make sure your generated content is at /.agents/workspace/output/proposed.json (from generate-script).

  2. Validate it against the chosen composition and write the clean variables:

    python3 /.agents/workspace/scripts/customize.py \
      /.agents/workspace/compositions/<chosen-id> \
      /.agents/workspace/output/proposed.json \
      /.agents/workspace/output/variables.json
    
    • On success it writes /.agents/workspace/output/variables.json (your values plus declared defaults for anything you left out) and exits 0.
    • On failure it exits non-zero and prints exactly what's wrong (unknown variable, wrong type, a color that isn't a hex value, a number out of range). Read the message, fix proposed.json, and run it again. Do not skip ahead to rendering with an invalid file.
  3. Copy the chosen composition into the output area so the render step has a self-contained directory:

    rm -rf /.agents/workspace/output/composition
    cp -r /.agents/workspace/compositions/<chosen-id> /.agents/workspace/output/composition
    
  4. Bake in the voiceover. The renderer reads the <audio> src from static HTML, so substitute the synthesized URL into the staged composition (or strip the audio element if there's no narration):

    python3 /.agents/workspace/scripts/apply_voiceover.py \
      /.agents/workspace/output/composition \
      "$(cat /.agents/workspace/output/voiceover_url.txt 2>/dev/null)"
    

    Free-composition case: the shipped starters already have the voiceover <audio> slot. But if you free-authored the composition's HTML (custom video, not a starter), you MUST include the same slot or the video renders silent — apply_voiceover.py only substitutes a slot that exists. Put this inside the composition root, near the other timed elements, with the literal placeholder src (apply_voiceover fills it; it's stripped if there's no narration). Use a real, literal data-duration in seconds — your composition's own length — e.g. for a 10-second video:

    <audio id="voiceover" data-start="0" data-duration="10"
           data-track-index="0" data-volume="1" src="__VOICEOVER_URL__"></audio>
    
    • The ONLY placeholder is src="__VOICEOVER_URL__" (apply_voiceover substitutes it). Every other attribute must be a concrete value — do not leave a literal like <comp-duration> in the HTML; the renderer parses data-duration as a number, and a non-number is silently dropped → silent video. (You may also omit data-duration entirely; it then defaults to the audio's own length.)
    • Do NOT use data-has-audio or data-composition-variable — the renderer reads a static src; the placeholder + apply_voiceover is the working path.

Multi-turn edits

On a follow-up ("make the headline punchier", "switch to a dark background"), you don't need to start over:

  • Edit only the changed keys in /.agents/workspace/output/proposed.json.
  • Re-run customize.py to re-validate and rewrite variables.json.
  • Keep the same staged composition unless the user wants a different starter.

Output of this step

  • /.agents/workspace/output/variables.json — validated values.
  • /.agents/workspace/output/composition/ — the staged composition directory.

Then move to render-and-return.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

コメント

ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。

まだコメントはありません。最初のコメントを書いてみませんか。

送信するとすぐに公開されます。メールアドレスや電話番号などの個人情報は書かないでください。URL は 2 つまでです。

0 / 1000 文字

このフォームは reCAPTCHA で保護されており、Google のプライバシーポリシーと利用規約が適用されます。

同じリポジトリのスキル

Decide the actual content (headline copy, feature lines, colors, etc.) for the chosen composition's variables. Use after pick-composition and before customize-composition.

日本語の概要は準備中です。原文の説明を表示しています。

heygen-com/hyperframes-gemini-agent32026年6月11日 更新

Synthesize a spoken voiceover for the video from the narration script via HeyGen TTS. Use after generate-script and before customize-composition. Runs by default for every video unless the user asked for no narration.

日本語の概要は準備中です。原文の説明を表示しています。

heygen-com/hyperframes-gemini-agent32026年6月11日 更新

Choose the best starter composition for the user's request. Use this first, at the start of every new video request, before generating any content.

日本語の概要は準備中です。原文の説明を表示しています。

heygen-com/hyperframes-gemini-agent32026年6月11日 更新

Render the staged composition and return the playable video. Picks between HeyGen cloud render (default) and local in-sandbox render at runtime. Use as the final step, after customize-composition.

日本語の概要は準備中です。原文の説明を表示しています。

heygen-com/hyperframes-gemini-agent32026年6月11日 更新

heygen-com のスキルをすべて見る

このスキルの問題を報告する