From ed65674507976299ee1151a5c046d5f2ab942e09 Mon Sep 17 00:00:00 2001 From: dontbesilent Date: Mon, 23 Mar 2026 14:31:29 +0800 Subject: [PATCH] feat: add dbskill-upgrade skill and VERSION file MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增 /dbskill-upgrade skill,支持一键升级到最新版本。 - 添加 VERSION 文件(当前版本 2.2) - 自动备份、下载、替换、恢复机制 - 从 README 提取更新内容展示 - 更新 README 添加工具列表 Co-Authored-By: Claude Opus 4.6 (1M context) --- README.md | 6 ++ VERSION | 1 + skills/dbskill-upgrade/SKILL.md | 138 ++++++++++++++++++++++++++++++++ 3 files changed, 145 insertions(+) create mode 100644 VERSION create mode 100644 skills/dbskill-upgrade/SKILL.md diff --git a/README.md b/README.md index ce954fd..5b6941b 100644 --- a/README.md +++ b/README.md @@ -55,6 +55,12 @@ dontbesilent 商业诊断工具箱。从 12,307 条推文中提炼方法论, |---|---| | `/chatroom-austrian` 或 `/奥派` | 奥派经济聊天室。哈耶克 × 米塞斯 × Claude 三人对话 ⭐ 新增 | +### 工具 + +| Skill | 做什么 | +|---|---| +| `/dbskill-upgrade` | 升级 dbskill 到最新版本 | + ### 工作流 ``` diff --git a/VERSION b/VERSION new file mode 100644 index 0000000..6161878 --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +2.2 \ No newline at end of file diff --git a/skills/dbskill-upgrade/SKILL.md b/skills/dbskill-upgrade/SKILL.md new file mode 100644 index 0000000..c988f3d --- /dev/null +++ b/skills/dbskill-upgrade/SKILL.md @@ -0,0 +1,138 @@ +--- +name: dbskill-upgrade +description: 升级 dbskill 到最新版本 +trigger: /dbskill-upgrade、/升级dbskill、「升级 dbskill」 +--- + +# dbskill-upgrade + +升级 dbskill 到最新版本,显示更新内容。 + +## 使用场景 + +- 用户主动调用 `/dbskill-upgrade` 升级 +- 显示版本变化和更新内容 + +## 升级流程 + +### Step 1: 检测安装位置 + +```bash +if [ -d "$HOME/.claude/skills/dbs" ]; then + INSTALL_DIR="$HOME/.claude/skills" + echo "Install location: $INSTALL_DIR" +else + echo "ERROR: dbskill not found in ~/.claude/skills/" + exit 1 +fi +``` + +### Step 2: 获取当前版本 + +```bash +OLD_VERSION="unknown" +for skill_dir in "$HOME/.claude/skills"/dbs*; do + if [ -f "$skill_dir/../../VERSION" ]; then + OLD_VERSION=$(cat "$skill_dir/../../VERSION" 2>/dev/null || echo "unknown") + break + fi +done +echo "Current version: $OLD_VERSION" +``` + +### Step 3: 获取远程版本 + +```bash +REMOTE_VERSION=$(curl -sL https://raw.githubusercontent.com/dontbesilent2025/dbskill/main/VERSION || echo "") +if [ -z "$REMOTE_VERSION" ]; then + echo "ERROR: Cannot fetch remote version" + exit 1 +fi +echo "Remote version: $REMOTE_VERSION" +``` + +### Step 4: 比较版本 + +如果 `OLD_VERSION` 等于 `REMOTE_VERSION`,告诉用户已是最新版本,结束。 + +否则继续升级。 + +### Step 5: 备份当前版本 + +```bash +BACKUP_DIR="$HOME/.claude/skills/.dbskill-backup-$(date +%Y%m%d-%H%M%S)" +mkdir -p "$BACKUP_DIR" +cp -r "$HOME/.claude/skills"/dbs* "$BACKUP_DIR/" 2>/dev/null || true +echo "Backup created: $BACKUP_DIR" +``` + +### Step 6: 下载最新版本 + +```bash +TMP_DIR=$(mktemp -d) +git clone --depth 1 https://github.com/dontbesilent2025/dbskill.git "$TMP_DIR/dbskill" +if [ $? -ne 0 ]; then + echo "ERROR: Failed to clone repository" + exit 1 +fi +echo "Downloaded to: $TMP_DIR/dbskill" +``` + +### Step 7: 替换旧版本 + +```bash +rm -rf "$HOME/.claude/skills"/dbs* +cp -r "$TMP_DIR/dbskill/skills"/dbs* "$HOME/.claude/skills/" +rm -rf "$TMP_DIR" +echo "Upgrade completed" +``` + +如果复制失败,从备份恢复: + +```bash +if [ $? -ne 0 ]; then + echo "ERROR: Upgrade failed, restoring from backup..." + rm -rf "$HOME/.claude/skills"/dbs* + cp -r "$BACKUP_DIR"/* "$HOME/.claude/skills/" + echo "Restored from backup" + exit 1 +fi +``` + +### Step 8: 显示更新内容 + +读取 `$HOME/.claude/skills/dbs/../../README.md`(如果存在),提取从 `OLD_VERSION` 到 `REMOTE_VERSION` 之间的更新内容。 + +格式: + +``` +dbskill v{REMOTE_VERSION} — 从 v{OLD_VERSION} 升级成功! + +更新内容: +- [从 README 提取的更新要点] + +升级完成! +``` + +### Step 9: 清理备份 + +询问用户是否删除备份: + +```bash +echo "Backup location: $BACKUP_DIR" +echo "Keep backup? (will be auto-deleted in 7 days if not used)" +``` + +不强制删除,让用户自己决定。 + +## 错误处理 + +- 网络失败:提示用户检查网络连接 +- Git clone 失败:从备份恢复 +- 文件复制失败:从备份恢复 + +## 注意事项 + +- 只支持通过 `~/.claude/skills/` 安装的版本 +- 升级前自动备份,失败时自动恢复 +- 不需要用户手动操作 git