Communitygithub.com

vos launch-kit — 1テイク→PH/ストア/SNS

vosjsスキル:リリースと同時にメディア出荷。1テイクからデモ・ストア・PH・SNS・OGを生成しkit.jsonで検証。

ストア/SNS とは?

Launch Video手順3:完成テイク→YouTube/ストア/PH/SNS/OG。kit.jsonで検証。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/vosjs/skills/tree/main/skills/launch-kit

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

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

ドキュメント

Launch kit — リリースと共にメディアを出荷する

あなたはリリースのメディアを制作しているのであって、動画を制作しているわけではありません。出荷される機能のワンテイクが、リリースに必要なすべてのアセットになります。それは宛先ごとに構成、サイズ調整、検証され、編集可能なドキュメントとして保持されるため、次のリリースは再撮影ではなく再レンダリングで済みます。すべてはデータです。プレビューはレンダリングそのものです。4Kまでのすべての解像度で無料でエクスポートでき、透かしは入りません。エンジンはMITライセンスです。

このキットは、vos deliverという1つの動詞でレンダリングされます。その元となるドキュメントには、作品のテイストが込められています。すべてのカードは「ポスター」ドキュメントのフレームです(プレーンなテイクであり、そのカードがポスターの意図する位置に配置され、単語とマークがクリップとして配置されています)。すべてのカットは、vos planがそのドキュメントに提案したモーション(エントランス、エンドカード、キャプション、BGM)を再生します。静止画の瞬間はストーリーから生まれ、2人の検証者が言葉で問題点を指摘します。deliverが何かを合成することはありません。あなたの判断は、3つのファイル(BRAND.md、LAUNCH.md、actions.json)、1つの選択(カードが従うポスターを、棚からどれにするか)、そして1つの決定(どの瞬間がストーリーか)にのみ注がれ、手動での切り抜きには決して使いません。

セットアップ

npm i -D @vosjs/cli    # vos CLI (テイクパイプライン含む)
```\n`ffmpeg` がPATH上にあると、CLIが出力しないもの(Product HuntのホバーGIF)をカバーし、`vos validate --picture` が動画の最初と最後のフレームを読み取れるようになります。MP4レンダリングにはシステムのChromeが必要です(`--format mp4`)。

## 1. リリースを確立する

録画を始める前に、以下の5つの事実を確定させます。

- **何が出荷されたか** — 機能、バージョン文字列、それが動作するURL。
- **どの宛先か** — チャンネルごとのスペック表はデータとして出荷されます。
  `node_modules/@vosjs/cli/schema/channel-specs.json` を参照します(CWS、Product Hunt、
  X、LinkedIn、GitHub、OG、YouTube。サイズ、数、バイト数と時間の上限、
  ワードポリシー、宛先ごとの安全な矩形領域、そして各画像のジャンル
  `screenshot` は実際のページ、`card` はポスタードキュメントのフレームです。
  `references/channel-specs.md` は同じデータを表形式で示しています)。
  **これをループ処理し、手動で寸法を入力しないでください。** このリリースがどのチャンネルに出荷されるかを尋ねます。デフォルトは前回のリリースのセットです。JSONには `verified` 日付が含まれています。四半期以上経過している場合は、出荷前にチャンネルのドキュメントをスポットチェックしてください。
- **ブランド** — アセットを作成する前に解決します。決してレイアウトのパレットをデフォルトにしないでください。プロジェクトフォルダの `BRAND.md` がブランドキットです(フロントマターにカラーロール `bgA bgB bgC ink accent`、
  フォントロール `fontDisplay fontBody`、`logoUrl`(タイル状のアイコンではなく、ベアマーク)、`wordmark`、そして `look` を含みます。これはプレゼンテーションであり、サイト自身の基盤が求めるものです。
  ペーパーサイトなら `plate`、ダークサイトなら `dark`、それ以外は `gradient`)。
  ない場合は、`vos brand <url>` がサイトの `/design.md`、`/llms.txt`、そしてページ自体からそれを目撃し、すべてのロールとその出典を書き出します。それを読み、ページが言えないことを修正し、`vos recipe push BRAND.md --folder <slug>` で保存します。テイクの横(またはテイクの親フォルダ)に配置します。`plan` と `deliver` はフラグなしでそこを読みます。
- **ワード** — テイクの横にある `LAUNCH.md` が、リリースのロールをフロントマターに持ちます。フラグなしで読み取られます。

  ```yaml
  headline: "2〜6語を\n最大3行で"   # ポスターとエンドカード
  kicker: "PRODUCT  V2.1"       # なし = ワードマークと--release
  music: upbeat                 # カタログスラッグまたはムード。なし = 無音
  entrance: tilt-in             # tilt-in | pull-out | rise | none
  endCard: on                   # 公式のEndカードテンプレート。noneでオフ。タイトル、vos id、またはdoc.jsonで別のものを指定
  with: "Split cover, landscape@end"   # オプション:任意のテンプレートをアンカー(@end | @start | @step:<id> | @<秒数>)に配置
  captions: on                  # noneでビートキャプションをオフ
  poster: poster/landscape      # オプション:すべてのカードの元となるドキュメント
  poster-tile: poster/tile      # オプション:単独で名前付けされた1つのクラス

