{
  "$schema": "https://bestaiskill.com/schemas/agent-install/2.json",
  "skill": "manim",
  "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: manim CLI (-pql / -sql / -s / -n a,b / -qh / -qm --format=gif) for local rendering and QA, evaluating scenes frame-by-frame"
    },
    {
      "file": "网络端点",
      "summary": "Declares external network access: Zero runtime network calls: Manim scenes run as purely local Python + local ffmpeg + local LaTeX; the skill references no external APIs, CDNs, or remote servers"
    },
    {
      "file": "本地工作目录",
      "summary": "File read/write and artifact output: media/videos/<file>/<quality>/<Scene>.mp4 and media/images/.../<Scene>.png (-s)"
    }
  ],
  "verification": {
    "method": "第二遍独立重读 + 反查（不沿用第一遍结论）：① 逐个复算 external_deps 的调用点是否真实存在（含三份 reference 的 import/参数原文与仓库根 scripts/ 实现）；② 对四份文档与仓库脚本做凭证/网络 token 扫描（API_KEY、token、secret、env、curl、requests、urlopen），确认「运行期零网络」结论；③ 清点 skill 目录资产面；④ 复核确定性主张的成立条件（随机是否必须带 seed、是否禁用墙钟）；⑤ 对照能力边界声明与正文实际覆盖；⑥ 核对跨引用可解析性；⑦ 复核档位判据与站内先例是否一致（为何蓝而非橙/绿）。",
    "second_pass": [
      {
        "item": "外部依赖调用点复核（pip install manim / manim CLI / ffmpeg / LaTeX / numpy）",
        "status": "ok",
        "detail": "SKILL.md Setup 节确有 `pip install manim          # needs Python 3.9+, ffmpeg, and a LaTeX distribution (for Tex/MathTex)` 与 `manim -pql scene.py SquareToCircle`；verify 段确有 `manim -sql scene.py MyScene -n 0,3`；math-and-text 确有 TeX Live/MiKTeX 说明；3d-and-camera 确有 np.sin/np.cos 用法；仓库根 scripts/README.md 确有 manim 与 probe-mp4 的用法示例。全部落地，非推测。"
      },
      {
        "item": "「运行期零网络」反查",
        "status": "ok",
        "detail": "四份文档与仓库脚本中无 API endpoint、无 curl/wget、无 fetch/requests、无 CDN import；Manim 场景全部是本地 Python 对象构造。唯一网络相关表述集中在 Setup 的包安装指令。结论成立。"
      },
      {
        "item": "无凭证 / 无 env 读取",
        "status": "ok",
        "detail": "全文无 API_KEY/token/secret/.env/.netrc 读取，无浏览器 cookie 取用，无环境变量透传；与同 pack 的 Remotion 系（走 npm 远端包）和 generative-illustration（走 OPENROUTER_API_KEY）形成鲜明对比。"
      },
      {
        "item": "确定性主张的成立条件",
        "status": "ok",
        "detail": "SKILL.md 明确「Manim is deterministic — the same scene renders the same frames」，并在 gotchas 收尾补上边界：「never use wall-clock time or randomness without a seed」——即确定性依赖于不引入墙钟、随机须播种。主张有边界，非无条件承诺。"
      },
      {
        "item": "目录资产面清点",
        "status": "ok",
        "detail": "skills/manim/ 下仅 SKILL.md（136 行）、references/ 三份（math-and-text 70 行 / graphs-and-updaters 61 行 / 3d-and-camera 68 行）、0 字节 README.md；无 scripts/、无 .py 样例文件、无模板资产——「纯指令 + reference」结论成立（场景脚本由使用者/agent 现写）。"
      },
      {
        "item": "跨引用可解析性",
        "status": "discrepancy",
        "detail": "SKILL.md 提到「the `motion-design-skills` pack (`animation-principles` ...)」——该 pack 与 animation-principles 均不在本 repo（本 repo 仅 skills/manim 一个 skill），属同作者的另一个 pack，单装本 repo 时该引用悬空。另正文引用的 `scripts/contact-sheet.sh`、`scripts/probe-mp4.sh` 位于本 repo 根，单装 skill 目录会悬空。"
      },
      {
        "item": "能力边界声明与正文覆盖的一致性",
        "status": "ok",
        "detail": "SKILL.md 自述「Not the tool for UI motion, social/marketing video, or data-from-CSV business charts」，而正文与三份 reference 确实只覆盖数学排版、函数/图形、3D 与相机；未出现与自述边界冲突的内容（无 UI/营销/CSV 章节）。"
      },
      {
        "item": "档位判据与站内先例的一致性",
        "status": "ok",
        "detail": "判蓝的两条支撑：① 依赖以「安装指令」形式出现、执行的是本地 CLI（先例 gsap-react 明确不因 npm 依赖抬档；hyperframes-animation/hyperframes-audio 因官方包安装 + 本地 CLI + 本地读写判蓝）；② 运行期无网络外发、无凭证、无采集（不满足黄/橙）。同时保留「有外部依赖 + 有本地写盘 + TeX 编译面」的现实，故不判绿。判据留痕如上，便于复核与跨批次口径统一。"
      }
    ],
    "note": "结论仅对本 pin commit（a15833c44de5108a3ee68f178a1fca126aa7c6d8）有效。",
    "level": 1,
    "level_label": "V1 已固定",
    "commit": "a15833c44de5108a3ee68f178a1fca126aa7c6d8",
    "sha256": "5ebe4ae4e425d911c09a32c91294381e61a07528b5258883954d89d95f6b9477",
    "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/manim.tar.gz",
    "sha256": "5ebe4ae4e425d911c09a32c91294381e61a07528b5258883954d89d95f6b9477",
    "commit": "a15833c44de5108a3ee68f178a1fca126aa7c6d8"
  },
  "original": {
    "github": "https://github.com/iart-ai/manim-skills/tree/main/skills/manim",
    "path": "skills/manim",
    "commit": "a15833c44de5108a3ee68f178a1fca126aa7c6d8"
  }
}