Files

4.1 KiB
Raw Permalink Blame History

name, version, description, allowed-tools
name version description allowed-tools
llm-wiki-upgrade 1.1.1 升级 llm-wiki 到最新版本。从 GitHub 拉取最新代码并通过官方 install.sh 升级核心主线。 网页、X、微信公众号、YouTube、知乎自动提取依赖默认不刷新;需要时再显式开启。 触发词:upgrade llm-wiki、更新 llm-wiki、llm-wiki 升级、llm-wiki update
Bash
Read

/llm-wiki-upgrade

升级 llm-wiki skill 到最新版本。

升级流程

Step 1:探测实际安装目录并读取当前版本

llm-wiki 可能装在 user 级($HOME/.claude/skills/llm-wiki)或 project/vault 级(<项目根>/.claude/skills/llm-wiki,如 Obsidian 仓库、团队共享仓库)。这里自适应探测真实路径,后续所有步骤都基于它。CLAUDE_PROJECT_DIR 在 agent 的 Bash 工具里通常为空,所以用「从当前工作目录逐级向上查找」兜底,找不到再回退 user 级。

SKILL_DIR=""
# 1) Claude Code 注入的项目根(hooks/MCP 等场景)优先
if [ -n "$CLAUDE_PROJECT_DIR" ] && [ -f "$CLAUDE_PROJECT_DIR/.claude/skills/llm-wiki/CHANGELOG.md" ]; then
  SKILL_DIR="$CLAUDE_PROJECT_DIR/.claude/skills/llm-wiki"
fi
# 2) 从当前工作目录逐级向上查找最近的 .claude/skills/llm-wiki(覆盖会话在 vault 子目录的场景)
if [ -z "$SKILL_DIR" ]; then
  _d="$PWD"
  while [ "$_d" != "/" ]; do
    if [ -f "$_d/.claude/skills/llm-wiki/CHANGELOG.md" ]; then
      SKILL_DIR="$_d/.claude/skills/llm-wiki"
      break
    fi
    _d="$(dirname "$_d")"
  done
fi
# 3) 回退 user 级
if [ -z "$SKILL_DIR" ] && [ -f "$HOME/.claude/skills/llm-wiki/CHANGELOG.md" ]; then
  SKILL_DIR="$HOME/.claude/skills/llm-wiki"
fi
OLD_VERSION=$(grep -m1 "^## v" "$SKILL_DIR/CHANGELOG.md" 2>/dev/null | grep -oE 'v[0-9]+\.[0-9]+\.[0-9]+' | head -1 || echo "unknown")
echo "CURRENT_VERSION=$OLD_VERSION"
echo "SKILL_DIR=$SKILL_DIR"

如果 SKILL_DIR 为空(三个候选都没找到带 CHANGELOG.md 的 llm-wiki),告知用户尚未安装 llm-wiki,停止流程。

Step 2:Clone 最新版本到临时目录

TMP_DIR=$(mktemp -d)
git clone --depth 1 https://github.com/sdyckjq-lab/llm-wiki-skill.git "$TMP_DIR/llm-wiki-skill" 2>&1
echo "CLONE_EXIT=$?"

如果 clone 失败(CLONE_EXIT 非 0),告知用户网络问题,停止流程。

Step 3:读取新版本号

NEW_VERSION=$(grep -m1 "^## v" "$TMP_DIR/llm-wiki-skill/CHANGELOG.md" 2>/dev/null | grep -oE 'v[0-9]+\.[0-9]+\.[0-9]+' | head -1 || echo "unknown")
echo "NEW_VERSION=$NEW_VERSION"

如果 OLD_VERSION == NEW_VERSION,告知用户已是最新版本,清理临时目录后结束:

rm -rf "$TMP_DIR"

Step 4:执行官方升级

从临时目录(带 .git)执行 install.sh --upgrade。

注意:默认升级只更新知识库核心主线,不主动刷新网页、X、微信公众号、YouTube、知乎自动提取所需的可选依赖。

bash "$TMP_DIR/llm-wiki-skill/install.sh" --upgrade --target-dir "$SKILL_DIR" --platform claude 2>&1
echo "UPGRADE_EXIT=$?"

如果 UPGRADE_EXIT 非 0,告知用户升级失败,展示关键信息,清理临时目录后停止流程。

Step 5:清理临时目录

rm -rf "$TMP_DIR"

Step 6:展示更新内容

读取 $SKILL_DIR/CHANGELOG.md,提取 OLD_VERSION 到 NEW_VERSION 之间的变更,提炼 3-5 条用户最关心的变化。

如果新版包含“默认只装核心主线 / 可选提取器显式开启”这类变化,要明确告诉用户:

  • 现在默认升级不会主动刷新网页、X、微信公众号、YouTube、知乎自动提取能力
  • 如果用户需要这些自动提取能力,可以继续执行:
bash "$SKILL_DIR/install.sh" --upgrade --target-dir "$SKILL_DIR" --platform claude --with-optional-adapters

输出格式:

llm-wiki $NEW_VERSION 升级完成(从 $OLD_VERSION)

更新内容:
- [变化1]
- [变化2]
- ...

如果需要开启或刷新网页 / X / 微信公众号 / YouTube / 知乎自动提取功能,可以告诉我执行带 --with-optional-adapters 的升级。