Communitygithub.com

finance-video-script

Menulis, memvalidasi, dan merancang naskah video keuangan pribadi berbahasa Indonesia untuk channel faceless (narasi suara + gambar/halaman) dalam tiga format, A (cerita bertokoh), B (panduan langkah bernomor), dan S (short-form Shorts/TikTok 30–60 dtk).

O que é finance-video-script?

Skill ini dirancang untuk membantu agen AI menulis naskah video keuangan pribadi berbahasa Indonesia untuk channel faceless (tanpa host muncul di kamera). Skill ini mendukung tiga format naskah: format A (cerita dengan tokoh), format B (panduan langkah bernomor), dan format S (short-form untuk YouTube Shorts/TikTok durasi 30-60 detik). Alur kerja dimulai dari mengumpulkan brief pengguna (topik, format, durasi, gaya visual, audiens, angka kunci, dan tokoh untuk format A), membaca panduan gaya dari referensi, membuat proyek, menulis naskah per beat dengan validasi otomatis, memeriksa naskah dengan lint, memetakan halaman visual, mengekspor naskah ke format Markdown, prompts JSON, dan subtitle SRT. Skill ini juga dapat menghasilkan gambar AI full-screen serta merender video MP4 lengkap dengan voiceover Bahasa Indonesia dan efek sinematik. Aturan ketat diterapkan: angka harus dihitung ulang, klaim wajib disertai sumber, konten harus orisinal, dan instrumen keuangan harus disertai disclaimer. Platform yang didukung meliputi lingkungan Python dengan dependensi seperti pydantic, pyyaml, pillow, edge-tts, dan imageio-ffmpeg, serta dapat dijalankan dengan `uv run`.

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

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Finance Video Script

Agen (kamu) yang menulis naskah. Skrip scripts/vengine_cli.py menyiapkan kerangka beat, menerima scene per beat, dan menjalankan lint terhadap panduan gaya.

Cakupan

  • Termasuk: brief (termasuk pilihan style visual) → beat sheet → naskah per beat (scenes.json) → lint → pemetaan halaman visual (map-pages) → ekspor (naskah.md, prompts.json, naskah.srt) → generate aset gambar AI full-screen (generate-images) → render video MP4 sinematik lengkap dengan TTS Bahasa Indonesia (render).
  • Belum termasuk: upload otomatis ke platform.

Persiapan

  • Python 3.10+ dengan pip install pydantic pyyaml pillow edge-tts imageio-ffmpeg, atau jalankan lewat uv run (dependensi otomatis).
  • <skill-dir> = folder tempat SKILL.md ini berada. Semua perintah: python <skill-dir>/scripts/vengine_cli.py <perintah> ... (di Windows boleh py menggantikan python).
  • Jalankan dari folder kerja pengguna, bukan dari dalam folder skill. Proyek disimpan di ./video-projects/<slug>/ (ubah dengan --home DIR atau variabel VENGINE_HOME).

Alur kerja

  1. Kumpulkan brief. Tanyakan yang belum jelas: topik, format (A = cerita, B = panduan langkah, S = short-form 30–60 detik), durasi, style visual (preset: claymation, flat-vector, 3d-pixar, anime-ghibli, cinematic-realistic, watercolor, comic-book, dark-moody, atau deskripsi custom bebas), audiens, angka_kunci, dan khusus format A tokoh (protagonis, pembanding, figuran). Tanyakan juga ajakan komentar/subscribe dan instrumen keuangan yang boleh disebut. Jangan mengarang angka kunci; angka berasal dari pengguna atau dari hitungan yang kamu tulis rumusnya.
  2. Baca references/panduan-naskah.md sebelum menulis apa pun. Itu sumber kebenaran gaya, teknik, dan aturan angka/klaim.
  3. Buat proyek. init <slug> --topic "..." --format A|B|S --minutes N --style <style>, isi brief.yaml bersama pengguna, lalu build <slug> (membuat story bible dan beat sheet).
  4. Tulis per beat (ulangi sampai semua beat selesai):
    1. beat <slug> menampilkan tugas untuk beat berikutnya: brief, tokoh, tiga scene sebelumnya, poin isi, target kata/scene, dan syarat tag.
    2. Tulis JSON scene ke video-projects/<slug>/draft/<beat>.json. Isi image_prompt berbahasa Inggris untuk setiap scene (karena seluruh scene dirender full-screen).
    3. add <slug> --beat <id> --file video-projects/<slug>/draft/<id>.json.
    4. Jika ada error, beat tidak disimpan. Perbaiki JSON sesuai pesan lalu add lagi. Jika beat perlu ditulis ulang setelah tersimpan, tambahkan --replace. Jangan memakai --force kecuali pengguna meminta.
  5. Periksa. status <slug> untuk progres, lint <slug> untuk pemeriksaan penuh. Error harus nol sebelum naskah ditunjukkan sebagai final; warn dibaca dan diputuskan bersama pengguna.
  6. Petakan Halaman Visual. Jalankan map-pages <slug> untuk memetakan page_type dan props secara otomatis mengikuti katalog references/design-video.md.
  7. Ekspor. export <slug> menghasilkan:
    • video-projects/<slug>/out/naskah.md (naskah kanonik per babak)
    • video-projects/<slug>/out/prompts.json (prompt ilustrasi full-screen siap generate untuk seluruh scene lengkap dengan karakter & style)
    • video-projects/<slug>/out/naskah.srt (subtitle ber-timestamp)
  8. Generate Aset Gambar AI Full-Screen. Jalankan generate-images <slug> (bisa tambah --style <style>, --scene <nomor> untuk mengulang satu scene, atau --force untuk menimpa semua) untuk mengunduh gambar AI full-screen (Pollinations Flux) ke video-projects/<slug>/out/images/scene_XXX.png.
  9. Render Video MP4 (opsional/jika diminta). Jalankan render <slug> (bisa tambah --voice id-ID-ArdiNeural atau id-ID-GadisNeural, serta --fps 12 untuk gaya stop-motion claymation) untuk menggabungkan gambar latar full-screen (dengan gerak stop-motion / Ken Burns, vignette, overlay glassmorphism angka/punchline, dan subtitle karaoke), audio voiceover Bahasa Indonesia, menjadi video-projects/<slug>/out/video.mp4.

