Communitygithub.com

vos-create

フォルダ内のユーザーのスタイルに沿ってvosプログラムを作成します。

vos-create とは?

このスキルは、vos.soのユーザーフォルダ内で、そのフォルダ固有のスタイル(レシピや実例)に従って新しいvosプログラムを作成するためのものです。フォルダからレシピ(.mdファイル)と実例のvosesを読み取り、それらをデザインの判断基準として、新しいプログラムを生成します。作成されたプログラムは自動的にそのフォルダにプッシュされ、プライベートな状態で保存されます。公開はユーザーの操作が必要です。このスキルは、vos-authoringスキルのオーサリングルールやvos-remixスキルのパラメータ操作と組み合わせて使用することを前提としており、フォルダとの契約、ループ処理、プロセス全体を提供します。

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

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

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

ドキュメント

ユーザーのスタイルで、そのフォルダから作成する

あなたはフォルダに属するvosプログラムを作成します。vos.so上のユーザーフォルダがコレクションであり、その中の.mdファイル(レシピ)がスタイル、vosesが模範例です。このスキルはメカニクスとユニバーサルなクラフトフロアのみを扱います。テイスト(味わい)はユーザーデータであり、ユーザーのフォルダに存在し、ここには決して含まれません。オーサリングルール(スキーマ、方言、ノブ)はvos-authoringスキールにあります。ノブとルックスのクラフトはvos-remixスキルのparams-knobsリファレンスにあります。このスキルは、フォルダとの契約、ループ、およびそれらを中心としたプロセスを追加します。

インボックスやハウススタイルファイルはありません。重複排除はフォルダ自身の内容で行います。シェルフ(棚)は記録です。

セットアップ

npm i -D @vosjs/cli   # folder, fetch, check, still, render, push

認証情報は、この順序で、決して出力してはいけません:VOS_API_KEY、次に~/.config/vos/credentialsの最初の行、次にvos login(このマシン用のキーを発行するブラウザサインイン)。すべてのHTTP呼び出しは、https://vos.so/api に対して Authorization: Bearer <キー> です。キーはプライベートな作業のみを作成し、公開することは絶対にできません。

5つのステップ

1. ターゲットフォルダを特定する

ユーザーが名前を指定するか、あなたが尋ねます。vos folder list(またはGET /api/folders)で、名前またはスラッグですべてのレベルのフォルダを検索します。次に、それをプルします:

GET https://vos.so/api/folders/{id}

1回のプルで全体のコンテキストパッケージが得られます:フォルダ自身の recipes(本文はインライン化)、inheritedRecipes(祖先のレシピ、ルートが最初で、それぞれがソースフォルダでマークされています。これらはこのフォルダにバインドされます)、実例の voses(contentUrls 付き)、および assets。サブフォルダはリストされるだけで、インライン化されません。プルはフォルダ自身の内容です。

まだフォルダがない場合?作成します。必ず説明文を付けて作成します:

vos folder create <名前> --desc "<このコレクションが何であるかを一言>"

説明なしで作成されたフォルダは命名の失敗です。説明は、フォルダページと将来のすべてのプルが読むものです。

2. すべての.mdファイルを読み、次に実例を読む

すべてのレシピ本文(フォルダ自身のものと継承されたもの)と、1~3個の実例の設定またはドキュメントを、それらの contentUrls を通じて読みます。レシピは、役割名で示されるファセットであり、CLAUDE.md と同じように大文字で名前が付けられます: TASTE.md は判断基準、 DESIGN.md はテクニック仕様、その他ユーザーの意図で作成されたもの(MOTION.md, COPY.md, BRAND.md など)があります。レシピは、コレクションが何かを作る前に読むファイルであり、その名前がそれを物語っています。あなたが作成するレシピは、語幹が大文字で保存されるため、そのように書き、シェルフにはあなたが書いたものが表示されます。プラットフォームはそれ以上の分類を強制しません。あなたはそれらすべてを読みます。バインディングルール:

  • レシピと実例は、このスキルやオーサリングスキルのすべてのデフォルトを上書きします。持続時間はその持続時間であり、パレットの規律はその規律です。
  • ファイル間で競合がある場合、より具体的なものが優先されます:フォルダ自身のファイルは継承されたものより優先され、近い祖先は遠い祖先より優先され、特定の指示は一般的な指示より優先されます。真の矛盾は、ユーザーに質問として戻し、黙って選択することはありません。
  • レシピとフォルダの最近の実例が一致しない場合、実例を優先し、レシピが古くなっている可能性があることをユーザーに伝えます。

空のフォルダ(レシピも実例もない場合):以下のクラフトフロアのみが適用されます。スタイルはユーザーの参照または質問から得られ、組み込みのデフォルトから得られることはありません。

3. シードを見つけ、作成する

