Visual Regression
Before/after screenshot comparison guard。每次執行都抓 fresh before / after screenshots,使用 Playwright diff,分析後刪除 temporary snapshots 與 test results; 不維護 long-lived baselines。
Contract
VR 的測試單位是 domain,不是 repo。頁面由 configured URL paths 定義;不可因「頁面不在 目前 repo」而 skip。合法 skip 僅限 config 缺漏、dependency declined、clean local tree、 smart-skip 判斷無 visual impact、fixture 未建立、已知 SSR hang、環境依賴缺失。
VR 在 quality chain 中回答:「既有頁面是否仍 visually intact?」它不取代 Local CI Mirror, 也不取代 feature behavior verification。
Reference Loading
依執行情境讀取:
| Situation | Load |
|---|---|
| Any VR run | visual-regression-principles.md, visual-regression-preflight-flow.md, visual-regression-config.md, workspace-config.yaml |
| Screenshot execution | visual-regression-capture-flow.md, dependency-consent.md |
| Fixtures enabled | api-contract-guard.md, visual-regression-fixture-flow.md, vr-artifact-location.md |
| Analysis or JIRA report | visual-regression-analysis-reporting.md |
JIRA report、Slack summary,或任何 external write body 送出前,必須依
workspace-config.yaml 的 language 驗證語言。
Flow
- 解析 domain 與 company config,套用 root defaults inheritance。
- 檢查 visual regression 是否已設定;未設定則 stop,不 improvisation。
- 執行 smart skip、dependency consent、Playwright/toolchain readiness。
- 決定 SIT 或 Local comparison path;SIT 不可達時依 reference fallback。
- 透過
polaris-env.sh啟動 production-equivalent proxy 與 dev environment。 - Fixtures active 時先跑 API contract guard。
- Capture before screenshots,capture after screenshots,讓 Playwright compare。
- 分析結果、套用 first-run quality gate、必要時上傳 artifacts 並寫 JIRA wiki report。
- 無論 pass/fail/error 都 cleanup,保護 git stash、server state、temporary snapshots。
Hard Rules
- Always go through production-equivalent proxy;不可直接打 app dev port 迴避 routing。
- CSR content 必須等 deterministic selector,不使用 fixed timeout 當 readiness。
- UA-based mobile SSR 必須設定 mobile user agent,不只設 viewport。
- Fixtures active 時為 strict mode:任何 diff 都不是 data variance。
- First run after fixture setup/change 必須 human screenshot review;zero-diff 不代表截圖正確。
- Playwright tests 必須 sequential,
workers: 1。 - JIRA inline screenshot report 使用 REST API v2 wiki markup,不使用 MCP markdown comment。
Completion
Standalone run 回報 domain、comparison path、pages count、diff summary、HTML report path、 cleanup status。
Post-Task Reflection (required)
若本次修改 config、fixtures、JIRA report、或 framework references,final response 前執行