skill-updater(全面通用型技能库一键更新升级)

Polar Sponsor
爱发电 赞助
.NET 9.0

本技能用于社区及开源第三方技能的溯源与版本更新,识别指定更新类指令后自动触发执行,会自动区分自研、SkillHub、GitHub 三类技能,仅对外部来源技能执行升级操作并跳过自研内容保障安全;更新流程自带前置备份、更新后安全校验,出现高危变更可自动回滚,无额外外部命令依赖,依托 Python 标准库完成下载解压,同时支持持久化映射配置、自动采纳前缀、多代理并行安全运行,还可通过环境变量或参数自定义技能存储目录,灵活适配不同使用场景。

skill-updater v1.2.0

功能概述

skill-updater v1.2.0是一项面向实际任务的技能,主要用于0. 定位与边界;skill-updater 是 按需触发 的技能库更新器;

核心要点

  • 它解决一个具体痛点:当前 ~/.workbuddy/skills/ 下的技能来源混杂(skillhub 市场安装、GitHub 克隆、自研),但 溯源信息不可靠 —— .skills_store_lock.json 把几乎所有技能都记为 community /ski。
  • 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
  • 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。

使用与执行

实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;

结果检查与注意事项

涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。

skill-updater v1.2.0

0. 定位与边界

skill-updater 是按需触发的技能库更新器。它解决一个具体痛点:当前 ~/.workbuddy/skills/ 下的技能来源混杂(skillhub 市场安装、GitHub 克隆、自研),但溯源信息不可靠——.skills_store_lock.json 把几乎所有技能都记为 community/skillhub,GitHub 克隆的技能甚至不在锁文件中。本技能通过多信号分类器重建每个技能的出处,仅对可证伪的外部来源(skillhub / github)执行溯源升级,对自研技能一律跳过,杜绝误覆盖用户自有成果。

安全原则(来自用户纪律):更新即写入,必须先备份、再安全审计、高危即回滚。绝不静默覆盖。

1. 触发方式

用户说出以下任一短语即触发:

  • 技能库更新 / 更新技能库 / 更新skills / 升级技能 / 升级技能库
  • skill update / 更新所有技能 / 升级所有skill

触发后按第 4 节流程执行三阶段流水线。

2. 设计目标

  1. 分类可证伪:每个技能必须有明确出处标签 skillhub / github / self / unknown,不可臆测。
  2. 自研零风险:无外部溯源证据的技能一律按 self/unknown 跳过,默认保护用户自有技能。
  3. 可审计可追溯:每次操作写 manifest.json(分类缓存)与 update_log.json(操作日志)。
  4. 失败可逆:更新前全量备份,P0 风险或命令失败即回滚。
  5. 幂等:重复运行不产生副作用,已最新者跳过。

3. 技能三分类与溯源判定(分类器决策树)

分类在 scripts/inventory.py 中实现,优先级如下(命中即停):

对每个技能目录 name/:
 ① references/self_authored.txt 列出该名
      → self(用户显式声明,最高优先,持久化)
 ② SKILL.md frontmatter 含 origin ∈ {self,skillhub,github}
      → 采用该值(权威覆盖)
 ③ frontmatter 含 agent_created: true
      → self(模型/助手创建的技能视为自研)
 ④ 目录内含 .git/ 且 remote.origin.url 存在
      → github,sourceUrl = git remote
 ⑤ .skills_store_lock.json 存在该技能条目(含真实 slug):
      zip_url 含 "skillhub"        → skillhub,slug 取自 zip_url
      zip_url 含 "github/gitclone" → github
 ⑥ 以上皆不命中
      → skillhub 候选(待注册表验证;404 后尝试搜索同源,仍无则 unknown 跳过)

关键设计取舍:第 ⑤ 步把"无法证明来自外部"的技能全部判为 unknown 并跳过。这比"猜测后误覆盖"安全得多。报告会列出所有 unknown 供用户人工确认;确认后可写入 references/self_authored.txt 持久化(或在前端 matter 显式加 origin: self/origin: skillhub/origin: github 提升判定优先级)。

已知限制:经 skillhub 市场安装的 GitHub 源技能,其锁文件 zip_url 指向 api.skillhub.cn,会被标为 skillhub 并通过市场重装获取最新——功能上仍能更新,仅 origin 标签精度下降。v1.0.0 接受此误差。

4. 整体架构与数据流(三阶段流水线)

[1] inventory.py   扫描 + 分类 + 版本读取  ──► manifest.json(分类缓存,幂等)
        │
