Communitygithub.com

OliviaPp8/minara-video-skills

操作员制作 Minara 营销/发布/演示视频的标准工作流程。基于 hyperframes 技能,流程更严格:确认风格 → 高级故事板 → 文案 → 逐个构建场景 → 确认逐秒脚本 → 在本地测试页面上迭代 → 仅在用户满意后渲染。

minara-video-skills 是什么?

这是一个为 AI 代理(如 Claude Code、Cursor、Codex)设计的严格工作流程技能,用于制作 Minara 品牌的营销、发布和演示视频。它建立在 'HyperFrames' 技能之上,但强制执行一个更严格、线性的流程:从确认视频风格、创建高级故事板、编写文案,到逐个构建动画场景,并在最终渲染前让用户按秒审查脚本。该技能将 Minara 的品牌设计系统(包括字体、颜色和间距)作为硬性要求,并集成 'video-shotcraft' 镜头库以获取预构建的动画模式和相机动作。此外,它还能按需加载 'remocn' 和 'snapcn' 组件库(用于产品 UI 演示),但默认技术栈仍是 HyperFrames。该技能适用于 Cursor、Claude Code 和 Codex 等 AI 编码助手,通过将创意流程转化为确定性、可寻帧的动画时间线,减少不确定性,避免用户不满意后频繁返工。

兼容平台✓Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/OliviaPp8/minara-video-skills/tree/HEAD/skills/minara-video

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

预览

来自技能 README

minara-video-skills preview

文档

/minara-video

🅖 字体规则:每个 Minara 视频的所有文本必须使用 Geist

标题/正文/数字/按钮/表格——全部使用 font-family: 'Geist', system-ui, -apple-system, sans-serif。 不得使用 Inter、任何衬线字体,以及任何会回退到衬线字体的系统默认字体。 加载方式:@import url('https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700;800&display=swap');数字搭配 font-variant-numeric: tabular-nums。 必须同时编写两个 CSS 选择器 #root, [data-composition-id="root"] {},否则 font-family 将不生效,页面会继承浏览器的默认衬线字体(参见“组合结构陷阱”第1条)。 此规则不可协商、不可选择,除非操作员明确声明“换字体”(change the font) 用于该任务。(由操作员于 2026-06-24 设定;2026-06-26 升级为最高规则。)

这是在 2026-05-26 ~ 27 制作 Strategy Studio 公开发布视频时遇到问题后,提炼出的 Minara 视频操作员标准操作流程。

⚠️ 路线优先:此工作流仅适用于 HyperFrames 合成的动态视频(营销/发布/演示,其中每一帧都由代码构建)。 如果任务是一个产品指南/教程视频——操作员自己录制屏幕,你只需添加旁白+字幕并交付——请使用 minara-guide-video 子技能,而非此技能。如何区分:是否存在现有的屏幕录制?要求是否是“为这个录制添加旁白和字幕”?两者的旁白、字幕和交付方式不同。

⛔️ 启动前提:加载 HyperFrames + video-shotcraft(必需)

