用途:将本地 .claude/skills/ 中的 swain-* 技能更新到最新版本,并同步处理治理(governance)配置。若未检测到 swain 技能目录,会提示这更像全新安装而非更新,但仍继续执行。
主要流程与能力: 一、检测当前安装:ls -d .claude/skills/swain-* 2>/dev/null。 二、备份本地修改:临时浅克隆 https://github.com/cristoslc/swain.git 作参照,逐文件 diff 找出被修改或本地新增的文件,复制到 .agents/update-backup/<ISO日期>/ 并列出。若无修改则跳过。 三、检测已安装的 agent 平台:读取 references/agent-platforms.json,用 command -v 或 HOME 配置目录判断,always_include 条目无条件加入,据此生成 -a 参数,避免为未安装平台创建 dotfolder 占位。 四、更新:运行 npx skills add cristoslc/swain $agent_flags -s '' -y,只为检测到的平台安装全部技能并跳过确认。若 npx 失败(命令不存在、网络错误或非零退出),回退为直接 git clone 并复制 skills 到安装目录。 五、校准治理:调用 swain-doctor 技能,校验治理规则、清理旧版技能目录、校验 .tickets/、取消跟踪泄漏进 git 的运行时文件;该技能幂等,更新后可安全反复执行。 六、恢复指引:若第二步有备份,列出备份文件;对用户新增配置文件建议改放到 .agents/config/<skill-name>/ 或 swain.settings.json,对已打补丁的脚本展示与新版本 diff,若上游已含修复则确认补丁不再需要,否则可重新应用。 七、报告:从最新 git tag 取发布版本,遍历各 swain-/SKILL.md 从 frontmatter 提取 name 与 version 并列出,确认更新完成,并说明备份位置。
适用场景:安装或维护 swain 技能集,需要拉取上游最新版本、保留自定义内容、避免污染未使用平台的配置目录时。
限制与注意:依赖 ls、git、jq、diff、find、mktemp 等命令;npx 不可用时会走 git 回退路径;安装位置通过查找 swain-doctor 目录推断,默认回退为 .claude/skills;本技能不对收费、价格、平台支持范围等未在资料中说明的事项作任何承诺。