{
  "$schema": "https://bestaiskill.com/schemas/agent-install/2.json",
  "skill": "experiment-readout",
  "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 instructions and rule text; no script execution or external impact."
    }
  ],
  "verification": {
    "method": "第一遍：读 pin commit 553ed98c283f9c0f489902d035416a972d6a9699 工作副本（只读）内 skill 目录全部文件 + 仓库级运行时链路（next/src/lib/templates/loader.ts / next/src/lib/templates/shared.ts / next/src/app/api/convert/route.ts / next/src/app/api/templates/[id]/preview/route.ts / next/src/lib/agents/argv.ts / cli/src/skills-matcher.ts），逐项取证。第二遍：不沿第一遍结论，独立重读关键证据并反查——① 每个外部资源条目回源确认调用点真实存在（URL 正则扫描 example.html / assets/*.html）；② 安全结论找反例（目录级 token 扫描：script / fetch / XMLHttpRequest / API key / token / secret / process.env / child_process / eval / new Function / curl / wget / .env / localStorage / createObjectURL / download=，零命中）；③ 核对『实现原理』与功能声明是否相符（含 SKILL.md 与 example.html 是否一致、有无夸大）；④ 资产可达性核对（loader 只装 SKILL.md / example.md / example.html，无 assets 通道）。",
    "second_pass": [
      {
        "item": "运行时机制（loader→assemblePrompt→agent CLI→捕获 stdout）",
        "status": "ok",
        "detail": "重读 next/src/lib/templates/shared.ts / next/src/app/api/convert/route.ts：拼装顺序与 /api/convert 调用点逐字复核，与第一遍一致。"
      },
      {
        "item": "『固定 9 段结构』宣称",
        "status": "ok",
        "detail": "重读 SKILL.md 结构段，9 段编号与名称与 JSON 引用一致，无夸大。"
      },
      {
        "item": "外部资源条目（tailwind / Google Fonts）",
        "status": "ok",
        "detail": "在 assets/product-readout.html 命中 <script src=\"https://cdn.tailwindcss.com\">、<link href=\"https://fonts.googleapis.com/css2?family=Inter…\">，调用点真实存在。"
      },
      {
        "item": "『assets/ 三风格可选』可执行性",
        "status": "discrepancy",
        "detail": "SKILL.md 指示参考 assets/，但全仓 grep 显示 product-readout.html / lab-notebook.html / growth-console.html 仅被该 SKILL.md 自身引用；loader.ts 的 loadSkillFromDir 只读 SKILL.md / example.md / example.html。结论：生成时模型看不到这三份资产，指令为死引用。"
      },
      {
        "item": "安全面（脚本/网络/凭证/写盘）",
        "status": "ok",
        "detail": "对 skill 目录做 token 扫描（script/fetch/XMLHttpRequest/API key/process.env/child_process/eval/curl/wget/.env/localStorage/download=）零命中；示例页唯一 <script> 是 Tailwind CDN 标签，无自写 JS。"
      },
      {
        "item": "meta 元数据（stars / last_push / license）",
        "status": "ok",
        "detail": "GitHub API 实查 owner_repo=nexu-io/html-anything：stargazers_count=8827、pushed_at=2026-09-15T03:36:24Z、license.spdx_id=Apache-2.0，与仓库根 LICENSE（Apache License 2.0）一致。"
      },
      {
        "item": "安装量",
        "status": "unlocatable",
        "detail": "无公开安装量数据源（README/GitHub API 均无），meta.installs 置 null，不硬写。"
      }
    ],
    "level": 1,
    "level_label": "V1 已固定",
    "commit": "553ed98c283f9c0f489902d035416a972d6a9699",
    "sha256": "f9361c33db600ac8f08404e9637e470d17838ab61d251bd80075ed6aaf1a5f9f",
    "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/experiment-readout.tar.gz",
    "sha256": "f9361c33db600ac8f08404e9637e470d17838ab61d251bd80075ed6aaf1a5f9f",
    "commit": "553ed98c283f9c0f489902d035416a972d6a9699"
  },
  "original": {
    "github": "https://github.com/nexu-io/html-anything/tree/main/next/src/lib/templates/skills/experiment-readout",
    "path": "next/src/lib/templates/skills/experiment-readout",
    "commit": "553ed98c283f9c0f489902d035416a972d6a9699"
  }
}