OpenClaw Docker E2E オーサリング
このスキルは、Docker E2E レーン、リリースパスの Docker テスト、またはライブプロバイダ Docker 証明を追加・変更する際に使用します。
レーンの選択
- 決定論的 Docker: 依存関係/サーバーをフェイクし、境界を越える正確なランタイムコントラクトをアサートします。
- ライブ Docker: ユーザーから見える動作に実際のサービスが必要な場合にのみ、実際のプロバイダ認証情報/モデルを使用します。
- 両方を推奨: 決定論的はバイト/ペイロードルーティングの証明に、ライブは実際のプロバイダ動作の証明に、それぞれ異なるリスクを検証します。
オーサリングルール
- テスト専用ヘルパーは
test/helpersまたはscripts/e2e/lib/<lane>/に配置し、src/**には置かないでください(プロダクションがインポートする場合を除く)。 - パッケージインストールされたアプリは
/appから実行されます。マウントするのは明示的なハーネス/ヘルパーパスのみとし、読み取り専用にします。 - フェイクサーバーは境界リクエストを JSONL としてログ出力し、クライアントは単なる処理成功ではなく、実際の依存関係ペイロードをアサートする必要があります。
- 同じ変更内で、パッケージスクリプトと
scripts/lib/docker-e2e-scenarios.mjsのレーンを追加してください。 - レーンが npm からプラグインをインストールする場合、公開パスとローカルオーバーライドパスの両方をテスト可能にするため、環境変数で spec をデフォルト設定してください。
メディアとビジョン
- 期待される回答は、テスト対象のピクセルまたはプロバイダ出力にのみ存在する必要があります。
- ニュートラルなファイル名、ニュートラルなプロンプトを使用し、メタデータの漏洩を防いでください。
- ランダムなビットマップ/OCR トークンは、テストがより強力なグリフセットを所有していない限り、リポジトリの OCR 安全アルファベット
24567ACEFを再利用します。 - 実際の画像理解を証明する場合は、実行ごとに期待される回答を一意にしてください。
chat.send E2E
chat.sendがstatus: "started"と文字列のrunIdを返すことを要求します。agent.waitで完了を待ちます。- イベント順序がテスト対象の動作でない場合は、
chat.historyを介して最終的なユーザー可視テキストをアサートします。 - 発信元のチャネル/アカウントメタデータは、バグパスがキューイングされたインバウンド/チャネルコンテキストを必要とする場合にのみ保持します。
検証
タッチしたレーンをカバーする最小の証明を実行します:
pnpm exec oxfmt --write <変更されたファイル>
node --check <新しい .mjs ファイル>
bash -n <新しい .sh ファイル>
node scripts/run-vitest.mjs test/scripts/docker-e2e-plan.test.ts
OPENCLAW_SKIP_DOCKER_BUILD=1 pnpm test:docker:<lane>
実プロバイダレーンの場合は、決定論的 Docker がグリーンになった後、対応するライブ Docker スクリプトを実行します。コミット/PR の前に $autoreview で終了してください。