feat(llm-wiki): 迁入 llm-wiki 技能包及依赖(85 文件,含 baoyu-url-to-markdown 适配器)
This commit is contained in:
117
llm-wiki/platforms/claude/companions/llm-wiki-upgrade/SKILL.md
Normal file
117
llm-wiki/platforms/claude/companions/llm-wiki-upgrade/SKILL.md
Normal file
@@ -0,0 +1,117 @@
|
||||
---
|
||||
name: llm-wiki-upgrade
|
||||
version: 1.1.1
|
||||
description: |
|
||||
升级 llm-wiki 到最新版本。从 GitHub 拉取最新代码并通过官方 install.sh 升级核心主线。
|
||||
网页、X、微信公众号、YouTube、知乎自动提取依赖默认不刷新;需要时再显式开启。
|
||||
触发词:upgrade llm-wiki、更新 llm-wiki、llm-wiki 升级、llm-wiki update
|
||||
allowed-tools:
|
||||
- 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 级。
|
||||
|
||||
```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 的升级。
|
||||
```
|
||||
Reference in New Issue
Block a user