手機編輯風格
唯一規則: 觀看者必須感受到是創作者本人在手機上、用 Instagram 編輯器剪輯的。絕對不能看起來像專業團隊或 AI 做的。有疑慮時:少一點、更原始、更小。這裡精美的動態圖形是錯誤。
開始之前,請閱讀 ../perfil-criadora.md 並載入(或建立)根目錄下的 perfil.json。
視覺 — 不可妥協
| 元素 | 規則 |
|---|---|
| 截圖 | 使用創作者 我的截圖 資料夾中的真實截圖(個人資料頁首、洞察、按讚/留言/儲存、觀看次數、私訊、留言、貼文)。原始裁剪:直角、無邊框、無陰影、無框線、無圓角卡片。置於頭頂上方。 |
| 頭頂上方文字 | 使用標題字型 (.tit)、白色、小字型 — 標題 48–70 px,標籤 40–48 px(以 1080 寬度為基準)。與截圖左邊緣對齊。 強調色 (.y) 僅用於偶爾的單字。無襯線字體 (.sans) 只用於「差 / 好 / 爆紅」等標籤。 |
| 陰影 | 僅當背景牆面為淺色時使用 (.sh)。絕不能使用方塊、背景或玻璃效果於文字後方。 |
| 動作 | 無。 元素以硬剪輯方式進入/退出 (show()/hide())。禁止淡入淡出、滑動、縮放、彈跳。 |
| Emoji | 在範本中使用真實字元(✅ ❌ 🔥 ❤️ 👇 🚨 …);montar.mjs 會將其替換為 Twemoji 圖案。絕不自行繪製圖示。 |
| 字幕 | 逐字顯示,54 px,白色加柔和陰影(不得使用外框)。居中於胸口位置、下巴正下方(reel.json 中的 capTop)。逐字硬剪輯切換。 |
| 持續標題 | 一個主題標題可以在螢幕上長時間停留,同時上方的截圖不斷更換。 |
| 清單 | 使用 emoji + 文字的核取清單(✅ 字幕 / ❌ 標題),隨著口語逐項顯示。 |
| 模擬圖 | 避免使用。請使用真實截圖。僅在沒有截圖且創作者要求時才繪製模擬圖。 |
剪輯規則
- 無呼吸聲也無停頓:所有低於 −30 dB 且持續 ≥ 0.15 秒的內容皆被移除(
cortar.mjs會自動處理)。 - 移除所有重複、錯誤開頭及重新表述的句子。保留最後一個、最乾淨的版本。
- 轉錄工具會隱藏重複並搞錯時間點。 剪輯後,務必重新轉錄
clean.mp4並從頭到尾檢查是否有重複句子、被切斷的單字或缺少的動詞。持續修剪直到乾淨為止。 - 最長 90 秒,除非創作者另有要求。交付時說明哪些內容被捨棄。
- J/L 剪輯 預設啟用(
--jl 6較柔和,--no-jl關閉)。
速度規則(創作者的電腦可能較慢 — 優先於下列步驟)
novo-projeto.mjs的轉錄已是--rapido(輕量模型,僅用於選擇剪輯點)。clean.mp4的重新轉錄(字幕用)使用精確模型 — 每個剪輯版本執行一次,而不是每次調整都執行。- 在一次呼叫中檢查所有拼接點(一次模型載入):
$K --em video-projects/<slug> node ../../$M/transcrever.mjs assets/clean.mp4 --janelas t1,t2,…(時間點以 clean 的時間軸為準)。絕不一次只處理一個時間窗。 - 不要為了查看幀而渲染整個草稿。使用
$K --em video-projects/<slug> hyperframes snapshot --at t1,t2,… -o snapshots(每次元素更換執行一次)並檢查 PNG 檔案。只在快照確認無誤後才渲染影片一次。 僅當有修改要求時才重新渲染。 - raw.mp4 / clean.mp4 的編碼器會自動選擇(NVIDIA / Intel / AMD / Apple,否則使用 CPU)。請勿更改。
- 每個耗時步驟開始前,用一行簡短的葡萄牙語說明正在執行什麼以及可能需要幾分鐘 (「正在轉錄影片 — 在你的電腦上可能需要幾分鐘。」),避免讓等待看起來像是當機。
流程(所有指令透過啟動器 $K 執行)
M=.claude/skills/_motor · K = videos-opus 技能的啟動器:"<VO>\bin\node.exe" "<VO>\scripts\video.mjs" kit,其中 <VO> 是 videos-opus 技能資料夾(包含要求你閱讀本指南的 SKILL.md)。它會將可攜式程式加入路徑,並在套件的工作目錄中執行($K pasta 顯示目前目錄;專案位於 <pasta>\video-projects\<slug>)。$K --em <subpasta> … 在子資料夾內執行。禁止直接使用 npx、Python 或 node:全部必須透過 $K。
- 專案 + 快速轉錄:
$K node $M/novo-projeto.mjs "<video>" <slug> .claude/skills/estilo-celular→ 產生video-projects/<slug>/,包含assets/raw.mp4(1080×1920,30 fps)、assets/raw.json、assets/palavras.txt、 字型及src/index.template.html。slug 應簡短、小寫、使用連字號(promo-engrene)。 - 取景: 為 raw 影片拍攝一張聯絡人快照(
$K --em video-projects/<slug> ffmpeg -i assets/raw.mp4 -vf "fps=1/4,scale=180:-1,tile=12x1" -frames:v 1 assets/contato.png) 並查看:頭頂和下巴的位置。元素位於 y≈100 到頭頂之間; 字幕位於下巴下方 → 在專案根目錄寫入reel.json:{"capTop": <px>}(預設值 1380)。 - 選擇剪輯點: 閱讀
assets/palavras.txt並寫入assets/keeps.json({"fps":30,"keeps":[{"from":0,"to":9.38,"why":"…"}]})。每個why用葡萄牙語解釋保留了什麼及原因。 - 剪輯: 在
assets/目錄內執行:$K --em video-projects/<slug>/assets node ../../../$M/cortar.mjs→ 產生clean.mp4+edit-decisions.json。 - 檢查: 在專案根目錄執行:
$K --em video-projects/<slug> node ../../$M/transcrever.mjs assets/clean.mp4 assets/transcript.json --nomes "<個人檔案詞彙>"。 若有重複或被切斷的單字 → 返回步驟 3。若聽錯單字 →assets/caption-fixes.json({"cloud":"Claude"})。$K --em video-projects/<slug> ffmpeg -i assets/clean.mp4 -af silencedetect=noise=-30dB:d=0.25 -f null -→ 不應殘留任何停頓。 - 截圖: 列出個人檔案中
pasta_prints資料夾的圖片(最新的優先),並在使用前查看每張候選圖片。 使用 ffmpeg 裁切至assets/prints/(-vf crop=w:h:x:y),並在assets/prints/ORIGEM.md中記錄來源。 若無合適截圖 → 說明哪個畫面會有幫助,並在無截圖的情況下繼續(創作者之後可要求作為調整)。絕不憑空捏造截圖。 - 合成: 編輯
src/index.template.html— 元素放在ELEMENTOS區塊,時間點放在TEMPOS區塊。 時間點來自$K --em video-projects/<slug> node ../../$M/ancoras.mjs "句子" "另一句子"(專案根目錄執行),以口語單字為準。僅使用硬剪輯。 - 組裝 + 檢查:
$K --em video-projects/<slug> node ../../$M/montar.mjs→$K --em video-projects/<slug> hyperframes lint→ 對每個元素更換處拍攝快照 ($K --em video-projects/<slug> hyperframes snapshot --at …)並檢查:臉部絕不被遮擋、文字清晰可讀、截圖與標題對齊。 然後渲染並交付(透過啟動器,在套件工作目錄執行):$K node $M/renderizar.mjs <slug>— 檢查鎖定、背景渲染、驗證並自動複製到prontos/。輸出 3 表示仍在渲染:執行$K node $M/renderizar.mjs <slug> --esperar直到顯示 PRONTO。絕不直接執行$K --em video-projects/<slug> hyperframes render或手動執行prontos.mjs。 - 交付: 用葡萄牙語簡短回覆:影片位置、哪些內容被剪掉、使用了哪些截圖、哪些部分仍有疑慮。 絕不發布或發送任何內容。
交付後的調整
「去掉價格部分」→ 編輯 keeps.json,重複步驟 4–5,使用 ancoras.mjs 重新計算該片段之後所有內容的時間點,並重複步驟 8。「字幕再往下一些」→ 修改 reel.json 並重複步驟 8。「更換截圖」→ 僅執行步驟 6–8。絕不從頭重做創作者未要求修改的內容。