Communitygithub.com

johnson7543/design

記錄、重新生成並套用可重現的真實UI示範影片,透過情境驅動的Chrome分頁捕捉產品或設計於此儲存庫中的內容。請在需要建立或變更產品預覽影片或其錄製動作時使用;請勿用於合成動畫或不相關的影片編輯。

design 是什麼?

此技能提供一個端到端的工作流程,用於記錄、儲存和套用真實的產品UI示範影片。它直接從真實的Vite應用程式透過Chrome的原生分頁合成器串流捕捉影片,確保影片精確反映實際的產品行為,包括動畫、轉場和狀態更新。該工作流程圍繞「情境」建構,情境是JSON檔案,定義了要執行的瀏覽器動作(如打字、點擊、等待)以及預期的影片品質(如幀率、解析度、編碼)。使用者可以建立新產品的第一個示範情境,或更新現有情境並重新錄製。該技能支援的工具包括自動化錄製腳本、驗證腳本(檢查長度、解析度、幀率、H.264編碼以及無重複影格)以及用於快速檢視影格頁(密集動作連絡表)的圖像檢視命令。其關鍵原則是絕對不能更改產品UI以利於錄製,不能使用螢幕截圖取樣來代替真正的分頁捕捉,也不能對真實捕捉的影片進行後製平滑處理。它旨在為AI代理(如Claude Code)提供一個可靠、可重複且高保真的程序,根據文字描述建立或更新產品示範影片。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/johnson7543/design/tree/HEAD/skills/record-product-demo

在你喜歡的 AI 中提問

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

說明文件

記錄產品示範

將使用者的產品和動作描述轉換為已存檔的錄製情境,針對真實應用程式執行該情境,並將產生的素材套用到要求的預覽中。

選擇工作流程

工作流程

  1. 找到產品的路由、穩定的互動選擇器,以及消費其預覽的元件。保留要求的內容、順序、畫面構圖、持續時間和輸出位置。

  2. 建立或更新 scripts/demo-video-scenarios/<product-slug>.json。對於首次示範,先使用 npm run init:demo -- --product "<name>" --route <route> --consumer <file> 初始化,然後將起始動作替換為要求的序列。將產品特定的行為保留在情境中,而不是硬編碼在錄製器中。

  3. 使用真實的瀏覽器動作。在觀眾必須看到防抖更新、完成動畫或中間狀態時,加入刻意等待。保持總動作時間低於錄製持續時間;未使用的時間將成為最終的停頓。對於連續動畫,規劃其完整執行時間加上可讀的暫停,並加入 quality.motionChecks 窗口。

  4. 將產生的媒體放在 public/previews/ 下,除非現有產品使用其他公開資產位置。設定 application.consumerFiles 和公開路徑,以便執行器驗證這些資產已套用。在新增預覽時,先修補消費者;覆蓋已引用的輸出即視為套用更新。

  5. 執行:

    npm run record:demo -- --scenario scripts/demo-video-scenarios/<product-slug>.json
    
  6. 驗證結果,而不僅僅是命令的退出碼:

    • 錄製器會執行 verify:demo,並且必須通過精確的持續時間、尺寸、方形像素、平均幀率、影格數、H.264 編碼以及已設定的連續動作檢查。
    • 使用 view_image 開啟每個列印的整體和動作連絡表。確認輸入的值、產品的中間變更、均勻分佈的動作、轉場的兩端以及最終狀態。
    • 執行 npm run lint;針對套用預覽時所做的任何應用程式UI變更,執行 AGENTS.md 所需的檢查。

平滑動作合約

  • 對於動畫示範,優先使用真正的 60 fps。尊重來源捕捉的報告幀率上限;切勿透過複製影格或對 WebGL 動作進行插值來宣稱更流暢的輸出。
  • 為主要轉場提供足夠的情境時間,使其清晰可讀。使用產品預期的持續時間;當沒有預期時間且流暢性至關重要時,從每個方向約 2-3 秒開始,並延長整體影片,而不是趕著進行後續動作。
  • 在 quality.motionChecks 中標記每個應連續移動的區間。預設閘門不允許連續的完全相同的影格。僅當產品在該區間內刻意保持靜止時,才放寬該閘門,並在情境描述中記錄原因。
  • 根據密集的動作連絡表以視覺方式判斷節奏。有效的影格數無法檢測到前置載入或突然的緩動曲線。
  • 如果真實產品動畫本身不流暢,且使用者要求改善平滑度,請修正其影格節奏或緩動,並在重新錄製前執行相關的 UI 檢查。否則,保留產品行為並解釋限制,而不是在後製中掩蓋它。

捕捉不變量

  • 透過 Chrome 的原生分頁合成器串流記錄真實的 Vite 應用程式。Puppeteer 可以提供鍵盤、指標和時序,但產品必須執行自己的狀態更新和渲染。
  • 請勿使用 DevTools 螢幕截圖取樣來代替 WebGL 動作的原生分頁捕捉;這可能會遺漏中間影格並產生虛假的轉場效果。
  • 請勿編碼高於真實捕捉速率,或使用動作插值來通過平滑度要求。
  • 切勿捕捉使用者的完整桌面或現有顯示器。本機擴充功能只能捕捉選定的 localhost 產品分頁。
  • 僅使用 recordingCss 來構圖示範。除非使用者同時要求該 UI 變更,否則請勿更改真實產品 UI 以使錄製更容易。
  • 請勿在情境中添加任意的 JavaScript 評估動作。當互動確實不受支援時,請在執行器中添加一個名稱狹義的真實輸入動作。
  • 如果無法執行原生分頁捕捉,請報告具體的先決條件,而不是默默地產生模擬影片。

解讀請求

從儲存庫推斷路由、選擇器和現有資產消費者。僅在檢查後仍存在多個產品或實質上不同的輸出位置時,才提出疑問。

當使用者說「為 <product> 建立/初始化並套用示範」但沒有技術細節時,推斷已實現的路由、目錄消費者、選擇器和現有預覽慣例。僅當儲存庫和請求未提供更好的慣例時,才預設為 8 秒、60 fps 和縱向構圖。示範請求不授權實現缺失的產品。

一個合適的請求可以像這樣簡單:

對 Design QR 使用 $record-product-demo:分兩部分輸入網址,暫停等待樹狀更新,將 3D 變換為 2D 再變回來,然後將其套用到目錄卡片上。

使用者面向的初始化和提示範例記錄在 demo-video 工作流程 中。

相關技能