ヘッドラインはリリースが発する1行です。\n を使って複数行にわたって記述します。vos plan はカットのモーションを提案する際にモーションロールを読み取り、plan --style は言葉をポスターにタイプします。deliver は poster ロールのみを読み取り、ない場合はテイクの横にある poster/<class>/doc.json を探します。

  • レイアウト — カードが従うポスターで、棚に置かれます。vos.so の公式 Poster families プロジェクトには、アスペクトクラス(landscape, square, portrait, tile)ごとに1つの雛形が、その POSTER.md とともにあり、各クラスがいつ採用されるべきかが記述されています。自分で作るプロジェクトも同じ形式です。vos folder pull poster-families でそれらをvos idとともに一覧表示します。レイアウト名や --layout フラグはありません。雛形がそのままレイアウトであり、データによってコピーされます。

宛先がビューポートを決定します。すべての録画に先立ってです。映像解像度 = ビューポートです。1280×720のテイクで1920×1080の動画スペックを誠実に満たすことはできません。1080pキットの場合は1920×1080で、宛先がそれより大きい場合は2560×1440で録画します。

作業がvos.soプロジェクト(フォルダ)に置かれる場合は、最初にプルし、その中のすべての .md レシピを読みます。LAUNCH.md はこのループを、CUT.md がカットを束縛するように束縛し、POSTER.md はポスターを束縛します。レシピはこのスキルのデフォルトを上書きします。

2. ソース: 実物のワンテイク

キットは製品から作られます。モックアップからではありません(ストアポリシーも同意しています。誤解を招くリスティング画像は削除対象の違反です)。

録画前に、セットのようにコンテンツをステージングします。 プレミアムなローンチ画像とスクリーングラブを分けるものの半分は、画面上に何があるかです。actions.jsonは、誇らしいスクリーンショットが見せるであろう状態に製品を残さなければなりません。すなわち、ラベルが入力され、実際のデータのように見え、機能がストーリーの途中にある状態です。ポスターやストアの静止画が切り出される前に。deliver は空白の瞬間(壁紙、空のキャンバス)をドロップし、その旨を伝えますが、あなたのためにセットをステージングすることはできません。

