# LLM Wiki Upgrade

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

- Skill: `sdyckjq-lab/llm-wiki-upgrade` (Agent Skill)
- Install (CLI): `npx skillmds@latest add sdyckjq-lab/llm-wiki-upgrade`
- Raw SKILL.md: https://api.skillmd.com/api/skills/sdyckjq-lab/llm-wiki-upgrade/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: sdyckjq-lab (https://skillmd.com/u/sdyckjq-lab)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/sdyckjq-lab/llm-wiki-upgrade

---


# /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 级。

```bash
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 最新版本到临时目录

```bash
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：读取新版本号

```bash
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`，告知用户已是最新版本，清理临时目录后结束：

```bash
rm -rf "$TMP_DIR"
```

### Step 4：执行官方升级

从临时目录（带 `.git`）执行 `install.sh --upgrade`。

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

```bash
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：清理临时目录

```bash
rm -rf "$TMP_DIR"
```

### Step 6：展示更新内容

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

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

- 现在默认升级不会主动刷新网页、X、微信公众号、YouTube、知乎自动提取能力
- 如果用户需要这些自动提取能力，可以继续执行：

```bash
bash "$SKILL_DIR/install.sh" --upgrade --target-dir "$SKILL_DIR" --platform claude --with-optional-adapters
```

输出格式：

```text
llm-wiki $NEW_VERSION 升级完成（从 $OLD_VERSION）

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

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