Format JSON scene

{"scenes": [
  {"narration": "Strategi kesatu, uang harus dipisah di awal.",
   "tags": ["SECTION"], "image_prompt": "clean modern workspace with warm morning sunlight beams", "characters": [], "mood": "warm", "notes": ""},
  {"narration": "Kalau setiap hari kamu menyisihkan dua puluh ribu rupiah, dalam sebulan terkumpul enam ratus ribu rupiah.",
   "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: siap dibacakan, 15–35 kata. Scene PUNCH dan SECTION maksimal 14 kata dan berdiri sendiri.
  • tags: PUNCH, BRIDGE, SECTION, CTA, NUMBER, CALC. Syarat per beat ada di tugas dari beat.
  • image_prompt: bahasa Inggris, tanpa teks atau angka di dalam gambar; direkomendasikan diisi pada setiap scene agar latar full-screen sesuai konteks (jika null, engine otomatis meracik prompt latar kontekstual).
  • end_image_prompt (opsional): bahasa Inggris untuk End Frame jika scene memiliki transisi perubahan objek/pencahayaan (mis. sakelar lampu ditekan dari gelap ke terang; di-generate dengan seed yang sama).
  • motion_prompt (opsional): instruksi gerak per scene (mis. zoom_flicker, bobbing, switch_light untuk animasi stop-motion claymation).
  • characters: id tokoh dari story bible (mis. protagonis), bukan nama.
  • mood: tense, neutral, warm, uplift, melancholy.
  • notes: wajib berisi rumus A x B = C untuk scene CALC/NUMBER; tuliskan juga sumber klaim.

Aturan yang tidak boleh dilanggar

  • Tulis orisinal. Jangan menyalin atau memparafrasekan video atau transkrip referensi; hanya struktur dan teknik yang dipakai.
  • Hitung ulang semua angka. Timeline menuju angka tujuan harus eksplisit dan jujur.
  • Tanpa statistik tanpa sumber ("90% orang..."), tanpa janji hasil. Instrumen keuangan hanya sebagai contoh dan wajib disertai kalimat disclaimer.
  • Konten fiksi (format A) diberi label "cerita ilustrasi".
  • Jangan mengubah beats.json atau scenes.json dengan tangan; gunakan add, supaya validasi dan penomoran ulang scene tetap berjalan.

Pemecahan masalah

  • Modul 'pydantic' belum terpasang → pip install pydantic pyyaml atau pakai uv run.
  • Proyek ... tidak ditemukan → periksa folder kerja; proyek berada di ./video-projects/ pada folder tempat perintah dijalankan, atau di --home.
  • Lint mirip_referensi → letakkan transkrip referensi sebagai .txt di ./references/ (atau --refs DIR); tulis ulang bagian yang dilaporkan dengan kata-katamu sendiri.
  • Lint total_kata → tambah atau kurangi scene di beat yang menyimpang jauh dari target (lihat status), lalu add --replace.

Habilidades Relacionadas