フォルダには、リファレンス(良い状態の見本、判断基準となるもの)とシード(コピーして編集し、次のメンバーを作成するもの)の2つが保持されますが、これらは時々しか一致しません。コードを書く前に、どちらを保持しているかを決定します:

  • プログラムファミリー(承認済みのメンバー + メカニズムとその軸を指定する DESIGN.md):シード = そのメンバー。その設定を取得し、レシピが指定する軸に沿って変更します。空のファイルから作成してはいけません。また、色相だけを変更してもいけません。
  • テイク仕様(コレクション内のすべての録画がどのようにカットされるかを示すレシピ):シード = ユーザーが指定する新しい録画(フォルダ内のIDによるテイク、vos record --strict へのURL、ローカルファイル)。フォルダ自身のテイクはリファレンスカットであり、シードではありません。
  • テンプレート(メカニズムとそのバリエーション方法を指す、またはインライン化するレシピ):シード = テンプレート。vosとしてホストされている場合:メンバーと同じようにフェッチします。インラインコードの場合:構築するための断片。
  • ブリーフのみ(BRAND.md:メカニズムなし):コピーするものはありません。制約とクラフトフロアの下で新規に作成します。
  • シードを宣言するものがない:尋ねます。ユーザーのプロンプトは、ハンドオフダイアログで選択されたときにシードを指定します。レシピは、適切に書かれているときにシードを指定します。推測は、ファミリーがその外観を失う方法です。

レシピにはオプションのフロントマターのヒントが含まれる場合があります: applies: programs | takes | any, seed: <vos id> | input | none。これらを上記の所有者の宣言として読みます。本文は依然として従うべきものです。

レシピはユーザーのドキュメントであり、ユーザーが今求めていることは、その中のどの行よりも優先されます。レシピが要求と矛盾する場合(待つように言うメモ、要求が破るルール)、一文でそれを伝え、要求に従います。プライベートな作業は安価であり、所有者は復元できます。ファイル内の一行で止まってはいけません。

次に、フォルダのスタイルに従って、vos-authoringスキルのオーサリングルールに従い、設定をローカルで(生のVosConfigJson、バージョン2)作成します。

メンバーまたはテンプレートのフェッチは vos-remix フェッチです:vos fetch https://vos.so/vos/<id> は、パラメータを保持したまま <slug>/config.json と、ベースバージョンを追跡する vos.json を書き込みます。

「Xを再現」ブリーフの場合:最初にソースまたは録画を入手するか、ブリーフが外観のみを求めていることを確認します。静止画はモーションを過小評価します。間違ったメカニズムを発明するスクリーンショットマッチは、フレームが一致してもミスです。ソースの取得、ライセンス、および測定されたマッチループは再現作業です。最初にそれを行い、次にここに戻って、それが生成したものから作成します。

4. チェック、撮影、判定をフォルダのドキュメントに対して行う

  1. チェック:
    vos check <file>.json     # マイグレーション → スキーマ → 構文 → コンパイル → リント
    
    修正してパスするまで再実行します。リントエラーを抑制して通過させてはいけません。vos checkにまだ含まれていない2つのチェックがあるため、レンダリングによって行います:
    • ノブの正直さ:宣言されたすべてのパラメータは、目に見えて作用しなければなりません。そのキーを data 内で変更して(最小値と最大値)プログラムを2回レンダリングし、静止画を比較します。両端で同じ値を読み取るノブは死んでいます。テイクの場合、vos frames/vos render の --set <path>=<value> がオーバーライドです。
    • パレットの正直さ:カラーノブは new THREE.Color() を介してユニフォームに渡してはいけません(線形化され、レンダリングされた色相が16進数からずれます)。関数文字列をそれがないかgrepします。
  2. 撮影:
    vos still <file>.json f12.webp --time <持続時間の12%>
    vos still <file>.json f40.webp --time <40%>
    vos still <file>.json f70.webp --time <70%>
    
    モーション主導の作品の場合、代わりに密なストリップを撮影します(8回以上、または1秒のコンタクトシート)。3枚の静止画ではモーションの重み付けを判断できません。
  3. 判定:以下のクラフトフロアかつフォルダ自身のドキュメントに対してフレームを採点します。コレクションの作品は、コレクションの DESIGN.md と継承された TASTE.md の両方に応えるものです。修正して繰り返します(最大3ラウンド)。それでも失敗する場合は、ドロップして理由を述べます。自分が擁護できない作業をプッシュしてはいけません。

5. フォルダにプッシュし、バージョンとして反復する

vos push <file>.json --title "…" --desc "一言" --tags a,b \
  --folder <folderId|slug> --label "行ったこと" --note "理由:要求"

すべてのプッシュに --label と --note を渡します。最初のプッシュも含みます。作成はこれらをv1に刻印し、履歴は人間が読む会話になります。プッシュは、キー所有者のシェルフ上にプライベートなvosを作成し、プルしたフォルダにファイルされます。プレビューとサムネイルのレンダリングは、保存自体からクラウド上で行われます。追跡されたベースに対して --vos <id> を使用して反復します(vos-remix ループ:各ラウンドの前に vos pull、人間が編集したノードは保護され、--override は明示的な指示があった場合のみ)。キーは公開できません。昇格はvos.so上での人間の操作です。

