{
  "$schema": "https://bestaiskill.com/schemas/agent-install/2.json",
  "skill": "particle-system",
  "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 scripts or commands: (SKILL.md instruction) npx playwright screenshot --wait-for-timeout=600 \"file://$PWD/"
    },
    {
      "file": "网络端点",
      "summary": "Declares external network access: No network calls exist in skill directory code; runtime network surface comes from toolchain: `npx playwright` pulls playw from npm registry on first run"
    },
    {
      "file": "本地工作目录",
      "summary": "File I/O and artifact output: Core deliverable: single particles.html (created by agent per output contract)"
    }
  ],
  "verification": {
    "method": "第二遍独立重读 + 反查（换角度找第一遍的错）：① 全量文件清单核对（含隐藏文件），逐个数出 skill 目录自有文件，确认哪些引用落在目录之外；② token 扫描：全仓 grep `https?://`、`process.env|API_KEY|TOKEN|SECRET|Authorization`、`fetch\\(|execFileSync|spawnSync|child_process|writeFile`，逐条打开确认来源；③ 反向断言：每个「外部依赖」条目回查调用点是否真实存在于源码；④ 档位反证：用 `sandbox|automationcontrolled|no-verify|stealth|bypass|dangerously` 全仓扫描，确认没有漏掉更高档触发条件。",
    "second_pass": [
      {
        "item": "「skill 目录内无脚本」是否成立（决定蓝而非黄/橙的关键）",
        "status": "ok",
        "detail": "文件清单实证：skills/particle-system/ 下只有 SKILL.md、README.md(0 B)、references/particle-recipes.md。SKILL.md 提到的 `scripts/seek-shot.sh` 实际位于仓库根 scripts/，并非 skill 自有资产；因此判级对象内确实没有可执行代码。已在 reason/risks 记录「单装 skill 目录会使引用悬空」。"
      },
      {
        "item": "是否存在凭证或环境变量读取",
        "status": "ok",
        "detail": "全仓正则 `process.env|API_KEY|TOKEN|SECRET|Authorization` 在三个 iart 仓内零命中（唯一命中在 javascript-animation-skills 的 soundtrack/references/ai-music.md，属另一 skill）。本 skill 的 credential_reads 为空成立。"
      },
      {
        "item": "是否有比蓝更高的触发条件被漏掉（红档特征）",
        "status": "ok",
        "detail": "对 `sandbox|automationcontrolled|no-verify|stealth|bypass|ignoreHTTPSErrors|dangerously` 全仓扫描零命中；不存在关沙箱、关 TLS、绕过自动化侦测或任意代码执行面。"
      },
      {
        "item": "GPU / 无头渲染前提是否真的写进文档（任务特别提示项）",
        "status": "ok",
        "detail": "SKILL.md 验证段原文承认这是环境前提并把归因从代码上摘开：'For GPU points, WebGL needs a GPU context; Playwright/Chromium supplies one (swiftshader) headless.'；完成清单第 1 条也要求无 WebGL 错误。"
      },
      {
        "item": "「O(n) 连接点」与「?t=N 可复现」两条能力声明是否与代码相符",
        "status": "ok",
        "detail": "空间网格实现（`cell = radius` 分桶、只查 3×3 邻域）与声明一致；harness 要求 seeded PRNG + 固定步进（`const step = 1 / 60`）再渲单帧，确实保证同 N 同像素。无夸大。"
      },
      {
        "item": "reference 描述是否逐条落地",
        "status": "ok",
        "detail": "references/particle-recipes.md 开篇即 'Complete, runnable systems for canvas and GPU particles.'，与 SKILL.md 末尾列出的能力项（confetti/snow/smoke、鼠标吸引排斥、simplex 流场与 curl、空间网格星座、GPU Points）在文件内可逐节验证。"
      }
    ],
    "level": 1,
    "level_label": "V1 已固定",
    "commit": "50697d659fbf70152f48f9f8aadf1efe78bbdde1",
    "sha256": "d8271a602d6dd44b66614918aae946325842aba5de50af0b29dd430b38e08251",
    "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/particle-system.tar.gz",
    "sha256": "d8271a602d6dd44b66614918aae946325842aba5de50af0b29dd430b38e08251",
    "commit": "50697d659fbf70152f48f9f8aadf1efe78bbdde1"
  },
  "original": {
    "github": "https://github.com/iart-ai/webgl-animation-skills/tree/main/skills/particle-system",
    "path": "skills/particle-system",
    "commit": "50697d659fbf70152f48f9f8aadf1efe78bbdde1"
  }
}