{
  "$schema": "https://bestaiskill.com/schemas/agent-install/2.json",
  "skill": "wrapped-video",
  "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": "Execute local scripts or commands: npx remotion still / render / compositions (SKILL.md instruction): fetches and executes Remot from npm on demand"
    },
    {
      "file": "网络端点",
      "summary": "Declare external network access: Build phase: @remotion/google-fonts fetches and inlines fonts into the bundle (explicitly recommended in reference to avoid headless "
    },
    {
      "file": "本地工作目录",
      "summary": "File I/O and artifact output: out/wrapped-<recordId>.mp4 (one video per row, named by stable ID to ensure idempotency), out/wrapped-<recordId>.jpg ("
    }
  ],
  "verification": {
    "method": "第二遍独立重读 + 反查（不沿用第一遍结论）：① 逐个复算 external_deps 的调用点是否真实存在（含三份 reference 的 import 原文与仓库根 scripts/ 实现）；② 反查有无隐蔽外发/凭证读取（API_KEY、token、env、curl、上传端点）——特别检查批量路径是否隐含需要云端凭据；③ 核对帧驱动纪律在 SKILL.md 与 remotion-recipes 是否一致；④ 复核数据契约与场景语法的耦合（schema 字段是否都被场景覆盖、无凭空字段）；⑤ 复核安全区数值与 storyboard 帧区间是否自洽；⑥ 核对跨引用可解析性；⑦ 对齐 description 宣称与文中兑现的能力。",
    "second_pass": [
      {
        "item": "外部依赖调用点复核（npx remotion / npx tsx / @remotion/* / zod / Lambda）",
        "status": "ok",
        "detail": "SKILL.md Verify loop 确有 `npx remotion still Wrapped out/f-start.png --frame=0 --props='{...one user...}'` 与 `npx tsx render-all.ts`；batch-pipeline 确有 `import { renderMedia, selectComposition } from \"@remotion/renderer\";`、`p-limit` 与 `renderMediaOnLambda`；remotion-recipes 确有 @remotion/google-fonts 与 @remotion/transitions 用法。全部落地，非推测。"
      },
      {
        "item": "是否隐含云端凭据需求",
        "status": "ok",
        "detail": "本地路径（renderMedia）不需要任何云端凭据；仅可选 Lambda 路径会引入 AWS 配置。SKILL.md/reference 中无 AWS key、无 access token 字面量，也无读取 env 的代码——故按「不读凭据」处理，但在 security.reason 与 verdict.risks 中标注了 Lambda 接入时的凭据/计费含义。"
      },
      {
        "item": "帧驱动纪律的内部一致性",
        "status": "ok",
        "detail": "SKILL.md 输出契约与 remotion-recipes 开篇「The one rule that prevents broken renders」一致禁止 setState/setInterval/Date.now()/CSS @keyframes 计时；大数字组件示例也确实只用 useCurrentFrame + spring + interpolate。"
      },
      {
        "item": "数据契约与场景语法的耦合",
        "status": "ok",
        "detail": "wrappedSchema 字段（name / year / minutesListened / topArtists / topGenre / percentile / accent）与场景类型表逐项对应（Intro 用 name+year、Big-number 用 minutesListened、Top-X 用 topArtists、Superlative/Comparison 用 percentile+topGenre、per-user accent 贯穿）；未见场景需要而 schema 未提供的字段。"
      },
      {
        "item": "安全区数值与 storyboard 的自洽性",
        "status": "ok",
        "detail": "1080×1920 下 top 12% = 0–230px、bottom 18% = 1575–1920px、center 80% = ~230–1575px，与 scene-grammar 的安全区表一致；垂直中心 ~960px 落在中心区内。数值互相自洽。"
      },
      {
        "item": "跨目录 / 跨 skill 引用可解析性",
        "status": "ok",
        "detail": "正文引用的 `scripts/contact-sheet.sh`、`scripts/probe-mp4.sh` 位于仓库根（单装本 skill 目录会悬空，需装整个 repo）；本 skill 自成闭环，未强依赖兄弟 skill（只需 Remotion 本体）。"
      },
      {
        "item": "功能声明 vs 实际能力",
        "status": "ok",
        "detail": "frontmatter 宣称覆盖「数据行 → 一条可分享视频」的范式、场景语法、计数动效、9:16 取景与批量渲染，SKILL.md 与三份 reference 逐项兑现（含 CLI 与 Node 两套批量变体）；未夸大——不声称自动产出数据或自动分发。"
      }
    ],
    "note": "结论仅对本 pin commit（3e2d411b725d9a72939cf8e5eb81579e751373e7）有效。",
    "level": 1,
    "level_label": "V1 已固定",
    "commit": "3e2d411b725d9a72939cf8e5eb81579e751373e7",
    "sha256": "16427a3a8db59d32ad9ad58a02245b40516817b81713c4b6adf7d937a92ce806",
    "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/wrapped-video.tar.gz",
    "sha256": "16427a3a8db59d32ad9ad58a02245b40516817b81713c4b6adf7d937a92ce806",
    "commit": "3e2d411b725d9a72939cf8e5eb81579e751373e7"
  },
  "original": {
    "github": "https://github.com/iart-ai/explainer-video-skills/tree/main/skills/wrapped-video",
    "path": "skills/wrapped-video",
    "commit": "3e2d411b725d9a72939cf8e5eb81579e751373e7"
  }
}