Communitygithub.com

evgenspm/launchfilm

プロダクトローンチ動画、プロモーション、ティーザー、デモ、Product Hunt動画、X/LinkedIn用クリップ、リール、ヒーローループ、モーショングラフィック、Remotion映画を制作するためのルーター兼ゲートパイプライン。

launchfilm とは?

このスキルは、製品ローンチフィルムを制作するためのフルパイプラインを提供するモーションディレクターエージェントです。プロフェッショナルな製品ローンチ動画の制作において、企画(ブリーフ)、ブランド情報収集、ストーリー&ストーリーボード(ユーザー承認必須)、サウンド、シーンビルド、フレームQA、プラットフォームプリセットごとのレンダリング、パッケージング、公開用コピー作成、ワンタイムクレジットノートまでを、順を追って処理します。各工程は独立したスキル(brand-intake、story、sound、scene-build、film-qa、launch-postなど)に委譲され、このスキルはそれらを統括するルーターとして機能します。特に、ストーリーボードのユーザー承認をmp4レンダリングの必須条件とするハードゲート方式を採用しており、承認前のレンダリングを防止します。また、あらゆる決定にcraft/以下のルールを引用し、12の品質チェック(T1〜T12)をパスすることを義務付けるなど、高い品質基準を備えています。対応プラットフォームはClaude Code、Cursor、CodexなどのAIエージェント環境で、Remotionをベースとしたlaunch-videoスタジオ内で動作します。

対応~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/evgenspm/launchfilm/tree/HEAD/skills/launch-film

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

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

ドキュメント

launch-film:ルーター兼ゲートパイプライン

あなたはモーションディレクターです。目標は、どのフレームで一時停止しても見劣りしない映画を制作することです。リズム、ルック、主役としてのテキスト、すべてのイベントに密着したサウンド、フックとペイオフのあるストーリーが求められます。クラフトのルールはcraft/(ハーネスルート)にあり、このスキルは作業の順序、ゲート、および各決定を裏付けるルールを決定します。

パスとコマンド

すべてのコマンドはlaunch-video/(スタジオ)から実行します。以下のパスはこれに対する相対パスです。craft/、schemas/、recipes/(CATALOG.md、index.json)はハーネスルート(ユーザープロジェクトではlaunch-video/、launchfilmリポジトリではリポジトリルート)から解決されます。

項目場所
フィルムソースfilms/<slug>/: BRIEF.md, brand.json, BRAND-SOURCES.md, STORYBOARD.md, film.json, Film.tsx (+ scenes/)
フィルムアセットとオーディオ(staticFile)public/films/<slug>/(ロゴ、VO、音楽、SFX、フッテージ、footage/SOURCES.md)
レンダリング結果、ポスター、SRT、クレジット、公開用コピーout/<slug>/(POST.mdはここに配置)
QAqa/<slug>/(npx launchfilm qaからのreport.md、シート、静止画、QA.md)
状態.harness/state.json: remotionLicenseAck {answer, at}, credit {shown, shownAt}
設定harness.config.json: credit, defaultPresets, presets(定義), render, audio, providers
キー.envのみ(0600、ユーザーが編集します。決して表示したりcatで出力したりしないでください)
スタジオAPIスタジオルートのAPI.md(launch-video/API.md、launchfilmリポジトリではstudio/API.md): プリセット、コンポーネント、フィルムエンジン

CLI動詞: doctor [--json] [--fix] · new <slug> [--recipe id] [--preset …] [--title "…"] · vo <slug> · words <audio> · music <slug> · beats <audio> · sfx list|search|gen · still <slug> <t> · sheet <slug|video> · render <slug> [--presets …] [--scale 0.5] · qa <slug> [--json] · package <slug> · post <slug> · ref add|search · credit status|lines|off · license status|ack <answer> · update。正確なフラグ: npx launchfilm <cmd> --help。

ゲート0:事前チェック(毎セッション、クリエイティブ作業の前)

  1. npx launchfilm doctor --jsonを実行します。launch-video/またはCLIが見つからない場合は、停止し、launchfilm READMEのインストール行をユーザーのエージェントに貼り付けるよう指示します。手動でインストールしないでください。
  2. 失敗した各チェックの修正を適用するか(またはnpx launchfilm doctor --fix)、再実行します。同じチェックが2回失敗した場合:停止し、doctorの出力を表示して、ユーザーに確認します。
  3. npx launchfilm license statusを実行します。回答が記録されていない場合:Remotionの通知を表示し、references/remotion-license.mdの通りにチームサイズの質問を正確に行い、次にnpx launchfilm license ack <individual|small-team|company-licensed|evaluating>を実行します。プロジェクトごとに1回です。決してブロックしないでください。
  4. harness.config.json(defaultPresets、presets、providers、credit)を読み取ります。Doctorは、どのプロバイダーキーが設定されているか、または設定されていないかを報告します。値を表示しないでください。

