인터페이스는 현지화되어 있으며, Skill 소개와 설명 문서는 선택한 언어로 AI가 자동 번역합니다. 코드·명령어·경로·전문 용어는 원문을 유지하며 원작자 문서가 우선합니다.
Skills 둘러보기
생산성 및 협업 · SKILL.md

it-infra-evolution-video-v2

it-infra-evolution-video-v2

从 it-infra-continuous-png 的真实 PNG manifest 生成 IT 基础设施长图讲解视频。强制执行 manifest -> video.config.json -> index.html -> audio -> HyperFrames acceptance -> MP4 -> ffprobe 的闭环。

Independent GitHub snapshot · Automated classification · Original documentation governs

Skill 문서

GitHub

name: it-infra-evolution-video-v2 version: "v2" description: "从 it-infra-continuous-png 的真实 PNG manifest 生成 IT 基础设施长图讲解视频。强制执行 manifest -> video.config.json -> index.html -> audio -> HyperFrames acceptance -> MP4 -> ffprobe 的闭环。"

IT 基础设施长图讲解视频 v2

生成或重绘图片规则

只要上游素材流程需要生成、扩图、修复或重绘静态 PNG,必须先读 ../../marketplace/pptx/editable-reconstruction.md,复用其中的图片模型优先级、无字生成和残影验收规则。生成图片中不得烘焙标题、数字、标签、字幕或伪文字;这些内容必须由 manifest、video.config.json 和 HyperFrames/HTML 层承载。

本 skill 仍只消费通过 manifest 校验的真实 PNG。该引用不允许绕过 it-infra-continuous-png 前置条件,也不允许用 CSS、SVG 或伪 PNG 代替输入。

本 skill 是 it-infra-evolution-video 的可执行 v2 路径。v1 模板保持 frozen;v2 的主路径必须通过仓库 runner 完成,不再让 Agent 临时手写 generate_index.py 或自由拼接模板片段。

调用前置条件

