Communitygithub.com

Leostruka/brag

當有人說 /brag,讓我們炫耀這個專案、製作一支 launch 影片、將其轉換成影片,或想要分享他們所建立的作品時使用。透過 Hyperframes 將當前專案網站變成一段簡短、精緻且可分享的 launch 影片,直接讀取專案程式碼,無需 live URL 或螢幕截圖。

brag 是什麼?

這個技能讓使用者透過簡單的 `/brag` 指令,立即將當前開發中的專案(網站或應用程式)轉換成一段 15-25 秒、可分享的 launch 影片。它會先解析使用者提供的選項(如 tone、格式、是否旁白),然後深入閱讀專案程式碼以理解其核心功能與特色,並自動規劃影片腳本、分鏡與構圖。接著,它會將這些規劃傳遞給 Hyperframes 渲染引擎,執行檢查、渲染與驗證,最後產出 MP4 影片、最佳海報幀以及社群分享文案。 此技能支援多種工作階段模式,包括完整的 `/brag` 工作流程與更輕量的 `/brag-slim` 模式,並內建七種 tone 預設(如 polished、chaotic、cinematic),允許使用者透過自然語言或標記進行細部調整。它強調影片必須「簡短、可讀、具體、展示實際產品」,並遵循一套創意法則來確保每支影片都是為該專案量身定做。支援平台包括所有能執行 Node.js 與 ffmpeg 的環境(如 Devin、Claude Code、Cursor 等),並透過 Hyperframes 處理渲染與旁白。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Leostruka/devin-bundle/tree/HEAD/skills/brag

在你喜歡的 AI 中提問

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

說明文件

/brag

你建立了它。現在,讓我們炫耀它。

需求

  • Node.js + npx hyperframes:渲染引擎;npx 會在首次使用時自動擷取。npx hyperframes check 是唯一的預渲染閘門。
  • ffmpeg:用於擷取海報幀,並將幀 0 嵌入影片(步驟 4)。
  • 選擇性: uv 用於自訂音軌提示分析(scripts/analyze_music_cues.py);透過 Hyperframes 的 Kokoro 旁白(當傳遞 --voice 參數時)。
  • 技能資產(音樂、音效)位於此技能內的 assets/ 目錄中: {{APPDATA}}/devin/skills/brag/assets/ 安裝後(POSIX:~/.config/devin/skills/brag/assets/)。

呼叫分派(必須先執行)

模型檢查。 如果你使用的是 Claude Opus 5.5,且呼叫中未要求完整工作流程(--full,「使用完整 brag」)或旁白(--voice,brag-slim 不支援),則切換到 brag-slim:讀取 <skill-dir>/slim.md(此處捆綁的 /brag-slim 技能)並遵循它執行本次其餘步驟,而不是此檔案。將使用者的輸入傳遞過去,並將任何其他選項(--no-music、--title…)作為純語言指示傳遞。先以一行文字告知使用者,例如:「你正在使用 Opus 5.5,所以我將使用 /brag-slim:我會自行建立完整影片。說『use the full brag』即可切換回來。」如果你使用的是其他模型,或無法確定自己是哪個模型,請跳過此檢查。

在檢查專案之前,先解析完整的 /brag 呼叫。如果呼叫中包含 --voice,請將 voice.enabled 設為 true。僅限該次執行啟用旁白。請勿自動啟用旁白,也請勿回退到一般的無旁白工作流程。

/brag 使用 Hyperframes 將當前專案網站或應用程式轉換成一段簡短、精緻且可分享的 launch 影片。它範圍狹窄、風格明確且充滿樂趣。

這個技能的作用

  1. 讀取當前專案程式碼以了解應用程式。
  2. 規劃一個針對此專案的簡短 brag 概念。
  3. 編寫腳本與分鏡。
  4. 將一份重點明確的構圖簡報交給 Hyperframes。
  5. 驗證、渲染,並撰寫分享文案。

解析呼叫

使用者可以使用自然語言或標記來呼叫:

/brag
/brag --tone chaotic
/brag --tone polished --format vertical
/brag 這個。讓它感覺像是一個荒謬的 startup 發布。

解析這些選項:

選項數值預設值
--tone預設或自由形式的描述自動推斷
--formatlandscape、vertical、squarelandscape
--duration秒數自動(15-25 秒)
--no-music標記音樂開啟
--no-sfx標記音效開啟
--title字串從專案推斷
--voice標記旁白關閉

旁白是選擇性的。如果使用了 --voice,請透過 Hyperframes 使用 Kokoro,且不要新增任何供應商選擇邏輯。旁白工作流程刻意只使用單一供應商。

Tone 可以是一個預設值(default、polished、yc-parody、chaotic、deadpan、cinematic、app-store),或是一個創意方向,例如「模仿 2016 年的 fake Series A launch」、「博物館展覽」或「過度製作的手機遊戲廣告」。

當使用者提供自由形式的 tone 方向時,將其對應到最接近的預設值以設定節奏與結構,但請在規劃與構圖簡報中保留使用者原本的方向。

旁白指引

當啟用 --voice 時,請撰寫能與視覺效果相輔相成的旁白,不要只是朗讀畫面上顯示的文字,要符合場景節奏,聽起來自然且口語化,並在各場景之間順暢轉換。保持腳本簡潔且專注於產品特色,讓旁白感覺像是剪輯的一部分,而不是一條獨立的旁白音軌。


輸出目錄

預設情況下,輸出會放入 brag-output/ 中。為了避免覆蓋先前的執行結果,請使用加上時間戳記的目錄名稱:

brag-output-2026-05-04-143022/

在以下情況使用時間戳記:

  • 使用者明確要求新的一次執行,但不想覆蓋先前的結果
  • 專案中已存在 brag-output/ 目錄

請在執行開始時產生時間戳記(YYYY-MM-DD-HHmmss),並在該次執行的所有輸出路徑中一致使用它:規劃、簡報、構圖、渲染以及分享文案。

技能目錄

<skill-dir> 是包含此 SKILL.md 檔案的目錄。技能載入器會在技能載入時將其列印為「此技能的基礎目錄」;否則,它就是技能安裝的位置。捆綁的資產位於 <skill-dir>/assets/ 下,腳本則位於 <skill-dir>/scripts/ 下。請勿猜測安裝路徑:安裝在 %APPDATA%/devin/skills/(POSIX ~/.config/devin/skills/)、外掛安裝,或此儲存庫中,位置都不同。


步驟 1:檢查專案

閱讀: references/step-1-inspect.md

掃描專案目錄,並擷取規劃 brag 影片所需的資訊。

閘門: 你可以回答 brag 規劃評估表中的全部 9 個問題。


步驟 2:規劃與分鏡

閱讀: references/step-2-plan.md

撰寫 <output-dir>/brag-plan.md(其中 <output-dir> 是 brag-output/ 或上述選擇的加上時間戳記的變體)。回答規劃評估表。確定創意角度。撰寫逐拍分鏡,包括場景、文字、時間、轉場與音效提示。

當選擇音樂時,請包含一個簡潔的「音樂提示指引」章節:如果存在,請從 <skill-dir>/assets/music/cues/ 讀取捆綁音軌的提示預設值;否則,請註明提示將在構圖時偵測(任何音軌現在都支援節拍同步 — 請參閱 references/audio.md)。提示中繼資料僅為選擇性的時間指引:故事、可讀性、節奏與產品清晰度仍然是首要考量。

閘門: <output-dir>/brag-plan.md 存在,且包含完整的分鏡。場景持續時間總計為 15–25 秒。


步驟 3:移交給 Hyperframes

