{
  "$schema": "https://bestaiskill.com/schemas/agent-install/2.json",
  "skill": "gsap-react",
  "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 directives 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-react/ 下唯一文件 SKILL.md（6,565 B）；无 scripts/、references/、示例工程（示例在仓库 examples/react/）。"
      },
      {
        "item": "external_deps 逐条核实",
        "status": "ok",
        "detail": "两条 npm install 指令（gsap、@gsap/react）与一条 gsap.com/resources/React 链接均在文件内逐字命中。"
      },
      {
        "item": "useGSAP 行为描述是否与官方 hook 一致",
        "status": "ok",
        "detail": "「handles cleanup automatically」「provides a scope and contextSafe」与 @gsap/react 的 useGSAP 官方文档一致；dependencies/revertOnUpdate 配置项名称真实。"
      },
      {
        "item": "contextSafe 段落是否是真实失败模式（非编造）",
        "status": "ok",
        "detail": "原文给出可复现机制：事件回调在 useGSAP 执行之后创建 tween → 不入上下文 → 卸载不回收；并指出监听器未移除会跨渲染残留。逻辑自洽且符合 gsap.context 的设计。"
      },
      {
        "item": "安全反例搜索",
        "status": "ok",
        "detail": "token 扫描：curl/wget/fetch(/XMLHttpRequest/exec(/child_process/process.env/.env/API_KEY/secret 零命中；URL 仅 1 条官方资源页。"
      },
      {
        "item": "与 gsap-frameworks 分工是否重复",
        "status": "ok",
        "detail": "gsap-react 首段声明 React 用本 skill、Vue/Svelte 用 gsap-frameworks；gsap-frameworks 亦反向声明「For React specifically, use gsap-react」，无内容重叠冲突。"
      },
      {
        "item": "元数据与 pin",
        "status": "ok",
        "detail": "frontmatter license: MIT；HEAD = aed9cfd3277740755f6bfc1155c7aa645403b760；GitHub API stars 15326 / pushed_at 2026-07-29T17:36:08Z。"
      },
      {
        "item": "examples/react 与本文一致性",
        "status": "ok",
        "detail": "examples/react/App.jsx 用 useGSAP + { scope: containerRef } + 注册 useGSAP，与 skill 的 Do/Do-Not 完全对应。"
      }
    ],
    "level": 1,
    "level_label": "V1 已固定",
    "commit": "aed9cfd3277740755f6bfc1155c7aa645403b760",
    "sha256": "63017b31e6b9c157829c86ec0b39bc7142c7d985894dab58e22c39e5114e067b",
    "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-react.tar.gz",
    "sha256": "63017b31e6b9c157829c86ec0b39bc7142c7d985894dab58e22c39e5114e067b",
    "commit": "aed9cfd3277740755f6bfc1155c7aa645403b760"
  },
  "original": {
    "github": "https://github.com/greensock/gsap-skills/tree/main/skills/gsap-react",
    "path": "skills/gsap-react",
    "commit": "aed9cfd3277740755f6bfc1155c7aa645403b760"
  }
}