此技能一启动,立即使用 Skill 工具调用 hyperframes 技能,使其所有组合规则进入上下文,然后完整读取本地的 video-shotcraft 镜头库入口点,之后再按以下工作流程进行。

  • 这是一个硬性前提,不可选择——minara-video 只是一个更严格的工作流包装器;实际的组合语法/时间线/渲染规则都存在于 hyperframes 中。不加载它直接编写场景 HTML 会遇到已知问题(时间线暂停、window.__timelines 注册、不使用 Math.random()/repeat:-1 等)。
  • 即使本会话中之前已经使用过 hyperframes,在启动 /minara-video 时也要再次调用它,以确保规则在当前上下文中。
  • 加载顺序:Skill(hyperframes) 优先 → 然后完整读取 $VIDEO_WORKSPACE/video-shotcraft/SKILL.md → 然后 Read $BRAND_DIR/design.md(Minara v2 视觉系统) → 然后读取固定样式规则 → 最后按以下工作流程进行。
  • 你必须读取 $BRAND_DIR/design.md(必需;源自 2026-06-24 的经验教训):这是官方的 Minara v2 视觉系统,是颜色值、字体比例、间距、圆角、卡片和布局的权威来源。此技能的固定样式规则是“视频氛围层”;design.md 是“设计令牌的权威来源”——两者都必须存在于上下文中。⚠️ design.md 中列出的品牌渐变 #EB53FF/#FF538E/#FF9A32 不用于视频(由操作员于 2026-09-02 移除;参见下方的固定样式规则)。只取其中的黑/白/灰令牌、语义颜色、排版比例和 4pt 间距。
  • 默认加载品牌资源文件夹 $BRAND_DIR/logo/(由操作员于 2026-06-24 设定):当你需要 Logo/头像/字标时,优先使用此处的官方资源;不要自己绘制 SVG 作为替代。当前库存清单(先运行 ls 检查;可能变化):
    • Minara Avatar.png - Minara 黑白像素头像(戴眼镜的女孩,半色调);片尾圆形 Logo 的默认选择。
    • Minara Logo.png - Minara 主 Logo 标记。
    • MInara Text Logo Light.png / MInara Text Logo Light Dark.png - 文字字标(亮色/亮暗版本)。
    • Minara Avatar Japan.png - 日本市场头像变体。
    • 128_128.png - 小方形图标。
    • minara X banner.jpeg - X 横幅。
    • 使用方法:将所需资源 cp 到项目的 assets/ 目录,然后在 HTML 中用 <img src="assets/xxx.png"> 引用;HyperFrames 在渲染时会内联本地图片。当通过截图进行自我验证时,也请复制一份到 /tmp/<test-dir>/assets/(只有这样才能解析相对路径)。

🎬 video-shotcraft 本地镜头库加载规则(2026-07-21)

  • 固定的本地库路径:$VIDEO_WORKSPACE/video-shotcraft/。每次 /minara-video 启动时,完整读取其 SKILL.md。不要仅凭卡片名称或记忆来使用它。
  • 翻译卡片的固定方法见下文“客户‘成长/自写’镜头经验 § B”部分(卡片帧 × TEMPO,使用 clip-path 而非 paper-color 遮罩,PageCam2D 烘焙到关键帧中,缩放 ≥ 1,焦点限制在画布内)。
  • 其默认角色是参考库;不会自动切换技术栈:minara-video 仍然以 HyperFrames 的寻帧安全合成、逐场景预览和渲染流程为核心;video-shotcraft 提供镜头语言、运镜方案、节奏结构、声音设计、批准的演示样例和资源。当采用其某个 Remotion 实现时,首先将方法转化为确定性的、可寻帧的 HyperFrames 时间线。不要直接复制 Date.now()、Math.random() 或非寻帧安全的动画。
  • 不要触发独立技能的模板提示:当在 /minara-video 内部加载此库时,不要每次都询问是否使用 Ink Press,也不要因此中断上面已锁定的 Minara 工作流。只有当操作员明确提及 Ink Press 或 Remotion,或要求复制该模板时,才完整读取 template/TEMPLATE.md 并切换到模板路线。
  • 对于你使用的任何镜头卡片,请读取其权威来源:一旦决定使用某张镜头卡片,完整读取 references/shots/<card-name>.md 和对应的 demos/<card-name>/ 实现源码;当需要整片结构时读取 references/sequences/;当需要音效时读取 references/sound-design.md 和 assets/audio/ATTRIBUTION.md。不要一次性将全部 106 张卡片加载到上下文中。
  • 只复制你需要的资源:从 assets/lib/、assets/audio/ 或 demos/ 复制到当前视频项目中;不要让项目在运行时依赖此库的相对路径。使用音频时,保留并检查许可归属。