必须先完成 it-infra-continuous-png:

  • assets/images/*.png 存在,且每个文件是真实 PNG。
  • assets/images/manifest.md 存在。
  • manifest 每一行都包含 chapter_id、title、file、source_type、video_usage、scan_mode、safe_focus。

缺少这些输入时,不要继续生成视频,不要用 CSS 卡片、假截图或 SVG 冒充 PNG。

标准调用

在 Bridge 预先准备的当前任务 artifact scope 中执行。目录解析优先使用 $XWORKMATE_TASK_ARTIFACT_DIR / $XWORKMATE_ARTIFACT_DIRECTORY,其次使用 本轮系统上下文里的 artifactDirectory: ...;只有当前 pwd 已经是 .../tasks/<session>/<run> 时才可直接使用 .。

cd "${XWORKMATE_TASK_ARTIFACT_DIR:-${XWORKMATE_ARTIFACT_DIRECTORY:-.}}"
python3 "${AI_VIDEO_SKILLS_HOME:-/home/ubuntu/ai-video-skills}/scripts/build_it_infra_video.py" \
  --project-dir . \
  --title "云原生 Service Mesh 网络科普视频" \
  --audio-mode edge-tts \
  --run-acceptance \
  --output-name service-mesh-video.mp4 \
  --require-task-scope \
  --session-key "$XWORKMATE_SESSION_KEY" \
  --run-id "$XWORKMATE_RUN_ID"

在 XWorkmate/OpenClaw 中,. 必须是 Bridge 预先准备的 tasks/<safe-session-key>/<safe-run-id> artifact scope。不能在 owners/.../threads/<session> 工作区直接渲染,也不能在 scope 内再创建 task_artifacts/<session>/... 二次嵌套目录;如果只知道 artifactScope,可用 --artifact-scope "tasks/<safe-session-key>/<safe-run-id>" 代替 --session-key/--run-id。

OpenClaw 任务中如果同时选择了 it-infra-continuous-png 和 it-infra-evolution-video-v2,必须按以下顺序执行:

  1. 先用 it-infra-continuous-png 生成多张 PNG 和 manifest。
  2. 再用本 skill 的 runner 读取 manifest。
  3. 最后只把最终 MP4 作为 XWorkmate 制品输出。video.config.json、assets/images/manifest.md、ffprobe.json、DELIVERY.md、音频、snapshot、HTML 等中间/验收文件可以留在当前 tasks/<session>/<run> workspace 内供调试,但不得作为最终制品同步或报告。

XWorkmate 制品输出约定

本 skill 的 XWorkmate 最终制品只允许包含一个 MP4:

  • 最终 MP4 必须写入 renders/<output-name>.mp4,推荐默认 renders/service-mesh-video.mp4。
  • 完成回复只报告这个 MP4 的相对路径和简短说明,不要列出 video.config.json、ffprobe.json、index.html、音频、snapshot、manifest、DELIVERY.md 或其他中间文件作为制品。
  • 不要为了同步中间产物而把它们复制到 deliverables/、reports/、artifacts/ 或任务 scope 根目录。
  • 如果运行环境提供制品过滤、manifest 或导出列表,只把 renders/<output-name>.mp4 标记为 final/exportable;其他文件标记为 intermediate/debug 或完全不列入导出列表。
  • 如果最终 MP4 不存在或 ffprobe 不通过,任务必须失败,不要用中间产物替代交付。

Runner 合同

runner 负责:

  • 解析并校验 manifest。
  • 拒绝缺失图片、伪 PNG、缺失列、非法 scan_mode。
  • 生成唯一 ID 的 index.html。
  • 保证 scene、caption、voiceover 在各自 track 上不重叠。
  • 只保留一个全局 BGM 音轨。
  • 生成 video.config.json 和 inspectTimes。
  • 生成 build_ffmpeg_video.sh 作为 HyperFrames 之外的应急合成路径;该脚本必须从 video.config.json 的 sections 动态生成章节标签、时间、active marker、总进度条和音频 delay,禁止手写固定 6 段、固定 25 秒、固定标题。
  • 执行 lint -> inspect -> snapshot -> render -> ffprobe。

生产模式默认 --audio-mode edge-tts。本地测试或无网络 dry-run 可以使用 --audio-mode tone,但不能把 tone 输出当作正式口播成片。

验收标准

只有以下文件都存在,才能在 XWorkmate/OpenClaw 中报告完成;但除最终 MP4 外,这些文件只是验收证据,不是最终制品:

  • index.html
  • video.config.json
  • assets/images/manifest.md
  • assets/audio/*.mp3
  • assets/audio/bgm.wav
  • renders/<output-name>.mp4
  • ffprobe.json
  • DELIVERY.md

ffprobe.json 必须显示:

  • 分辨率为 1920x1080
  • 有 video stream
  • 有 audio stream
  • 时长接近 video.config.json 的 duration

如果 HyperFrames 或 ffprobe 任一阶段失败,只输出失败阶段和原因,不输出“完成”。

完成时的制品同步范围必须仍然只包含 renders/<output-name>.mp4。

FFmpeg fallback timeline text

如果因为长版、快速修复或 HyperFrames 之外的 fallback 路径使用 FFmpeg 直接合成 timeline,不能只用 drawbox 绘制底部色块。必须同时绘制可见章节文字:

  • 优先使用 /usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc 或 fc-match "Noto Sans CJK SC" 返回的中文字体。
  • 优先使用 runner 生成的 build_ffmpeg_video.sh,不要在任务现场临时手写 build_long_video.sh 或固定数组脚本。
  • 每个章节 marker 必须包含时间和短标题,例如 0:25 服务器是一座孤岛。
  • 必须保留 v1/HyperFrames 风格的底部总进度条:一条低透明底线加一条随全片时间推进的高亮进度线。
  • 修复后必须从最终 MP4 抽帧确认底部 timeline 文字和总进度条都可见,不能只依赖脚本执行成功。
저장한 Skills