{
  "$schema": "https://bestaiskill.com/schemas/agent-install/2.json",
  "skill": "svg-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": "Declared external network access: Zero outbound network activity during execution; delivery pages can import GSAP from a CDN (artifact-phase reference, no specific domain named in body)"
    },
    {
      "file": "本地工作目录",
      "summary": "File I/O and artifact output: Zero disk writes within this skill's directory; delivers a single self-contained .html file (inline SVG plus a single driver) written out by the agent"
    }
  ],
  "verification": {
    "method": "第二遍独立重读 + 反查：① 文件清单核对（本 skill 目录 3 个文件，无隐藏文件或二进制）；② token 扫描零命中（fetch(/XMLHttpRequest/curl/wget/child_process/process.env/API_KEY|TOKEN|SECRET/.env/eval(）；③ URL 扫描：仅 references 尾部 iart.ai utm 推广链，无第三方域；④ 三驱动一致性核对（选型表、冻结 harness 三分支、references 第 4 节权衡表）；⑤ 许可声明（MorphSVG 免费）在源码内无依据，记 unlocatable；⑥ 档位复核：无脚本、无凭证、无写盘、执行期零外发 → green（内联第三方 SVG 的脚本面记入 reason 与 risks，不升档，因为该技术面不是 skill 自身行为）；⑦ meta 直采同批。",
    "second_pass": [
      {
        "item": "SMIL 的支持与弃用表述是否自洽",
        "status": "ok",
        "detail": "SKILL.md 选型表给出 SMIL 适用面（自包含、无 JS bundle），并在 caveat 段说明 not supported in IE/old Edge and historically deprecation-flagged，要求滚动同步或最大兼容时改用 CSS 或 JS；references 第 4 节以三轴对比表重申，未夸大（未宣称 SMIL 已被移除）。"
      },
      {
        "item": "MorphSVG 是否真的免费可用（与 gsap-web 的免费声明同源风险）",
        "status": "unlocatable",
        "detail": "SKILL.md 两次称 MorphSVG 在 GSAP 3.12+ 免费（**GSAP MorphSVG** (free as of GSAP 3.12)），但仓库内无上游许可文件可核，属外部事实声明，按文档声明记录（同仓 gsap-web 有同一处声明）。"
      },
      {
        "item": "dashoffset 的两条取长度路线是否与 references 一致",
        "status": "ok",
        "detail": "SKILL.md 的 Getting the length 两条（getTotalLength 与 pathLength=\"1\"）在 references 的 getTotalLength gotchas 与 No-JS normalization with pathLength 两节展开，且都附代码，前后一致。"
      },
      {
        "item": "Packaged helper 的路径基准与适用性",
        "status": "discrepancy",
        "detail": "SKILL.md 写 scripts/seek-shot.sh anim.html 0 1.5 3，scripts/ 在仓库根而非本 skill 目录；且 SMIL 驱动的冻结走 svg.pauseAnimations() 与 setCurrentTime()，helper 只替换 URL 参数，无法冻结 SMIL 时钟——对 SMIL 路径该 helper 失效。"
      }
    ],
    "level": 1,
    "level_label": "V1 已固定",
    "commit": "b6dba3eb759726845a44163ff0bad70dd9e7fbb6",
    "sha256": "7a0047bb3c20631def6082196ca37a8210cd161d634a100308580424c96f5fda",
    "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/svg-animation.tar.gz",
    "sha256": "7a0047bb3c20631def6082196ca37a8210cd161d634a100308580424c96f5fda",
    "commit": "b6dba3eb759726845a44163ff0bad70dd9e7fbb6"
  },
  "original": {
    "github": "https://github.com/iart-ai/web-animation-skills/tree/main/skills/svg-animation",
    "path": "skills/svg-animation",
    "commit": "b6dba3eb759726845a44163ff0bad70dd9e7fbb6"
  }
}