[2] check_updates.py  按 origin 查最新版本/提交   ──► manifest["skills"][n]["_check"]
        │   skillhub: GET api.skillhub.cn/v1/skills/ 取 version(best-effort)
        │   github:   git fetch + HEAD vs @{u} 比较
        │   404 技能: lightmake.site 模糊搜索 → --adopt / --auto-adopt-prefix 采纳
        │            → 采纳映射持久化到 slug_map.json
        │
[3] apply_update.py  对 hasUpdate 者执行:备份 → 拉取 → 安全审计 → (回滚|P0) → 写日志
        │   支持多 --only 与 --no-shared-state(多 agent 并行安全模式,不写共享状态)
        │
        └─► update_log.json(追加式操作记录)+ 控制台汇总报告

一键执行入口:scripts/run.py(顺序调用上述三步并打印汇总)。

5. 各来源更新机制

来源 拉取机制(v1.2 纯标准库,跨平台) 版本判定 备注
skillhub urllib 下载 api.skillhub.cn/.../download?slug= → zipfile 解压 → 原子替换目录 持久化 checkedVersion(注册表 latestVersion.version)比对;首次探测保守重装并记版本 已验证返回合法 zip(PK 头);替换前校验 zip 魔术字节与含 SKILL.md,防损坏/投毒。不依赖 curl / unzip 命令,Windows 直接可用
github git -C pull --ff-only(git 缺失时明确跳过并提示) git fetch 后比较本地 HEAD 与上游 仅快进合并;若出现分叉(本地有自改)则中止并提示手动处理,避免丢失用户改动
self / unknown — — 跳过,不触碰

6. 安全闸门(备份 + 审计 + 回滚)

每次单技能更新严格按序:

  1. 备份:整目录复制到 /.skillup_backup/_<时间戳>(标准库 shutil.copytree,跨平台)。
  2. 拉取:执行第 5 节对应命令。失败 → 回滚 + 记 failed。
  3. 安全审计:audit() 扫描更新后文件(跳过 .git),匹配高危模式清单(见 references/SECURITY_AUDIT.md),含 curl|sh、wget|sh、危险 rm -rf /、sudo、base64 解码管道、chmod 777 等。
    • 命中 P0 → 立即回滚备份 + 记 rolled-back,不写入。
    • 命中 P1 → 报告警告但仍应用(用户可事后审查)。
  4. 写回:更新 manifest.json 中的 currentVersion 与 lastResult,追加 update_log.json。

7. 产物文件

  • scripts/inventory.py — 分类器 + manifest 构建(只读扫描,安全可重复)
  • scripts/check_updates.py — 版本/提交比对
  • scripts/apply_update.py — 备份/拉取/审计/回滚执行器
  • scripts/run.py — 三阶段编排入口
  • manifest.json — 分类缓存(技能自管,判定的单一事实源)
  • update_log.json — 操作日志(追加式)
  • references/SECURITY_AUDIT.md — 高危模式清单与分级
  • references/self_authored.txt — 自研技能白名单(可选持久化)
  • slug_map.json — 已采纳的「别名→slug」映射(自动持久化,免去重复 --adopt)

8. 使用方式

# 完整更新(推荐,触发「技能库更新」后执行)
python3 ~/.workbuddy/skills/skill-updater/scripts/run.py

# 分步
python3 ~/.workbuddy/skills/skill-updater/scripts/inventory.py        # 只看分类
python3 ~/.workbuddy/skills/skill-updater/scripts/check_updates.py    # 只看有无更新
python3 ~/.workbuddy/skills/skill-updater/scripts/apply_update.py     # 执行更新
python3 ~/.workbuddy/skills/skill-updater/scripts/apply_update.py --dry-run  # 预演不写入

# 自动采纳 sp- 前缀技能的同源候选(默认关,需强匹配才采纳),并持久化到 slug_map.json
python3 ~/.workbuddy/skills/skill-updater/scripts/check_updates.py --auto-adopt-prefix sp-

# 多 agent 并行安全更新:--no-shared-state 避免并发写 manifest/update_log 冲突,结果仅打印
python3 ~/.workbuddy/skills/skill-updater/scripts/apply_update.py --only   --no-shared-state

9. 与现有技能的关系

  • auto-update / auto-updater 已于 2026-07-06 删除,skill-updater 是技能库更新的唯一入口(按需、分源、带安全闸门)。
  • 本技能自身标记 origin: self,故"技能库更新"不会自更新;若将来发布到市场/GitHub,补 origin+update_command 即可启用自更新。

