{
  "$schema": "https://bestaiskill.com/schemas/agent-install/2.json",
  "skill": "after-effects",
  "built": "2026-10-26",
  "control_level": 4,
  "control_level_label": "L4 高权限",
  "capabilities": [
    "execute_command",
    "write_file"
  ],
  "required_controls": {
    "agent": [
      "sandbox_recommended",
      "graded_authorization"
    ],
    "admin": [
      "approval_process",
      "rollback_support",
      "full_audit"
    ]
  },
  "evidence": [
    {
      "file": "scripts/",
      "summary": "Execute local scripts or commands: skills/after-effects/scripts/batch-rename.jsx (modifies the name of selected layers in the active comp)"
    },
    {
      "file": "本地工作目录",
      "summary": "File read/write and artifact output: .jsx scripts only manipulate in-memory AE project objects (layer names, in-points, effect stacks); disk persistence is determined by the user saving in AE; scripts do not write to the file system directly."
    }
  ],
  "verification": {
    "method": "第二遍独立重读 + 反查（换角度抓第一遍的错）：① 逐文件清点 skills/after-effects/（SKILL.md + 5 本 reference + 3 个 .jsx；README.md 为 0 字节），并与仓库 README.md 的 skill 列表交叉核对；② 全文扫描 URL / npx / curl / wget / fetch / process.env / require / import / child_process：仅命中 iart.ai 营销链接（脚注）与 reference 里的 ffmpeg 命令行示例，无任何执行期网络调用；③ 三个 .jsx 逐行读完，确认只用 app.beginUndoGroup/app.endUndoGroup、app.project.activeItem、sel[i].name / .startTime、layer.property(\"ADBE Effect Parade\").addProperty，无 File/网络/eval；④ meta 数值取自 GitHub API（stars=35、pushed_at=2026-06-22T13:24:17Z）与 skills.sh 仓库页 Installs 列（after-effects=1.1K，页面四舍五入，本文件记 1100）；⑤ official_desc 取自 SKILL.md frontmatter 原文（解析通过，非改写）。",
    "second_pass": [
      {
        "item": "三个 .jsx 是否含网络/文件系统/动态执行调用",
        "status": "ok",
        "detail": "逐行读完：只有 app.project.activeItem 类型守卫（CompItem/AVLayer）、sel[i].name、layers[j].startTime、layer.property(\"ADBE Effect Parade\").canAddProperty/addProperty，以及 beginUndoGroup/endUndoGroup；无 XMLHttpRequest/fetch/File/socket/eval/Function。"
      },
      {
        "item": "SKILL.md 或 reference 里是否藏着会被 agent 执行的 shell/CLI 指令",
        "status": "ok",
        "detail": "全目录搜 npx/curl/wget/brew/npm：均无。本 skill 与同仓 color-motion 的关键差异正在这里——color-motion 的验收回路含 npx playwright screenshot，after-effects 没有任何需要跑的命令。"
      },
      {
        "item": "ffmpeg 示例是否构成「执行期外发」",
        "status": "ok",
        "detail": "`ffmpeg -i master.mov … out.webm` 是纯本地转码，输入输出都在本机，不涉端点；列在 external_deps 只为交代工具链，不代表网络行为。"
      },
      {
        "item": "「Allow Scripts to Write Files and Access Network」是否被本 skill 用来做事（是否该升档）",
        "status": "ok",
        "detail": "该句出现在 references/project-hygiene.md 的 Scripting setup 段，是 AE 脚本能力的通用说明（AE 需开此开关脚本才能保存/渲染）。本 skill 的三个 .jsx 都不使用文件或网络 API；按判级口径（对象=skill 自身目录的程序行为），档位仍为蓝，该点只写入 risks。"
      },
      {
        "item": "AE 行为类结论（QuickTime gamma、MFR 需每核数 GB、H.264 无 alpha）是否可在源码内验证",
        "status": "unlocatable",
        "detail": "均为领域知识声明，pin 仓库内没有复现脚本、也没有引用来源（无外链、无数据集）。本次为只读侦查且不运行 AE，故不验证其数值正确性，只作为「文档声明」记录，不在结论里当作已核事实。"
      }
    ],
    "level": 1,
    "level_label": "V1 已固定",
    "commit": "3c129f769d90a1328c209c386492333c9ac62312",
    "sha256": "7cd8155a90d8ab34da847d5566aa33661851081a723e83a05152ca745d476994",
    "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/after-effects.tar.gz",
    "sha256": "7cd8155a90d8ab34da847d5566aa33661851081a723e83a05152ca745d476994",
    "commit": "3c129f769d90a1328c209c386492333c9ac62312"
  },
  "original": {
    "github": "https://github.com/iart-ai/motion-design-skills/tree/main/skills/after-effects",
    "path": "skills/after-effects",
    "commit": "3c129f769d90a1328c209c386492333c9ac62312"
  }
}