🧰 Remocn 本地 Remotion 组件库规则(2026-08-13)

  • 固定的本地库路径:$VIDEO_WORKSPACE/remocn/。它是一个 shadcn 风格的复制粘贴组件库,用于 Remotion,不是 HyperFrames 插件,也不是视频项目的运行时依赖。
  • 按需加载;非每次启动必需:仅当故事板需要一个现成的 Remocn 动态/转场/UI 模拟,或操作员明确提及 Remocn/Remotion 时,才完整读取本地的 skills/remocn/SKILL.md。对于完整影片,再读取 skills/remocn/references/anatomy.md 和对应的 references/archetypes/<type>.md;不要一次性加载所有原型。
  • HyperFrames 仍是默认技术栈:在常规的 /minara-video 任务中,仅将 Remocn 作为镜头/动态参考,并将所选组件的动态逻辑转化为可寻帧、确定性的 HyperFrames GSAP/DOM 时间线。不要直接将 React/Remotion TSX 放入场景 HTML 中,也不要仅仅因为存在现成组件就切换技术栈。
  • 仅在明确选择 Remotion 时直接使用:在现有的 Remotion 项目中,如果缺少 components.json,先运行 npx shadcn@latest init;然后只安装故事板选择的组件:npx shadcn@latest add @remocn/<name>。shadcn 会递归解析依赖;在组件复制到当前项目后修改代码。不要安装所有组件,也不要让最终影片引用本地 Remocn 仓库路径。
  • 组件参数遵循在线文档:首先读取 https://remocn.dev/llms-components.txt 进行筛选,然后读取表格指向的特定 .../<component>.md 页面;不要猜测 props、默认值或持续时间。如需研究实现,请返回本地库的 registry/ 源码和 content/docs/。
  • 适配 Minara 规则;不要复制默认外观:Remocn 的镜头结构、动态和时序可以复用,但字体必须改为 Geist,颜色、字体大小、信息密度、标志性缓动函数和 ≤0.5s 的转场仍需遵循本技能的规则。文档中的 Length 是组件自身动作结束的帧,而非场景总时长;根据逐秒脚本添加保持时间。其默认的 1280×720 @ 30fps 也不会覆盖当前 Minara 项目的输出规格。
  • 区分两种 API 类型:动画层是帧驱动的,并接受 speed 参数;remocn-ui 原语是时间线状态驱动的,没有 speed 属性。两者都必须能逐帧重现,且仍然禁止使用 Math.random()/Date.now()/间隔驱动动画。

📸 snapcn 本地 Remotion 产品演示组件库规则(2026-09-04)

  • 固定的本地库路径:$VIDEO_WORKSPACE/snapcn/(GitHub snapcndev/snapcn,MIT)。与 Remocn 类似,是一个 shadcn 风格的 Remotion 复制粘贴组件库,但专注于软件产品演示镜头:AI 聊天流程、提示词输入、终端、设备框架、字幕。它不是 HyperFrames 插件也不是视频项目的运行时依赖。
  • 与 Remocn 的分工:Remocn 偏向通用动态/转场/原型;snapcn 偏向“将产品 UI 放入镜头”。Minara 是一个 AI 交易副驾驶,因此 snapcn 的 AI 聊天输入 组(search-typing/prompt-zoom/answer-stream/prompt-send/answer-highlight/agent-steps)和 屏幕与设备 组(phone-frame/laptop-frame/terminal-simulator/screen-recording/cursor-track)是首选的参考。对于像“提示你的策略”、Copilot 回答或 Autopilot 执行步骤等场景,首先在这里查找。
  • 按需加载;非每次启动必需:仅当故事板需要上述产品演示镜头,或操作员明确提及 snapcn/Remotion 时,才读取本地的 skills/snapcn/SKILL.md。通过 skills/snapcn/references/components/index.md 中的路由表(包含“用于/避免用于/长度/氛围”)挑选组件,并且只打开选定的 references/components/<name>.md;不要全部读取。对于影片结构,参考 references/anatomy.md(钩子→定位→产品展示→功能→证据→行动号召)和 references/archetypes/。
  • HyperFrames 仍是默认技术栈:在常规的 /minara-video 任务中,仅将 snapcn 作为镜头/动态/时序参考,并将所选组件的动态逻辑转化为可寻帧、确定性的 HyperFrames GSAP/DOM 时间线;如需实现细节,查看 registry/snap-cn/<name>/ 源码。不要直接将 React/Remotion TSX 放入场景 HTML 中,也不要仅仅因为存在现成组件就切换技术栈。
  • 仅在明确选择 Remotion 时直接使用:npx shadcn@latest add @snapcn/<name>(@snapcn 已经在 shadcn 注册表目录中,因此无需配置注册表)。Remotion 项目需要先有 components.json,并且 @/ 别名需要在 tsconfig.json 和 remotion.config.ts 中都配置好——Remotion 打包器不读取 tsconfig 路径。只安装故事板选择的组件;不要安装所有组件;最终影片不得引用本地 snapcn 仓库路径。
  • 组件参数遵循文档:在线文档位于 https://snapcn.dev/llms.txt(完整版 llms-full.txt);不要猜测 props/默认值/持续时间。Length 是组件自身动作的自然帧长度(例如 answer-stream 150f,search-typing 420f),不是场景总时长;根据逐秒脚本添加保持时间。预算不足会被截断;预算超支会导致静默时间。
  • 三个值得直接采纳的规则(它们已经与本技能的规则指向一致):① MOTION.md 中的相机模型——镜头不是剪切,而是一台虚拟相机在同一世界中推拉/俯仰运动:向外快速移动 8–14f + 着陆弹簧稳定 10–16f + 文字保持 30–45f,与本技能的“相机推近跟随”方案同源;② skills/snapcn/references/design.md 中的反 AI 套路默认值——无装饰性字距、无全大写、无渐变文字、无发光阴影,与 2026-09-02 的渐变移除一致;③ 以基线为支点缩放文本 + text-rendering: geometricPrecision,可将抖动从 0.284px 降低到 0.014px(motion-quality 规则);在大型文字缩放动画中使用。
  • 适配 Minara 规则;不要复制默认外观:字体必须改为 Geist;颜色、字体大小(大 UI 在手机上可读)、信息密度、标志性弹性缓动函数和 ≤0.5s 的转场仍需遵循本技能的规则。其默认的 1280×720 @ 30fps 也不会覆盖当前 Minara 项目的输出规格。
  • 区分两种 API 类型:snapcn 动画层是帧驱动的,并有 speed 参数;snap-cn-ui 原语(input/caret)是时间线状态驱动的,没有 speed 属性。两者都必须能逐帧重现;光标闪烁使用 Math.floor(frame/15) % 2,终端滚动使用阶梯步骤而非缓动函数,且仍然禁止使用 Math.random()/Date.now()/间隔驱动。

