{
  "$schema": "https://bestaiskill.com/schemas/agent-install/2.json",
  "skill": "llm-icon-finder",
  "built": "2026-10-26",
  "control_level": 3,
  "control_level_label": "L3 联网",
  "capabilities": [
    "network",
    "write_file"
  ],
  "required_controls": {
    "agent": [
      "declare_domain_and_key_scope"
    ],
    "admin": [
      "least_privilege_keys",
      "keep_request_logs"
    ]
  },
  "evidence": [
    {
      "file": "网络端点",
      "summary": "Declared external network access: https://raw.githubusercontent.com/lobehub/lobe-icons/refs/heads/master/pack"
    },
    {
      "file": "本地工作目录",
      "summary": "File I/O and artifact output: Only when explicitly requested by user: host Bash runs `curl -o <icon>.<ext>` to write to agent/user-specified path; SKILL.md specifies no fixed path"
    }
  ],
  "verification": {
    "method": "第二遍独立重读 + 换角度找茬：① glob 全量清单（含隐藏文件、关 gitignore）确认资产面 = 3 个 markdown（SKILL.md + references/icons-list.md + developer-info.md），无脚本/无 .skill 打包体；② 全文 URL 正则抽取，逐个端点独立实读：用 curl 对 raw.githubusercontent.com 的 PNG/WEBP/SVG/light/dark/-color 组合逐个打 HTTP 码；③ 用 GitHub Contents/Tree API 实读 lobehub/lobe-icons 的 packages/ 与 packages/static-svg 目录结构，核对 SKILL.md 路径模板与上游真实布局；④ 把 icons-list.md 的全部 44 个不重复图标名逐个打到 static-png/dark/<name>.png，统计 200/404；⑤ 用 registry.npmjs.org 实读 developer-info.md 列出的 5 个 npm 包是否真实存在；⑥ 对 SKILL.md 声明与实际能力做夸大检查（『100+ icons』对比上游实际规模）；⑦ 混淆/动态执行/凭证 token 全目录扫描零命中。",
    "second_pass": [
      {
        "item": "PNG / WEBP 端点可用性（skill 的主路径）",
        "status": "ok",
        "detail": "curl 实测：packages/static-png/dark/claude.png = 200、packages/static-png/dark/claude-color.png = 200、packages/static-png/light/claude.png = 200、packages/static-webp/dark/claude.webp = 200，不存在的名字（notarealicon123.png）返回 404 —— 主路径与文档模板一致，404 也可正常反映为 404。"
      },
      {
        "item": "SVG 路径模板 vs 上游真实布局",
        "status": "discrepancy",
        "detail": "SKILL.md 写 `packages/static-svg/{light|dark}/{icon-name}.svg`，实测 packages/static-svg/dark/claude.svg = 404、.../light/claude.svg = 404、.../dark/claude-color.svg = 404；GitHub Contents API 显示 packages/static-svg 下只有 icons/ 子目录（无 light/dark 段），tree API 中 static-svg 路径 911 条、形如 packages/static-svg/icons/claude.svg，curl 实测 200。即 SVG 分支的模板已过期（PNG/WEBP 仍是 light|dark 布局，两条路径规则已不一致）。"
      },
      {
        "item": "icons-list.md 名录逐名验证",
        "status": "discrepancy",
        "detail": "把名录去重后的 44 个图标名逐个 GET static-png/dark/<name>.png：40 个 200，4 个 404 —— `chatgpt`、`gpt`、`llama`、`lobechat`；这 4 个名字在 static-svg/icons 的仓库树里同样不存在（tree API 过滤结果为空）。可用替代名实测均 200：openai（对应 chatgpt/gpt）、meta（对应 llama）、lobehub（对应 lobechat）。即名录是『上游旧名 + 别名』的混合体，需要 agent 现场纠偏（讽刺的是 SKILL.md 的 404 排障恰恰建议试 chatgpt/gpt 这两个已失效的名字）。"
      },
      {
        "item": "npm 包名真实性（developer-info.md）",
        "status": "ok",
        "detail": "curl registry.npmjs.org/<pkg>/latest：@lobehub/icons、@lobehub/icons-static-svg、@lobehub/icons-static-png、@lobehub/icons-static-webp、@lobehub/icons-rn 五个均返回 200，包名与用途注释对应无误；这些是给用户在自己项目里安装的指引，skill 运行期不会自动安装。"
      },
      {
        "item": "画廊与仓库入口可达性",
        "status": "ok",
        "detail": "https://lobehub.com/icons 返回 302（跳转，属正常站点行为）；https://github.com/lobehub/lobe-icons 为公开仓库且 tree API 可读（master 分支可访问，packages/ 下有 react-native、static-avatar、static-png、static-svg、static-webp 五个包）。文档给的四个外链（画廊/仓库/文档/npm 搜索）均非死链。"
      },
      {
        "item": "功能声明 vs 实际能力（夸大检查）",
        "status": "ok",
        "detail": "SKILL.md/README 声称 '100+ icons'，实际上游规模远大：单 packages/static-png/dark 目录即含数百个 PNG（含 -color/-text 变体），static-svg/icons 有 911 个 svg 路径，且涵盖名录之外的品牌（如 adobe、aws、cursor、vercel）——声明属保守而非夸大。反面：declared 'Comprehensive' 的名录只 44 名、且含 4 个失效名，'comprehensive' 一词偏乐观。"
      },
      {
        "item": "『支持中文查询』的映射来源",
        "status": "ok",
        "detail": "SKILL.md 的 '智谱 → chatglm、月之暗面 → moonshot' 与 icons-list.md 的中文列表格（| `chatglm` | 智谱清言 | ChatGLM |、| `moonshot` | 月之暗面 | Moonshot (Kimi) | 等 17 行）一致，映射有仓内依据；但『智谱=ChatGLM』这类厂商别名词典属领域知识，仓内无法证真伪，只能确认两侧文本自洽。"
      },
      {
        "item": "下载示例可照抄性",
        "status": "discrepancy",
        "detail": "SKILL.md 的 Multi-icons 示例里 URL 用了省略号：`curl -o openai.svg \"https://raw.githubusercontent.com/lobehub/lobe-icons/.../dark/openai.svg\"`，and 完整可用的路径需要补 `packages/static-png`（SVG 情况还要改成 static-svg/icons）。照字面复制该示例会得到无效/404 请求；同一文档上方的模板段才是可执行形式。"
      },
      {
        "item": "无脚本/无凭证/无混淆复核",
        "status": "ok",
        "detail": "glob（含隐藏文件）只有 3 个 md；全目录 base64 / eval( / exec( / os.system / subprocess / sh -c / API_KEY / secret / password 扫描零命中（命中的仅为 URL 里的普通词）；无 .env、无 keychain 引用、无写文件指令（下载是用户请求的可选动作）。"
      }
    ],
    "level": 1,
    "level_label": "V1 已固定",
    "commit": "d5c4678cb5d4fd6acc9c922690df035dbd33d247",
    "sha256": "8c8f311d4974d206159b5ea5aba0bc3ea58b69bb6fe33dc95b1ccb0549621d92",
    "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/llm-icon-finder.tar.gz",
    "sha256": "8c8f311d4974d206159b5ea5aba0bc3ea58b69bb6fe33dc95b1ccb0549621d92",
    "commit": "d5c4678cb5d4fd6acc9c922690df035dbd33d247"
  },
  "original": {
    "github": "https://github.com/daymade/claude-code-skills/tree/main/llm-icon-finder",
    "path": "llm-icon-finder",
    "commit": "d5c4678cb5d4fd6acc9c922690df035dbd33d247"
  }
}