{
  "$schema": "https://bestaiskill.com/schemas/agent-install/2.json",
  "skill": "interrogate",
  "built": "2026-10-26",
  "control_level": 2,
  "control_level_label": "L2 本地",
  "capabilities": [
    "write_file"
  ],
  "required_controls": {
    "agent": [
      "restrict_working_directory"
    ],
    "admin": [
      "keep_operation_logs"
    ]
  },
  "evidence": [
    {
      "file": "本地文件",
      "summary": "Operate on local project files or workspace artifacts"
    }
  ],
  "verification": {
    "method": "第二遍独立重读 + 反查：① 目录清单：pstack/skills/interrogate 仅 SKILL.md + references/ 四个 md，无 scripts/data/template，无可执行文件；② 六个文件逐类 token 扫描（http(s)://、curl、wget、fetch(、requests、API_KEY、token、secret、process.env、shell、exec、write、fs.write、rm -rf、subprocess）零命中——唯一命令类是 `git diff main...HEAD`；③ 对每条 external_deps 回原文确认调用点（git、Task 子代理参数块、~/.cursor/rules/pstack-models.mdc 读取指令均已定位行号）；④ 反例搜索「是否偷偷写文件」：搜 write/save/edit/apply/create 等词，仅有 'Do NOT auto-apply changes' 与 'open a separate PR to update the configured value'（后者是让人做的动作，非 skill 自动执行）；⑤ 声明 vs 实现：'one reviewer per configured model' 与 Step 3 的表格/配置读取逻辑一致，'readonly': `true` 与 poteto-mode SKILL.md 中 readonly 语义（strips MCP）互相印证；⑥ 仓库内交叉引用核对：pstack/README.md 的 skill 表、docs/guide/04-design.md 'Break it with /interrogate' 段、poteto-mode/SKILL.md 与 playbooks（feature / opening-a-pr / bug-fix）都把它定位为「多模型对抗评审、不自动改」，与 SKILL.md 自述一致；⑦ 本地 HEAD == origin/main == df3fb154fb982fb83f649de8646d4af6a0cb16b3。",
    "second_pass": [
      {
        "item": "「每模型一个评审者」是否真按配置读",
        "status": "ok",
        "detail": "SKILL.md Step 3 明写从 ~/.cursor/rules/pstack-models.mdc 的 `interrogate reviewers` 取列表，'one reviewer per entry, extending or shrinking the Reviewer A/B/C/D labels'；配置缺失才落回四模型默认表。setup-pstack 的 SKILL.md 第 55 行确实生成 'interrogate reviewers: claude-fable-5-1-thinking-max, gpt-5.6-sol-max, grok-4.6-fast-xhigh, claude-opus-5-thinking-xhigh'，两端严丝合缝。"
      },
      {
        "item": "只读与「不自动应用」两个断言",
        "status": "ok",
        "detail": "SKILL.md 第 11 行 'The deliverable is a synthesized verdict. Do NOT auto-apply changes.'；第 48 行子代理参数 '`readonly`: `true`'。仓库其他位置（docs/guide/04-design.md）亦复述 'applies nothing automatically'。无写文件指令。"
      },
      {
        "item": "外部依赖清单的完备性（是否有漏网 CLI/API）",
        "status": "ok",
        "detail": "token 扫描仅 `git diff main...HEAD` 一处命令；其余依赖都是宿主的 Task 工具与本地配置文件。不存在壳脚本、curl、MCP 端点或第三方 SaaS 调用。"
      },
      {
        "item": "安全面：有无凭证读取或隐蔽网络",
        "status": "ok",
        "detail": "六个文件对 API_KEY/token/secret/env/curl/requests/http 零命中；无脚本文件可执行任何东西。第一遍判定的 blue 档依据（本地读写 + 宿主调度）成立。"
      },
      {
        "item": "功能声明是否有夸大（'Multiple LLM reviewers challenge changes from independent angles.'）",
        "status": "ok",
        "detail": "Step 3 用同一模板喂所有评审者（reviewer-prompt.md 明确 placeholders），所以「independent」指的是模型家族不同而非提示词不同——SKILL.md 自己在第一段就澄清 'The adversarial signal comes from model diversity, not assigned personas'，措辞与实现一致，未夸大。"
      },
      {
        "item": "配置损坏时的降级行为是否可能造成意外（自动开 PR）",
        "status": "ok",
        "detail": "SKILL.md 指示 'open a separate PR to update the configured value or default table'——这是让 agent 在仓库里另开 PR 的动作指令，属跨出「只读评审」范围的唯一指令。它只在模型 slug 被拒时才触发，且对象是配置仓库；用户若不希望自动开 PR，应在使用前知悉。已在 risks 中列出。"
      },
      {
        "item": "installs 数值可信度",
        "status": "ok",
        "detail": "installs=3 直接取自池内 pool.json（source 'skills.sh-hot'，同时 github_stars/license/last_push 为 null）；该数字明显是 skills.sh 热度榜的低值采样，不代表真实装机量，故 meta 中照录池值、stars 与 last_push 用 gh api 实采（7799 / 2026-09-15T03:14:54Z）。"
      },
      {
        "item": "授权归属",
        "status": "ok",
        "detail": "仓库根无 LICENSE（gh api license=null）；MIT 只存在于 pstack/LICENSE（Copyright (c) 2026 Lauren Tan）与 pstack/.cursor-plugin/plugin.json 的 \"license\": \"MIT\"。结论「MIT（限 pstack 插件目录）」有据。"
      },
      {
        "item": "pin commit 一致性",
        "status": "ok",
        "detail": "本地 git rev-parse HEAD 与 origin/main 均为 df3fb154fb982fb83f649de8646d4af6a0cb16b3（2026-09-08T23:32:19-04:00, 'Merge pull request #340 …'）；gh 显示仓库在 2026-09-15 仍有推送，故结论仅对该 pin 有效。"
      }
    ],
    "level": 1,
    "level_label": "V1 已固定",
    "commit": "df3fb154fb982fb83f649de8646d4af6a0cb16b3",
    "sha256": "8282cc302a8de1c34cc26ab83abd6a9d4c3170495fc8a70157d46a395344a41c",
    "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/interrogate.tar.gz",
    "sha256": "8282cc302a8de1c34cc26ab83abd6a9d4c3170495fc8a70157d46a395344a41c",
    "commit": "df3fb154fb982fb83f649de8646d4af6a0cb16b3"
  },
  "original": {
    "github": "https://github.com/cursor/plugins/tree/main/pstack/skills/interrogate",
    "path": "pstack/skills/interrogate",
    "commit": "df3fb154fb982fb83f649de8646d4af6a0cb16b3"
  }
}