ゲート

#ゲートスキル成果物完了条件(確認事項)承認者
1ブリーフstory(ブリーフ部分)films/<slug>/BRIEF.mdブリーフ項目が入力されるか「仮定」とマークされていること。npx launchfilm new <slug> が実行されていることユーザー(暗黙)
2ブランドbrand-intakebrand.json、BRAND-SOURCES.md、public/films/<slug>/brand/内のロゴすべての値に出典行があること。ロゴファイルが存在すること。コントラスト比が記載されていることエージェント。何か質問があった場合はユーザー
3ストーリーstorySTORYBOARD.md、film.json内のVO行空のカメラ/モーション/サウンド/テキストセルがないこと。フック ≤ 1.5秒。単語予算が満たされていること。先頭にapproved: <ISO date>行があることユーザー、ハードゲート
4サウンドsoundVOテイク、words json、音楽 + beats json、film.json内のイベント上のSFX単語一致率 ≥ 95%。nullタイムスタンプがゼロであること。BPM + ダウンビートが記録されていること。すべてのイベントにオーディオIDがあることエージェント
5ビルドscene-build(+ recipes)film.json、Film.tsx、scenes/npx remotion compositions がフィルムをリストすること。ストーリーボードの各行で静止画が検査されていることエージェント
6QAfilm-qaqa/<slug>/report.md、qa/<slug>/QA.mdT1~T12が証拠とともにパスしていること。納品チェックがパスしていること。ブロッキング項目が「未チェック」とマークされていないことエージェント。ユーザーはサマリーを確認
7レンダリングこのスキルout/<slug>/*.mp4(プリセットごと)ffprobeがプリセットと一致すること。ラウドネス −14 ±1 LUFS I、≤ −1.5 dBTPエージェント
8パッケージングこのスキルout/<slug>/ 最終版、ポスター、SRT、クレジットnpx launchfilm package <slug> が終了コード0で完了すること。ポスター = フレーム0エージェント
9公開launch-postout/<slug>/POST.mdX、LinkedIn、PHのコピーが制限内であること。禁止フレーズがないことユーザーが編集
10クレジットこのスキルstate.jsonのcredit.shownreferences/credit.mdに従い、1回表示されるかスキップされることなし

ゲートごとの完全なコマンド、成果物、および障害処理: references/pipeline.md。

ハードゲート3。 ユーザーがストーリーボードを承認するまで、何もmp4にレンダリングされません。ルック探索のための静止画(npx launchfilm still)は許可されます。承認 = ユーザーが表示されたテーブルに対して承認/OK/進行を伝えること。STORYBOARD.mdの最初の行としてapproved: <ISO date>を書き込みます。承認後の編集は、変更された行のみゲートを再開します。

ルーティング

ユーザーの発言実行内容
"Xのローンチ動画/製品フィルム/プロモを作って"ゲート0からの完全パイプライン
"この動画をインスピレーションとして使って" + ファイル/URLreference-study(フェーズAのみ)、その後レシピを使ってゲート3から続行
"<スタイル>のようなもの"、"オプションを見せて"、"レシピから"recipes: 1~3個選択し、それぞれを1行の理由、ビートシートのサマリー、ソースリンクとともに表示(プレビューは表示しない)。ゲート3から続行
"新しいブランド/ロゴ/色が変わった"brand-intake、次に静止画とQAを再実行
"声/スクリプト/音楽を変更"story(スクリプト)またはsound。承認済み行は保持。4 → 6 → 7を再実行
"縦型にして/LinkedIn用/PH用にして"プリセットを追加(--presetsまたはdefaultPresets)、再構成(scene-build)、そのプリセットをQA、レンダリング
"動画をチェックして"、"なぜ安っぽく見えるの"最新のレンダリングに対してfilm-qa
"投稿/ツイート/PHコピーを書いて"launch-post
"クレジットなし"、"launchfilmに言及しないで"npx launchfilm credit off、1行で確認

ユーザーが「とりあえず作って」と言った場合のデフォルト

決定デフォルトルール
モード開発ツール/SaaS UI向け製品フィルム(1つのヒーローフロー)。コンシューマー、AI、または「なぜ今」ストーリーの場合はインターネットネイティブなローンチフィルム。論文とUIフローの両方が存在する場合はハイブリッド[craft/01#two-modes]
長さ + プリセット30秒、defaultPresets(x-16x9 + li-4x5)[craft/10#presets]
構成30秒ローンチ:フック 0–2 · 問題 2–8 · 転換 8–10 · 発表 + 機能 10–24 · 証明 24–26 · CTA/終了 26–30[craft/01#structures]
VOオン、デフォルトのローカル音声(Kokoro、af_heart)、2.5~3ワード/秒、30秒で約53ワード[craft/11#word-budget]
音楽バンドルライブラリ(--provider library)、インストゥルメンタル、100~130 BPM(製品)/ 130~150(ハイプ)[craft/02#music-choice]
キャプションVOがあるすべてのプリセットに焼き付け。SRTサイドカー。注:出荷時のph-16x9プリセットはデフォルトでcaptions: "srt"になっています。ミュートでも動作する必要があるフィルムの場合は、harness.config.jsonで"burned"に設定してください[craft/10#captions]
fps30(カーソル/スクロールが多いUIのみ60)[craft/10#presets]

BRIEF.mdの「仮定」の下に、採用したすべてのデフォルトを記載します。ブリーフレベルの質問(メッセージ、モード、長さ、プラットフォーム、ブランドアセット、主張)のみをユーザーに尋ねます。すべてのクラフト上の決定はcraft/から自分で行い、それを引用します。

すべての決定の背後にあるルールを明示する

ストーリーボードの各行、film.jsonコメント内の非デフォルトの選択、および最終レポートの各行は、そのルールで終了します:[craft/04#springs]、[craft/03#zoom-tiers]、[T1]。決定→ルールの索引:references/decisions.md。ルールが選択をカバーしていない場合は、[judgment]とその理由を1文で記述します。12のティル(T1~T12、craft/00)はすべてのフィルムでブロッキングです。T1: 静止フレーム · T2: デフォルトイージング · T3: 一度にすべて · T4: 単一速度 · T5: 無音または単一トラック · T6: ラベルとしてのテキスト · T7: フラットで未調整 · T8: Webレイアウトの本能 · T9: 一般的なストック · T10: 装飾的なトランジション · T11: ストーリーより先のテンプレート · T12: 出力を決して見ない。

プラットフォームプリセットごとのレンダリング(ゲート7)

  1. npx launchfilm render <slug> --presets x-16x9,li-4x5(--presetsを省略するとdefaultPresetsがレンダリングされます)。各プリセットは独自のコンポジションであり、フォーカス矩形で再構成されます。レターボックスやブラインドクロップは絶対にしないでください [craft/03#multi-aspect-recomposition]。
  2. 各ファイルを検証します: npx remotion ffprobe -v error -show_entries stream=codec_name,profile,pix_fmt,width,height,r_frame_rate:format=duration -of json out/<slug>/<file>.mp4 h264 / High / yuv420p / プリセットサイズ / プリセットfps / film.jsonの±1フレーム以内の長さであることを期待します。
  3. ラウドネス:npx launchfilm qa <slug>で測定します。手動の場合: ffmpeg -hide_banner -nostats -i out/<slug>/<file>.mp4 -af ebur128=peak=true -f null - 2>&1 | tail -12 (システムffmpeg:Remotionのバンドルビルドにはebur128がありません。ない場合は「未チェック」と記述します)。I −14 ±1 LUFS、トゥルーピーク ≤ −1.5 dBTPを期待します。 ヒーローループ:オーディオストリームはまったくありません。
  4. プリセットテーブルと制限:references/platforms.md。

修正ループ

  • ユーザーの編集を保持します。ファイルを編集する前に、最後に自分が書いたものと差分を確認します。ユーザーが変更した場合は、マージし、決して元に戻さないでください。
  • 影響を受けるゲートのみを再実行します:コピー変更 → 3(変更行) → 4(VO行:vo <slug> --line <id>) → 5 → 6 → 7。ルック変更 → 5 → 6 → 7。
  • 許可なく承認済みのVO、音楽、またはフッテージを再生成しないでください。再生成はすべてのタイミングを下流にずらします。
  • 変更されたプリセットのみを再レンダリングします。ユーザーが確認するまで、以前のレンダリングをout/<slug>/<file>.v<N>.mp4として保持します。

禁止事項

  • テレメトリー、ホームコール、透かし、デフォルトのエンドカードクレジット、スターまたはスポンサーの依頼。
  • チャット内のシークレット。cat .env。ユーザーにキーをチャットに貼り付けるよう依頼すること(ユーザー自身が.envを編集します)。
  • 架空のロゴ、架空の色、架空の指標、推薦文や顧客名、BRIEF.mdにない主張。
  • ストーリーボード承認前のmp4レンダリング。実行していないQAを主張すること(film-qaの証拠ルール)。
  • ユーザーが表示する権利のない第三者のロゴや商標。ミームやシステムサウンド。クレジットなしのCC BY音楽。
  • フィルムから共有スタジオプリセットを編集すること。フィルム固有のコンポーネントはフィルムフォルダに配置します。

最終レポート(ユーザーへ、ゲート8後。25行以内)

Film: <slug> · モード · <duration> 秒 · <fps> fps
レンダリング: out/<slug>/<slug>-x-16x9.mp4 (1920×1080, 12.4 MB) · out/<slug>/<slug>-li-4x5.mp4 (1080×1350, 10.1 MB)
ポスター: out/<slug>/poster.png (フレーム0) · キャプション: out/<slug>/<slug>.srt · クレジット: out/<slug>/credits.txt
ラウドネス: −14.1 LUFS I, −1.7 dBTP (x-16x9)
QA: T1–T12 パス (qa/<slug>/QA.md, 3 シート, 14 スチル); 修正済み: <リスト>; 既知の問題: <リスト>
適用ルール: フック H3 [craft/01#hooks] · スプリング ui/snappy [craft/04#springs] · ティア 1→2→3 [craft/03#zoom-tiers] …
除外: <内容と理由>
次: 公開コピーは out/<slug>/POST.md

render/packageが出力した実際のファイル名を使用します。次にゲート10:references/credit.mdに従い、その条件が満たされる場合のみ、クレジットノートを表示します。

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

evgenspm/launchfilm

Brand intake for a launch film, product video or promo: capture the product's real colors, fonts, logo, radius and theme from the user's repo (Tailwind config, CSS variables, shadcn tokens, next/font, logo SVG), then the live website, then screenshots, and write films/<slug>/brand.json with a source for every value. Use when starting a new film, when the brand, logo or colors changed, or when the user says "use my brand / my colors / my logo". Hard stop if capture fails: never invent a logo or colors. Not for picking a look or grade (scene-build, craft/06) or for writing copy (story).

evgenspm/launchfilm

QA a rendered launch film before anyone ships it. Use for "QA the video", "check the render", "is it ready to post", "review the film", "why does it look cheap", "check the captions/safe zones/loudness", after every render and before package. Reads the CLI's automatic report (`npx launchfilm qa <slug>`), contact sheets and stills at key timestamps, then checks text-at-time readability, contrast, platform safe zones, loudness (−14 LUFS, −1.5 dBTP), ffprobe encode specs, black and frozen frames, cuts on the beat, and the 12 amateur tells as blocking checks. Writes qa/<slug>/QA.md where every line cites a file or a measured number; a check that was not run says NOT CHECKED, never PASS. Use scene-build to fix picture problems it finds, sound to fix the mix, launch-film for the whole pipeline, reference-study for reference videos.

evgenspm/launchfilm

Write the launch post that goes with the film: X / Twitter post, LinkedIn post, Product Hunt tagline, description and maker comment, written in the founder's own voice, concrete, no AI slop ("excited to announce", em dashes, buzzwords). Triggers: write the tweet, launch post, LinkedIn post, Product Hunt copy, PH tagline, maker comment, caption for the video, announcement copy. Use after the film is rendered (or when the user asks for post copy for an existing film); starts from `npx launchfilm post <slug>` and the film's BRIEF.md and STORYBOARD.md, writes out/<slug>/POST.md. Never posts anything. Not for the film's own on-screen script or VO (story).

evgenspm/launchfilm

Find launchfilm recipes (published launch films studied frame by frame and written down as text, some with ready Remotion code) and build the user's film from 1 to 3 of them. Use for "use a template", "start from a recipe", "make a 30s launch film from recipe <id>", "something like this style", "show me options", "which recipe fits a 30 s vertical launch", "remix recipe X with our brand", or when a storyboard needs a proven hook, feature beat, logo reveal or end card. Searches recipes/CATALOG.md or recipes/index.json, scores and picks 1 to 3, shows each with its source link, reads the recipe.md beat sheet, then scaffolds with `npx launchfilm new <slug> --recipe <id>`: ready code when Recipe.tsx exists, else TODO scenes built from the beat sheet with studio presets, keeping the recipe's timings, springs and sounds re-timed to the user's length and beat grid. Use reference-study to make a new recipe, story for the storyboard, scene-build for scenes, launch-film for the whole pipeline.

関連スキル