{
  "$schema": "https://bestaiskill.com/schemas/agent-install/2.json",
  "skill": "lottie-animation",
  "built": "2026-10-26",
  "control_level": 3,
  "control_level_label": "L3 联网",
  "capabilities": [
    "network",
    "write_file"
  ],
  "required_controls": {
    "agent": [
      "declare_domain_and_key_scope"
    ],
    "admin": [
      "least_privilege_keys",
      "keep_request_logs"
    ]
  },
  "evidence": [
    {
      "file": "网络端点",
      "summary": "External network access declaration: Zero egress calls at execution time; text examples contain fetch(\"/icon.json\") (relative path to local asset, not external egress)"
    },
    {
      "file": "本地工作目录",
      "summary": "File I/O and artifact output: Zero disk writes in skill directory; delivery artifact is a single self-contained .html (runtime plus canvas plus relative .lottie/.json file or data URL)"
    }
  ],
  "verification": {
    "method": "第二遍独立重读 + 反查：① 文件清单核对（本 skill 目录 3 个文件，无隐藏文件，无 .lottie/.json 资产）；② token 扫描：唯一 fetch( 命中在 references（相对路径取本地资产），其余（XMLHttpRequest/curl/wget/child_process/process.env/API_KEY|TOKEN|SECRET/.env/eval(）零命中；③ URL 扫描：仅 references 尾部 iart.ai utm 推广链，无运行时域；④ API 一致性核对（setFrame/setSegment/setMode/setTheme/totalFrames/goToAndStop）跨 SKILL.md 与 references 两处；⑤ 数字类声明（.lottie 小 60–80%）在源码内无依据，记 unlocatable；⑥ 档位复核：无脚本、无凭证、无写盘、执行期零外发 → green；⑦ meta 直采同批。",
    "second_pass": [
      {
        "item": ".lottie 比 .json 小 60–80% 这一数字",
        "status": "unlocatable",
        "detail": "SKILL.md 写 .lottie often 60–80% smaller，但源码内无基准、无样例文件（本 skill 目录不含任何 .lottie/.json 资产），属外部经验值，记为文档声明，不作已验证事实。"
      },
      {
        "item": "唯一的 fetch( 命中是否构成外发",
        "status": "ok",
        "detail": "references/integration-and-export.md 的 const json = await fetch(\"/icon.json\").then((r) => r.json()); 使用相对路径，取同源本地资产（用于手动改色），不构成网络外发；该写法位于 Manual color patching (last resort) 小节，正文亦标注为脆弱手段。"
      },
      {
        "item": "运行时 API 名称是否自洽（setFrame/setSegment/setMode/totalFrames）",
        "status": "ok",
        "detail": "SKILL.md 的 Playback control 段、Quick reference 表、冻结 harness 段与 references 第 1、3 节对同一组方法名（setFrame/setSegment/setSpeed/setMode/setTheme/totalFrames/play/pause/stop）表述一致，并明确区分 lottie-web 的 goToAndStop(N, true) 等价写法。"
      },
      {
        "item": "Packaged helper 的路径基准与语义",
        "status": "discrepancy",
        "detail": "SKILL.md 写 scripts/seek-shot.sh anim.html 0 1.5 3，scripts/ 在仓库根；且本 skill 的冻结单位是帧（?t=42），而 seek-shot.sh 把 ?t= 当秒数传参——即使路径正确，语义也需按帧自行换算。"
      }
    ],
    "level": 1,
    "level_label": "V1 已固定",
    "commit": "b6dba3eb759726845a44163ff0bad70dd9e7fbb6",
    "sha256": "d36e9095939adbd5966df2d3cd3f79eb998e6f1f80b3a3064a91a5613f18801e",
    "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/lottie-animation.tar.gz",
    "sha256": "d36e9095939adbd5966df2d3cd3f79eb998e6f1f80b3a3064a91a5613f18801e",
    "commit": "b6dba3eb759726845a44163ff0bad70dd9e7fbb6"
  },
  "original": {
    "github": "https://github.com/iart-ai/web-animation-skills/tree/main/skills/lottie-animation",
    "path": "skills/lottie-animation",
    "commit": "b6dba3eb759726845a44163ff0bad70dd9e7fbb6"
  }
}