Communitygithub.com

動態審查

審查和修復一個富含動畫效果的網頁(如滾動故事、WebGL 英雄區、影片擦洗、著色器章節),並透過「觀看與修正」循環進行。當被要求審查、批評、QA、打磨或「讓它準備好上線」一個動畫登陸頁面、模板或英雄區時,或在上線發布前使用。此技能會拍攝桌面和手機尺寸的章節截圖,根據 10 項標準的評分表評分,執行阻塞性 QA 檢查(控制台錯誤、溢出、可逆滾動、暫停控制、減少動畫偏好、文字大小、觸控目標、白色閃爍、字體、替代文字、焦點、頁面體積),並修復未通過的項目。

動態審查 是什麼?

Motion Review 是一個專門為 AI 代理(如 Claude Code)設計的技能,用於對富含動畫的網頁進行全面審查、QA 和修正。其核心是一個「觀看與修正」循環:拍攝桌面和手機尺寸的章節截圖,根據 10 項標準的評分表評分,運行阻塞性 QA 檢查,並逐步修復最嚴重的問題,直到頁面達到「出貨就緒」的標準。此技能支援 Playwright 進行自動化截圖和檢查,並包含一個詳細的評分量表和 QA 清單作為參考。它對於確保高品質的動畫登陸頁面、模板或英雄區在發布前沒有任何瑕疵特別有用。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/iboss21/regescore-motioncraft-skills/tree/main/plugins/motioncraft/skills/motion-review

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

動態審查 是做什麼的?

一個動態頁面不是在您的顯示器上能運作就完成了。它是在滿足固定評分表的標準、通過桌面和手機尺寸的所有阻塞性檢查,而且您已經親自看過結果(而不是相信程式碼)之後才算完成。

此技能為您提供三項工具:

  1. 一個觀看與修正循環:截圖、評分、修正最嚴重的問題、再次截圖。
  2. 一個包含 10 項標準、每項評分 1 到 10 分的評分量表,以及 5 分、8 分和 10 分的具體樣貌:references/rubric.md。
  3. 一個阻塞性 QA 檢查清單和兩個獨立的測量腳本:references/qa-checklist.md, scripts/section-shots.mjs, scripts/qa-lite.mjs。

標準

  • 評分量表平均分數需達到 8 分或以上,且沒有任何單項標準低於 7 分。
  • 每一項阻塞性檢查都必須通過,在 1440x900 和 390x844 的尺寸下。
  • 您必須親眼看過每個章節的兩種尺寸。沒有截圖的審查只是猜測。

如果頁面未達標準,無論英雄區看起來多好,它都還沒準備好。

需求

  • Node 18 或更新版本。
  • 在您正在審查的專案中安裝 Playwright:npm i -D playwright 然後 npx playwright install chromium。或者,使用 playwright-core 搭配已安裝的 Chrome,並傳遞參數 --chrome "<chrome 路徑>"。腳本會自動在 Windows、macOS 和 Linux 的常見位置中找到 Chrome 或 Edge。
  • 可選:npm i -D sharp 用於生成聯絡表。即使沒有它,您仍然可以獲得每個 PNG 截圖。
  • 從您的專案資料夾執行腳本。它們會優先在你執行腳本的資料夾中尋找 Playwright 和 sharp,然後再在腳本旁邊尋找,因此在您的專案中安裝一次就足夠了。下面的腳本路徑是相對於此技能資料夾的。Claude Code 在載入技能時會顯示該資料夾;手動複製後,路徑例如是 ~/.claude/skills/motion-review/,所以完整呼叫是 node ~/.claude/skills/motion-review/scripts/qa-lite.mjs ./site。

?shot=N 慣例

腳本會開啟 index.html?shot=N,並期望頁面定位到第 N 個章節。請在您的頁面中加入以下程式碼(只需幾行程式碼,就能讓每次審查都可重複):

// QA 鉤子:?shot=N 會在載入後將第 N 個章節滾動到視口中間。
const shot = new URLSearchParams(location.search).get("shot");
if (shot !== null) addEventListener("load", () => {
  const marked = document.querySelectorAll("[data-shot]");
  const s = (marked.length ? marked : document.querySelectorAll("section"))[+shot];
  if (s) scrollTo(0, s.getBoundingClientRect().top + scrollY + s.offsetHeight / 2 - innerHeight / 2);
});

