{
  "$schema": "https://bestaiskill.com/schemas/agent-install/2.json",
  "skill": "ljg-present",
  "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: Tools/BuildDeck.ts (run via bun; reads deck data, creates directories with mkdir, writes HTML via Bun.write, and spawns bun to run "
    },
    {
      "file": "本地工作目录",
      "summary": "File I/O and artifact output: ~/Downloads/{title}.html (final single-file deck, embedded fonts, inlined charts)"
    }
  ],
  "verification": {
    "method": "第二遍独立重读 + 反查：① 目录清点——SKILL.md、四份规范（DesignSystem/CompositionReference/ChartSpec/RenderingSpec）、Tools/{BuildDeck,EmbedAssets,ValidateDeck,DeckData,ProbeDeck}、SloganTemplate.html、References/{CompositionDeck,RegressionDeck}.json、Fonts/*，核对 §1 清单；② 逐条确认「实现原理」九条原句落在 SKILL.md/ChartSpec/DesignSystem；③ 对 §3 风险扫描逐条回源核实：6 条 URL 是否真外发、3 条「凭证」是否真凭证、1 条沙箱是否真未受控执行；④ 核对注入面声明（回归样例的字面量保留、占位符校验）与 ValidateDeck 行为一致；⑤ 功能声明与实际相符：description 的「单文件离线 HTML／语义角色选版式／默认深色／讲稿层与翻页笔」均能在正文找到对应；⑥ 确认无产物期 CDN 字体外链（字体内嵌）。",
    "second_pass": [
      {
        "item": "URL 命中均为安全字面量",
        "status": "ok",
        "detail": "6 条：w3.org SVG 命名空间 1 条、RegressionDeck.json 与 ValidateDeck.ts 测试字面量 5 条；无 fetch/curl 对真实端点，network_calls=[] 成立。"
      },
      {
        "item": "「凭证」命中非凭证读取",
        "status": "ok",
        "detail": "3 条命中均为 token/模板一致性（canonical-template、{{DECK_META_JSON}} 占位符）与 help 文案，不读 env/keychain/文件；credential_reads=[] 成立。"
      },
      {
        "item": "沙箱命中为构建期语法检查",
        "status": "ok",
        "detail": "ValidateDeck.ts 用 `new Function(script)` 对自身模板产物做 JS 语法编译（捕获异常记 javascript-syntax），非对不可信外部代码的任意执行；已写入 injection_surface/reason。"
      },
      {
        "item": "写盘面与交付声明一致",
        "status": "ok",
        "detail": "BuildDeck 用 mkdir + Bun.write 写输出 HTML；EmbedAssets writeFileSync 内嵌字体/图片；SKILL.md 交付声明为 ~/Downloads/{title}.html，一致。"
      },
      {
        "item": "无产物期 CDN 字体外链（未夸大离线）",
        "status": "ok",
        "detail": "SKILL.md 声明「字体内嵌…离线、零动效」，Fonts/ 内含 IBM Plex Mono ttf 与 OFL，EmbedAssets 负责内联；无不依赖远端字体的证据缺口。"
      },
      {
        "item": "授权契约与编辑依据真实存在",
        "status": "ok",
        "detail": "SKILL.md 两种内容契约表与「仅有『做成演示』不自动授权删改」「记录 editingBasis…sourceIds 回到完整来源」为原文，editorial 约束非臆测。"
      }
    ],
    "level": 1,
    "level_label": "V1 已固定",
    "commit": "9e75497a950d2cc58ab9e6871f76405144687bd9",
    "sha256": "c5877f065fa8406a8c2d334e547389f8cdcb8e7ac7afa8928dc4e5e458514294",
    "reviewed_by": null,
    "reviewed_at": null
  },
  "assessed_at": "2026-10-25",
  "method_version": "2.0",
  "mirror": {
    "archive": "https://skillpub.pages.dev/r2/v/2026-10-10/ljg-present.tar.gz",
    "sha256": "c5877f065fa8406a8c2d334e547389f8cdcb8e7ac7afa8928dc4e5e458514294",
    "commit": "9e75497a950d2cc58ab9e6871f76405144687bd9"
  },
  "original": {
    "github": "https://github.com/lijigang/ljg-skills/tree/main/skills/ljg-present",
    "path": "skills/ljg-present",
    "commit": "9e75497a950d2cc58ab9e6871f76405144687bd9"
  }
}