{
  "$schema": "https://bestaiskill.com/schemas/agent-install/2.json",
  "skill": "github-ops",
  "built": "2026-10-26",
  "control_level": 4,
  "control_level_label": "L4 高权限",
  "capabilities": [
    "data_exfiltration",
    "network",
    "write_file"
  ],
  "required_controls": {
    "agent": [
      "sandbox_recommended",
      "graded_authorization"
    ],
    "admin": [
      "approval_process",
      "rollback_support",
      "full_audit"
    ]
  },
  "evidence": [
    {
      "file": "外部端点",
      "summary": "Exfiltrating local content or conversation sessions to third-party cloud storage"
    },
    {
      "file": "环境变量 / API Key",
      "summary": "Reading vendor service credentials: zero scripts or credential-reading code within the skill directory; authentication relies entirely on the gh CLI's existing login state (original text: 'All API calls via `gh api` au')"
    },
    {
      "file": "本地工作目录",
      "summary": "File I/O and artifact generation: GitHub hosted side (via gh/API): PR/issue create/edit/merge/close, comments and reviews, repository create/rename/archive/transfer/visibility/delete, collaborator and team permissions, etc."
    }
  ],
  "verification": {
    "method": "两遍侦查。第一遍：读全 SKILL.md 与 8 个 references（合计约 95KB），按 8 项框架逐项取证，所有 claim 附 file + 逐字 quote。第二遍独立重读找茬：① 逐条反查 external_deps 的调用点；② 对全目录做 token 扫描（http/curl/token/secret/GH_TOKEN/base64/eval/xargs/rm 等）找漏登的网络外发与凭证面；③ 用本机 gh 2.100.0 对文档命令做真实性核验（41 组子命令/flag 的 --help 校验 + --json 字段名负控），并用 find + git ls-files 核对 9 个文件的存在性与 pin 一致性；④ 检查 description 声明的能力与文档实际章节是否一一对应（夸大检查）；⑤ 交叉引用完整性、占位符与示例身份纪律、小标题/内容一致性复核。全部 evidence quote 与正文内嵌引用均由生成脚本做「子串必须命中对应文件」的机器校验。",
    "second_pass": [
      {
        "item": "external_deps 逐条反查调用点是否真实存在",
        "status": "ok",
        "detail": "10 条依赖全部在文件内定位到调用点：gh（SKILL.md 步骤 2 命令块与全篇）、git（pr_operations.md 的 'git rev-parse '<candidate>^{tree}'' 与远端分支退役小节的 '--force-with-lease=\"refs/heads/{branch/path}:$expected_sha\"'）、jq（best_practices.md 的 'gh api rate_limit --jq ...' 与多处 '| jq'）、curl（workflow_operations.md 匿名回读两行）、unzip（'unzip -tq RUN_ID.zip'）、REST（api_reference.md 全篇 gh api repos/...）、GraphQL（'gh api graphql -f query='）、企业主机（best_practices.md 的 'gh api --hostname github.example.com user --jq '.login''）、webhook 目标（api_reference.md 的 config[url]=https://example.com/webhook）、文档链接（api_reference.md 末尾三条 https 链接）。无虚构条目；也未漏登记第三方包——全目录不存在 package.json / requirements.txt / go.mod / Gemfile 等依赖清单。"
      },
      {
        "item": "文件清单 glob + git ls-files 全量核对",
        "status": "ok",
        "detail": "github-ops/ 下恰好 9 个文件：SKILL.md + references/{api_reference,best_practices,branch_protection,issue_operations,organization_access_and_settings,pr_operations,repository_operations,workflow_operations}.md；无 scripts/、无模板/数据文件、无隐藏文件、无 symlink；find 与 git ls-files 结果一致；目录内无 LICENSE（LICENSE 在仓库根，MIT，Copyright (c) 2025 daymade，与固定取值相符）。工作副本 HEAD = d5c4678cb5d4fd6acc9c922690df035dbd33d247，与 pin 一致。"
      },
      {
        "item": "指令中记载的 gh 子命令与 flag 真实性核验（本机 gh 2.100.0）",
        "status": "ok",
        "detail": "对 41 组子命令/flag 跑 gh <cmd> --help 校验，缺失 0：含 --accept-visibility-change-consequences、--match-head-commit、--auto/--squash/--rebase、--paginate/--slurp/--input/-X/-f/-F/-i、--hostname、--show-token、repo create --source/--remote/--internal、secret/variable/run/workflow 全族、issue pin/unpin/transfer、pr ready --undo、pr edit --add-project、run rerun --failed/--debug、run download --name/--dir、config set、repo set-default。--json 字段名另用负控验证（'--json bogusfieldxyz' 报 'Unknown JSON field'），说明 gh 会先做客户端校验，本 skill 用到的 issue/pr/run/repo/workflow --json 字段集全部通过校验。"
      },
      {
        "item": "安全结论反例①：是否有未登记的网络外发",
        "status": "discrepancy",
        "detail": "发现两条第一遍未单独点名的外发路径，本稿已补登记：(a) curl 直连 api.github.com 的匿名回读（不是走 gh 的通道，用于运行历史清除验收）；(b) 创建 webhook 后仓库事件会持续外发到 config[url] 指定地址（示例为 example.com 占位，替换为真实 URL 后即形成长期数据出口）。其余外发（gh/git/文档链接）与第一遍一致。混淆载荷反查：base64/eval/xxd/加密串在目录内零命中。"
      },
      {
        "item": "安全结论反例②：凭证读取/泄露面",
        "status": "ok",
        "detail": "grep 'token|TOKEN|secret|SECRET|show-token|GH_TOKEN|env|api_key' 的全部命中均为纪律条款或 API 字段名，无一处读取、打印、写盘或作为参数内联：'Never use `gh auth status --show-token`'、'never inline or echo the value'、'keep secrets out of command arguments.'、'token literal in a command, document, process argument, log, or committed environment file.'、'Never copy another environment's credential as a fallback.'、'Use only that host's existing authorized login; do not copy tokens,'。gh secret set 走隐藏交互提示或 stdin 重定向，并明确 'GitHub intentionally does not return the secret value.'。"
      },
      {
        "item": "安全结论反例③：是否有未声明的破坏性/绕过行为",
        "status": "discrepancy",
        "detail": "两处需在展示层点名的能力（非漏洞）：(a) workflow_operations.md 的 '## Purging Public Run History' 提供真实 DELETE（gh api -X DELETE 'repos/OWNER/REPO/actions/runs/RUN_ID' 与 deployment 删除），runs 不可恢复，文档要求先全量备份并匿名回读验收；(b) 同文件含 'gh secret delete SECRET_NAME'、gh variable delete、gh workflow disable 等可令生产流程停摆的操作。SKILL.md 的高危边界清单只列 '- Merges, branch deletions, repository creation/deletion/transfer/visibility changes,' 一行覆盖范围，未把「运行历史清除」纳入该清单（仅路由表以 purge 覆盖），属边界清单与 reference 能力的轻微不同步——用户需知晓删除历史同样不可逆。"
      },
      {
        "item": "实现原理是否夸大：description 声明 vs 实际文档能力",
        "status": "ok",
        "detail": "description 列出的各域逐一有承载：PR（pr_operations.md）、issues（issue_operations.md）、Actions（workflow_operations.md）、repositories（repository_operations.md）、collaborators/teams/base permissions/2FA（organization_access_and_settings.md）、branch protection（branch_protection.md）、API automation 与 public/enterprise GitHub（api_reference.md + best_practices.md）、parallel or superseded PR convergence（pr_operations.md 收敛五步）、「write 返回成功但状态没变」（SKILL.md 第 4/6 步 + 组织设置的静默 no-op 节）、「某设置只能 CLI/REST/GraphQL/UI 哪种能改」（SKILL.md 第 4 步 + UI-only 小节）。七步契约标题在正文以 '### 1.'…'### 7.' 实际存在。反面检查：全文没有自动完成/保证成功式措辞，反而反复要求报 pending/failed/no-op，未夸大。"
      },
      {
        "item": "内部一致性：小标题与内容、示例与边界清单是否自洽",
        "status": "discrepancy",
        "detail": "一处小标题窄于内容：workflow_operations.md 的小节标题为 '### Managing Secrets (via API)'，其下同时给出 gh api repos/{owner}/{repo}/actions/secrets（API）与 gh secret set/list/delete（gh CLI 子命令）——命令本身可执行，仅标题措辞与命令族不完全对应。另一处见上一条（路由表 purge vs 高危边界清单）。其余抽检一致：可见性变更在 SKILL.md 与 repository_operations.md 用同一旗标与读回要求；2FA 在 SKILL.md 验收表与 organization_access_and_settings.md 的流程互相对应。"
      },
      {
        "item": "无法在源码内定位/无法复核的声明",
        "status": "unlocatable",
        "detail": "① branch_protection.md 结尾自述该工作流的权限读取、ruleset 创建、entitlement 失败、升级后创建与 effective-branch 读回「was exercised on real repositories in September」（原文 'and effective-branch readback in this workflow were exercised on real repositories in September'）——本 pin 内无测试、日志或脚本可佐证，只能确认为文档自述，且作者自己标注示例策略 'the sample's actor-free policy is illustrative rather than an executed policy for a user.'。② best_practices.md 提到的「owner's current machine registry」与 owner's machine runbook（本机路径不通时改走已授权执行主机的兜底路径）指向仓库外的主机清单/运维手册，本 pin 内不存在，skill 亦声明其不属于该公开 skill（'Topology and host-specific commands belong to the owner's machine runbook, not this public Skill.'）。"
      },
      {
        "item": "交叉引用、占位符与示例身份纪律复核",
        "status": "ok",
        "detail": "8 个 reference 均以 '[...](../SKILL.md)' 反向锚定契约；references 间互链（api_reference.md → organization_access_and_settings.md、SKILL.md 与 pr_operations/repository_operations → git-safety-net）目标均存在或属同仓兄弟 skill 的有意索引（git-safety-net 不在本目录，非缺失）。命令示例统一使用全限定目标（-R OWNER/REPO、HOST/OWNER/REPO）与大写占位符风格，未硬编码真实仓库/用户名，且明令 'never reuse the example author's or another environment's ID'。分支保护示例还要求 'These are alternative actions, not two sequential steps. Create once.' 与 'Do not create fake commits or attempt a destructive push just to test protection.'，无「为测试而破坏」的路径。"
      }
    ],
    "level": 1,
    "level_label": "V1 已固定",
    "commit": "d5c4678cb5d4fd6acc9c922690df035dbd33d247",
    "sha256": "95a92ed3207a525858cfb1f0ff5d658622e54ea8a82ea9600b69bd7196acab12",
    "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/github-ops.tar.gz",
    "sha256": "95a92ed3207a525858cfb1f0ff5d658622e54ea8a82ea9600b69bd7196acab12",
    "commit": "d5c4678cb5d4fd6acc9c922690df035dbd33d247"
  },
  "original": {
    "github": "https://github.com/daymade/claude-code-skills/tree/main/github-ops",
    "path": "github-ops",
    "commit": "d5c4678cb5d4fd6acc9c922690df035dbd33d247"
  }
}