10. 已知限制

  1. skillhub 更新已落地真实 curl+unzip 机制(api.skillhub.cn 已验证返回合法 zip);版本比对基于持久化的 checkedVersion,避免无本地版本号的技能被反复重装。
  2. 纯 zip 方式安装的 GitHub 源技能(无 .git、锁文件指向 skillhub)被归为 skillhub 处理。
  3. 404 技能经 lightmake.site 模糊搜索产出"同源候选"(报告制,需 --adopt name:slug 人工采纳),不自动覆盖,避免误杀自定义技能。
  4. 仅扫描用户空间 ~/.workbuddy/skills/;产品内置技能(App 包内)由产品自身更新,不在范围内。

11. 版本变更

  • v1.1.0(2026-07-06):

    • 🔴 修复 P0:apply_update.py 的 skillhub 更新命令原为 npx skills add(Vercel CLI,仅认 GitHub owner/repo,对 SkillHub 社区技能必然失败且 SKILL.md 声称的 zip 回退从未实现)。改为真实 curl 下载 zip → unzip → 原子替换 链路,并加 zip 魔术字节校验、单顶层目录上提、SKILL.md 存在性校验。
    • 🟡 修复 P1(churn):版本比对改用持久化 checkedVersion(注册表版本),避免无 frontmatter 版本号的技能每次被判"需重装"。
    • 🟡 修复 P1(覆盖盲区):404 技能做 lightmake.site 模糊搜索,产出同源候选供人工采纳;scholar-paper-downloader 等真·下架技能正确跳过。
    • 🟡 修复 P1(死代码):self_authored.txt 现被 inventory.py 真正读取(最高优先级判 self),并提供 apply_update.py --mark-self 持久化声明。
    • 🟢 加固:run.py 改用 sys.executable 可移植解析;github 更新明确区分"已最新"与"需手动处理"。
  • v1.2.0(2026-07-06):

    • 🔴 修复关键 bug:v1.1 的 check_updates.py found 分支未同步置顶层 info["origin"]="skillhub",导致 --adopt 后的别名技能(如 sp-* 包)在 apply_update.py 中仍因 origin=unknown 被跳过、无法真正更新。v1.2 修复:采纳别名技能后强制置 origin=skillhub。
    • 🟡 新增 slug_map.json 持久化:--adopt / --auto-adopt-prefix 命中后写回映射,后续运行自动复用,免去每次手动 --adopt。
    • 🟡 新增 --auto-adopt-prefix (默认关):对指定前缀技能 404 后做同源搜索,强匹配(slug==去前缀名 / 目录名以 slug 结尾 / slug==原名)才自动采纳,安全兜底覆盖前缀差异技能(如 sp-* 包),避免误杀自定义技能。
    • 🟢 apply_update.py 新增 --no-shared-state:多 agent 并行执行时不写 manifest.json / update_log.json,避免并发写冲突,结果仅打印;主控在全部 agent 结束后 re-sync 状态。

相关专题

更多
DBeaver连接创建与配置教程
DBeaver连接创建与配置教程

本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。

2026.11.04

0

16

XORM框架结构体映射与表结构同步
XORM框架结构体映射与表结构同步

本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

16

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

16

XORM框架零基础入门教程
XORM框架零基础入门教程

本专题梳理XORM框架的入门路径,从框架定位、依赖安装、连接数据库到跑通第一个增删改查示例,讲清Engine初始化、日志开启与项目目录规划,并对比GORM等同类ORM的差异,帮助Go开发者建立整体认知。

2026.11.04

0

15

Docker Desktop怎么设置端口映射
Docker Desktop怎么设置端口映射

本专题聚焦Docker Desktop容器端口映射与访问配置,整理从创建容器、设置端口绑定到验证本地服务访问的操作流程。针对端口被占用、映射配置错误、容器服务无法访问等情况,也提供相应的检查方向,方便用户完成端口配置。

2026.11.03

0

18

Docker Desktop镜像构建教程
Docker Desktop镜像构建教程

想使用Docker Desktop将本地项目构建成Docker镜像?本专题围绕镜像构建的实际操作展开,介绍Dockerfile编写、构建命令使用、镜像标签设置和构建日志查看等内容,同时整理镜像无法生成、依赖安装失败及构建缓存异常等问题的排查思路。

2026.11.03

0

11

Docker Desktop容器创建指南
Docker Desktop容器创建指南

本专题聚焦Docker Desktop容器创建与运行配置,介绍通过本地镜像或远程镜像创建容器的方法,以及容器启动、终端访问、日志查看和基础管理等操作。针对端口冲突、参数配置不当、容器无法启动等情况,也整理了相应的排查方向。

2026.11.03

0

11

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134.1万人学习