readmereel 是做什麼的?
您可以將所在的儲存庫轉換為一個簡短的啟動影片。您負責撰寫文案;由腳本負責渲染影片。切勿編寫動畫程式碼:場景皆為固定範本。
1. 閱讀儲存庫
首先閱讀 README,然後閱讀套件清單(package.json、pyproject.toml、Cargo.toml、go.mod)、docs 資料夾以及儲存庫中的圖片檔案。尋找以下內容:
- 該專案的名稱以及一行摘要說明其功能
- 它以使用者的角度,解決了什麼痛點
- 它為使用者提供的三項功能
- 使用者首先執行的指令(安裝或快速開始)
- 真實的螢幕截圖或圖表(
docs/、assets/、.github/、images/、screenshots/,或是 README 中指向儲存庫內檔案的圖片連結) - 一個標誌(PNG 或 SVG)和一個品牌顏色(從標誌、README 徽章或 CSS 中取得)
- GitHub 網址(從
git remote get-url origin取得),以及如果gh指令可用的話,取得星星數:gh repo view --json stargazerCount -q .stargazerCount
2. 編寫 launch-video/story.json
在儲存庫根目錄建立 launch-video/ 資料夾,並編寫 launch-video/story.json。路徑皆相對於儲存庫根目錄。各欄位及其腳本強制執行的字數限制如下:
| 欄位 | 限制 | 如何編寫 |
|---|---|---|
name | 24 個字元 | 完全按照 README 中使用的產品名稱 |
problem | 70 個字元 | 使用者的痛點,而非產品本身:「每個 AI 簡報看起來都一樣」。目標約 6-9 個詞,方便觀眾閱讀 |
promise | 60 個字元 | 使用者獲得的成果:「看起來像人設計的投影片」。約 6-9 個詞 |
features | 正好 3 個 | 每個包含 { "title", "detail", "image" } |
feature title | 40 個字元 | 一種結果,而非元件名稱:「永遠不會重複發送同一月份」 |
feature detail | 80 個字元 | 一句關於如何或為何的簡單句子,約 12 個詞 |
feature image | 可選 | 儲存庫中展示此功能的真實螢幕截圖路徑:PNG、JPG、WebP 或 SVG。動畫 GIF 只會顯示單一幀,不接受影片檔案。偏好文字夠大、在小尺寸下也可讀取的圖片;跳過大部分空白或無法閱讀的圖片。如果沒有,則省略此欄位。切勿製作或取得圖片。 |
install | 48 個字元 | 一個指令、一行,完全按照 README 中的寫法;如果較長,請使用最短的真實第一個指令。切勿使用像 <your-username> 這樣的佔位符:請使用 README 本身使用的真實範例值,例如 repoheat dashboard --user ratatui |
url | 60 個字元 | github.com/owner/repo:不要 https://,不要 .git。將 git remote 的輸出(例如 [email protected]:o/r.git 或 https://github.com/o/r.git)轉換為 github.com/o/r |
stars | 星星數,或 null。僅在星星數大於等於 10 時顯示 | |
logo | 可選 | PNG 或 SVG 標誌的路徑 |
accent | 十六進位顏色,如 #0f766e;品牌顏色,否則省略 | |
music | 可選 | 僅在使用者提供音訊檔案(mp3、m4a、wav 或 ogg)時使用 |
endCard | 省略(為 true)。僅在使用者要求不要顯示「made with readmereel」字樣時設為 false |
範例:
{
"name": "agencyrecap",
"problem": "手動製作並寄送每月客戶報告",
"promise": "每月客戶報告會自動寄送",
"features": [
{ "title": "每月品牌 PDF", "detail": "您的標誌和顏色,在您選定的日期以電子郵件寄送給每位客戶", "image": "docs/images/report-page-2.png" },
{ "title": "單一儀表板", "detail": "查看哪些報告已寄出,並一鍵重新寄送", "image": "docs/images/dashboard.png" },
{ "title": "從不重複寄送", "detail": "當 Google 或電子郵件失敗時,會保留並重試,然後通知您" }
],
"install": "docker compose up -d",
"url": "github.com/taufiquebuilds/agencyrecap",
"stars": null,
"accent": "#0f766e"
}
任何不在這個表格中的欄位都會被拒絕,因此拼寫錯誤會被捕捉到。複製規則:使用簡短詞彙,不使用誇飾用語(「革命性的」、「增強」、「無縫」、「解鎖」),不使用表情符號,不使用驚嘆號,使用句子大小寫,數字使用阿拉伯數字。每個聲明都必須是儲存庫所展示的內容。
3. 向使用者展示場景並等待
在渲染之前,將六個場景以編號列表方式顯示,並詢問「ok」或進行修改:
- 鉤子(3 秒):
problem - 標題(3 秒):
name、promise - 功能 1(4 秒):標題、詳細說明、圖片檔案或「文字卡片」
- 功能 2(4 秒):同上
- 功能 3(4 秒):同上
- 安裝 + 星星(7 秒):
install、「在 GitHub 上星標」、url
4. 渲染
scripts/render.mjs 位於包含此 SKILL.md 的資料夾中。計算其絕對路徑,並從儲存庫根目錄執行以下指令:
node <此技能資料夾的絕對路徑>/scripts/render.mjs launch-video/story.json
它需要 Node.js 22+ 和 ffmpeg,如果缺少會提示如何安裝。每次執行都需要網路連線:npm(HyperFrames)、一次性 Chrome 下載、Google Fonts 和 GSAP CDN。渲染需要 3-10 分鐘,因此請以至少 15 分鐘的超時時間執行此指令,或在背景執行並等待其完成。如果沙箱阻擋了網路,請要求使用者允許網路連線,或將上述確切指令提供給他們,並請他們自行執行。
當使用者只想快速查看時,加上 --draft 參數可以進行更快、較低品質的渲染。
如果它輸出了故事問題或排版問題,請修正 story.json(縮短具名的文字)並再次執行。如果渲染失敗,請閱讀 launch-video/render.log 的結尾部分。
5. 移交
告知使用者所產生的檔案:
launch-video/video-16x9.mp4:適用於 README、Product Hunt、Show HN、YouTubelaunch-video/video-9x16.mp4:適用於 X、LinkedIn、Instagram Reels、TikToklaunch-video/video.gif:使用貼在 README 頂端launch-video/wide/和launch-video/tall/:可編輯的 HyperFrames 專案。每次執行都會重建,因此在 HyperFrames Studio 中編輯前,請先複製一份到其他地方(cd launch-video/wide && npx --yes [email protected] preview)
將您執行過(包含其 launch-video/story.json 路徑)的完整絕對指令提供給使用者,以便他們可以在沒有代理程式的情況下重新渲染。之後若要修改文字,他們可以編輯 story.json 並再次執行相同的指令。建議將 launch-video/wide/、launch-video/tall/ 和 launch-video/render.log 加入 .gitignore。如果沒有任何功能有真實圖片,請說明將螢幕截圖加入儲存庫可以讓影片更有說服力。
