# Skill 更新与生命周期

检查版本、更新发布版本、处理备份，并安全移除本地独立 Skill 运行时。

- Canonical: https://docs.xmemo.dev/zh/docs/skills/updates
- Locale: zh-CN
- Content-Locale: zh-CN
- Canonical-Content-Digest: 9bb22ee041e4d2d333c4d064a36f8f242e3295eeeca0d55e0f8f603286ac6d5f
- Edition-Digest: c542d0203e5a1f0074424b26dc6c3e6901ff56967394588769a5adaa83a208df
- Source-Revision: sha256:e65ff2255a268515f9753f35fa92380db092ac1526ffd5db790e6ee53f7147ec

## 独立的 Skill 与 CLI 版本

独立 Skill 运行时和 XMemo CLI 是独立的软件包，具有不同的版本号和发布生命周期。更新其中一个不会自动改变另一个。

- 独立 Skill 软件包：版本 1.1.35 (@xmemo/skill@1.1.35)，可通过 node scripts/xmemo-skill.mjs --version 或 doctor 查看。
- XMemo CLI 软件包：版本 0.4.x / 1.x (@xmemo/client@0.4.187)，可通过 xmemo --version 查看。
- 独立更新：通过 npm 更新 @xmemo/client 会更新 CLI 编排器，但在运行 xmemo skill update 之前不会更改现有已安装的 skill 目录。
- 子资源完整性 (SRI)：CLI 在将文件解压到 agent skill 目录之前，会使用 sha512 SRI 验证软件包 tarball。

```bash
# Inspect standalone Skill version:
node scripts/xmemo-skill.mjs --version

# Inspect XMemo CLI version:
xmemo --version

# Inspect detailed runtime health and discovery status:
node scripts/xmemo-skill.mjs doctor
```

## CLI skill 生命周期命令

XMemo CLI 提供了专用命令来检查安装状态、跨 agent 客户端安装、更新到较新版本以及安全移除 skill。

- 状态：xmemo skill status [--client <id>|--all] [--json] 检查已安装的 skill 并报告版本、客户端 ID 和目标路径。
- 安装：xmemo skill install [--client <id>|--all] [--project] [--global] [--dir <path>] [--dry-run] [--yes] [--force] [--json]。
- 更新：xmemo skill update [--client <id>|--all] [--dry-run] [--yes] [--json] 将已安装的 skill 更新到最新的固定版本。
- 移除：xmemo skill remove --client <id> [--project] [--yes] [--json] 安全移除经过验证的 skill 文件夹。

```bash
# Check status across all detected clients:
xmemo skill status --all

# Update an installed skill with preview:
xmemo skill update --client codex --dry-run
xmemo skill update --client codex --yes

# Install to a specific client:
xmemo skill install --client claude-code --yes
```

## 现有安装处理、备份与恢复

为防止意外覆盖或丢失自定义设置，安装程序在没有明确确认的情况下拒绝覆盖现有目录，并自动保留备份。

- 拒绝覆盖：针对现有 skill 目录重新运行 install 会停止并报告现有安装，除非传递了 --force（或 XMEMO_SKILL_FORCE=1）。
- 自动化备份位置：当 --force 或 skill update 替换安装时，先前的版本将被移动到 ~/.xmemo/backups/skills/<client_id>/<name>-<timestamp>（对于自定义目录为 ~/.xmemo/backups/skills/custom/<basename>-<timestamp>）。
- 与 agent 加载隔离：备份安全地存放在 ~/.xmemo/backups/ 中，位于 agent 的活动 skills 搜索路径之外，防止重复的工具注册。
- 恢复：要回滚更新，请将 ~/.xmemo/backups/skills/<client_id>/ 中保留的备份目录恢复到活动 agent skills 文件夹中。

```bash
# Force re-install with automatic backup creation:
xmemo skill install --client codex --force --yes

# Inspect preserved backups:
ls -la ~/.xmemo/backups/skills/codex/
```

## 移除后保留的内容

移除 skill 是一项解除 skill 目录链接的本地文件系统操作。它不会清除您的凭据、本地配置或远程记忆。

- 已移除本地 skill 目录：xmemo skill remove 仅删除经过验证的 xmemo-memory 目录并拒绝外部文件夹。
- 凭据保持完好：~/.xmemo/skill-credentials.json 和环境变量 XMEMO_KEY 保持不变。
- 配置保持完好：~/.xmemo/ 下的本地设置保持不变。
- 远程记忆保持完好：xmemo.dev 上存储的记忆、Knowledge 条目和 TODO 不会因 skill 移除而被删除。
- 完全凭据清理：在移除之前运行 node scripts/xmemo-skill.mjs logout 以撤销活动会话令牌，或手动删除 ~/.xmemo/skill-credentials.json。
- 记忆清除：远程记忆仍可访问，直到通过 node scripts/xmemo-skill.mjs forget --id <id> --confirm 进行软删除或通过 Memory Console 清除。

```bash
# Step 1: Revoke active session credentials (optional):
node scripts/xmemo-skill.mjs logout

# Step 2: Remove the installed skill directory:
xmemo skill remove --client codex --yes
```

