テストパターンカタログ

テストパターン一覧

Retail AI Ops Copilotで使うべき検証パターンを、実行結果ではなく「何を証明するか」「何を証明しないか」の単位で整理する。 静的検査、単体テスト、契約テスト、ローカルデータ確認、コンパイル、結合確認、画面E2Eを混ぜず、後続のセマンティックモデル、ゴールデン評価、Streamlit、Cortex準備度、RBAC/コストガードレール準備度へ渡せる形にする。

証跡レベル

同じ「テスト」でも、証明できる範囲が違う。準備度報告ではレベル名と限界を一緒に残す。

証跡: 静的リント ファイル、HTML、ドキュメント、台帳、グラフ構造を読む。実サービスや実データの成功は証明しない。
証跡: フィクスチャ単体テスト ローカルフィクスチャやモック入力に対する決定的テスト。関数、変換、通知生成などの小さい単位を検証し、外部配送や実APIの成功とは分ける。
証跡: UIコンポーネント簡易確認 StreamlitなどのUI部品とHTTP起動を軽く検査する。Playwright、実ブラウザDOM、スクリーンショット、回答品質、実環境外部実行とは分ける。
証跡: 契約テスト シード、モデル、API、ワークフロー状態、評価ケースなどの契約を検査する。契約外の品質は別テストが必要。
証跡: ローカルデータあり 現在のシード、フィクスチャ、出力値を使う。ローカルデータの妥当性と実ウェアハウスの妥当性は同一ではない。
証跡: コンパイルのみ dbtやツールが構文解析、依存解決、生成をできることを示す。実環境実行成功にはしない。
証跡: 実環境結合テスト 対象サービス、ロール、スキーマ、ウェアハウス、成功/失敗ログがそろう実結合証跡。ダミー環境や単体テストとは別扱い。
証跡: 利用者向けE2Eテスト 人間が見る画面、回答品質、承認フローまで検証する。内部関数、単体テスト、コンパイルだけでは代替できない。
証跡: ワークフロー契約 状態語、報告責務、反映手順などの運用契約を検査する。実配送や成果物レビューの代替ではない。
証跡: 評価パターン ゴールデン評価や回答品質回帰の検査設計。実行済みE2E結果とは分けて扱う。

状態語と証跡境界

並列セッションと遠隔Issue運用では、配送、受理、報告、レビュー、統合判断を同じ言葉で扱わない。

委任文あり / 配送済み posted / delivered

タスクやペイン送信が存在する段階。担当セッションが読んで作業を受けた証拠ではない。

受理済み / 報告済み accepted / reported

担当セッションが受理または報告した段階。成果物の正しさや統合可否はまだ別確認。

レビュー済み / 統合判断可能 reviewed / integration_ready

監督側レビューと統合判断の語。レーン単独のHTML実装では宣言しない。

パターン一覧

各パターンは「使うべきか」「証明すること」「証明しないこと」を同じ粒度で見る。

カテゴリ: dbt準備度 証跡: コンパイルのみ

dbt解析 / 空コンパイル

現在のプロジェクト状況

main 6580c3b のRAIOPS-4で、資格情報なしの一時プロファイルを使い、dbt設定とモデルが解釈・空コンパイルできることを確認した。tools/check_dbt_static_contract.pytests/test_dbt_static_contract.py も通過し、CI品質ゲート 28577692921 とPagesビルド 28577691531 も成功している。

使うべきか

使う。dbt編集の最初の安全確認。ただしSnowflake実環境でデータを読めた証明にはしない。

コマンドまたは証跡

dbt parse --project-dir dbt --profiles-dir /tmp/retail-ai-ops-dbt-profiles
dbt compile --no-populate-cache --no-introspect --empty

何を証明するか

YAML、Jinja、マクロ、セレクタ、テスト定義が構文上壊れておらず、レビュー可能なdbt生成物へ進めること。

何を証明しないか

実環境dbtビルド/テストは未証明。Snowflake実接続、ウェアハウス上の行数、ロール権限、Snowflake実データ上のdbtテスト成功、SQL結果正当性、Cortex Analyst、回答品質、Streamlit E2Eは証明しない。証跡ラベル: NOT_EXECUTED_NOT_PROVEN