對於影片或只播放一次的開場動畫,當 ?shot 存在時,也請將時間軸跳轉到其穩定狀態,這樣截圖顯示的是合成後的畫面,而不是第 1 幀。對於計時影片,請參閱分析技能中的公平捕捉方法:../motion-analytics/references/reference-grading.md。

觀看與修正循環

重複執行此循環,直到頁面達到標準。每次修正都應優先處理單一最具破壞性的問題,而不是一次處理十個小問題。

1. 拍攝

node scripts/section-shots.mjs ./my-site 6 ./qa/shots

這會在本機埠口上提供 ./my-site 服務,開啟桌面和手機尺寸下的 index.html?shot=0 到 ?shot=5,寫入 d0.png ... d5.png、p0.png ... p5.png,並在安裝了 sharp 時生成 desk-sheet.png 和 phone-sheet.png。它會列印它所看到的每個頁面錯誤和控制台錯誤。

2. 觀看

先打開兩張聯絡表,然後是單個影格。逐個章節地問:

  • 頁面的單一核心概念在此影格中是否可見,還是這只是一個通用章節?
  • 手機影格是否擁有自己的構圖,還是只是桌面板的壓縮版?
  • 是否有任何文字落在圖片繁忙的區域上?
  • 是否有任何東西被裁切、重疊、空白或仍在載入?
  • 每個章節看起來是否屬於同一個品牌?

在評分之前,用簡單的文字寫下你所看到的。「手機版英雄區標題遮住了主角的臉」是有用的訊息。「看起來不錯」則不是。

3. 檢查

node scripts/qa-lite.mjs ./my-site

它會針對每項阻塞性檢查輸出 PASS 或 FAIL,並附上測量到的數值。任何 FAIL 都會阻止發布。請參閱 references/qa-checklist.md 了解每項檢查的含義、腳本的測量方式以及常見的修復方法。

有些檢查需要人工判斷:暫停控制是否能停止所有移動的元素、在快速翻動後向後滾動是否能流暢地重播、開啟聲音時頁面的感覺是否正確。檢查清單會將這些標記為手動檢查。請確實執行它們。

4. 評分

根據截圖和使用頁面的體驗,為所有 10 項評分量表標準評分。使用 references/rubric.md 中的錨點描述。根據螢幕上顯示的結果評分,而不是根據程式碼的意圖。每個分數附上一句證據說明。

5. 修正最嚴重的問題

選擇最低分數或第一個 FAIL。修正原因,而不是症狀:如果文字在手機上難以閱讀,請修正字體縮放和疊層遮罩,而不是縮小圖片。保持改動小而局部。

6. 重複

再次拍攝、再次觀看、重新評分你動過的標準。達到標準後停止。對於一個新頁面,三到五次循環是正常的。

審查報告格式

當你報告審查結果時,請使用此格式,以便結果可以隨時間比較:

Page: <頁面名稱>   Pass: <次數>   Date: <年-月-日>
Rubric: idea 8, craft 7, motion 9, ... average 8.1, lowest 7 (craft)
Blocking: 11 of 12 PASS. FAIL: tap targets (3 under 44 px on phone: .nav a, #prev, #next)
Seen: 6 desktop, 6 phone frames
Worst problem: <一句話描述最嚴重的問題>
Fix applied: <一句話描述已套用的修正>
Next: <一句話描述下一步>

基本原則

  • 評分時以手機版本優先。 大多數訪客透過手機進入。一個在桌面上是 9 分但在手機上只有 6 分的頁面,最終得分就是 6 分。
  • 無法停止的動畫是 bug。 任何移動超過五秒的元素都需要一個可見的暫停控制,並且在「減少動畫效果」的設定下,必須提供一個完整、靜態的頁面。
  • 滾動必須雙向可行。 向上滾動必須乾淨地取消向下滾動所產生的效果,無論滾動速度如何。
  • 沒有靜默錯誤。 即使頁面看起來正常,一個控制台錯誤也算 FAIL。這通常意味著某個備用路徑已損壞。
  • 同時評判穩定影格和動畫影格。 截圖顯示構圖;只有實際使用頁面才能感受時序。兩者都要做。

相關技能

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

相關技能