{
  "$schema": "https://bestaiskill.com/schemas/agent-install/2.json",
  "skill": "motion-showreel",
  "built": "2026-10-26",
  "control_level": 4,
  "control_level_label": "L4 高权限",
  "capabilities": [
    "execute_command",
    "network",
    "write_file"
  ],
  "required_controls": {
    "agent": [
      "sandbox_recommended",
      "graded_authorization"
    ],
    "admin": [
      "approval_process",
      "rollback_support",
      "full_audit"
    ]
  },
  "evidence": [
    {
      "file": "scripts/",
      "summary": "Executes local scripts and commands: node scripts/analyze-reference.mjs <video> <out> (invoking spawnSync with ffmpeg/ffprobe)"
    },
    {
      "file": "网络端点",
      "summary": "Declares external network access: https://api.kie.ai/api/v1/jobs/createTask (initiating generation tasks)"
    },
    {
      "file": "本地工作目录",
      "summary": "File I/O and artifact output: writes to video-projects/<slug>/: BRAND.md, STORYBOARD.md, assets/{audio,img,video,fonts}"
    }
  ],
  "verification": {
    "method": "第二遍独立重读 + 反查：① 目录清单核对（find 后逐项打开）——本 skill 自身 12 个文件 = SKILL.md + references/{chapter-library,reference-breakdown}.md + scripts/ 6 个 mjs + templates/{hud.html,storyboard.md}；② token 扫描（https?:// / process.env / fetch( / spawnSync / writeFile / API_KEY|TOKEN|SECRET|.env）逐条打开确认调用点：URL 命中集中在 kie.mjs（api.kie.ai 三个端点 + kieai.redpandaai.co + docs.kie.ai 注释）与 sfx.mjs（api.elevenlabs.io），env 命中仅 KIE_API_KEY / ELEVENLABS_API_KEY；③ 子进程核对：analyze-reference/music-grid/splice-music/mix 只 spawnSync ffmpeg/ffprobe，无可变 shell 字符串执行；④ 缺省行为核对：两个付费脚本无 key 时 throw；⑤ 双镜像核对：.claude/skills 与 .agents/skills 下本 skill 的 SKILL.md 差异仅为路径前缀（.claude ↔ .agents），语义一致，本报告取 .claude 副本。",
    "second_pass": [
      {
        "item": "KIE_API_KEY 是否真的被读取并外发（橙档关键证据）",
        "status": "ok",
        "detail": "kie.mjs:19 `if (process.env.KIE_API_KEY) return process.env.KIE_API_KEY;`，随即 loadKey() 向上 8 层找 .env 并抓 KIE_API_KEY，无 key 抛 'KIE_API_KEY is not set. Add it to .env (see docs/TOOLS-AND-API-KEYS.md).'；带 Authorization: Bearer 调 createTask/recordInfo/credit。调用点真实存在。"
      },
      {
        "item": "ELEVENLABS_API_KEY 读取与外发是否属实",
        "status": "ok",
        "detail": "sfx.mjs:15 `if (process.env.ELEVENLABS_API_KEY) return process.env.ELEVENLABS_API_KEY;`（无 key 抛错）；文件头注释声明 PAID 并要求先确认。"
      },
      {
        "item": "是否存在文档未提及的隐藏网络调用或脚本",
        "status": "ok",
        "detail": "全目录 URL/网络 token 扫描只命中上述网络点与 docs.kie.ai 文档链接；beatgrid.mjs 纯计算，其余 mjs 仅 ffmpeg 子进程。未发现混淆代码、动态 eval 或静默外发。"
      },
      {
        "item": "参考片量化数字能否在源码内复现",
        "status": "unlocatable",
        "detail": "references/reference-breakdown.md 的 128 BPM、各切点时间、亮度序列与 RMS 值，是作者对一条私有样片（Opus 5.5 的 CLAUDE / MOTION REEL）跑 analyze-reference.mjs 的结果；pin 仓库内既无该样片也无原始报告输出，本次只读侦查不运行分析，故这些数值仅作「文档声明」记录，不当已核事实使用（分析器能力本身已可读验证）。"
      },
      {
        "item": "「付费调用先确认」是技术门禁还是提示层约束",
        "status": "discrepancy",
        "detail": "［判定：提示层，非技术强制］脚本头注释显式声明 PAID，SKILL.md 在音乐与 SFX 两处也写 paid call / confirm before running；但脚本没有任何交互式确认开关或 --dry-run，门禁靠 agent 遵守。已在 risks 中如实标注。"
      },
      {
        "item": "HUD 模板与 SKILL.md 的 HUD 规格是否一致（文档/资产是否脱节）",
        "status": "ok",
        "detail": "templates/hud.html 头注释要求把 <style> 粘进合成、#hud 作为 #root 最后子节点、由 hudFrame(t)（t 的纯函数）驱动，并提供 --hud-acc / .hud-tl / .hud-tr / #ptime / CH / SEGB / paperRanges 的品牌替换清单，与 SKILL.md 第 4 条规格一一对应。"
      }
    ],
    "level": 1,
    "level_label": "V1 已固定",
    "commit": "0d30152a82b9ceb93cfdd9bdbf46f0d5ab3cde86",
    "sha256": "cc870e83245405bd294e5f971a162928a99f4a8f77116b8b4714ad9d4d8918fe",
    "reviewed_by": null,
    "reviewed_at": null
  },
  "assessed_at": "2026-10-25",
  "method_version": "2.0",
  "mirror": {
    "archive": "https://skillpub.pages.dev/r2/v/2026-09-28/motion-showreel.tar.gz",
    "sha256": "cc870e83245405bd294e5f971a162928a99f4a8f77116b8b4714ad9d4d8918fe",
    "commit": "0d30152a82b9ceb93cfdd9bdbf46f0d5ab3cde86"
  },
  "original": {
    "github": "https://github.com/nateherkai/hyperframes-student-kit/tree/main/.claude/skills/motion-showreel",
    "path": ".claude/skills/motion-showreel",
    "commit": "0d30152a82b9ceb93cfdd9bdbf46f0d5ab3cde86"
  }
}