Deterministic external-evidence web validation workflow for Sanguo ETL/RAG. USE FOR: 外部證據網站檢查、來源健康度、allowlist 驗證、來源 seed 覆蓋、3kweb-check、external evidence source health、fetch/parse/hash first、LLM reviewer second。
日本語の概要は準備中です。原文の説明を表示しています。
BROWSER REVIEW QA SKILL — Use the built-in browser/headless browser (puppeteer-core) to open a browser-runnable Cocos preview, switch preview targets, capture screenshots, and compare them with reference images. USE FOR: screen-driven QA only when the user has already prepared a Browser Review environment that can run in the browser (`http://localhost:7456`, LoadingScene/preview host/preview target wiring ready). DO NOT USE FOR: current Cocos Editor window screenshots, Editor Preview capture, compile errors, or pure log analysis. If the Browser Review environment is not ready, stop and remind the user to prepare it first.
インストールする前に、エージェントに与えられる指示の中身を確認できます。
只有在下列條件都成立時,才使用 cocos-preview-qa:
http://localhost:7456 可開、可進入 LoadingScene/Preview Host、可切換 preview target若任何一項不成立,先停止並提醒使用者準備環境;不要退而改用 cocos-screenshot 假裝完成同一件事。
cocos-screenshot 的最大差別cocos-preview-qa: 截的是 瀏覽器 / Browser Review,可以自動開頁、切 target、批次截圖、做參考圖比對cocos-screenshot: 截的是 Cocos Editor 視窗目前看到的內容,不會自動開瀏覽器,也不會替你切 preview targetcocos-preview-qa 應先要求使用者準備環境;Editor 沒打開目標畫面時,cocos-screenshot 也無法替代不適用:
cocos-screenshotget_errorscocos-log-reader| 概念 | Cocos Creator | Unity 對照 |
|---|---|---|
| Preview 入口 | LoadingScene.scene | 一個專門的 PreviewBootstrap Scene |
| 控制旗標 | previewMode=true + previewTarget=N | 用 #if UNITY_EDITOR 的 Preview Manager |
| Screen 掛載點 | UIScreenPreviewHost.ts | 一個 MonoBehaviour 動態 Instantiate Prefab Variant |
| 狀態訊號 | window.__UI_CAPTURE_STATE__ | 一個靜态布林旗標或 Event 告知截圖工具「已就緒」 |
| 自動化截圖工具 | tools_node/capture-ui-screens.js(puppeteer-core) | Unity Test Framework + Graphics.Blit 或 EditorScreenshot |
Preview 入口 URL:
http://localhost:7456
瀏覽器開啟此 URL 時,Cocos Editor 會以 Game View 模式渲染最後一次開啟的場景。
完整 target 清單定義於 tools_node/capture-ui-screens.js 的 targets 陣列,以下為目前可用項目:
| targetId | screenId | targetIndex | 備註 |
|---|---|---|---|
LobbyMain | lobby-main-screen | 1 | |
ShopMain | shop-main-screen | 2 | |
Gacha | gacha-main-screen | 3 | |
GachaHero | gacha-main-screen | 3 | previewVariant: 'hero' |
GachaSupport | gacha-main-screen | 3 | previewVariant: 'support' |
GachaLimited | gacha-main-screen | 3 | previewVariant: 'limited' |
DuelChallenge | duel-challenge-screen | 4 | |
BattleScene | battle-scene | 5 | |
GeneralDetailOverview | general-detail-unified-screen | 6 | |
GeneralDetailSkills | general-detail-unified-screen | 12 | |
GeneralDetailOverviewZhenJi | general-detail-unified-screen | 9 | |
GeneralDetailBloodlineV3 | general-detail-bloodline-v3-screen | 6 | hiddenAlias: true |
SpiritTallyDetail | spirit-tally-detail-screen | 7 | |
GeneralList | general-list-screen | 8 |
同一
screenId可有多個 target(如 Gacha 的previewVariant)。新增 target 時需同步更新LoadingScene.ts的 switch case。
執行前,先確認使用者已準備好:
http://localhost:7456 可達tools_node/capture-ui-screens.js 或相容的 preview pipeline若上述任一條件未滿足,先回報「缺 Browser Review 環境」,不要直接改用 cocos-screenshot。
# 確認 Editor 可回應:
Invoke-RestMethod -Uri "http://localhost:7456/asset-db/refresh" -Method Get
若失敗(無法連線)→ 必須先啟動 Cocos Creator Editor,開啟此專案。
cd c:\Users\User\3KLife
node tools_node/capture-ui-screens.js --outDir artifacts/ui-source/<screen-id>/review
node tools_node/capture-ui-screens.js --target LobbyMain --outDir artifacts/ui-source/lobby-main/review
| 參數 | 說明 | 預設 |
|---|---|---|
--target | 指定單一 target(省略則截全部) | 全部 |
--outDir | 輸出目錄 | artifacts/ui-source/<screen-id>/review |
--url | Cocos Editor 基礎 URL | http://localhost:7456 |
--timeout | 等待畫面就緒的 ms 上限 | 45000 |
--retries | 失敗自動重試次數 | 1 |
--browser | 指定 Edge/Chrome 執行檔路徑 | 自動搜尋 |
--refreshBefore | 是否在截圖前先觸發 asset-db refresh | true |
範例:指定 browser 路徑
node tools_node/capture-ui-screens.js --target LobbyMain --outDir artifacts/ui-source/lobby-main/review --browser "C:\Program Files\Microsoft\Edge\Application\msedge.exe"
capture-ui-screens.js 的輸出在進 view_image 前,仍需遵守 thumbnail-first progressive zoom:先看 125px,不足才升到 250px、500px。
截圖完成後,一次只開 1 張主圖;若需要比對,再額外開 1 張對照圖,不可整批開 4 張:
view_image: artifacts/ui-source/lobby-main/review/LobbyMain.png
圖片檢視硬規定:一次最多
1張主圖 +1張對照圖;先試125px,不足才放大一倍;需要看>500px原圖時,必須先取得使用者明確同意。
| 用途 | 路徑 |
|---|---|
| UI 品質參考圖(設計稿) | docs/UI品質參考圖/ |
| 已通過的歷史 QA 截圖 | artifacts/ui-source/<screen-id>/review/*.png |
view_image 開啟新截圖前,先用 prepare-view-image.js 產出 125px 版本125px 不足,再依序升到 250px、500px;參考圖也用同一套流程輸出到 artifacts/ui-source/<screen-id>/review/notes.md,格式:
# QA Notes — <taskId> — <screenId>
- **date**: YYYY-MM-DD
- **agent**: Agent2(或 AgentX)
- **capture tool**: tools_node/capture-ui-screens.js
- **preview entry**: LoadingScene.scene + previewMode=true + previewTarget=<N>
## 截圖
- <screen>-16-9.png
- <screen>-19_5-9.png(若已截)
## 結論
| 項目 | 狀態 |
|------|------|
| 承載面 | pass / needs-tweak / blocked |
| 層次深淺 | pass / needs-tweak / blocked |
| Shadow/frame | pass / needs-tweak / blocked |
| 文字 i18n | pass / needs-tweak / blocked |
| 整體對齊 | pass / needs-tweak / blocked |
**整體結論**: pass / needs-tweak / blocked
## 主要觀察
(寫實際觀察到的問題或通過的點)
## 待後續處理
(若 needs-tweak 或 blocked,寫給誰、開哪張卡)
完成截圖與 notes 後,更新對應 task shard docs/ui-quality-tasks/<task-id>.json 中的狀態與 notes。
[capture-ui-screens] 找不到可用瀏覽器
→ 手動指定 --browser "C:\Program Files\Microsoft\Edge\Application\msedge.exe"
TimeoutError: Waiting for function failed: timeout...
可能原因 1: __UI_CAPTURE_STATE__ 從未設為 ready
→ 讀 <target>-debug-state.json,確認 captureState 欄位
→ 讀 <target>-debug.png(view_image)確認畫面內容
可能原因 2: asset-db 未完成 refresh
→ 先執行 curl.exe http://localhost:7456/asset-db/refresh,等 1-2 秒再重試
可能原因 3: LoadingScene.scene UUID 不符
→ 確認 assets/scenes/LoadingScene.scene.meta 存在且 uuid 正確
Preview compile failed: Unable to resolve bare specifier...
→ TypeScript 編譯問題;先用 get_errors 檢查,再觸發 Cocos compile。
{"status": "error", "error": "loadFullScreen failed: ..."}
→ screen JSON 路徑有誤或 skin/layout JSON 缺失;確認 UISpecLoader 路徑:
assets/resources/ui-spec/screens/<screenId>.jsonassets/resources/ui-spec/layouts/<layoutId>.jsonassets/resources/ui-spec/skins/<skinId>.json在 tools_node/capture-ui-screens.js 的 targets 陣列加入:
{ id: 'NewScreen', screenId: 'new-screen-id', targetIndex: 5 },
同步更新 assets/scripts/ui/scenes/LoadingScene.ts 中的 switch case:
case 5: await previewHost.showScreen('new-screen-id'); break;
成功執行後的 outDir 應包含:
| 檔案 | 說明 |
|---|---|
LobbyMain.png | 正式截圖 |
ShopMain.png | 正式截圖 |
Gacha.png | 正式截圖 |
DuelChallenge.png | 正式截圖 |
capture-report.json | 本次 capture 的元資料(timestamp、host、機器名) |
<target>-debug.png | 失敗時的除錯截圖(若有) |
<target>-debug-state.json | 失敗時的完整狀態 JSON(若有) |
notes.md | QA 觀察紀錄(手動補填) |
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Deterministic external-evidence web validation workflow for Sanguo ETL/RAG. USE FOR: 外部證據網站檢查、來源健康度、allowlist 驗證、來源 seed 覆蓋、3kweb-check、external evidence source health、fetch/parse/hash first、LLM reviewer second。
日本語の概要は準備中です。原文の説明を表示しています。
Use when the user asks to switch AI role/mode/persona or uses role-trigger words such as Captain, Coordinator, 寫文章, 寫文章模式, 文章模式, 技術文章, 部落格, 出版, 預覽. Routes the request to Project Captain, Publishing Director, or Article Writing Mode, loads the matching keep memory when available, and applies the role's workflow without excessive roleplay.
日本語の概要は準備中です。原文の説明を表示しています。
Write or revise AI-learning-notes article pages in "寫文章模式" when the user asks for articles, technical articles, blog posts, bilingual versions, article formatting consistency, shared article-base alignment, responsive layout, summary/TOC decisions, contrast, or publishing-flow compatibility.
日本語の概要は準備中です。原文の説明を表示しています。
Plan ATM framework refactors by preserving atom/map semantics before splitting large governance modules.
日本語の概要は準備中です。原文の説明を表示しています。
Captain 派工規範與決策手冊。當 AI 進入隊長模式或進行派工/派任務語境時,遵照這套標準,產出可供人類直接轉貼、高度結構化、符合 token 經濟且能動態適應可用 Roster 的派工單。
日本語の概要は準備中です。原文の説明を表示しています。
Create and register an atom through the provisioning facade.
日本語の概要は準備中です。原文の説明を表示しています。