再利用先

プロジェクトファミリー、クライアント納品向け汎用スキル、Backlog受入基準、ドキュメントテンプレート。

関連ノードまたはレーン

dbtステージング/中間/マート、RAIOPS-4 dbt品質ゲート、セマンティックモデル準備度。

次アクションまたはブロッカー

実環境資格情報を使う別レーンでdbt seed/build/testを実行し、ターゲット、ロール、スキーマ、失敗したテスト名を残す。

カテゴリ: Snowpark実行境界 証跡: 契約フローE2E 証跡: 失敗時JSON証跡の整合

RAIOPS-12 Snowpark評価/トレース補強境界

現在のプロジェクト状況

main 6eb57f7 に、Snowparkで評価結果とトレース情報を補強する契約が統合済み。実装コミットは 1471323ea7ac076eb57f7。CI品質ゲート 28580571344 とPages実行 28580570625 は成功し、フィードバック反映コミットは 2734ecb

使うべきか

使う。SnowparkやCortexの実環境経路へ進む前に、ローカル契約、実行時失敗のJSON証跡、負例境界を分け、失敗時にローカルフィクスチャ成功へ黙って逃げないことを固定する。

コマンドまたは証跡

python3 -m retail_ai_ops.eval_runner --jsonl-output /tmp/raiops12-eval.jsonl
python3 tools/run_snowpark_enrichment.py --runtime-mode local_explicit_test --eval-jsonl /tmp/raiops12-eval.jsonl --output /tmp/raiops12-enrichment.json
python3 tools/run_snowpark_enrichment.py --runtime-mode snowpark --eval-jsonl /tmp/raiops12-eval.jsonl --output /tmp/raiops12-snowpark.json
pytest -q tests/test_snowpark_enrichment.py
pytest -q

何を証明するか

明示したローカル評価JSONLを集計し、18件の品質期待と8件の既知ギャップを分けて出せること。Snowparkモードでは前提不足のときに終了コード2で止まり、どの層の不足かを失敗JSONに残す。監査用の正確なキーは quality_passed=18known_gaps_observed=8live_external_executed=falselocal_fallback_used=false などで確認する。

追加で固定した負例

James修正後、入力欠落と不正JSONLでも失敗JSONを書き、成功時と失敗時のJSONが後続工程で同じ形で読めることをテストした。Harveyの第三者テスト、対象pytest、全体pytest、Linnaeusの契約フローE2Eはいずれもローカル証跡として成功。

何を証明しないか

Snowflake実接続成功、Snowparkセッション作成、ストアドプロシージャ / UDF / dbt Pythonモデル実行、Cortex実行、トレース保存への実環境保存、SQL結果正当性、回答品質は証明しない。Pages成功は公開ビルド証跡であり、実環境ランタイム証跡ではない。

再利用先

Snowpark実行層、評価/トレース補強、ツールアダプタ、トレース保存、ゴールデン評価、失敗時JSON証跡の整合、Backlog受入基準。

関連ノードまたはレーン

RAIOPS-12、Snowpark Python、ゴールデン評価、トレース保存、エラー分類、L6公開面更新。

次アクションまたはブロッカー

実環境資格情報とSnowpark実行環境が揃う別レーンで、ターゲット、ロール/スキーマ、ストアドプロシージャ/UDF/dbt Pythonモデル、Cortex境界、失敗時JSON証跡を別証跡として追加する。ローカル契約を実環境成功に読み替えない。

カテゴリ: 実環境トレース境界 証跡: main統合済み / Pages反映済み 証跡: 環境変数不足時に代替へ逃げない

RAIOPS-7 実環境トレースランナー境界

現在のプロジェクト状況

RAIOPS-7はソース統合 b1a8568 と証跡修正 1555300 がmain統合済み。CI品質ゲート 28573780045 とPagesビルド 28573778991 は成功。候補 8408616 のローカル静的境界証跡をPages向け説明へ反映し、L4第三者テストも通過している。L5実環境境界レーンはSnowflake資格情報なしで停止。

