Communitygithub.com

amirlehmam/amir-motion

用於製作產品發表影片、產品展示影片、動畫解說、示範影片、預告片或作品集的技能(基於 Remotion 和 React),也可用於重新剪輯、調整節奏或稽核現有影片。整合了 Amir 的產品影片規則、Soren 發表影片的範本及稽核關卡。

amir-motion 是什麼?

amir-motion 是一個專為 AI 代理(如 Claude Code 和 Pi)設計的技能,用於建立高品質產品影片。它遵循一套嚴格的 10 條規則,涵蓋從簡報、腳本到動畫、音效與最終渲染的完整工作流程。該技能會自動呼叫兩個輔助技能:`stageshow`(負責產品 UI 的視覺設計與分鏡)和 `remotion-best-practices`(負責 Remotion 的專案結構與渲染)。其核心思想是「讓產品自己說話」:每步驟僅用一句簡短的文字說明,並透過 React 重建 UI 而非使用截圖,以確保影片的每一幀都完全可控。輸出支援 16:9 與 9:16 兩種格式,並提供法文與英文版本,內建稽核步驟(lint、audit)確保影片在音訊、視覺與節奏上都符合專業標準。

相容平台✓Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/amirlehmam/amir-motion/tree/HEAD/skills/amir-motion

在你喜歡的 AI 中提問

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

說明文件

amir-motion 是做什麼的?

Amir 的產品影片規則。影片在 30 到 60 秒內向非技術決策者解釋產品:每個步驟一句話、讓產品自己說話、聲音與畫面同步、每種格式與語言都有乾淨的剪輯,並且只包含屬於我們的內容。

<skill-dir> 是此檔案所在資料夾:~/.claude/skills/amir-motion(適用於 Claude Code),~/.agents/skills/amir-motion(適用於 Pi 及其他代理)。

「調用技能」代表:在 Claude Code 中使用 Skill 工具,在 Pi 中使用 /skill:<名稱>,或者直接讀取 <skills folder>/<名稱>/SKILL.md 並遵循其內容。

三項技能,一部影片。 amir-motion 擁有規則、範本、音效與稽核關卡。它在特定步驟中調用另外兩項技能:

技能負責事項調用時機
stageshow產品 UI 的外觀:節制、構圖、裁切、焦點物件、滑鼠游標故事、海報幀步驟 1,4
remotion-best-practicesRemotion 的使用方式:專案、標記、Studio、渲染、字幕、升級(導向 remotion-*)步驟 2,5,8

當上述技能與以下規則衝突時,以本規則為準(例如 stageshow 基於時間的 Act API 不得進入影片:規則 6)。

10 條規則(強制性)

#規則硬性限制
1少說廢話每個步驟一句話,最多 10 個字,使用決策者能懂的簡單詞彙。一次只移動一個物件。總長度 30 至 60 秒。
2閱讀時間每句話停留在畫面上的時間 ≥ 1.5 秒 + 每個字 0.3 秒,字元速率 ≤ 17 字元/秒,以實際秒數計算。文字在閱讀期間不得移動。
3展示,而非書寫產品自己解釋;字幕只命名步驟名稱。用 React 重建產品 UI(絕不使用截圖)。整合項目 = 標誌。數字 = 計數器或圖表,且必須是真實數據。
4字型符合主題最多 3 種字型家族(襯線展示體、無襯線 UI、等寬體)。3 種文字大小(展示、字幕、標籤),皆來自 theme.ts。字幕 ≥ 48 px,故事指向的任何 UI 文字 ≥ 30 px 或由鏡頭拉近。
5無紅色,僅一種強調色紅色僅用於錯誤或破壞性操作,除非品牌色表中包含紅色。僅一種強調色,且該顏色具有含義(代表結果或變化)。所有顏色僅定義於 theme.ts 中。
6單一時鐘每個節拍都是其所屬場景時鐘中的一個數字。畫面、字幕與聲音都讀取相同的數字。所有元素都從幀數衍生:不使用 CSS 動畫、計時器、Math.random、Date,也不使用 stageshow 的 Act 執行時期。
7移動,而非淡出場景間的切換如同單一相機運動(上升、下沉、推近、拉遠),絕不使用灰色交叉淡出。開始與停止需有緩動(僅使用 token),結束約為進入時間的一半,每部影片只有一個英雄時刻。
8聲音佔影片一半原創合成配樂,使用同一調性,以時間軸為基礎建構;每個進場、點擊與重點效果都有提示音,閒置動畫則無提示音。總體響度 -14 LUFS,峰值 ≤ -1 dBFS。
9每種格式都是一次重新剪輯16:9 主版本加上重新構圖的 9:16 版本(非裁切),法文與英文版本共用同一份文案檔案。第 0 幀為真正的縮圖。在靜音模式下可讀。文字位於畫面 80% 範圍內。
10只保留屬於我們的內容程式碼、文案、檔案名稱、圖片、中繼資料中不得出現前客戶、內部工具或第三方品牌。每個素材都必須在 ASSETS.md 中有來源。不得使用虛構的數字、標誌或推薦。

詳細資料與數值:references/rules.md。規則來源:references/source.md。

