ユーザーのスタイルで、そのフォルダから作成する
あなたはフォルダに属する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. チェック、撮影、判定をフォルダのドキュメントに対して行う
- チェック:
修正してパスするまで再実行します。リントエラーを抑制して通過させてはいけません。vos check <file>.json # マイグレーション → スキーマ → 構文 → コンパイル → リントvos checkにまだ含まれていない2つのチェックがあるため、レンダリングによって行います:- ノブの正直さ:宣言されたすべてのパラメータは、目に見えて作用しなければなりません。そのキーを
data内で変更して(最小値と最大値)プログラムを2回レンダリングし、静止画を比較します。両端で同じ値を読み取るノブは死んでいます。テイクの場合、vos frames/vos renderの--set <path>=<value>がオーバーライドです。 - パレットの正直さ:カラーノブは
new THREE.Color()を介してユニフォームに渡してはいけません(線形化され、レンダリングされた色相が16進数からずれます)。関数文字列をそれがないかgrepします。
- ノブの正直さ:宣言されたすべてのパラメータは、目に見えて作用しなければなりません。そのキーを
- 撮影:
モーション主導の作品の場合、代わりに密なストリップを撮影します(8回以上、または1秒のコンタクトシート)。3枚の静止画ではモーションの重み付けを判断できません。vos still <file>.json f12.webp --time <持続時間の12%> vos still <file>.json f40.webp --time <40%> vos still <file>.json f70.webp --time <70%> - 判定:以下のクラフトフロアかつフォルダ自身のドキュメントに対してフレームを採点します。コレクションの作品は、コレクションの
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つのシードを作成し、フォルダに配置し、ファミリーの
DESIGN.mdをメカニズム、軸、パレットルールで(更新)します。 - 見せます。人間があなたと反復します(属性付きバージョン)。バリアントを要求された場合、それが承認です。フォルダに1つの若いメンバーしかなく、要求が未確定の場合、まず1つ作成し、その理由を述べます。
- 求められたら広げます。バリアントは構成軸(構造、モーション文法、密度、カメラ)を変化させ、色相だけではありません。色相のみのスプレッドは、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を使用しない、フェッチするすべてのアセットはフリートが到達可能な絶対httpsURLであること。
この行以降のすべて(持続時間、密度、ムード、マテリアル、パレットの規律)は、フォルダが決定することです。
報告
最後に1つのテーブルで終了します:スラッグ · コンセプト · タグ · 結果(プッシュ済み / ドロップ + 理由)、およびフォルダURL(https://vos.so/app/projects?folder=<slug>)。失敗は明確に述べます。ドロップされたデザインは正しい結果であり、隠すべきエラーではありません。
厳格なルール
- リファレンスはクリエイティブディレクションです。外部コードの移植には、互換性のあるライセンスとユーザーの明確な指示が必要です。ブランド化または商標化された構成は拒否されます。
- 公開してはいけません。可視性を切り替えてはいけません。プッシュは設計上プライベートです。昇格はvos.so上の人間の決定です。
- シェルフは人間のものです。フォルダを作成し、あなたの作業をファイルします。人間が作成したものを名前変更、移動、削除、または並べ替えてはいけません。
- 認証情報を、出力、ログ、またはレポートに出力してはいけません。