使うべきか

使う。実環境実行を始める前に、環境変数不足時の明示停止、暗黙フォールバック禁止、トレース項目契約、秘密情報らしいエラーのマスキングを安いローカル静的証跡で固定する。

コマンドまたは証跡

tools/run_live_trace.py --runtime snowflake --trace-path ...
tools/run_live_trace.py --runtime local_explicit_test --trace-path ...
tests/test_planner_and_trace.py
tests/test_streamlit_browser_e2e.py

何を証明するか

環境変数不足時のトレースは error_category=live_prerequisite_missinglive_external_attempted=falselive_external_executed=falselocal_fallback_used=false。疑似実環境失敗では live_external_attempted=true かつ live_external_executed=false。明示ローカルトレースは6レコードで、SQLを含む行も request_text は元の質問として残り、生成SQLとは分離されている。

何を証明しないか

Snowflake/Cortexの実環境成功、Cortex Analyst実行、Snowflake OPSテーブル書き込み、Slack/Backlog/API/Webhookの実送信、SQL結果正当性、回答品質、本番運用向けの観測性は証明しない。

再利用先

ツールアダプタ、トレースロガー、トレース保存、実環境統合準備度、公開面の証跡境界。

関連ノードまたはレーン

RAIOPS-7、ツールアダプタ、トレースロガー、L2統合候補、L4第三者テスト、L5実環境境界レーン。

次アクションまたはブロッカー

実環境Snowflake/Cortex資格情報が揃うまでは実環境成功扱いにしない。live_external_attemptedlive_external_executed を同一視しない。

カテゴリ: RBAC / コストガードレール 証跡: 契約フローE2E 証跡: 疑似コネクタ単体

RAIOPS-13 RBAC / LLM安全 / コストトレース境界

現在のプロジェクト状況

main 45c867d にRAIOPS-13のRBAC、コストガードレール、LLM安全フィールド、Snowflakeセッション制御が統合済み。CI品質ゲート 28584336684 とPagesビルド 28584336044 は成功。証跡は .agent-feedback/SUBAGENT_INVOCATIONS.mdINV-20260702-044 から INV-20260702-047、実装レポートは docs/project-management/raiops13-rbac-cost-guardrail-report.md

使うべきか

使う。RBAC、LLM安全フィールド、生データ/個人情報の安全停止、コストガードレール、Snowflakeクライアントのセッションパラメータ、トレースメタデータ整合を、実環境資格情報なしでも壊れにくい契約として固定する。

コマンドまたは証跡

pytest -q tests/test_planner_and_trace.py70 passed
pytest -q116 passed, 2 skipped
node tools/check_parallel_session_guardrails.mjsnode tools/check_feedback_reflection.mjspython3 tools/sync_obsidian_docs.py --direction checkgit diff --check はmain側確認済み。

何を証明するか

ROLE_BOUNDARIESLLM_SAFE_FIELDS が計画とトレースに入ること、生データ/個人情報フィールドヒントが sensitive_or_raw_data_request で安全停止すること、安全でない RETAIL_AI_OPS_LLM_SAFE_FIELDS と非正のコスト値が安全側停止になること、SQL limit とトレースメタデータが設定と一致すること、疑似Snowflakeコネクタが QUERY_TAGSTATEMENT_TIMEOUT_IN_SECONDS を受けること。

何を証明しないか

Snowflake実クエリ、実ロール付与/RLS/IAM、リソースモニター作成、ウェアハウス履歴上のクエリタグ確認、Snowflake OPS.COPILOT_TRACE_LOG への書き込み、Cortex Analyst/Search/Agents実行、SQL結果正当性、回答品質、本番FinOpsダッシュボードは証明しない。証跡ラベル: NOT_EXECUTED_NOT_PROVEN

再利用先

RBAC / アクセス制御、コストガードレール、プランナー、エージェントルーター、ツールアダプタ、トレースロガー、トレース保存、Backlog受入基準、公開面の証跡境界。

関連ノードまたはレーン

RAIOPS-13、RBAC、コストガードレール、プランナー、エージェントルーター、ツールアダプタ、トレースロガー、トレース保存、L6公開面更新。

