名称: 升级 描述: 将仓库更新到 obsidian-claude-pkm 的最新版本。创建备份、显示差异、保护您的个人内容。当有新版本可用时使用。 允许工具: 读取, 写入, 编辑, 全局搜索, Grep, Bash 模型: sonnet 用户可调用: true
升级技能
将您的仓库系统文件更新到最新版本,同时保护所有个人内容。
用法
/upgrade # 交互式升级,包括备份和差异审查
/upgrade check # 预览变更内容而不做修改
更新的内容(系统文件)
.claude/skills/*/SKILL.md— 技能定义.claude/agents/*.md— 代理配置.claude/hooks/*.sh— 自动化脚本.claude/rules/*.md— 约定规则.claude/output-styles/*.md— 输出样式定义.claude/settings.json— 权限和钩子配置CLAUDE.md— 根上下文文件(小心合并)Templates/*.md— 笔记模板
永不触及的内容(您的个人内容)
Daily Notes/**— 您的每日日志条目Goals/**— 您的目标文件和评论Projects/**— 您的项目文件夹和 CLAUDE.md 文件Archives/**— 您的存档内容Inbox/**— 您捕获的项目CLAUDE.local.md— 您的个人覆盖设置vault-config.json— 您的偏好设置
升级过程
步骤 1:检查更新
从 CLAUDE.md 读取当前版本(查找“System Version:”行)。
与上游仓库比较。如果使用 git:
git fetch origin
git log HEAD..origin/main --oneline
如果不是 git 仓库或没有远程,通知用户需要手动下载最新的 vault-template/。
步骤 2:创建备份
在更改前,创建时间戳备份:
BACKUP_DIR=".backup/upgrade-$(date +%Y%m%d-%H%M%S)"
mkdir -p "$BACKUP_DIR"
cp -r .claude "$BACKUP_DIR/"
cp CLAUDE.md "$BACKUP_DIR/"
cp -r Templates "$BACKUP_DIR/" 2>/dev/null
告诉用户:“备份创建于 $BACKUP_DIR”
步骤 3:差异审查
对于每个与上游不同的系统文件:
- 显示变更摘要(添加、删除、修改)
- 询问用户确认:“应用此更新?(是/跳过/停止)”
- 如果是:应用更改
- 如果跳过:保持此文件不变
- 如果停止:停止升级(备份保留,部分更改保留)
步骤 4:应用更改
对于每个确认的文件:
- 从上游复制新版本
- 对于
CLAUDE.md:小心合并 — 保护用户自定义(个人使命、当前焦点部分)同时更新系统部分(技能表、版本号) - 对于
settings.json:合并 — 添加新权限/钩子,保护现有自定义
步骤 5:升级后
- 使钩子脚本可执行:
chmod +x .claude/hooks/*.sh - 显示应用更改的摘要
- 更新 CLAUDE.md 中的版本
- 建议运行
/onboard以重新加载上下文
检查模式(/upgrade check)
当使用“check”调用时:
- 比较系统文件与上游
- 列出将更新的文件,附简要变更描述
- 显示版本号(当前 → 可用)
- 不进行任何更改
- 建议运行
/upgrade以应用
输出格式
## 升级检查
**当前版本:** 3.0 (The Cascade)
**可用版本:** 3.1
### 要更新的文件
| 文件 | 变更摘要 |
|------|---------------|
| `.claude/skills/daily/SKILL.md` | 添加了级联上下文浮现 |
| `.claude/agents/goal-aligner.md` | 添加了内存:项目 |
| `.claude/hooks/session-init.sh` | 添加了优先级浮现 |
### 新文件
- `.claude/skills/review/SKILL.md` — 智能评论路由
- `.claude/hooks/skill-discovery.sh` — 自动列出技能
### 无需更改
- `.claude/rules/` — 已经是最新
运行 `/upgrade` 以应用这些更新(首先创建备份)。
安全特性
- 任何修改前完全备份
- 逐个文件确认
- 可随时停止
- 永不触及用户内容文件夹
CLAUDE.local.md个人覆盖保留- 备份包括恢复说明
错误处理
- 如果无 git 远程:指导用户手动下载最新 vault-template
- 如果备份失败:中止整个升级
- 如果文件复制失败:报告错误,继续下一个文件
- 始终保持仓库可用状态
集成
与以下配合工作:
/onboard— 升级后重新加载上下文- 会话初始化钩子 — 将反映更新的优先级