UI はローカライズ済みです。スキルの紹介と説明文書は選択した言語へ AI が自動翻訳し、コード・コマンド・パス・専門用語は原文のままです。原作者の文書が優先されます。
スキルを探す
生産性・共同作業 · SKILL.md

auto-updater

auto-updater

检查已安装社区技能的更新。展示差异并要求明确批准后才应用。 当用户说"检查更新""更新我的技能""已安装技能有什么更新"或从 registry-sync agent 调用时使用。

Independent GitHub snapshot · Automated classification · Original documentation governs

スキルの説明

GitHub

name: auto-updater description: > 检查已安装社区技能的更新。展示差异并要求明确批准后才应用。 当用户说"检查更新""更新我的技能""已安装技能有什么更新"或从 registry-sync agent 调用时使用。 argument-hint: "[--apply 更新全部,否则仅通知]"

/auto-updater

  1. 加载 ~/.claude/plugins/config/claude-for-legal/legal-builder-hub/CLAUDE.md → 已安装技能 + 自动更新偏好。
  2. 使用以下工作流。
  3. 检查每个已安装技能的源是否有更新版本。
  4. 按偏好:应用 / 通知 / 展示差异。

目的

社区技能会改进。本技能注意到改进时机,展示变更内容,仅在获得明确批准后应用更新。

信任姿态

已安装技能是在你特权法律环境中运行的代码。上游仓库可能被攻破、转让给新所有者、或以你不希望的方式改变行为。本技能的设计确保在没有你阅读差异并批准的情况下,绝无任何更新被应用。 这不是偏好——这是设计。

加载上下文

~/.claude/plugins/config/claude-for-legal/legal-builder-hub/CLAUDE.md → 已安装技能(附版本/提交 SHA)、更新偏好(通知 / 手动)。

工作流

第1步:检查每个已安装技能

对已安装列表中的每个技能:

  • 从源注册表获取当前提交 SHA(精确提交,非标签或分支头——标签可变且可被发布者追溯改写;仅提交 SHA 不可变)
  • 与安装时固定的 SHA 比较
  • 如不同:有可用更新

第2步:差异与信任审查

对于每个更新,展示完整差异:

# [技能名称] — [已安装 SHA] → [最新 SHA]

## SKILL.md 变更
[统一差异]

## hooks/hooks.json 变更
[统一差异 — 标记:hooks 可执行任意代码]

## .mcp.json 变更
[统一差异 — 标记:MCP 服务器以你的凭据运行]

## 其他文件
[附差异的新增/删除/修改文件列表]

然后运行信任检查:

  • hooks/hooks.json 是否变更? Hooks 可执行任意 shell 命令。显著展示差异并请用户确认他们理解新 hooks 的功能。
  • .mcp.json 是否变更? 新增或变更的 MCP 服务器可访问你的环境。同样处理。
  • allowed-tools 或 tools frontmatter 是否扩展? 新增工具访问是权限提升。
  • SKILL.md 中是否有新增的网络调用、技能目录外的文件写入或命令执行? 标记它们。
  • 技能的 description 或声明的目的是否变化? 声称"审查保密协议"现在声称"发送合同"的技能已改变其用途。

第2.5步:重新扫描新版本(GlassWorm 门控)

在应用更新前,对新版本重新运行完整的 skills-qa 扫描。一个在 v1.0 干净的技能可能在 v1.1 携带有害内容(GlassWorm 模式:受信任的发布者、已建立的技能、携带有害代码的小版本号升级)。安装时的信任不转移到更新。

规则:

  1. 发现回归时不应更新。 如果新版本产生了旧版本没有的发现——在任何 skills-qa 第1.5步类别中——默认拒绝更新并解释原因。
  2. 安全面差异无论评估结果如何均需人工批准。 任何涉及 hooks/hooks.json、.mcp.json、allowed-tools/tools frontmatter、新增 Bash/WebFetch/WebSearch 访问、新增外部 URL、技能目录外的新增文件写入路径或 description frontmatter 的差异均需强制人工批准提示,不能被干净的 LLM 扫描绕过。
  3. 只读扫描上下文。 扫描读取攻击者控制的文本(新 SKILL.md)。在可用时在只读子代理中运行。安装代理接收子代理的报告;仅在人工批准后才获得写权限。
  4. 拒绝扫描现在失败的更新。 如果新版本命中 REFUSE 层级模式,不提供"仍然应用"选项。

第2.6步:新鲜度触发的重新核实

不仅检查新提交。还检查已安装技能是否已过新鲜度窗口。

对于每个已安装技能,从安装日志读取已验证的 last_verified、freshness_window 和 freshness_category 标记。

如果活跃窗口已过且无更新的提交: 提供选项:(a) 自行检查来源,(b) 标记给注册表维护者,(c) 禁用该技能直至重新核实。

如果活跃窗口已过且有更新的提交: 始终重新核实,不静默应用。

第3步:按偏好处理

通知(默认): 展示完整差异和信任检查。"有可用更新。审查以上差异。应用?[y/n]"

手动: 仅列出哪些有可用更新。用户准备好时运行 /legal-builder-hub:auto-updater --apply [技能名称]。

没有"自动"模式。对在你法律环境中运行的代码的更新始终需要人工阅读差异。

第4步:应用(在明确批准后)

用新版本替换已安装技能文件。更新已安装列表中的提交 SHA。先备份旧版本以便回滚。

回滚

如果更新破坏了某些功能:/legal-builder-hub:auto-updater --rollback [技能名称] 从备份恢复。

本技能不做什么

  • 自动应用更新。绝不。每次更新均有差异和批准。
  • 更新非通过中心安装的技能(手动放置的技能由用户自行管理)。
  • 信任标签、分支或版本号。仅固定提交 SHA,因为仅提交 SHA 不可变。
保存したスキル