Oh My Demo
実際のアプリケーションを一度のテイクで録画しましょう。後処理は不要です。
このスキルは、モックアプリ生成ツールではなく、ホストアプリケーションのリハーサルおよびセットアップレイヤーとして扱ってください。開始状態、オペレーターの合図、ペーシング、宣言されたフィクスチャ、およびリセットパスを準備し、ユーザーが録画ボタンを押して、後から失敗を編集することなくウォークスルーを完了できるようにします。本番UI、ナビゲーション、コマンド、ローカル状態、利用可能なビジネスロジックを保持します。信頼性の高い録画のために必要な最小限の、遅い、高コストな、リモートの、不安定な、または未完成な境界のみを置き換えます。
デフォルトのフロー
SKILL_ROOTをこのファイルを含むディレクトリに解決し、python3 "$SKILL_ROOT/scripts/oh_my_demo.py"でバンドルされたCLIを実行します。
-
リポジトリ、そのテストハーネス、既存のフィクスチャ、および録画される正確なユーザー可視パスを検査します。何かを変更する前にgitステータスと関連する差分を検査します。
-
専用のブランチまたは分離されたワークツリーを作成します。デモ専用のフィクスチャ置換を本番ブランチに決して配置しないでください。
-
プロジェクトキットを初期化します:
python3 "$SKILL_ROOT/scripts/oh_my_demo.py" init . --name product-tour -
.oh-my-demo/manifest.jsonに真実台帳を構築します。すべての主張を次のように分類します:real: 可視アプリが本番実装を実行している。simulated: 宣言された境界が決定論的フィクスチャデータを返す。operator: テキスト入力、ペーシング、リセットなどの録画支援。これらの利便性を真実のパーセンテージに含めないでください。
-
重み付けされた実際の割合を80%以上に保ちます。シミュレートされた主要機能が予算を超える場合は、主張を減らすか、実際のパスをさらに実装します。重みを操作して隠蔽しないでください。
-
すべての入力、参照、フィクスチャ、結果、ベースラインを棚卸しします。デモリソースは、オペレーターのマシン固有の絶対パスにバインドするのではなく、
.oh-my-demo/または別のマニフェストルートの下にコピーします。大きなメディアについては、Git LFSまたはチェックサムロックされた認証済みアーティファクトパッケージを選択し、プレフライトの前にローカルにマテリアライズします。 -
可視コントロールに安定したセマンティックターゲットを提供します。生成されたCSSセレクターや座標よりも、アクセシビリティID、テストID、またはホストレジストリを優先します。
-
状態をシードし、ベースラインを復元し、または本番境界コントラクトを満たすために必要な最小限のホストアダプターのみを追加します。製品固有の名詞を再利用可能なマニフェストランタイムから遠ざけます。
-
テイクを状態認識型で明示的にトリガーされるステージとしてモデル化します。タイピング間隔、読み込み時間の読み取り可能化、段階的な表示、ビューポートのリフィットを集中管理します。人間のトリガーなしに次のナレーション付きステージに進まないでください。
-
アプリを開く前に診断を実行し、フェイルクローズします:
python3 "$SKILL_ROOT/scripts/oh_my_demo.py" doctor . python3 "$SKILL_ROOT/scripts/oh_my_demo.py" status . python3 "$SKILL_ROOT/scripts/oh_my_demo.py" check . --record -
実際の可視アプリケーションをナレーション速度でリハーサルします。進行する前に、保留状態、結果の表示、蓄積された変更、オーディオ/ビデオのリンク、およびビューポート応答を確認します。
-
同一のテイクを少なくとも2回リセットして繰り返します。少なくとも1回の人間操作パスを含めます。自動化だけでは、視聴者が動作を認識できることを証明できません。
-
証拠を正確なマニフェストにバインドし、検証します:
python3 "$SKILL_ROOT/scripts/oh_my_demo.py" prove . -
フォーカスした本番無効チェックを実行します。デモアクティベーションがデフォルトでオフであり、通常のビルドがフィクスチャデータを静かに解決しないことを確認します。
-
3つの別々のリストを報告します: 実際の動作、シミュレートされた境界、およびオペレーターの利便性。シミュレートされた製品クレームに対してのみフォローアップ製品作業をファイルし、デモコントロールに対しては行いません。
組み込みの表面
CLIを決定論的な背骨として使用します:
init:.oh-my-demo/manifest.json、evidence.json、およびfixtures/を作成します。doctor: Python、git worktree、ブランチ、マニフェスト、メディアツール、明示的なアクティベーションを診断します。status: 重み付けされた真実の予算とシミュレートされた境界を表示します。check: ブランチ、ベースラインリビジョン、アセット、ハッシュ、メディア期間、後続範囲、回転メタデータ、Unicodeパス、フィクスチャリンケージをプレフライトします。prove: 2回のリセットアンドリプレイパス、1回の人間可視オペレーターパス、マニフェストダイジェストバインディング、および本番無効分離を要求します。
スキルの推論を使用してホストアプリを検査および変更します。CLIがフレームワーク固有のアダプターを単独で実装できるふりをしないでください。
ランタイムコントラクト
再利用可能なアクション語彙を小さく保ちます:
focus、set-value、type-text、click、submit、navigate、wait、resolve-fixture、repeat、reset、assert、およびinvoke-adapter。
ドメイン操作をホスト所有のアダプターにマッピングします。キャンバス編集、データベースシード、タイムライン挿入、モバイルジェスチャー、またはTUIコマンドはinvoke-adapterのままです。ホスト実装がその実際の型と動作を所有します。
テキストフィールドの場合、宣言されたテキストターゲットまたはフォーカスされた適格な要素を解決し、機密フィールドを拒否し、フォーカスし、フレームワークの制御された状態パスを介して更新し、明示的に要求された場合にのみ送信します。
安全コントラクト
- 明示的なランタイムアクティベーションと専用のデモブランチを要求します。
- 録画されたすべてのステージに人間のトリガーを要求します。
- ステージングされたフローからのライブ公開、メッセージング、課金、チャージ、またはその他のリモート副作用を禁止します。
- 認証、認可、モデルポリシー、トークンアカウンティング、署名、またはリリースチェックを決してバイパスしないでください。
- パスワード、トークン、支払いデータ、リカバリーコード、またはシークレットのようなフィールドを決して入力しないでください。
- マニフェストで宣言された状態またはホスト所有のバージョン管理されたスナップショットのみをリセットします。ホームディレクトリ、リポジトリルート、未解決の変数、ワイルドカード、または宣言されたルート外のパスを決してターゲットにしないでください。
- フィクスチャをコンシューマーパスの証明としてのみ扱い、リモートプロデューサーが機能する証明としては決して扱いません。
- デバッグクロームは、それが製品クレームに無関係な場合にのみ非表示にします。視聴者が伝えられている事実に関連する情報を決して隠さないでください。
参照ルーティング
責任をスキル、CLI、プロジェクトキット、ホストアダプター間でどのように分割するかを決定する際は、references/distribution.mdを読んでください。
.oh-my-demo/manifest.jsonを作成または拡張する際は、references/manifest-schema.mdを読んでください。
ホストアダプター、フィクスチャ境界、リセットパス、またはテキストフィールド統合を実装する前に、references/adapters-and-safety.mdを読んでください。
最初のフルラン前、失敗したテイク後、または変更が成功したが知覚できない場合に、references/rehearsal.mdを読んでください。
デモが再現可能であると主張する前、または.oh-my-demo/evidence.jsonに入力する前に、references/evidence-schema.mdを読んでください。
完了ゲート
以下のすべてが真になるまで、セットアップが完了したとは呼ばないでください:
doctor、status、およびcheckが専用のデモブランチでパスすること;- 重み付けされた実際の割合が少なくとも80%であること;
- すべてのシミュレートされたクレームに、出所、狭い注入ポイント、本番同等物、および可視アサーションがあること;
- リセットが同じ初期状態を2回復元すること;
- 少なくとも1回の人間操作リハーサルがナレーション速度で知覚可能であること;
proveが最終マニフェストダイジェストに対してパスすること;- デモモードが本番パスで無効であることが確認されていること。