video-to-skill について
コースやプレイリストの実演を、コース固有の Skill に変換するワークフローです。動画の実践知をインストール可能な Skill にまとめたいユーザー向けで、取得・分析・生成を段階ごとに管理します。
主な機能
- 01コースやプレイリストを処理
- 02中断したワークスペースから再開
- 03言語やカリキュラム別の版を作成
- 04ソースの欠落とカバレッジを記録
- 05生成した Skill を検証してインストール
活用シーン
- 01コース動画群を Skill に変換
- 02中断後に変換作業を再開
- 03既存の分析から別言語版を公開
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ lum1104/ video-to-skill --skill video-to-skillインストール後、Claude Code で/video-to-skillを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
LICENSEREADME.mdINSTALL.mdSECURITY.md.gitignoreCONTRIBUTING.md.gitmodulespyproject.toml.github/dependabot.yml.github/workflows/ci.ymldocs/ambitious-startups-v1-v2-product-audit.mdarchitecture.mdworkspace-centered-agent-orchestration.mdgenerated-skill-v2.mdsecurity.mdproviders.mddevelopment.mdscripts/video-to-skillvideo_to_skill.pyvideo-to-skill.cmdsrc/video_to_skill/__init__.pyagentic.pyartifact_language.pyanalysis_depth.py__main__.pyanalyze.pyauthentication.pybehavior.pyauthor.pycli.py詳細
Video-to-Skill
文字起こしの要約ではなく、実演された能力を変換します。アクセス可能なソースの探索から、コース固有の Skill 1 つのインストールまで、ワークフロー全体を担います。
ユーザーとの約束
通常の呼び出しは次のとおりです。
/video-to-skill <URL> # Claude Code
$video-to-skill <URL> # Codex
指定された URL またはローカルパスは、元に戻せるローカル処理への許可として扱います。アクセス可能なプレイリストまたはコース項目をすべて既定で処理し、中断後はキャッシュ済みの作業を再開して、非公開のエビデンス用ワークスペースをポータブルな Skill から分離します。
重要な境界を安全に推測できない場合に限り、確認します。たとえば、認証情報が必要な場合、ローカルまたは非公開のメディアをマシン外に送信する場合、課金対象の依存関係が必要な場合、対象範囲が予想外に大きい場合、内容が大きく異なるカリキュラムの選択がユーザーに必要な場合、またはインストール名が異なる内容と競合する場合です。
新たなビルドごとに、ユーザーの実質的なリクエストと言語に基づいて、正規の成果物言語を 1 つ推定します。明示された言語またはロケールは正確に尊重します。通常の個人向けビルドではユーザーの言語を使用し、明示的に一般公開する国際向けリリースでは、ユーザーが別の対象者を指定していない限り英語を推奨します。言語の選択肢が競合し、意図する対象者が大きく変わる一方で、その意図を推測できない場合に限り、確認します。これはソースの字幕または ASR の選択とは別に扱います。
内部コマンドの実行、抽出作業の監督、フレーム設定の選択、タスクペイロードのコピー、または別のチューター Skill の呼び出しをユーザーに求めてはいけません。アカウントのパスワードを要求してはいけません。
取得を完了とみなす前に、想定されるソース一式をすべて特定します。プレイリストの順序と、完了、一部完了、失敗、スキップ、アクセス不可、または提供終了という明示的な状態を保持します。有用な資料が残っている場合は、個別のソースの失敗があっても処理を続け、想定された項目を黙って省略してはいけません。また、資料の欠落が生成される Skill をどのように制限するかを報告します。
フレームやタスクの細かな設定を選ぶのではなく、エンジンの製品レベルの分析深度に関する契約を使用します。auto は、調査済みの再生時間、項目数、チャプター、字幕の網羅率、コンテンツシグナルに基づき、決定的に standard または deep を推奨します。ユーザーが明示的に希望した場合は、standard または deep を使用します。archival は、非公開ストレージとレビューの境界が大幅に広がることをユーザーが明示的に受け入れた場合に限り使用できます。暗黙の既定値として使用してはいけません。分析深度によって、ホスト型ビジョン、有料プロバイダー、認証情報、メディアの再配布、または visual_profile=transcript によって無効化された視覚処理が許可されることはありません。
エンジンはモデルに依存せず、LLM を呼び出すことはありません。ホスト側のメインエージェントが、意味的、マルチモーダル、教育的、批判的な判断を担うネイティブワーカーをディスパッチします。取得、上限付きパケット、タスク状態、検証、コンパイル、レンダリング、インストールは、決定論的なコードが担います。
このワークスペース中心のリリースでは、新たな変換と決定論的な再開をサポートします。既存の生成済み Skill への新しいエビデンスの更新または統合は実装されていません。再生成を安全な更新として提示したり、内容の異なる既存の Skill を上書きしたり、ユーザーによる編集を破棄したりしてはいけません。新しいワークスペースまたはステージング済みの出力を保持し、更新が未対応であることを伝えます。
エンジンを起動する
この SKILL.md を含むディレクトリを解決し、絶対パスの SKILL_DIR にします。会話の作業ディレクトリから推測しないでください。
video-to-skill/
├── SKILL.md
├── scripts/
│ ├── video-to-skill
│ └── video-to-skill.cmd
├── pyproject.toml + src/ + scripts/video_to_skill.py
└── runtime.json + scripts/engine.py
POSIX では、絶対パスのランチャーを設定して確認します。
V2S_ENGINE="$SKILL_DIR/scripts/video-to-skill"
"$V2S_ENGINE" --help
Windows では、scripts\video-to-skill.cmd を使用します。ランチャーは初回使用時のブートストラップ、専用の Python ランタイム、範囲を限定した修復、オプションの機能インストールを管理します。環境を有効化したり、パッケージマネージャーを呼び出したり、eval を使用したりしないでください。
ランチャーが見つからない場合は、インストール済みのジェネレーター Skill が不完全であると報告してください。ブートストラップで、サポート対象の Python が見つからない、ネットワーク障害が発生した、または記録されたランタイムが存在しなくなったコンパクトバンドルであると報告された場合は、その条件を正確に伝え、修復または再インストールを依頼してください。代替環境を独自に作成したり、展開が行われたと主張したりしないでください。
生成された出力とインストール済み Skill の外部に、永続的なワークスペースを選択してください。現在のホストが判明している場合は、尋ねずにそれを使用してください。
永続ワークフローを実行する
新しい変換を開始します。
"$V2S_ENGINE" run SOURCES... --workspace WORKSPACE --host codex --output-language LANGUAGE --analysis-depth auto
"$V2S_ENGINE" run SOURCES... --workspace WORKSPACE --host claude --output-language LANGUAGE --analysis-depth auto
新しい実行では、推定または明示された成果物の LANGUAGE を必ず渡してください。成果物をソース言語で作成することをユーザーが明確に希望した場合に限り、source を使用します。--language は、ソース字幕と ASR に対する独立した任意の設定であり、生成される文章には影響しません。source の証拠が一貫して明確な場合、エンジンは言語を確定的に解決します。ソース言語の証拠が混在している、または不完全な場合は、範囲を限定したカリキュラムエージェントが、永続化された契約に基づいて正規言語を宣言する必要があります。
ユーザーがプロジェクトローカルへのインストールを依頼した場合に限り、--project を追加します。ユーザーがポータブルな出力パスを指定した場合に限り、--output を追加します。ソースや設定を再送信せずに再開します。
"$V2S_ENGINE" run --workspace WORKSPACE
再開時は --output-language を省略し、永続化された値を再利用します。黙って変更しないでください。明示的に指定された再開時の競合する上書きは拒否されます。
同じ Analyze マップから別のエディションを公開する
ユーザーが、別名のローカライズ版や、すでに計画済みの別の学習パスを求めている場合は、新しい変換を開始するのではなく、名前付きエディションを作成するか、再開してください。
"$V2S_ENGINE" edition WORKSPACE EDITION-NAME --host codex --output-language LANGUAGE --curriculum PATH-ID --skill-name SKILL-NAME
"$V2S_ENGINE" edition WORKSPACE EDITION-NAME --host claude --output-language LANGUAGE --from-edition SOURCE-EDITION --curriculum PATH-ID --skill-name SKILL-NAME
"$V2S_ENGINE" edition WORKSPACE EDITION-NAME --host codex --output-language LANGUAGE --plan-curriculum --skill-name SKILL-NAME
別のカリキュラム計画ワーカーを使わずに既存のパスを紐付けるには、--curriculum を使用します。パスと論理的なアーティファクト/主張の識別情報を別の名前付きエディションから引き継ぐ場合に限り、--from-edition を使用してください。それ以外の場合は、従来の単一エディションのチェックポイントをソースとします。新しい学習設計が実際に求められている場合に限り、--plan-curriculum を使用します。これらの選択は、アーティファクトの作成前に確定します。
再開には、次のみを使用します。
"$V2S_ENGINE" edition WORKSPACE EDITION-NAME
名前付きエディションでは、Analyze を検査、取得、文字起こし、ビジュアル抽出、再実行することはありません。完了済みの統合 Analyze タスク、ソーススナップショット、セマンティックレコードのダイジェスト、分析深度の契約を固定し、必要なカリキュラムのチェックポイントに続いて、完全な Author、分離された動作トライアル、独立した Review、コンパイル、検証、既存データを上書きしないインストールのみを実行します。ソース/深度の更新や新しい Analyze リビジョンによってその系譜が変わる場合は、暗黙的に再利用せず、新しいエディション名を作成してください。
各エディションには、言語、カリキュラムソース、出力、名前、ホスト、インストール範囲の設定が不変の状態で保持されます。複数のエディションは、アクティブなエディションの切り替えなしで共存できます。返されたタスクは、通常どおり submit WORKSPACE TASK_ID RESULT_FILE で送信してください。タスクのスコープによって、エディションが解決されます。意味 ID と、同一カリキュラムのローカライズでは、論理アーティファクト ID、主張 ID、エビデンスリンク、タイムスタンプを保持してください。--identity-drift-reason は、実際に構造上の例外がある場合に限り指定します。これは正当化の理由を記録するものであり、更新の系譜ではありません。また、parent_build_id は未設定のままです。
また、再開時には --analysis-depth を省略し、保存済みの要求深度/有効深度とバージョン管理された予算プロファイルを再利用してください。競合する要求やプロファイルの変化は拒否されます。--refresh はインベントリを再検査します。所要時間、項目、章、キャプション、密度シグナルに変化がある場合、エンジンは契約を決定的に更新し、影響を受けるステージ/タスクのスナップショットのみを無効化します。
run は、実行可能なすべての決定的な遷移を実行し、1 つの JSON エンベロープを出力します。
actions-required
ホストがワーカーをサポートしている場合、返された並列グループ内のすべての独立したアクションをディスパッチしてください。
dispatch-agent アクションの場合、指定された persona_hint、絶対パスの task_path、role、タスク ID をそのまま使用してください。メインエージェントとの会話を通じて、そのパケットを読み取ったりコピーしたりしないでください。
ワーカーには、次のみを渡してください。
Use the assigned expert persona.
Open TASK_PATH/task.json, packet.json, result-schema.json, and lease.json.
Perform the bounded task from workspace evidence.
Write the strict result to TASK_PATH/output/result.json.
Run ENGINE submit WORKSPACE TASK_ID TASK_PATH/output/result.json yourself.
Return only task state, result digest, material blockers, and unresolved material gaps.
タスクパケットで許可されている場合、ワーカーは範囲を限定した context、contact-sheet、frames、query、gaps コマンドを使用できます。SQLite に直接書き込んだり、関係のないワークスペースの内容を調べたり、非公開の思考過程を返したり、大量のセマンティックな結果や草稿をメインエージェント経由で送信したりしてはなりません。
ask-user アクションの場合、指定されたプロンプトを、指定された選択肢とともにユーザーに提示してください。選択された選択肢をタスクの厳密な形式の判定結果に書き込み、送信してください。確定済みの実装詳細を再び取り上げないでください。
ディスパッチしたすべてのワーカーが完了したら、もう一度 run --workspace WORKSPACE を呼び出してください。complete または通常のコマンド失敗になるまで繰り返してください。
complete
インストールされたスキル名とパス、呼び出し方法、ワークスペースのパスと保持状況、処理済みおよび失敗したソースの件数、ソースカバレッジとセマンティックカバレッジ、指導上のアフォーダンスのカバレッジ、批評者による修復回数、ビルド ID、検証結果を報告します。
また、要求された出力言語の意図、解決された正規アーティファクト言語、解決状態、決定論的に解決されたか、エージェントが宣言したかを報告します。
エディションが指定されている場合は、その決定論的なエディション ID と構成ダイジェスト、固定された Analyze/ソース/深度の系譜、カリキュラムのソースと選択されたパス、該当する場合はアイデンティティのずれに関する根拠、エディション内の完了状況も報告します。
要求された分析深度、推奨された分析深度、有効な分析深度、推奨理由、完了エンベロープに含まれるバージョン付きの非機密予算サマリーを報告します。
部分的なソース、アクセス不能なソース、スキップされたソース、廃止されたソース、失敗したソースを完了サマリーに明示します。ソース取得カバレッジとセマンティックカバレッジを区別し、エビデンスの欠如による機能上の制限を明記します。
最後に、インストールされた名前を使って、具体的な次のアクションを1つまたは2つ示します。
/<course-skill> start # Claude Code
$<course-skill> help me apply this to my work # Codex
ワーカーメッセージを根拠に完了したと主張しないでください。エンジンの complete エンベロープだけが、正規の状態がコンパイル、検証され、インストールされたことを証明します。
失敗と復旧
成功時も失敗時も、ワークスペースを保持します。ソース、ワーカー、レビュー、検証、レンダリング、インストールの各段階が中断した場合も、復旧のためにワークスペースを削除してはいけません。
中断後は、同じワークスペースを再開します。変更不可の構成、ソーススナップショット、タスクディレクトリ、受理済みの正規レコード、完了済みの作業を再利用します。拒否されたタスクや競合を回避するために、ソースを再送信したり、新しい出力パスを選択したり、代わりのワークスペースを作成したりしてはいけません。
提出が拒否された場合は、タスクの出力を保持し、スキーマ、リース、ダイジェスト、エビデンスの範囲、またはスナップショットに関するエラーを正確に報告します。影響を受けた永続タスクのみを修正するか、再ディスパッチします。大きなパケットや結果をメインエージェントとの会話にコピーしてはいけません。
ソースが失敗した場合は、アクセス可能な残りのソースの処理を続け、カバレッジ台帳に損失を反映させます。利用可能な有用なソースがすべてアクセス不能な場合は、取得状態を保存した時点で停止し、必要な認証情報またはソースの変更を説明します。
検証またはコンパイルに失敗した場合は、ワークスペースと安全なステージングアーティファクトがあればそれを保持し、失敗したゲートを報告してから修復後に再開します。生成されたコンテンツまたはインストール済みコンテンツが要求された名前と競合する場合は、コーディネーターによる永続的な ask-user の命名判断を使用します。異なるコンテンツを上書きしてはいけません。
ワーカーの役割
論理ワークフローは Analyze → Author → Review です。これらは推論上の境界であり、公開コマンドやユーザー向けモードではありません。
分析
高再現率の抽出、用語の正規化、関係性の紐付け、重要度の確認、処理状況の記録、矛盾の把握、能力の上限分析を、範囲を限定した単一の役割で組み合わせる、シニアレベルのエビデンス・意味分析の専門家として対応します。
質問、主張、理由、例、類推、定義、相違点、限定事項、反論、予測、推奨事項、警告、価値判断、未解決の質問を保持してください。ある単位が別の単位に答える、別の単位を裏付ける、説明する、例示する、限定する、対比する、依存する、更新する、矛盾する、提起する、または未解決のままにする関係も保持してください。
インタビューやトーキングヘッドでは、音声優先のパケットを使用してください。視覚的なエビデンスが重要な場合に限り、スライド、コード、UI、図、または物理的な状態を確認してください。長時間のコースでは、セクショングループ単位のタスクを受け付け、その後、ソース固有の意味単位を削除せずに、依存する統合分析タスクを実行してください。
エンジンは視覚的なエビデンスのインデックスを提供します。最初のフレーム、シーン変更フレーム、定期的なフォールバックフレーム、知覚ハッシュによる重複排除、OCR と種類のヒント、調査中に要求された範囲を限定した高密度ウィンドウが含まれます。分析では意味に基づく判断を行います。指導または検証を大幅に改善する場合に限り、最大 24 件の重複しない候補を提案してください。各候補は、単一のフレーム、正規化された単一の切り抜き、または順序付けられた 2~4 フレームのシーケンスとします。分析でピクセルを編集したり、任意の画像パスを指定したりしてはいけません。エンジンがエビデンス ID を検証し、サニタイズ済み PNG 候補を決定的に生成します。
すべての意味単位には、安定した ID、ソースと時間範囲、種類、簡潔な要約、重要度、処理状況、モダリティ、エビデンス ID、観測と推論の区別、確信度、不確実性が必要です。統合された資料、文脈のみの資料、省略された資料には、明示的な理由が必要です。
Author
Author は、同じ内部ロールのもとで、範囲が限定された 2 種類のタスクを担います。まず、主任カリキュラムアーキテクトとして、正規のセマンティックレコードを読み、テーマに沿った学習経路を推奨し、根拠のある代替学習体験を最大 2 つ提案します。このカリキュラム計画タスクで作成するのは、カリキュラムの選択肢、順序付けられたセマンティック単位のシーケンス、簡潔な判断メタデータのみです。アーティファクト計画、主張、アセット、Markdown の草稿は作成しません。
カリキュラムパケットには、不変のアーティファクト言語の契約が含まれます。明示された固定言語またはソース全体で統一された言語をそのまま反映するか、ソースの根拠が混在している場合または不明な場合に必要となる、制約付きの宣言を 1 つ行わなければなりません。この宣言は正規のものです。完全版 Author とすべての修復処理では、これを正確に保持する必要があります。Review は実際の文章に一貫性があるかを監査します。決定論的なコードが任意の Markdown の言語を確実に特定できるかのように振る舞うことはありません。
代替案によって学習体験が大きく変わる場合は、永続的な ask-user アクションで停止します。それ以外の場合、コーディネーターが推奨案を正規の選択肢として確定します。その選択が確定した後に限り、選択済みカリキュラムのパスとダイジェストを指定して、完全版 Agent Skill author をディスパッチします。完全版 Author は、選択済みの経路と計画されたセマンティックな順序を維持しながら、根拠のあるアーティファクトに結び付け、タスク出力ディレクトリ内に Markdown の草稿を作成する必要があります。執筆中または修復中にカリキュラムの選択をやり直してはいけません。
Learn、Practice、Apply、Reference は、アーティファクト数の割り当てではなく、根拠に基づく能力レベルとして扱います。Analyze の能力上限を超えてはいけません。
セマンティックな網羅性とは別に、指導上のアフォーダンス台帳を完成させます。学習目標、誤解、想起および転移を促す問い、的を絞った演習、成功基準、採点ルーブリック、段階的なヒント、再試行、総括課題、運用手順書、期待される状態、検証、復旧、クイックリファレンス、判断ルールをすべて記載します。
各アフォーダンスには、根拠とともに provided、unsupported、not-applicable のいずれかを付けます。強い能力の主張には、対応する要素がすべて揃っている必要があります。より弱い主張や非対応の主張は、正直に記述します。複数のアフォーダンスを、単独でも有用な 1 つのアーティファクトに含めてもかまいません。
各アーティファクトには、安定した ID、ユーザーの目的、対応する動作、通常時または試行後の開示、個別に読み込む理由、セマンティック単位との関連付け、アフォーダンスとの関連付け、保存先パス、草稿のパス、ダイジェストを付与します。解答と解答を含むルーブリックは分離し、試行後に提示します。
Author パケット内で検証済みのビジュアル候補からのみ選択します。特定のアーティファクトで必要な場合に限りビジュアルを残し、used_by の各アーティファクトから PNG へのリンクを設定し、同じビジュアルまたは時間的な根拠を維持する主張に関連付けます。装飾的、重複、判読不能、非公開、またはテキストで再現できる候補は使用しません。
レビュー
カリキュラム計画担当と成果物作成担当のどちらからも独立した、新しいシニアエージェントスキル批評担当を起用します。作成者が用意した要約ではなく、実際の正規ドラフトと記録をレビューします。
ソースの意味の保持と、指導上の有用性の保持を別々に監査したうえで、根拠、確実性、開示、空の呼び出し、実行時の動作、安全性、対象範囲、ソースの失敗、共有可能性を確認します。選定された各教材ビジュアルについて、必要性、判読性、文脈、順序、プライバシー、証拠による裏付け、オンデマンド読み込みを点検します。
最終批評担当に渡す前に、エンジンが正規の作成者状態をプライベートな不変の動作ターゲットにレンダリングします。エンジンはバージョン管理されたシナリオカタログを所有します。カタログには、空の呼び出し、開始/インテーク、範囲を限定した指導、解答を提示しない練習、適用に必要なコンテキストの収集、根拠に基づく正確な参照、対象範囲外であることの誠実な伝達、そして導入の主張、中盤の例、条件付け、よくある誤解、予測、未解決の質問、該当する場合は視覚的または時間的証拠に関する決定論的な意味的圧力ケースが含まれます。エンジンは正規の意味状態に基づいてのみ、コンテンツケースを該当なしと判定します。
該当する各シナリオは、それぞれ独立したbehavior-trialレビュータスクとしてディスパッチし、ホストが真に新しいコンテキストを用意できるようにします。エンジンは各タスクのリースに異なるexecution_context_idを付与し、そのバインディングを返さない結果を拒否します。ただし、この識別子は、オペレーティングシステム、プロセス、ファイルシステム、またはモデルコンテキストの隔離を証明するものではありません。ホストは各試行と最終判定者を真に別個のコンテキストでディスパッチし、必要なサンドボックス境界または読み取り専用境界を適用する必要があります。各試行が受け取るのは、不変のターゲットと1つのプロンプトのみです。試行は、上限のあるユーザー/アシスタント間のやり取り、生成されたスキルファイルへのアクセス、副作用を正確に記録し、合否判定は行いません。すべての試行がそれぞれ1回だけ完了した後、別の独立したレビュー担当者をディスパッチし、実際にレンダリングされたターゲット、正規の証拠、コードで定義された期待値、生の試行ファイルを確認させます。生の試行と構造化レポートはプライベートなワークスペースに保持し、インストール済みのスキルには含めません。
コンパイルには、完全なシナリオの網羅性、検証済みの試行とターゲットのダイジェスト、合格した批評担当者、該当するチェックの合格を満たす、現在の動作カタログバージョンのみを受け入れます。ブール値のみの旧形式の動作レポートは履歴として保持しますが、現在のゲートを満たすものとしては扱いません。そのようなワークスペースを再開すると、新しいカタログ試行と新しいレビュー改訂版が作成されます。
レビューに失敗した場合、実行タスクは完了扱いとなりますが、同じ選択済みカリキュラムに固定された、新しい不変の作成者改訂版と、新たに独立したレビューが作成されます。修正サイクルは最大3回までです。証拠が裏付け、製品が必要としている有用性を隠すためだけに、能力の主張を弱めてはいけません。
証拠に関するルール
- 発話は、述べられた意図または説明の根拠となります。
- 可視状態に関する主張には、視覚的な証拠が必要です。
- アクションまたは遷移には、通常、順序がわかる遷移前後の証拠が必要です。
- 手順の成功を主張するには、アクションと観察可能な結果が必要です。
- 判読できない場合、正確なコード、コマンド、ラベル、値は不確かなままです。
- 証拠を追加しない2回のプローブは、推測してよいという意味ではなく、停止すべき合図です。
- 確信度の低い詳細情報を、権威ある指示として扱ってはいけません。
- ソース取得の網羅性と意味の網羅性は、別々に扱います。
- 意味上重要な各単位に、処理方針を割り当てます。
- 採用した中核単位または補助単位はすべて、根拠に基づく成果物に含めます。
ホストに標準搭載されたマルチモーダル検査機能を、ホスト型のビジョンプロバイダーより先に使用します。標準の表示機能が利用できない場合、またはユーザーがプライバシーと費用に関する境界を承認した場合を除き、ホスト型ビジョンは無効のままにします。
認証とシークレット
ソースへのログインが必要な場合は、実行全体を通じて認証を一度だけ行います。名前付きのブラウザー/プロファイル、ローカルの Netscape cookies.txt、または公開項目のみを提示してください。VIDEO_TO_SKILL_COOKIES_FROM_BROWSER はエンジンの呼び出し時にのみ設定し、アカウントのパスワードは決して求めないでください。
ブラウザー認証が許可された場合は、エンジンにブラウザーの Cookie を一度だけ復号させ、非公開の一時スナップショットを作成し、ソースの調査と並行ワーカーで隔離されたコピーを再利用させてください。提供された Cookie ファイルはその場で変更せず、スナップショットを作成します。認証セッションの終了時に、エンジンは一時スナップショットを削除します。
macOS では、ブラウザーのキーチェーンへのアクセス許可を求めるプロンプトが一度表示される場合があります。1 回のエンジン呼び出し中にプロンプトが繰り返し表示される場合は、認証セッションが失敗したことを示しています。ユーザーに繰り返しアクセスを承認するよう求めず、停止して失敗を報告してください。
Cookie、ヘッダー、トークン、有効期限付き URL、ブラウザーのスナップショットは、実行時のシークレットとして扱ってください。内容をユーザーにそのまま示したり、タスクパケットやログに記載したり、ワークスペースに保存したり、生成された Skill に含めたりしないでください。
エンジンに、サブプロセスとプロバイダーの境界でツールの来歴を直接記録させてください。エンジンは、安定した論理実行、試行、失敗、キャッシュの再利用、シークレットを含まない正規化済み引数、入力ダイジェスト、ワークスペース相対の出力ダイジェストを SQLite に保存します。このデータをワーカーやメインエージェントに再構築または伝達させないでください。メンテナーが WORKSPACE/logs/ に正規のサニタイズ済み JSONL を必要とする場合にのみ、tool-runs WORKSPACE を使用してください。生の stdout、stderr、環境変数、認証情報、署名付き URL、非公開の絶対パス、ツールの記録自体は、ポータブルな生成 Skill に含まれません。
エビデンスバンドルのエクスポート
ユーザーが再現性または保存用の成果物を求めた場合にのみ、エビデンスをエクスポートしてください。エンジンは正規のワークスペース状態からバンドルを直接組み立てて検証します。LLM がその内容を読み取ったり、書き換えたり、運んだりすることはありません。
"$V2S_ENGINE" evidence-bundle WORKSPACE --mode compact --output /path/to/course-evidence.v2sbundle
"$V2S_ENGINE" verify-evidence-bundle /path/to/course-evidence.v2sbundle
コンパクトバンドルは、決定論的で共有可能なエビデンス派生物であり、生成された Skill ではありません。サニタイズ済みのソースメタデータ、存在する場合は正規のセマンティック/デザイン/レビュー記録、観察事項と不足点、選択された教材用ビジュアルとコンタクトシート、サニタイズ済みのツール実行記録、コンテンツアドレス方式のマニフェストが含まれます。生の動画や音声、ワークスペースデータベース、キャッシュ、認証情報、ホストパス、レンダリング済みの生成 Skill は含まれません。ユーザーが再配布を明示的に許可していない限り、トランスクリプトと字幕のテキストは除外されます。許可されている場合に限り、--authorize-transcript-redistribution を追加してください。名前を指定したエディションの下流系統をエクスポートする場合は、--edition EDITION-NAME を追加してください。
アーカイブバンドルは非公開で機密性の高いものです。ユーザーがその境界を意図的に受け入れた場合に限り、--mode archival --confirm-private-archival を使用してください。生のメディア、音声、フレーム、トランスクリプト、正規の中間生成物、一貫性のあるエビデンスデータベースのスナップショットが含まれる場合がありますが、Cookie、認証情報、認証ファイル、キャッシュ、ロック、タスクのリース、レンダリング済みの生成 Skill は引き続き除外されます。モードは 0600 に設定し、ワークスペース、インストール済み Skill、通常の Git 履歴の外部に保管してください。バンドルのモードは --analysis-depth archival とは独立しています。どちらのオプションも、もう一方を暗黙に有効にすることはありません。
生成された Skill の契約
ポータブルパッケージと生のワークスペースは、別々のツリーにする必要があります。生成される各コース Skill には、固定された5つのルートレコードと、少なくとも1つの作成済み Markdown アーティファクトが含まれます。証拠に基づいて構成されたパッケージの例を以下に示します。
<course-skill>/
├── SKILL.md
├── source-map.md
├── sources.md
├── provenance.json
├── build-manifest.json
├── chapters/
│ └── <topic>.md
├── exercises/
│ └── <exercise>.md
├── solutions/
│ └── <exercise>.md
├── playbooks/
│ └── <workflow>.md
├── reference/
│ └── <decision-aid>.md
├── learning-path.md
├── glossary.md
├── patterns.md
├── cheatsheet.md
└── assets/
└── <indispensable-image>.png
5つの固定ルートレコードは必須です。その他のエントリーは、ディレクトリ数の基準ではなく、サポートされるアーティファクト形式の例です。個別に読み込める学習単元には chapters/、練習には exercises/、取り組み後に確認する解答や解答を含むルーブリックには solutions/、実務への適用には playbooks/、すばやく参照する資料には reference/ と許可されたルートの参照ファイルを使用し、不可欠で証拠に基づく PNG のみを assets/ に格納します。生成される Skill の指示では、実行時のエージェントに対し、現在関連するアーティファクトからリンクされているビジュアルだけを開き、アセットディレクトリを事前に読み込まないよう伝える必要があります。十分な情報源がある場合は、通常、実際に裏付けられる複数の動作にまたがる実質的なアーティファクトをいくつか作成します。一方、簡潔な情報源であれば、より少数のアーティファクトが妥当な場合もあります。
対称性を整えるためだけにディレクトリを作成したり、常に一緒に読み込まれるファイルを分割したり、パッケージを小さく保つことだけを理由に有用な内容を省いたりしないでください。含めるアーティファクトにはすべて、証拠へのリンク、対象となる機能、個別に読み込む理由が必要です。生の動画や音声、字幕全体、書き起こし、データベース、Cookie、キャッシュ、装飾用のフレームコレクションは含めないでください。
コンテンツ品質の最低基準
書き起こしの要約や、内容の薄いインデックスファイルの寄せ集めではなく、再利用可能な能力プロダクトを作成してください。根拠に含まれている場合は、名前のあるフレームワーク、実践可能な原則、実証された手法、情報源に基づく推論、例、条件、反論、警告、失敗パターン、判断基準、重要な未解決の問いを保持してください。
個別に読み込まれる各教材を、それ単独でも役立つものにしてください。明確なユーザーの目的、情報源に基づく必要な説明、裏付けがある場合は具体例、適切な想起または応用のための問いを盛り込んでください。SKILL.md、各章、参考ファイル、プレイブックで、同じ浅い要約を繰り返さないでください。
練習能力には、情報源が裏付ける範囲で、焦点を絞った課題、成功基準、段階的なヒント、再試行、採点基準を含めてください。解答と解答を含む採点基準は分け、解答前には提示しないでください。
応用能力には、情報源が裏付ける範囲で、前提、判断点、実行手順、期待される状態、観察可能な検証方法、復旧ガイダンスを含めてください。情報源で実証されていない、生成された応用、演習、概念上のワークフローは、推論であると明記してください。
参考能力では、用語集だけに終始するのではなく、簡潔な判断基準、トレードオフ、しきい値、既定値、兆候、問題の兆候、情報源への参照を優先してください。用語集は用語を定義しますが、参考資料はユーザーの判断や行動に役立つものです。
強い能力の主張には、それを十分に支える指導上の要素一式を含めてください。中程度または軽度の主張はより小規模でもかまいませんが、それでも役立つ内容にしてください。不足する要素を隠すために能力の主張を弱めるのではなく、裏付けがない、または該当しない要素は正直に明記してください。
生成したスキルには、次のマーカーを付けてください。
常駐するSKILL.mdは簡潔で、運用に役立つ内容にしてください。何も指定されていない状態で呼び出された場合は、コースに即した2文以内の短い歓迎メッセージを表示し、startを案内します。補助ファイルの読み込み、プロジェクトの調査、コマンドの実行、ファイルの作成は行わず、そのまま待機してください。
ユーザーが開始した後は、コース固有の情報で不足しているものだけを尋ねてください。開始時の質問は1回のやり取りにつき最大3つ、以降の各ターンでは次の段階に進む質問を1つまでにしてください。ユーザーがすでに十分な情報を提供している場合や、具体的な質問をしている場合は、事前確認を省略してください。
使用中は、モードの一覧を提示せず、学習、練習、応用、参考の間を自然に切り替えてください。一度に教える認知上の工夫は1つに絞り、求められない限り章全体を一度に提示しないでください。ユーザーが試みるか明示的に求めるまでは、解答を提示しないでください。必要最小限の教材だけを読み込んでください。
まず情報源に基づく内容を使い、生成した演習や応用は推論であると明記してください。外部情報や最新情報とは区別し、不確実な点を正直に伝え、ユーザーの言語で回答してください。
学習者の進捗は、進行中の会話またはホスト側のメモリに保持し、持ち運び可能なパッケージには保存しないでください。失敗した情報源や部分的な情報源もsources.mdに残し、重要な主張はprovenance.jsonを通じて追跡可能にし、共有可能なファイルから個人用ローカルパスをすべて除外してください。
コンパイラーは、ワークスペースの正式な状態から厳密なブループリントを導出し、検証済みの相対パスとダイジェストを使って各成果物の本文を読み取り、ワークスペース外にレンダリングし、構造と動作を検証します。そのうえで、同名で内容が異なるファイルを上書きせずにインストールしてください。
既定ではワークスペースを保持してください。cleanは、ユーザーが明示的に実行する操作とします。