Communitygithub.com

finance-video-script

個人向けファイナンス動画の台本作成、バリデーション、自動設計を行うスキルです。フォーマットA(ストーリー)、B(ステップバイステップガイド)、S(Shorts/TikTok向けショートフォーム)の3形式に対応し、ビートシート、シーン執筆、リンティング、ビジュアルページマッピング、エクスポート(Markdown台本、prompts.json、SRT字幕)を提供します。

finance-video-script とは?

このスキルは、日本語(インドネシア語)の個人向けファイナンス動画向けに、顔出し不要のナレーション+画像形式の台本を自動生成・検証・設計します。フォーマットA(登場人物によるストーリー)、B(番号付きステップガイド)、S(30〜60秒のショート動画)の3形式に対応し、ビートシートの作成、シーンごとの執筆、構造・数字・根拠なき主張・免責・参照類似性の自動リンティング、ビジュアルページの自動マッピング(map-pages)、およびMarkdown台本、prompts.json、SRT字幕へのエクスポートを行います。主な利用シーンは、ユーザーがYouTube動画、Shorts、TikTok向けの節約・日々のお金・金銭習慣に関する台本、ストーリーボード、ビートシート、台本リンティング、画像・音声構成を依頼した場合です。このスキルはCLIツール`vengine_cli.py`を中心に動作し、Python 3.10+環境が必要です。ワークフローは、ブリーフ収集→プロジェクト初期化→ビートごとのシーン執筆(JSON)→リント→ビジュアルマッピング→エクスポート→(オプション)フルスクリーンAI画像生成→MP4動画レンダリング(インドネシア語TTS・字幕付き)までをカバーします。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Ferliand/finance-video-skill/tree/HEAD/skills/finance-video-script

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Finance Video Script

エージェント(あなた)が台本を執筆します。スクリプト scripts/vengine_cli.py はビートの枠組みを準備し、ビートごとのシーンを受け付け、スタイルガイドに基づくリンティングを実行します。

範囲

  • 含まれるもの: ブリーフ(ビジュアル style の選択を含む)→ ビートシート → ビートごとの台本(scenes.json)→ リント → ビジュアルページマッピング(map-pages)→ エクスポート(naskah.md、prompts.json、naskah.srt)→ AIフルスクリーン画像アセット生成(generate-images)→ インドネシア語TTS付きシネマティックMP4動画レンダリング(render)。
  • 含まれないもの: プラットフォームへの自動アップロード。

準備

  • Python 3.10+ で pip install pydantic pyyaml pillow edge-tts imageio-ffmpeg を実行するか、uv run を使用してください(依存関係は自動解決されます)。
  • <skill-dir> = この SKILL.md が置かれているフォルダ。すべてのコマンドは: python <skill-dir>/scripts/vengine_cli.py <command> ... と実行します(Windows では python の代わりに py を使用できます)。
  • スキルフォルダ内ではなく、ユーザーの作業ディレクトリから実行してください。プロジェクトは ./video-projects/<slug>/ に保存されます(--home DIR または環境変数 VENGINE_HOME で変更可能)。