工作流程

  1. 檢查。 執行 node <skill-dir>/scripts/doctor.mjs。它會檢查 Node(22.18+),並從官方來源安裝 stageshow 與 Remotion 技能(若缺少)。它會為 Claude Code 和 Pi 安裝;使用 --agent <id> 為其他代理安裝。如果安裝了任何項目,請告知使用者:新技能將在下一次會話中載入;與此同時,可直接讀取其 SKILL.md 檔案。
  2. 簡報。 與使用者共同填寫 BRIEF.md:目標、觀眾、承諾(≤ 8 個字)、格式、長度、品牌及其來源、證據。接著是節拍表:每個步驟一行(字幕、產品展示內容、音效)。故事弧線與範例:references/brief.md。對於每個產品場景,以 stageshow 的方式規劃:調用 stageshow,並為每個場景記錄焦點物件、動作、成果、省略的內容,以及最接近的黃金範例(hero-demo、payout-flow、choreography、table-edit、loading...)。顯示節拍表並在開始任何場景前獲得同意(由 Amir 決定內容實質)。
  3. 建立骨架。 調用 remotion-best-practices,並在整個建置過程中保持其路由器開啟。接著執行:
    node <skill-dir>/scripts/new.mjs <資料夾> --name "產品名稱" --forbid "前客戶,internal.host" --install
    cd <資料夾> && npm run score && npm run dev
    
    範本會取代路由器的「建立新專案」步驟;請遵循其「開啟預覽」步驟(remotion-studio),讓使用者觀看建置過程。在 Windows 上請使用短路徑(C:/Users/<我>/<產品名稱>-motion):無頭 Chrome 在路徑超過 260 字元時會失敗。範本結構圖:references/architecture.md。
  4. 品牌。 將產品的色板、顯示字型與標誌放入 theme.ts 與 public/,並在 ASSETS.md 中為每個項目標註來源行。依照 stageshow 的 references/looks.md 方式對應產品自己的 token。沒有品牌來源?請詢問。切勿自行發明。
  5. 產品場景(stageshow)。 對於每個顯示產品的場景:開啟你在步驟 1 中指定的黃金範例(<stageshow>/examples/<黃金範例>/),並閱讀 stageshow 的 references/craft.md(節制、字型、間距、圖示)、references/framing.md(裁切、邊距、版面)與 references/motion.md(故事、游標、變化數值)。使用 theme.ts、AppWindow、cursorAt 與 toStage 在 Remotion 中建置,並參考 references/faux-ui.md 中的表格將每個 stageshow 動作轉換為 Remotion 節拍。複製黃金範例的結構與比例,但絕不複製其產品識別。
  6. Remotion 標記。 在編寫場景程式碼之前,透過路由器載入 remotion-markup;使用 remotion-captions 處理逐字字幕,使用 remotion-multimedia 處理真實影片素材,使用 remotion-maps 處理地圖,使用 remotion-interactivity 在 Studio 中暴露屬性。所有操作皆須遵守這些規則。
  7. 音效。 在 cues.ts 中使用相同的節拍編號編寫提示音,在 scripts/score.mts 中設定編曲,然後執行 npm run score。詳細資料:references/sound.md。
  8. 每日進度。 執行 npm run stills,為每個版本生成一張聯絡表(每個場景進場後、中間點、離場前,以及第 0 幀)。開啟 PNG 檔案並檢視,使用 stageshow 的審查眼光(references/review.md):目光首先落在何處?是否落在結果上?是否有任何物件顯得平板、空洞或被框住?修正並重複。切勿在已開啟「減少動態效果」的機器上的瀏覽器中判斷動畫效果。
  9. 稽核關卡與渲染。 執行 npm run lint,然後 npm run audit。修復所有 FAIL,權衡每個 WARN。接著執行 npm run finish(渲染選項:透過路由器使用 remotion-render),然後再次執行 npm run audit:它會測量每個 MP4 的響度、檔案大小與幀率。規則 1、3、4 與 7 需要人工檢視:references/checklist.md。
  10. 審查與交付。 在交付任何內容之前,將聯絡表與簡報交給一位不受汙染的審查者。交付 MP4、聯絡表、未解決的 WARN 以及未檢查的項目。格式與命名方式:references/delivery.md。

紅旗警訊(立即停止並修正)

  • 字幕超過 10 個字,或同時出現兩段需要觀眾閱讀的字幕。
  • 一句話解釋了產品可以透過實際操作來展示的內容。
  • 使用產品截圖、真實客戶名稱、真實工單號碼,或非我們所有的標誌。
  • 在場景中直接貼入 stageshow 的 Act、a.click() 或 setTimeout,而非將其轉換為節拍。
  • 未指定命名 stageshow 黃金範例就建置產品場景。
  • 在場景中直接輸入十六進位色值或字型大小。
  • interpolate() 在開始或停止的物件上未使用緩動效果;所有物件同時淡入。
  • 在 Soundtrack.tsx 中手動輸入幀號,或聲音落在兩個節拍之間。
  • 在兩個深色視窗之間使用交叉淡出(灰色迷霧)。
  • 9:16 版本是透過裁切 16:9 版本製作的。
  • 第 0 幀為空白或未完成。
  • 「在 Studio 中看起來很好」:在生成聯絡表並通過稽核之前,任何操作都不算完成。

相關技能