結果を確認します。 すべてのプッシュは約15秒以内に静止画をレンダリングします:GET /api/vos/{id} で、contentUrls.thumbnail をたどり、画像を表示してから完了を報告します。確認しなかったプッシュは完了していません。

バッチのペース: バックツーバックのプッシュはクォータ内で問題ありません(レンダリングキューはブラウザの起動を調整し、自動的にバックオフします)。バッチ後の状態は、プッシュログをgrepするのではなく、フォルダプルで確認します。

発見事項を書き戻します。 ファミリーについて何か学んだ場合(バンディングが発生するパラメータ範囲、より良く読める持続時間など)、該当するレシピに日付入りの ## Agent notes 見出しの下に追加します:PUT /api/assets/{id}/file を使用し、完全なマークダウン本文(レシピのみ、≤64KB)を送信します。所有者のルールを書き換えてはいけません。置き換えられた本文は保持されます:GET /api/assets/{id}/file?prev=1 で読み取り、POST /api/assets/{id}/file/restore で元に戻せます。

ファミリープロセス:シード、見せ、広げる

新しいファミリーの作業は1つのシード + レシピであり、決してバッチではありません。バッチはバグをすべてのメンバーに一度に複製します。1つのシードはn=1で方向転換をキャッチし、その後安価に広がります。これは判断であり、ゲートではありません。書いたり従ったりするステータス行はなく、ユーザーの要求が常に決定します。

  1. 1つのシードを作成し、フォルダに配置し、ファミリーの DESIGN.md をメカニズム、軸、パレットルールで(更新)します。
  2. 見せます。人間があなたと反復します(属性付きバージョン)。バリアントを要求された場合、それが承認です。フォルダに1つの若いメンバーしかなく、要求が未確定の場合、まず1つ作成し、その理由を述べます。
  3. 求められたら広げます。バリアントは構成軸(構造、モーション文法、密度、カメラ)を変化させ、色相だけではありません。色相のみのスプレッドは、1つのタイルを10回見せているように読めます。スプレッドは約10個に制限し、シェルフレビューが5分のタスクに留まるようにします。

クラフトフロア(ユニバーサル、リント可能:味わいではない基準)

  • コンパイルと検証:vos check がクリーンパスすること。決して抑制しない。
  • 決定論的:シークはtの純粋な関数であること(フレームパスに Date.now や Math.random がないこと。決定論リントが強制します)。
  • ループシームの計算:ループ作品の場合、位相は持続時間の整数倍でなければならず、frame(0) ≈ frame(end) となること。静止画でシームが見えてはいけません。計算で確認します。
  • 正直なノブ:2~4個の宣言されたパラメータがあり、それぞれが範囲の両端で目に見えて作用すること。正直なノブが少ない方が、たくさんあるより優れています。
  • ノブは onFrame で、毎フレーム読み取られます。createContent 内でユニフォームにスナップショットしてはいけません。エディタはノブ編集を、ctx.data のみを入れ替えるライブデータとして配信します。作成時のスナップショットは、リフレッシュまで決して更新されません。
  • 最初のフレームが空白でない:約12%のフレームがサムネイルを兼ねます。黒、空、または「まだ始まっていない」開口部は禁止です。
  • バンディングやクリッピングがない:バンディング対策にグレインを追加します。ブロームを白飛びさせない(強度 ≤ 約0.8。フォルダのドキュメントで要求されていない限り)。目に見えるタイリングシームやハードなエイリアシングがないこと。
  • パレットの正直さ:カラーノブは new THREE.Color() を介してユニフォームに渡してはいけません。生のベクトルを16進数から構築します。
  • サーバーレンダリングの制約(プレビューフリートはソフトウェアGLです):トランスミッションマテリアルに THREE.DoubleSide を使用しない、dispersion を使用しない、フェッチするすべてのアセットはフリートが到達可能な絶対 https URLであること。

この行以降のすべて(持続時間、密度、ムード、マテリアル、パレットの規律)は、フォルダが決定することです。

報告

最後に1つのテーブルで終了します:スラッグ · コンセプト · タグ · 結果(プッシュ済み / ドロップ + 理由)、およびフォルダURL(https://vos.so/app/projects?folder=<slug>)。失敗は明確に述べます。ドロップされたデザインは正しい結果であり、隠すべきエラーではありません。

厳格なルール

  • リファレンスはクリエイティブディレクションです。外部コードの移植には、互換性のあるライセンスとユーザーの明確な指示が必要です。ブランド化または商標化された構成は拒否されます。
  • 公開してはいけません。可視性を切り替えてはいけません。プッシュは設計上プライベートです。昇格はvos.so上の人間の決定です。
  • シェルフは人間のものです。フォルダを作成し、あなたの作業をファイルします。人間が作成したものを名前変更、移動、削除、または並べ替えてはいけません。
  • 認証情報を、出力、ログ、またはレポートに出力してはいけません。

Individual skills in this repo

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

launch-kit

Ship the media with the release — one take of the real product becomes YouTube demo, Chrome Web Store screenshots/tiles, Product Hunt gallery, social cuts, and OG cards; verified kit.json manifest.

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.

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.

関連スキル