{
  "$schema": "https://bestaiskill.com/schemas/agent-install/2.json",
  "skill": "gsap",
  "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 script or command: python3 .claude/skills/gsap/scripts/extract-audio-data.py <audio-or-video>"
    },
    {
      "file": "网络端点",
      "summary": "Declares external network access: Artifact-phase (unrated): example snippets in references/effects.md reference cdn.jsdelivr.net in generated composition HTML"
    },
    {
      "file": "本地工作目录",
      "summary": "File I/O and artifact output: audio-data.json (specified via -o/--output, writes to current directory by default; contains frame-by-frame rms + bands values)"
    }
  ],
  "verification": {
    "method": "第二遍独立核对：① 目录文件清点（4 个文件）并逐个打开确认类型（3 个文档 + 1 个脚本）；② token 扫描（URL / fetch / http / subprocess / spawn / os.environ / API_KEY|TOKEN|SECRET / eval|exec）逐条回源，确认 effect.md 的 fetch( 出现在『禁用异步 fetch』的告诫文本里而非调用；③ 重读 Python 脚本确认依赖与产物（ffmpeg 解码、SAMPLE_RATE/FFT_SIZE/MIN_FREQ/MAX_FREQ 常量、argparse 默认值 fps=30/bands=16、json.dump 到 -o）；④ 核对文档承诺与实际：description 列的 to/from/fromTo/easing/stagger/defaults/timeline/position/labels/nesting/playback/will-change/quickTo 在正文全部可定位；⑤ 检查 CDN 是否被误算成执行期外发；⑥ 回复 NOTICE.txt 的上游与许可声明。",
    "second_pass": [
      {
        "item": "文件清单与类型",
        "status": "ok",
        "detail": "SKILL.md（6.4KB 文档）、references/effects.md（8.8KB 文档）、scripts/extract-audio-data.py（6.5KB 脚本）、NOTICE.txt（228B 声明）；无隐藏文件、无 node_modules、无二进制资产。"
      },
      {
        "item": "网络外发反例搜索",
        "status": "ok",
        "detail": "目录内 3 条 http 命中：effects.md 两行 jsdelivr script 标签（产物期示例）与 NOTICE.txt 的 https://github.com/heygen-com/hyperframes（出处链接）。fetch( 命中位于『**Do NOT use async `fetch()` to load audio data.**』这句告诫中，非调用。"
      },
      {
        "item": "凭证面反例搜索",
        "status": "ok",
        "detail": "0 处 env/API_KEY/TOKEN/SECRET 命中；Python 脚本 import 仅 argparse/json/subprocess/sys/numpy。"
      },
      {
        "item": "description 覆盖度核对",
        "status": "ok",
        "detail": "描述里点名的每一项都能在正文定位到专节：Core Tween Methods / Common vars（stagger、defaults）/ Easing / Timelines（position parameter、labels、nesting、playback）/ Performance（transforms、will-change、quickTo）。无夸大。"
      },
      {
        "item": "脚本产物与用法核对",
        "status": "ok",
        "detail": "main() 用 argparse 提供 input/-o/--fps/--bands，默认 audio-data.json、30fps、16 段；输出结构含 duration/fps/bands/totalFrames/frames[{time,rms,bands[]}]，与 effects.md 里展示的 JSON 结构一致。"
      },
      {
        "item": "上游归属与许可",
        "status": "ok",
        "detail": "NOTICE.txt 声明来源 heygen-com/hyperframes（Apache-2.0），并注明 student-kit 只做 runtime-relative 路径与可移植打包；与仓库 skills-lock.json 中 gsap 条目指向的 source 一致。"
      }
    ],
    "level": 1,
    "level_label": "V1 已固定",
    "commit": "0d30152a82b9ceb93cfdd9bdbf46f0d5ab3cde86",
    "sha256": "68a50bcbc92928409cbd4e6fb405d9b66a8703cbccaa01421d6e9f1cd53adb05",
    "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/gsap.tar.gz",
    "sha256": "68a50bcbc92928409cbd4e6fb405d9b66a8703cbccaa01421d6e9f1cd53adb05",
    "commit": "0d30152a82b9ceb93cfdd9bdbf46f0d5ab3cde86"
  },
  "original": {
    "github": "https://github.com/nateherkai/hyperframes-student-kit/tree/main/.claude/skills/gsap",
    "path": ".claude/skills/gsap",
    "commit": "0d30152a82b9ceb93cfdd9bdbf46f0d5ab3cde86"
  }
}