{
  "$schema": "https://bestaiskill.com/schemas/agent-install/2.json",
  "skill": "gsap-utils",
  "built": "2026-10-26",
  "control_level": 1,
  "control_level_label": "L1 基础",
  "capabilities": [],
  "required_controls": {
    "agent": [
      "auto_load"
    ],
    "admin": [
      "register_source_and_version"
    ]
  },
  "evidence": [
    {
      "file": "SKILL.md",
      "summary": "Pure prompt instructions and rule text with no script execution or external impact"
    }
  ],
  "verification": {
    "method": "第二遍独立重读 + 反查（换角度抓第一遍的错）：① 全仓文件清单核对资产面：gsap-skills 仓库只有 README.md / AGENTS.md / LICENSE / skills/<8 个 SKILL.md> + llms.txt / .github 三条 Copilot 指令 / .claude-plugin 与 .cursor-plugin 清单 / assets/*.svg / examples/{vanilla,react,vue,nuxt}；没有任何 scripts/ 目录、没有 *.py *.sh *.js 的 skill 附属脚本（examples 下的 js 是参考 demo，skill 不调用）；② 对 skills/*.md 逐类 token 扫描：curl、wget、exec(、child_process、fetch(、XMLHttpRequest、process.env、API_KEY、secret、.env 全部零命中；『token』全仓命中 5 处、分布在 gsap-plugins/SKILL.md（2 处）与 skills/llms.txt（3 处），语境全部是「不要用 auth token / 私有 registry」的否定式告诫或索引关键词，无任何实际读取凭证的指令；③ URL 清单逐条落地核对：全部指向 gsap.com（官方文档/blog），无第三方域名、无短链、无统计/回传端点；唯一非 gsap.com 的网络引用在 examples/vanilla/main.js（cdn.jsdelivr.net 拉 gsap@3.15.0 ESM），属示例文件、非 skill 资产、也不会被 skill 执行；④ 反例搜索：确认无隐藏脚本、无混淆内容、无 base64 载荷、无环境变量读取；⑤ 功能声明 vs 实际内容：每条 claim 均能定位到 SKILL.md 原文（见 second_pass 逐条），无夸大；⑥ 元数据核对：本地 git HEAD == 任务 pin aed9cfd32777；仓库根 LICENSE 为 MIT；GitHub API 复核 stars/pushed_at。",
    "second_pass": [
      {
        "item": "目录资产面：仅 SKILL.md",
        "status": "ok",
        "detail": "skills/gsap-utils/ 下唯一文件 SKILL.md（12,093 B）；无 scripts/、references/、数据文件。"
      },
      {
        "item": "external_deps 逐条核实",
        "status": "ok",
        "detail": "gsap 包依赖证据取自 README 安装段；三条 gsap.com 链接（distribute、random()、HelperFunctions）+ splitColor 链接在内文中逐字命中。"
      },
      {
        "item": "函数签名与示例输出是否与官方语义一致",
        "status": "ok",
        "detail": "抽查 clamp(0,100,150)=100、mapRange(0,100,0,500,50)=250、normalize(0,100,50)=0.5、snap(10,23)=20、wrap(0,360,370)=10、wrapYoyo(0,100,150)=50，均与 GSAP 官方 API 语义吻合，无编造。"
      },
      {
        "item": "「random 是唯一例外」的说法是否可复核",
        "status": "ok",
        "detail": "原文明确「This is the only util that uses `true` for the function form instead of omitting the value.」并给出 random(-200,500,10,true) 示例，叙述自洽。"
      },
      {
        "item": "安全反例搜索",
        "status": "ok",
        "detail": "token 扫描：curl/wget/fetch(/XMLHttpRequest/exec(/child_process/process.env/.env/API_KEY/secret 零命中；无混淆代码（该文件只有短代码块）。"
      },
      {
        "item": "与 gsap-react / gsap-frameworks 的 scoping 叙述是否一致",
        "status": "ok",
        "detail": "本文件「Use **gsap.utils.selector(scope)** in components so selectors are scoped to a container or ref.」与 gsap-react 的「always pass scope」、gsap-frameworks 的「Do not use global selectors」同向。"
      },
      {
        "item": "元数据与 pin",
        "status": "ok",
        "detail": "frontmatter license: MIT；本地 HEAD = aed9cfd3277740755f6bfc1155c7aa645403b760；GitHub API stars 15326、pushed_at 2026-07-29T17:36:08Z。"
      },
      {
        "item": "无夸大检查",
        "status": "ok",
        "detail": "description 只声明「Official GSAP skill for gsap.utils …」，文件内容即函数清单与示例，无越界承诺（不宣称性能优化或自动重构）。"
      }
    ],
    "level": 1,
    "level_label": "V1 已固定",
    "commit": "aed9cfd3277740755f6bfc1155c7aa645403b760",
    "sha256": "55bd8167106fd1d2c5ca58496782bf223170f4068858d61eeac12255d603b301",
    "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-15/gsap-utils.tar.gz",
    "sha256": "55bd8167106fd1d2c5ca58496782bf223170f4068858d61eeac12255d603b301",
    "commit": "aed9cfd3277740755f6bfc1155c7aa645403b760"
  },
  "original": {
    "github": "https://github.com/greensock/gsap-skills/tree/main/skills/gsap-utils",
    "path": "skills/gsap-utils",
    "commit": "aed9cfd3277740755f6bfc1155c7aa645403b760"
  }
}