次アクションまたはブロッカー

実環境資格情報と権限が揃う別レーンで、Snowflakeロール、セッションパラメータ、リソースモニター、トレース書き込み、Cortex実行を別証跡として追加する。ローカル契約や疑似コネクタ成功を実環境成功やintegration_readyとして扱わない。

カテゴリ: KPI契約 証跡: 契約テスト 証跡: ローカルデータあり

dbtスキーマ / 汎用テスト / 個別SQLテスト / 静的契約ゲート

現在のプロジェクト状況

main 6580c3b のRAIOPS-4で、モデルのスキーマテスト、汎用テスト、dbt/tests/singular/dbt/seeds/schema.yml、KPIシード契約、再集計リスクの負例フィクスチャを静的契約ゲートへ統合。tools/check_dbt_static_contract.py とpytest 7件、CI品質ゲート 28577692921、Pagesビルド 28577691531 は成功。

使うべきか

使う。セマンティックモデルとゴールデン評価へ渡すKPI定義、粒度、率系/再集計リスクの最低契約を守る。

コマンドまたは証跡

python3 tools/check_dbt_static_contract.py
.venv/bin/python -m pytest tests/test_dbt_static_contract.py -q
dbt/models/**/schema.yml
dbt/tests/generic/*.sql
dbt/tests/singular/*.sql
dbt/seeds/schema.yml

何を証明するか

モデル列のnot_null/unique/rangeなどの契約、汎用テストマクロ、KPIシード行、未対応/ギャップ表現、再集計注意の個別SQL契約がリポジトリ内に静的に存在し、解釈・コンパイル可能な状態であること。

何を証明しないか

実環境dbtビルド/テストは未証明。Snowflake実データ上のdbtテスト成功、SQL結果正当性、Cortex Analyst、回答品質、Streamlit E2E、率KPIを月別以外へ安全に再集計できることは証明しない。証跡ラベル: NOT_EXECUTED_NOT_PROVEN

再利用先

プロジェクト内、プロジェクトファミリー、リント・CI、Backlog受入基準、クライアント納品向け汎用スキル。

関連ノードまたはレーン

kpi_definitions シード、mart_retail_monthly_kpi、セマンティック入力、評価入力。

次アクションまたはブロッカー

実環境資格情報を使う別レーンでdbt seed/build/testを実行し、Snowflakeターゲット、ロール、スキーマ、行数、失敗したテスト名、SQL結果正当性を別証跡として追加する。率系KPIの再集計はセマンティック/ゴールデン評価側のケースへ接続する。

カテゴリ: セマンティック契約 証跡: 契約テスト 証跡: ローカル静的検証器

率KPIの変異テスト / 分母ゼロ防止

現在のプロジェクト状況

L5コミット ef6a825 をローカル静的レビュー候補として反映。tests/test_semantic_contract.pytools/validate_semantic_contract.py --json、全体pytestで、セマンティック契約の負例を検出できることを確認している。監査用ラベル: reviewed-candidate_local-static

使うべきか

使う。率KPIを保存済み率のまま SUM / AVG する誤用と、分母ゼロ防止の欠落をセマンティック契約変更時に早く検知する。

コマンドまたは証跡

PYTHONDONTWRITEBYTECODE=1 pytest -q tests/test_semantic_contract.py
PYTHONDONTWRITEBYTECODE=1 python3 tools/validate_semantic_contract.py --json
PYTHONDONTWRITEBYTECODE=1 pytest -q

何を証明するか

セマンティック検証器が、保存済み率の SUM / AVG 誤用と、分母ゼロ防止の契約違反をローカル静的に検出できること。

何を証明しないか

Snowflake実行、Cortex Analyst登録または実応答、SQL結果正当性、回答品質、実環境外部実行は証明しない。L4ブラウザE2Eは別証跡で扱い、セマンティック検証器の追加進捗には加算しない。

再利用先

セマンティックKPIモデル、検証済みクエリ、ゴールデン評価の率KPIケース、CIの契約検証器、Backlog受入基準。

関連ノードまたはレーン

セマンティックKPIモデル、dbtテスト、ゴールデン評価、L5セマンティック検証器レーン。

次アクションまたはブロッカー

実環境Snowflake/Cortex、SQL結果正当性、回答品質は別証跡で追加する。L4ブラウザE2EはUI証跡として扱い、セマンティック公開面の進捗には加算しない。

カテゴリ: 通知ワークフロー 証跡: フィクスチャ単体テスト

Backlog / Slack 外部送信なしシミュレーション Nodeテスト

現在のプロジェクト状況

このリポジトリ群では、外部送信しない通知シミュレーションをテストパターンとして扱う。このブランチ単体では、main統合前のレーン成果物が未搭載の場合がある。監査用モード名: private_simulation

使うべきか

使う。遠隔報告やBacklog/Slack文面の決定的テストとして有効。ただし実配送の証跡語と分ける。

コマンドまたは証跡

node --test tests/backlog_slack_notification.test.mjs
--mode private_simulation
sent_external=false

何を証明するか

フィクスチャ入力から本文、重複抑止、宛先メタデータ、外部送信しない安全経路が期待通りになること。

何を証明しないか

実Slack投稿、実Backlog API配送、相手ペインの受理、GitHub Issue上の報告確認。

再利用先

プロジェクトファミリー、クライアント納品向け汎用スキル、Backlog受入基準、ドキュメントテンプレート。

関連ノードまたはレーン

遠隔Issue報告、Backlog/Slack通知レーン、並列セッション運用。

次アクションまたはブロッカー

main統合後に現物ファイル名でコマンドを固定し、実配送確認とは別の実環境結合項目を作る。

カテゴリ: 構成図品質 証跡: 静的リント

構成図品質リント

現在のプロジェクト状況

接続線の幾何、テキスト配置、構成図品質をまとめて見るNodeラッパーがある。構成図HTMLの変更時に必須ゲートとして扱う。

使うべきか

使う。GitHub Pagesの構成図品質を安定させるための低コストで決定的な静的ゲート。

コマンドまたは証跡

node tools/check_diagram_quality.mjs
tools/check_diagram_connectors.mjs
tools/check_diagram_text_layout.mjs

何を証明するか

HTML/SVGの接続線、矢印、ラベル、テキストはみ出しなどのページ品質ルールが壊れていないこと。

何を証明しないか

ビジネスロジック、dbt契約、元画像との芸術的忠実度、Snowflake/Cortex実行成功。

再利用先

リント・CI、プロジェクトファミリー、クライアント納品向け汎用スキル、ドキュメントテンプレート。

関連ノードまたはレーン

構成図HTML、構成図レビューレーン、準備度オーバーレイ。

次アクションまたはブロッカー

構成図変更時だけでなく、公開前のPages簡易確認と組み合わせる。今回のテストパターンページ自体には構成図リントを適用しない。

カテゴリ: フィードバック反映ワークフロー 証跡: 静的リント 証跡: ワークフロー契約

フィードバック反映リント

現在のプロジェクト状況

tools/check_feedback_reflection.mjsがプロジェクト内台帳、ルール、子スキルの構造を検査する。

使うべきか

使う。レビュワー指摘や改善手順を反映する変更では必須。今回のHTMLレーンでは編集禁止のため提案に留める。

コマンドまたは証跡

node tools/check_feedback_reflection.mjs
.agent-feedback/構造、プロジェクトスキル、子スキル一覧。

何を証明するか

台帳行、target_scopetrigger_decision、子スキル経路などの構造的な反映漏れがないこと。

何を証明しないか

自然言語上の全トリガーを人間が拾えたこと、反映内容の品質、mainセッションの統合承認。

再利用先

プロジェクト内、リント・CI、クライアント納品向け汎用スキル、Backlog受入基準。

関連ノードまたはレーン

フィードバック台帳、エージェントスキル統制、レビュー引き継ぎ。

次アクションまたはブロッカー

共有スキルや台帳更新はこのレーンでは行わず、mainセッションで反映可否を決める。

カテゴリ: 並列セッションワークフロー 証跡: 静的リント 証跡: ワークフロー契約

並列セッションガードレールリント

現在のプロジェクト状況

親スキルとタスク分割文書にガードレールがある。専用リントは候補で、現時点では文書レビューと関連リントで補助している。

使うべきか

使うべき。posted、delivered、accepted、reported、reviewed、integration_readyの混同を機械的に止める余地が大きい。

コマンドまたは証跡

parallel-session-review-orchestration/SKILL.md
docs/project-management/parallel-session-task-split-20260630.md
将来の状態語リント。

何を証明するか

タスクブリーフ、レーン報告、レビュー引き継ぎで状態語が段階別に書かれていることを検知できる。

何を証明しないか

相手ペインが実際に作業を受理したこと、成果物がレビュー済みであること、統合してよいこと。

再利用先

プロジェクトファミリー、クライアント納品向け汎用スキル、リント・CI、Backlog受入基準。

関連ノードまたはレーン

並列委任、遠隔Issue報告、オーケストレーター側レビュー。

次アクションまたはブロッカー

mainセッションでリント化対象の文面と誤検知許容度を決める。レーン単独ではintegration_readyを宣言しない。

カテゴリ: Pythonランタイム 証跡: フィクスチャ単体テスト 証跡: ローカルデータあり

Python pytest プランナー / トレース / Obsidian同期

現在のプロジェクト状況

tests/test_planner_and_trace.pytests/test_sync_obsidian_docs.pyがある。pytestを実行できる環境がない場合は環境未整備として扱う。

使うべきか

使う。LLMルーティング、安全停止、トレース、ゴールデン評価フィクスチャ、ドキュメント同期の局所回帰を安く検知できる。

コマンドまたは証跡

python3 -m pytest -q
python3 tools/sync_obsidian_docs.py --direction check

何を証明するか

ローカルPython環境でプランナー/トレースやドキュメント同期のフィクスチャが期待通り動くこと。

何を証明しないか

Cortex、Snowflake、Streamlitの実環境動作、公開Pages到達、LLM回答品質の網羅性。

再利用先

プロジェクト内、プロジェクトファミリー、リント・CI、Backlog受入基準。

関連ノードまたはレーン

エージェントプランナー、トレース記録、Obsidianドキュメントミラー、ゴールデン評価シード。

次アクションまたはブロッカー

pytest未導入なら実施済みにしない。Python環境固定後にコマンド、ランタイム、スキップ理由を報告形式へ入れる。

カテゴリ: Streamlit UI簡易確認 証跡: コンポーネント簡易確認 証跡: HTTP起動確認

RAIOPS-11 Streamlitコンポーネント簡易確認

現在のプロジェクト状況

L4コミット 7b3656d9 を、ローカルのコンポーネント簡易確認済み候補として公開面へ反映。mainセッション/オーケストレーター再実行ではStreamlit UI簡易確認と全体pytestが成功している。監査用ラベル: reviewed-candidate_local-component-smoke

使うべきか

使う。Streamlitの利用者向け表示経路を作り始めた段階で、暗黙フォールバックやフィクスチャ成功条件の緩みを安く止める。

コマンドまたは証跡

tests/test_streamlit_ui_e2e_smoke.py
docs/project-management/raiops11-ui-e2e-smoke-report.md
python3 -m retail_ai_ops.eval_runnerEVAL_EXIT=19/10 passed、既知ギャップは golden-005 のみ。

何を証明するか

Snowflake資格情報なしで暗黙フォールバックしないこと、local_explicit_testだけがフィクスチャ成功扱いになること。構造化KPI、追加質問、曖昧質問、未対応質問、危険操作の5シナリオで、ルート、ツール計画、SQLリクエスト、結果、引用、トレース保存、人間承認候補を確認する。

何を証明しないか

Playwrightまたは実ブラウザDOM操作、スクリーンショット、レスポンシブ、アクセシビリティ、Snowflake / Cortex実環境実行、回答品質、SQL結果正当性、外部Slack/Backlog送信は未証明。利用者向けE2E未満として扱う。証跡ラベル: live_external_executed=false

再利用先

Streamlit UI、アプリ実行層、トレース記録、人間承認候補表示、GitHub Pages公開面の証跡境界。

関連ノードまたはレーン

Streamlit UI、アプリ実行層、エージェントルーター、プランナー、ゴールデン評価、人手レビューキュー。

次アクションまたはブロッカー

Playwrightまたは実ブラウザDOM、スクリーンショット、レスポンシブ、アクセシビリティ、実環境Snowflake/Cortex、回答品質、SQL結果正当性は別証跡として追加する。

カテゴリ: StreamlitブラウザE2E 証跡: 利用者向けE2E / ブラウザE2E 証跡: ローカル出力

RAIOPS-11 StreamlitブラウザE2E

現在のプロジェクト状況

main統合 65ff7c3 の監督セッション再実行では、初回ブラウザE2Eで1件のタイミング不安定を検出し、直後の再実行で6件成功した。直前の修正後 c150168 でもブラウザE2EとUI簡易確認が成功している。

使うべきか

使う。コンポーネント簡易確認では見えない、実ブラウザDOM、チャット入力、タブ表示、SQLプレビュー、結果、トレース保存、スクリーンショットの利用者経路を検査する。

コマンドまたは証跡

tests/test_streamlit_browser_e2e.py
tests/test_streamlit_ui_e2e_smoke.py
requirements-e2e.txt
outputs/raiops11-browser-e2e/*.png / *.jsonl はローカル実行証跡。

何を証明するか

Playwright ChromiumでStreamlitサーバーをサブプロセス起動し、/_stcore/health 待機後に主要シナリオを実ブラウザ経由で確認すること。Snowflake資格情報欠落時は明示停止し、ローカルフィクスチャへ暗黙フォールバックせず、不要な欠落証跡ファイルも作らない。

何を証明しないか

Snowflake/Cortex UIの実環境連携、実SQL結果正当性、回答品質、レスポンシブ/アクセシビリティ/クロスブラウザ網羅、外部Slack/Backlog送信、本番承認キュー永続化は証明しない。初回の引用DOM失敗は、直後再実行成功後もDOMタイミング不安定リスクとして残す。

再利用先

Streamlit UI、アプリ実行層、SQLプレビュー、トレース記録、人間承認候補表示、公開面の証跡境界。

関連ノードまたはレーン

Streamlit UI、データアナリスト、アプリ実行層、トレースロガー、人手レビューキュー、L4 RAIOPS-11ブラウザE2Eレーン。

次アクションまたはブロッカー

実環境UI結合、回答品質、SQL結果正当性、アクセシビリティ/レスポンシブ、クロスブラウザ確認は別証跡として追加する。コンポーネント簡易確認とブラウザE2Eを実環境成功として扱わない。トレース/スクリーンショットはgit管理外のローカル出力として扱う。

カテゴリ: 回答品質 証跡: ローカル静的フィクスチャ 証跡: 評価パターン

ゴールデン評価 / 利用者向け回答品質

現在のプロジェクト状況

main統合 65ff7c3 の監督セッション再実行では、pytestとNodeの外部送信なしシミュレーションが成功した。L4修正後 c150168 のローカル静的フィクスチャ評価では、18件の品質期待が通り、8件の既知ギャップを観測し、想定外失敗はなかった。監査用の正確なカウンターは後続の証跡欄に残す。

使うべきか

使う。dbt契約だけでは防げない、質問意図、KPI粒度、未対応回答、率系再集計の品質劣化を検知する。

コマンドまたは証跡

python -m retail_ai_ops.eval_runner
python -m retail_ai_ops.eval_runner --strict-known-gaps
.venv/bin/pytest -q
node --test tests/backlog_slack_notification.test.mjs

何を証明するか

ローカル静的フィクスチャ評価で、18件の品質期待が通り、8件の既知ギャップが想定通り観測され、想定外失敗がないこと。厳格な既知ギャップモードでは既知ギャップを失敗として扱い、品質ゲート圧力を残す。監査用キー: evaluation_mode=local_static_fixturequality_passed=18known_gaps_observed=8matched_expectation=26

何を証明しないか

Snowflake実行、Cortex実呼び出し、UI操作性、全質問の正しさ、セマンティック契約とプランナーの完全整合は証明しない。証跡ラベル: live_external_executed=false

再利用先

プロジェクトファミリー、クライアント納品向け汎用スキル、Backlog受入基準、ドキュメントテンプレート。

関連ノードまたはレーン

セマンティックモデル、ゴールデン評価、Streamlit UI、Cortex Analyst/Search/Agents準備度。

次アクションまたはブロッカー

厳格な既知ギャップモードは品質ゲート圧力として別扱い。ブランチ内証跡レポートのカウンターが変わった場合は、古い正確なカウンター行を残さず更新してから公開面へ反映する。

カテゴリ: 統合証跡の鮮度管理 証跡: 静的リント 証跡: ワークフロー契約

統合証跡レポートのカウンター鮮度

現在のプロジェクト状況

main統合 65ff7c3 はCI品質ゲート 28563040190 とPagesデプロイ 28563039370 が成功。L2修正 c150168 後のL4再確認で、品質期待18件、既知ギャップ8件、厳格モード失敗8件、期待一致26件を再確認した。ただしintegration_readyとは扱わない。

使うべきか

使う。評価カウンターが変わるたびに公開面、ブランチ内レポート、リントトークンのどれかが古いままだと、ローカル静的証跡と公開Pages証跡がずれる。

コマンドまたは証跡

git diff --check HEAD~1..HEAD
rgで旧カウンター行の不在確認
node tools/check_public_surface_links.mjs

何を証明するか

公開説明が最新のローカル静的評価カウンターを参照し、古いレポートを正として扱っていないこと。

何を証明しないか

実環境Snowflake/Cortex実行、実SQL結果正当性、回答品質そのもの、Pages公開後のHTTP 200。

再利用先

ゴールデン評価、統合証跡レポート、公開面リント、並列セッション引き継ぎ。

関連ノードまたはレーン

L2統合証跡更新、L4最終統合テスト確認、L5最終ブラウザE2E、ゴールデン評価、docs/index、公開面レーン。

次アクションまたはブロッカー

新しいカウンター変更を公開する場合は、ローカル静的評価、ブラウザE2E、実環境結合、公開Pagesを同じ状態語へ畳まない。

カテゴリ: GitHub Pagesドキュメント 証跡: 静的リント

HTML構文解析 / リンク / ローカルプレビュー確認

現在のプロジェクト状況

構成図やレビュー補助HTMLを公開面として扱うため、HTMLパーサー、リンク確認、ローカルプレビューをレーン内で実施できる。

使うべきか

使う。docs/index.htmlから到達できること、タイトル、主要語、はみ出しがないことを確認する。

コマンドまたは証跡

python3 - <<'PY'でHTMLパーサー検査
rg -n "test-patterns.html|テストパターン" docs/index.html docs/project-management/test-patterns.html
ローカルホストプレビュー。

何を証明するか

静的HTMLとして壊れておらず、入口から到達でき、人間が読む主文言が存在すること。

何を証明しないか

GitHub Pages上のHTTP 200、CI通過、コンテンツの設計妥当性、実環境結合準備度。

再利用先

プロジェクトファミリー、リント・CI、ドキュメントテンプレート、Backlog受入基準。

関連ノードまたはレーン

docs/index.html、プロジェクト管理HTML、公開レビュー面。

次アクションまたはブロッカー

公開後はPages URLのHTTP 200とブラウザ表示を別証跡として追加する。

このプロジェクトで使う順序

最初からすべてを実環境E2Eにしない。安い検知で契約を固め、実環境と利用者向け確認は別証跡として積む。

1. 静的検査 / コンパイル

HTML、ドキュメント、構成図、dbt解析/コンパイルで構造破損を先に止める。

2. 契約 / フィクスチャ

シード、マート、通知、ワークフロー状態の契約をローカルフィクスチャで固定する。

3. 実環境結合

Snowflake、Backlog、Slack、Cortexなどはターゲットと実ログを添えて別証跡にする。

4. 利用者向け評価

ゴールデン評価、Streamlit、Cortex回答の品質は、ユーザーが見る経路として検証する。