🎵 所有音乐和音效通过 /minara-music 处理(2026-10-14)

在逐秒脚本确认后,使用 minara-music 技能将每个部分的情绪和屏幕动作写入 cues.json。先向操作员展示提示表;确认后,本地渲染 BGM + SFX(当有旁白时,同时输出一个闪避版本)。不要随意从网上下载音乐。

📱 UI 场景规则——大 UI,极简,不复制产品(由操作员设定)

...

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

OliviaPp8/minara-video-skills

Create Minara product guide/tutorial videos from screen recordings supplied by the operator. Use for /minara-guide-video, “给录屏加字幕配音”, retiming a new recording cut, building a timeline approval player, or correcting caption/product meaning. Drives caption-recording from source analysis through pre-render approval, final verification, and local delivery. Not for synthetic HyperFrames marketing videos.

OliviaPp8/minara-video-skills

Generate background music and synced sound effects for Minara videos from the per-second script. Translates each scene's mood and on-screen actions (taps, typing, success, notifications, transitions) into a cue sheet, then renders BGM + SFX locally (numpy synth, no external service), with optional ducking under the voiceover. Use for /minara-music, "配乐", "生成音乐", "BGM", "按脚本生成音乐", "加音效", or when a minara-video / minara-guide-video project needs a music bed.

OliviaPp8/minara-video-skills

Make Minara use case / beginner tutorial videos (mobile App or desktop), rebuilding the product UI in HyperFrames code and walking through the real user path step by step. Unlike minara-video (marketing demo, UI redesign allowed), this skill requires a faithful UI: copy, layout, components, and interaction paths all follow the product frontend code and screen recordings. Triggers: "use case 视频", "教程视频", "操作演示", "新手教程", "按 App 界面做一个视频"; also makes covers for these videos ("封面", "cover", "缩略图").

OliviaPp8/minara-video-skills

Write Minara video scripts before any animation work — launch / promo films, single-scene supplements, use case tutorials. Turns a brief, product screenshots, frontend code, Figma frames or a feature note into an English-only script doc built around a keyframe sheet; each keyframe has a still image (rendered from UI code, exported from Figma, or AIGC-generated from screenshots), a picture description, the voiceover line, on-screen text (花字) with style, timing and duration, and the BGM style / sound cues. Also covers what each scene must land, user flow + UI copy, voiceover word budget and open questions, in a calm, neutral, natural voice. Then hands off to minara-video, minara-usecase-video and minara-music. Use for /minara-videoscript, "写视频脚本", "视频脚本", "分镜脚本", "关键帧", "关键帧脚本", "花字", "补充脚本", "旁白稿", "video script", "voiceover script", "keyframes".

相关技能