閱讀: 套件的 hyperframes 技能(HTML/資料屬性構圖合約;extensions/hyperframes/wrapper.py 包裝了 npx hyperframes 以進行 doctor/init/render)以及 animation-direction(動作詞彙、緩動函式、節拍到視覺的對應)。HeyGen 領域技能(hyperframes-registry、media-use、hyperframes-cli)為選擇性:如果 Hyperframes 外掛已同時安裝,請遵循其原生指引;否則,請根據 references/step-3-compose.md 以原生方式構圖。/brag 有自己的工作流程:brag 規劃與構圖簡報取代了任何 storyline 或 SPEC.md 步驟,而 npx hyperframes check 是 brag 的單一閘門。請勿導入通用的 launch 影片工作流程。 閱讀: references/step-3-compose.md 閱讀: references/audio.md

撰寫構圖簡報,並使用 Hyperframes 在 <output-dir>/composition/ 中建立影片實作。

/brag 擁有產品角度、原始素材、分鏡、tone、格式、音訊選擇、音樂提示指引以及傳遞期望。Hyperframes 擁有具體的構圖結構、精確的動畫時間、動畫機制、執行時期選擇、linting 規則以及渲染工作流程。

閘門: npx hyperframes check 在 <output-dir>/composition/ 內通過,且零錯誤(這是渲染前的單一瀏覽器閘門 — 請參閱 npx hyperframes check --help 以了解其審查內容)。


步驟 4:驗證、渲染與交付

閱讀: references/step-4-deliver.md

驗證、預覽、渲染至 <output-dir>/brag.mp4,選取最佳海報幀至 <output-dir>/brag.jpg,將該海報嵌入為影片的幀 0,使其成為各處的閒置縮圖,並撰寫 <output-dir>/share-copy.txt。

閘門: <output-dir>/brag.mp4 存在。已選取最佳幀海報 <output-dir>/brag.jpg(非任意幀),並將其嵌入為 brag.mp4 的幀 0。已撰寫分享文案。


Tone 系統

/brag 內建七種 tone 預設。每種預設會改變腳本能量、節奏、排版個性與轉場風格。預設值是起點,而非限制。

完整定義:references/tones.md

Tone能量一句話總結
default俏皮、乾淨、適合發布正能量的預設
polished嚴肅、優雅適用於不是玩笑的專案
yc-parody撲克臉新創能量對荒謬專案套用假裝嚴肅
chaotic快速、大聲、激進誇張且失控
deadpan冷靜、乾澀、低調笑點在於沒有任何事情是笑話
cinematic戲劇化、預告片規模大動作,更大的宣稱
app-store流暢、功能卡片般乾淨企業風格但不無聊

始終允許自由形式的創意方向來調整或覆蓋預設值。


創意法則

這些法則適用於每一支 brag 影片,無論 tone 為何。

簡短。 15–25 秒。如果沒有理由,不要超過一秒鐘。無論是否啟用旁白,此規則皆適用;旁白不會延長時間。

可讀。 透過動作與剪輯保持高節奏,而不是透過閃爍文字。觀眾必須閱讀的每一行文字都要有足夠的閱讀時間(短標籤約 0.8 秒穩定停留;一個句子約每個字 0.3 秒)。快速進入,然後停留 — 切勿快速進入然後消失。

具體。 影片必須讓人感覺是為這個特定專案製作的,而不是任何專案。

展示產品。 至少一個場景必須顯示實際的 UI、文案或來自產品的關鍵視覺。沒有抽象的填充內容。

禁止通用 SaaS 用語。 「簡化您的工作流程」是被禁止的。請使用專案實際的文案與宣稱。

鉤子就是一切。 前 2 秒決定觀眾是否會繼續觀看。在任何其他事情之前先規劃鉤子。

有趣要恰到好處。 幽默應來自專案的荒謬性,而不是來自刻意搞笑。

模式:

鉤子 (2-3 秒) → 揭曉 (2-4 秒) → 2-3 個重點亮點 (5-12 秒) → 重點/結尾 (2-4 秒)

請根據情況調整。並非每個專案都剛好需要 3 個亮點。這個模式是一個起點形狀,而不是一個模板。

相關技能