情報グラフィック口述動画
配置とディレクトリ構造(アーキテクチャ v1.11)
- デリバリルートに
AGENTS.md(本テンプレートの使い方)が存在すること。本スキルは.agents/skills/remotion-infographic-video/に固定配置。 tests/はリポジトリルート(.agents/と同階層)にあり、開発CI用であり、スキル実行時には不要。スキルのみをコピーする際は複製しない。.envはこのスキルディレクトリ内のみに配置し、リポジトリルートには置かない。
使用前の準備(コピーしてすぐ使う)
- コピー方法:
- リポジトリ全体:デリバリリポジトリをクローン/コピーしてルートを開く(ルートの
AGENTS.mdとtests/を含む)。 - スキルのみ:
.agents/skills/remotion-infographic-video/をターゲットプロジェクトの同名パスにコピーする(scripts/とその下のlib/を含む)。 - スキルパッケージ自体に
pipやnpmインストールは不要。scripts/はPython標準ライブラリのみ使用し、.envを設定後、ステップ0〜5を実行可能。
- リポジトリ全体:デリバリリポジトリをクローン/コピーしてルートを開く(ルートの
.envの設定: 本スキルディレクトリでcp .env.example .envを実行し、.envを編集する:- 必須:
DOUBAO_TTS_API_KEY=(=の後にキーを記述。引用符不要) - オプション:
DOUBAO_SPEAKER=(デフォルト音声は VOICE 参照) .envは.gitignoreで無視されている。キーをチャットに貼り付けたり、他のTTSエンジンに変更してはならない。
- 必須:
- 環境要件(スクリプトが自動インストールすることはない): Node 18+、Python 3、ffmpeg、ffprobe、インターネット接続。
- 制作開始: ユーザーが「作成開始」または同等の意図を示した場合:
- 最初に
python3 scripts/check_env.pyを実行する(--skill-dir <スキルパッケージの絶対パス>オプション可能。デフォルトはカレントディレクトリ)。 - 終了コード3:
.agents/skills/remotion-infographic-video/.env(またはスキルパッケージの絶対パス下の.env)にDOUBAO_TTS_API_KEYを設定するよう促す。ユーザーが「設定完了」と返答したら再実行する。それまでは音声合成もプロジェクト構築も行わない。 - チェック通過後:メッセージ内にすでにテーマがあればそのまま固定ステップへ進む。そうでなければテーマを1回だけ尋ねる(必要に応じて「縦長」を明記可能。デフォルトは横長1920×1080、縦長1080×1440。ルールは LAYOUT 参照)。プラットフォーム名は画角に影響しない。
- 最初に
絶対ルール
- APIキーは本スキルディレクトリの
.env(デリバリリポジトリでは.agents/skills/remotion-infographic-video/.env)のDOUBAO_TTS_API_KEYからのみ読み取る。ユーザーにチャットでキーを貼らせたり、他のTTSエンジンに変更したり、出力にキーを表示してはならない。 - 公開・アップロードは行わない:成果物は動画ファイル、サムネイル、文案ファイルのみを生成する。
- 数字には必ず出典が必要。画面上の数字には出典ソースのアイコンを表示。イラストには「イメージ」と明記する。
- 各スクリプトのstdout最終行はJSON形式のサマリーとする。終了コードで処理を分岐する: 3 キー不足(
.env設定を促し停止)、4 認証失敗(停止)、5 先行成果物の修正、6 失敗項目のみ再実行、7 修復モード。
固定ステップ
- 事前チェック:
python3 scripts/check_env.py。終了コード3の場合は上記の手順で.envを設定後、再実行。 - テーマ決定: topic、slug、画角を確定し、
<slug>/job.jsonを作成(画角指定がない場合は横長をデフォルトとする)。ユーザーがプラットフォームを指定した場合はplatformsに記録し、それ以外は PUBLISH のデフォルトプラットフォームに従う。 - 台本作成:
script.md(## Sxx セグメント名+- [01] テキスト {context: … | rate: 0 | pause: 300})とsources.md(末尾にjsonブロック)を作成し、python3 scripts/validate.py sources <slug>/script.md <slug>/sources.mdを実行。出典のない数字は削除するか、出典を追加する。 - 音声合成: 環境に同等の入出力を持つMCP音声合成ツール(tts_synthesize)が利用可能であればそれを使用し、そうでなければ
python3 scripts/tts_doubao.py <slug>/script.md --out-dir <slug>/voiceを実行。両者の出力する timeline.json は同一スキーマ(assets/schemas/)で検証する:python3 scripts/validate.py timeline <slug>/voice/timeline.json。失敗したセンテンスは--onlyで再実行。 - ストーリーボード:
storyboard.jsonを作成(各センテンスが少なくとも1つのショットでカバーされ、セグメントトランジションとショットの出現方法は列挙値から選択)。python3 scripts/validate.py storyboard <slug>/storyboard.json --timeline <slug>/voice/timeline.jsonを実行。 - 素材:
python3 scripts/fetch_asset.pyのaddで各素材を登録。pruneで未使用素材を削除。権利が不明な素材は使用禁止。 - プロジェクト構築:
python3 scripts/scaffold_project.py --job <slug>/job.json --out <slug>/projectでプロジェクトを生成し、サンプル(assets/example/)を参考に各セグメントのシーンを作成。次にpython3 scripts/build_timeline.py --timeline <slug>/voice/timeline.json --storyboard <slug>/storyboard.json --subtitles <slug>/voice/subtitles.json --manifest <slug>/assets-manifest.json --project <slug>/projectを実行。その後、プロジェクト内でnpm ci。 - セルフチェック:
bash scripts/check_project.sh < slug>。失敗した場合はcheck/report.jsonを読んで修正後、最大3回まで再実行。それでも失敗した場合は停止して報告。 - レンダリング:
bash scripts/render.sh <slug>で動画(<slug>/out/video.mp4)とサムネイル(<slug>/publish/cover_<W>x<H>.png)を生成し、自動検証。 - 公開文案と納品: PUBLISH に従い、各ターゲットプラットフォーム向けに
publish/<platform>/title.txt、description.txt、タグはプラットフォームごとにpublish/<platform>/tags.txt(1行1タグ)を作成。python3 scripts/validate.py publish <slug>、python3 scripts/validate.py deliverable <slug>、python3 scripts/validate.py leak <slug>を実行。最後にpython3 scripts/fetch_asset.py credits-diff --manifest <slug>/assets-manifest.json --slug-dir <slug>でクレジット表示の確認を行う。
スタイルの絶対ルール概要
- カラー、フォントサイズ、アニメーション値は
assets/tokens.jsonのみから取得。背景色は #070A0F をベースとする。シーンコードに色値を直接記述しない(STYLE)。 - 出現アニメーションは統一してスプリング。セグメントトランジションは5種類、ショット出現は3種類。ストーリーボードで指定された列挙値に従う(MOTION)。
- 使用するコンポーネントはレジストリ内の15個のみ。リスト外のものはプロジェクト内で新規作成し、tokens +
useLayout()を使用する(COMPONENTS)。 - レイヤーは background / scene / hud / subtitle の4層のみ。エンドクレジット画面はない。動画の長さ = 音声の長さ。
- 乱数は
random(seed)のみ使用。Math.randomは禁止。 - レイアウトはキャンバスの幅と高さから導出する。
src/内でキャンバスサイズを記述できるのはsrc/layout/presets.tsのみ(LAYOUT)。 - 台本の記法は SCRIPT、音声合成パラメータは VOICE、素材のライセンスとクレジットは ASSETS を参照。
禁止事項
- いかなるプラットフォームにも公開・アップロードしない。
- キーを漏洩しない:表示しない、成果物に書き込まない、ユーザーにチャットで貼らせない、他のTTSエンジンに変更しない。
- 権利が不明な素材を使用しない。クレジット、説明文、タイトルにリンクを掲載しない。
- データを捏造しない:出典のない数字は台本に含めず、画面にも表示しない。
- テーマ決定後、納品までの間はユーザーに質問したり、素材を要求したりしない。
納品
deliverable.json の内容を一度に報告する:動画ファイルパスと長さ、画角、サムネイル、各プラットフォームのタイトルと説明文、タグ、素材クレジット、出力ディレクトリ、備考。