ワークフロー

  1. ブリーフを収集する。 不明な点を質問: トピック、フォーマット(A = ストーリー、B = ステップバイステップガイド、S = 30〜60秒のショートフォーム)、尺、ビジュアル style(プリセット: claymation、flat-vector、3d-pixar、anime-ghibli、cinematic-realistic、watercolor、comic-book、dark-moody、または自由なカスタム記述)、対象視聴者、angka_kunci(キーナンバー)、フォーマットA の場合は登場人物(主人公、対比役、端役)も質問します。また、コメント/チャンネル登録を促す呼びかけや、言及してよい金融商品についても質問します。キーナンバーをでっち上げないでください。 数字はユーザーから得るか、自分で計算式を書いて算出するものです。
  2. 何かを書く前に references/panduan-naskah.md を読んでください。 それがスタイル、テクニック、数字/主張に関するルールの正本です。
  3. プロジェクトを作成する。 init <slug> --topic "..." --format A|B|S --minutes N --style <style> を実行し、ユーザーと一緒に brief.yaml を記入します。その後 build <slug> を実行し、ストーリーバイブルとビートシートを作成します。
  4. ビートごとに執筆する(すべてのビートが完了するまで繰り返し):
    1. beat <slug> で次のビートのタスクを表示: ブリーフ、登場人物、前3シーン、内容ポイント、シーンあたりの目標文字数、タグ条件。
    2. JSONシーンを video-projects/<slug>/draft/<beat>.json に書き込みます。image_prompt は各シーン(すべてのシーンがフルスクリーンでレンダリングされるため)に英語で記述します。
    3. add <slug> --beat <id> --file video-projects/<slug>/draft/<id>.json を実行します。
    4. エラーがある場合、ビートは保存されません。エラーメッセージに従ってJSONを修正し、再度 add を実行します。保存後にビートを書き直す必要がある場合は、--replace フラグを追加します。ユーザーが明示的に要求しない限り、--force は使用しないでください。
  5. 確認する。 status <slug> で進捗を確認し、lint <slug> で完全なチェックを実行します。台本を最終版として提示する前に、エラーはゼロでなければなりません。警告はユーザーと一緒に確認し、対応を決定します。
  6. ビジュアルページをマッピングする。 map-pages <slug> を実行し、references/design-video.md のカタログに従って page_type と props を自動的にマッピングします。
  7. エクスポートする。 export <slug> で次を生成:
    • video-projects/<slug>/out/naskah.md(幕ごとの正典台本)
    • video-projects/<slug>/out/prompts.json(全シーンのフルスクリーンイラスト用プロンプト、キャラクターとスタイル情報を含む)
    • video-projects/<slug>/out/naskah.srt(タイムスタンプ付き字幕)
  8. AIフルスクリーン画像アセットを生成する。 generate-images <slug> を実行し(オプションで --style <style>、--scene <number> で1シーンの再生成、--force ですべてを上書き可能)、Pollinations Flux からフルスクリーンAI画像を video-projects/<slug>/out/images/scene_XXX.png にダウンロードします。
  9. MP4動画をレンダリングする(オプション、要求された場合のみ)。 render <slug> を実行し(オプションで --voice id-ID-ArdiNeural または id-ID-GadisNeural、ストップモーション風 claymation スタイルの場合は --fps 12 も指定可能)、フルスクリーンの背景画像(ストップモーション / Ken Burns 効果、ビネット、数字/パンチラインのグラスモーフィズムオーバーレイ、カラオケ字幕)、インドネシア語ナレーション音声を合成して video-projects/<slug>/out/video.mp4 を生成します。

JSONシーンフォーマット

{"scenes": [
  {"narration": "戦略その一、お金は最初に分けておくこと。",
   "tags": ["SECTION"], "image_prompt": "clean modern workspace with warm morning sunlight beams", "characters": [], "mood": "warm", "notes": ""},
  {"narration": "毎日2万円を貯金すれば、1ヶ月で60万円が貯まります。",
   "tags": ["CALC"], "image_prompt": "neatly stacked glass savings jars with glowing coins on wooden desk",
   "motion_prompt": "Stop-motion claymation, slow subtle push-in camera, soft ambient light flicker", "characters": [], "mood": "neutral",
   "notes": "20.000 x 30 = 600.000"}
]}
  • narration: 読み上げ可能な形で、15~35語。PUNCH と SECTION シーンは最大14語で、単独で成立すること。
  • tags: PUNCH、BRIDGE、SECTION、CTA、NUMBER、CALC。ビートごとの条件は beat コマンドのタスクに記載。
  • image_prompt: 英語で記述。画像内にテキストや数字を入れないこと。各シーンに記述することを推奨(null の場合はエンジンが自動生成)。
  • end_image_prompt(オプション): シーン内で物体や照明が変化する場合(例:電灯スイッチを押して暗→明)、その End Frame 用に英語で記述(同じシードで生成)。
  • motion_prompt(オプション): シーンごとの動きの指示(例:zoom_flicker、bobbing、switch_light などストップモーションクレイアニメーション向け)。
  • characters: ストーリーバイブル内のキャラクターID(例:protagonis)、名前ではない。
  • mood: tense、neutral、warm、uplift、melancholy。
  • notes: CALC/NUMBER シーンの場合は A x B = C 形式の計算式が必須。主張の出典も記述すること。

絶対に破ってはいけないルール

  • オリジナルで書くこと。参考動画やトランスクリプトのコピーやパラフレーズは禁止。構造とテクニックのみを利用すること。
  • すべての数字を再計算すること。目標額へのタイムラインは明示的かつ正直にすること。
  • 出典のない統計(「90%の人が...」)や結果の約束は禁止。金融商品はあくまで例示とし、必ず免責文を添えること。
  • フィクションコンテンツ(フォーマットA)には「これはフィクションです」というラベルを付けること。
  • beats.json や scenes.json を手動で編集しないこと。add コマンドを使用し、バリデーションとシーン番号の自動再割り当てを確実に行うこと。

トラブルシューティング

  • Modul 'pydantic' belum terpasang → pip install pydantic pyyaml または uv run を使用。
  • Proyek ... tidak ditemukan → 作業ディレクトリを確認。プロジェクトはコマンドを実行したフォルダ内の ./video-projects/ にあるか、--home で指定された場所にある。
  • リント mirip_referensi → 参照トランスクリプトを .txt ファイルとして ./references/(または --refs DIR)に配置し、指摘された部分を自分の言葉で書き直す。
  • リント total_kata → 目標から大きく外れているビートでシーンを追加または削減し(status で確認)、add --replace を実行する。

関連スキル