/brag
你构建了它。现在来炫耀它。
要求
- Node.js +
npx hyperframes:渲染引擎;npx在首次使用时获取。npx hyperframes check是渲染前的单一检查门控。 - ffmpeg:用于提取海报帧并烘焙为帧 0(步骤 4)。
- 可选:
uv用于自定义音轨提示分析(scripts/analyze_music_cues.py);当传递--voice时,通过 Hyperframes 使用 Kokoro 进行旁白。 - 技能资源(音乐、音效)位于此技能内的
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:我自行构建整个视频。说‘使用完整 brag’可切换回来。”如果你是其他任何模型,或者无法判断自己是哪个模型,则跳过此检查。
在检查项目之前,解析完整的 /brag 调用。如果调用包含 --voice,则设置 voice.enabled = true。仅对该次运行启用旁白。不要自动启用旁白,也不要退回到常规的非配音工作流。
/brag 使用 Hyperframes 将当前项目网站或应用转化为一段简短、精致、可分享的发布视频。它定位狭窄、有主见且有趣。
此技能的功能
- 读取当前项目代码以理解应用。
- 为此项目规划一个简短的炫耀概念。
- 编写视频的脚本和故事板。
- 向 Hyperframes 提交一个聚焦的合成简报。
- 验证、渲染并编写分享文案。
解析调用
用户可以使用自然语言或标志进行调用:
/brag
/brag --tone chaotic
/brag --tone polished --format vertical
/brag 这个。让它感觉像是一个荒谬的初创公司发布。
解析这些选项:
| 选项 | 值 | 默认值 |
|---|---|---|
--tone | 预设或自由描述 | 推断 |
--format | landscape、vertical、square | landscape |
--duration | 秒数 | 自动(15-25 秒) |
--no-music | 标志 | 音乐开启 |
--no-sfx | 标志 | 音效开启 |
--title | 字符串 | 从项目推断 |
--voice | 标志 | 旁白关闭 |
配音是选择加入的。如果存在 --voice,则通过 Hyperframes 使用 Kokoro,并且不要添加任何提供商选择逻辑。配音工作流有意采用单一提供商。
基调可以是预设(default、polished、yc-parody、chaotic、deadpan、cinematic、app-store)或创意方向,例如“2016 年假 Series A 发布”、“博物馆展览”或“过度制作的手机游戏广告”。
当用户给出自由形式的基调方向时,将其映射到最近的预设以确定节奏和结构,但需在计划和合成简报中保留用户的原始方向。
旁白指导
当启用 --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
扫描项目目录并提取规划炫耀视频所需的信息。
门控: 你可以回答炫耀计划评估表中的所有 9 个问题。
步骤 2:计划和故事板
编写 <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 计划和合成简报替换任何故事线或 SPEC.md 步骤,并且 npx hyperframes check 是 brag 的单一门控。不要路由到通用的发布视频工作流。
阅读: references/step-3-compose.md
阅读: references/audio.md
编写合成简报并使用 Hyperframes 在 <output-dir>/composition/ 中创建视频实现。
/brag 拥有产品角度、源材料、故事板、基调、格式、音频选择、音乐提示指导和交付期望。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 帧。编写了分享文案。
基调系统
七个基调预设随 /brag 提供。每个预设改变脚本能量、节奏、排版个性和转场风格。预设是默认值,而不是限制。
完整定义:references/tones.md
| 基调 | 能量 | 一句话描述 |
|---|---|---|
default | 俏皮、干净、易于分享 | 好心情默认值 |
polished | 严肃、优雅 | 适用于不是玩笑的项目 |
yc-parody | 冷面初创能量 | 对荒谬项目应用虚假严肃感 |
chaotic | 快速、响亮、激进 | 夸张且失控 |
deadpan | 冷静、干练、低调 | 笑话在于没有笑话 |
cinematic | 戏剧性、预告片规模 | 大动作,更大的主张 |
app-store | 流畅、功能卡片般干净 | 企业级但不无聊 |
始终允许自由形式的创意方向来微调或覆盖预设。
创意法则
无论基调如何,这些法则适用于每一个炫耀视频。
简短。 15-25 秒。没有理由就不多一秒。无论是否启用旁白,这一原则都成立;旁白不会延长窗口期。
可读。 通过运动和剪辑保持高节奏,绝不通过闪烁文本。观众必须阅读的每一行文本都保持足够长的阅读时间(短标签约 0.8 秒稳定状态;一个句子每词约 0.3 秒)。快速进入,然后保持——切勿快速进入,然后消失。
具体。 视频必须感觉是为这个确切项目制作的,而不是任何项目。
展示实物。 至少一个场景必须显示产品的实际 UI、文案或关键视觉元素。没有抽象填充。
无通用 SaaS 语言。 “简化你的工作流”被禁止。使用项目实际的文案和主张。
钩子就是一切。 前 2 秒决定了是否有人继续观看。先规划钩子,再做其他事情。
幽默要适得其所。 幽默应源于项目的荒谬性,而不是试图变得有趣。
模式:
钩子(2-3 秒)→ 揭示(2-4 秒)→ 2-3 个亮点(5-12 秒)→ 点题/结尾(2-4 秒)
调整此模式。并非每个项目都需要恰好 3 个亮点。此模式是起始形状,而不是模板。