ストーリーを actions.json に記述します。 ステップには id を与えます(瞬間や再レンダリングループはこれでアドレス指定します)。ビートに値する箇所には caption を与えます(2〜8語。plan は、言葉を受け取るカット上で、そのステップの瞬間に下3分の1として提案します)。ナビゲートするクリックの後には、読み込みのための wait を入れます。静止画はそのwaitの終わりに読み取られるため、フレームはスピナーではなくページを示します。

  • 新しい録画: product-video スキルのループ(探索 → actions.json → vos record --strict → doc.json を調整)。actions.json をリポジトリに保持します。それは次回のリリースのスクリプトです。
  • 出荷された機能がログインの背後にある場合: スクリプトの前にセッションを確定します。product-video スキルのラダーに従います(詳細は https://vos.so/llms-full.txt の「Sessions」を参照)。リポジトリに既にあるテスト認証から1つを作成するか、カメラオフでフォームをスクリプト化するか、人間が一度サインインする(vos session open <url> --name <app>、その後 --session <app>)か、拡張機能で録画してあなたがカットします。--storage-state <file> を付けて録画します。リリースはバージョンごとに再録画するため、人間を必要としない段階を選びましょう。それが次回のリリースでも機能するものです。本番パスワードを入力したり受け入れたりしないでください。状態ファイルはテイクの外、gitの外に保管します。デモアカウントから録画してください。実際の顧客データを表示するストアリスティングは削除対象のミスです。
  • 既存のテイク: vos-cut スキルでカットします。ホストされたテイクは vos fetch <vosId|watch-url> --out dir --media でローカルに取り込みます。
  • 撮影済み製品の新しいバージョン: vos record で同じテイクに再録画します(映像は置き換えられ、カットは doc.prev.json として存続します)。その後 vos plan take --reuse で新しい録画にカットを再タイミングし、追従できなかったものを報告します。決してゼロから始めないでください。すべての修正は doc.json への編集です。

他の場所でレンダリングされたモーショングラフィックセグメントは入力です。それはドキュメント内でメディアオーバーレイクリップまたは背景としてドロップインされます。逆はありません。

3. ポスターとモーション: ドキュメントとして

カットはデータによって動きます。 新しい vos plan は、カットのモーションを LAUNCH.md のロールから doc.json に提案します。カードのエントランス、エンドカード(vos.so の公式 End card テンプレート、最後に配置されます。カードは最後のフレームの1秒間のフリーズの後退し、次にマーク、ヘッドラインが単語ごとに到着し、リリース行とURLが地面に落ち着きます。そのクリップは from: endcard とスタンプされます)、with: がアンカーに名前を付けるテンプレート、ステップごとのキャプション、BGM、そしてテイクにマイクがない場合のすべてのプレス時のクリック音。すべての提案は安定したIDを持ちます(bed、click-<n>、caption-<step>)。既存のカットでは --motion が再提案します。リフレッシュは決して行わないため、削除されたエンドカードは削除されたままです。テンプレートは、棚にあるプレーンなテイクであり、そのクリップは安定したIDを持ちます。参照は、公式棚のタイトル("End card"、"Split cover, square")、vos id、またはディスク上のドキュメントです。スタジオでテイクを開けば、見たものがキットがレンダリングするものです。

vos plan take --motion --release v2.1

ポスターはドキュメントであり、プレーンなテイクです。 カードは frame.inset によって配置され(負の値で端からはみ出します)、チルトトラックの静止ポーズによって傾けられ、言葉とマークはオーバーレイクリップとして安定したID(stage-title、stage-kicker、stage-brand、stage-mark)を持ち、最後のセグメントには後続の hold があり、その開始が静止画です。リリースが必要とするアスペクトクラス(landscape, square, portrait, tile)ごとに1つずつ、テイク自身の映像から作成します。

cp -r take poster/landscape            # または vos duplicate <take vosId> してから fetch --media
vos plan poster/landscape --style <poster vosId|doc.json> --headline "…" --kicker "…"
vos frames poster/landscape --frame <rest>; vos validate poster/landscape
vos push poster/landscape --folder <project-slug> --label "poster, landscape"

plan --style <poster> は、レイアウト(カードの配置とプレゼンテーション、LAUNCH.md またはフラグからリリースの言葉がパッチ適用されたステージクリップ、残りの傾き、ホールド)をテイクにコピーし、テイク自身のアスペクト、クローム、カットを保持します。BRAND.md の logoUrl からのブランドのマークは stage-mark のために brand/ にフェッチされ、追従できなかったものは報告されます。セグメントを瞬間(ズームの頂点、クリック後の落ち着いたレスポンス)に絞り込みます。これにより、残りは機能であり、コールドオープンではありません。ホールドまで製品はカード内で再生され続けることができます。次に、静止フレームを見ます。ポスターはプッシュされる前に目で判断されます。人間がスタジオで開き、カードをドラッグし、その場で言葉を打ち直し、ホールドを移動します。vos pull --media でそれをダウンロードし、次のリリースでは、自身のプッシュされたドキュメントから同じ plan --style で言葉を付け替えます。

4. デリバリー

vos deliver take --to cws,producthunt,x,linkedin,og,github,youtube --release v2.1

1回のパスで、動詞があなたが手動で決めていたことを決定します。

  • 瞬間。 静止時間はストーリーから来ます。各ステップの終わりと落ち着き(クリックに続く待機の終わり)、次にズームの頂点、そしてスプレッド。各候補は実際のページとして一度読み取られます。空白はドロップされ、同じフレームの2つは1つにまとめられ、ドロップされたものはすべて skipped[] に報告されます。--times step:<id>[+offset] で1つを指定します。
  • スクリーンショット は実際のページで、フルブリードです。ストアのスチルとギャラリーは、デフォルトでカットのズーム、チルト、クロームを削除します(--composed で保持し、ピクチャーパスは拒否します)。

Individual skills in this repo

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

vos-authoring

Author a vos animation program (VosConfigJson) from scratch or debug one — declarative configs compiling into deterministic Three.js + GSAP-dialect animations on the MIT vos engine (@vosjs/core), validated locally with compileVosConfig. Covers the schema, dialect rules, 2D overlay elements, shaders, and params/presets knobs. Use when asked to write a vos animation program, create a VosConfigJson, make a programmatic motion graphic or logo animation, or fix a config that fails to compile or lint.

vos-create

Create vos programs in the user

vosjs/product-video

Record and produce the demo video of a website, app, or feature with the vos CLI — the agent scripts the click path (actions.json), the recording auto-plans zooms, and every editing decision is data in doc.json, so fixes are edits and re-renders, never re-recordings. Renders are deterministic; export is free up to 4K with no watermark. Use when asked to make a product video, demo video, screen recording of a URL or feature, or a marketing clip, including a product behind a login (the session ladder: mint one from the project's own test auth before asking anyone), or when a feature was verified in agent-browser and that walk should become a take. A whole release's asset set (store listing, Product Hunt gallery, social cuts) is the launch-kit skill, which records through this one.

vosjs/vos-cut

Cut a screen recording (a vosso take) into the product video it was recorded for, from its evidence, with the vos CLI — read the take's digest (the moments the cursor track says mattered, each with a footage frame and a crop), narrate beats, edit doc.json by exception over the planners, verify with stills, and push an attributed version the human fine-tunes at vos.so; every edit is a data patch, so a re-cut never re-records. Use when asked to edit or cut a recording, make a product video or what's-new clip from a take, cut it like the last one, or cut a series of recordings in one style.

vosjs/vos-footage

Hand a Remotion, HyperFrames, or any video composition a clean captured clip of the real product — recorded and auto-zoomed with the vos CLI, delivered as full-bleed footage with no chrome, and always backed by an editable take on the maker's shelf, which the handoff says. Use when a composition needs real product footage, app or site b-roll, "capture our app for the video", or a screen-recorded segment to drop into another tool's timeline.

vosjs/vos-migrate

Turn an existing Loom, Screen Studio, Cap, or plain mp4/webm screen demo into an editable vosso take — re-encode the file, synthesize the take's metadata, plan, and push, so the old demo becomes a living document you re-cut instead of a file you re-record. Use when asked to "convert this Loom", "migrate our old demos", "re-edit this mp4", "make our Screen Studio recording editable", or to bring any already-recorded demo into vosso.

vos-remix

Remix a vos.so gallery program into your own — fetch its config, edit the declared knobs or code locally, validate with vos check, and push a private copy back with lineage that iterates as versions. Carries the params/Looks doctrine and the GLB 3D-showcase recipe. Use when asked to remix, customize or personalize a gallery animation, swap a 3D model into a showcase, or iterate a fetched program as versions.

関連スキル