mirror of
https://github.com/hansjone/oclaw.git
synced 2026-10-11 04:10:44 +08:00
同时收敛启动与运维脚本默认行为(含 wiki worker)、更新 Admin 可观测性与相关测试,降低首轮时延并提高运行稳定性。 Made-with: Cursor
163 lines
3.7 KiB
Markdown
163 lines
3.7 KiB
Markdown
# Skill 卸载流程详细指南
|
||
|
||
本文档详细描述 skill 的卸载流程。
|
||
|
||
## 卸载前准备
|
||
|
||
### 1. 检测平台
|
||
|
||
使用与安装相同的平台检测逻辑:
|
||
|
||
```
|
||
IF OpenClaw:
|
||
安装目录 = ~/.openclaw/skills/
|
||
配置文件 = ~/.openclaw/config.json
|
||
|
||
ELSE IF Molili:
|
||
安装目录 = ~/.molili/skills/
|
||
配置文件 = ~/.molili/config.json
|
||
|
||
ELSE IF Claude Code:
|
||
安装目录 = ~/.claude/skills/
|
||
配置文件 = ~/.claude/config.json
|
||
|
||
ELSE:
|
||
安装目录 = ~/.claude/skills/ (clawhub 默认)
|
||
配置文件 = ~/.claude/config.json
|
||
```
|
||
|
||
### 2. 确认 Skill 存在
|
||
|
||
检查 skill 目录是否存在:
|
||
|
||
```
|
||
{安装目录}/{skill-name}/
|
||
├── SKILL.md
|
||
├── scripts/
|
||
├── references/
|
||
└── assets/
|
||
```
|
||
|
||
如果不存在:
|
||
- 返回错误 "未找到该 skill,可能已卸载或名称错误"
|
||
- 建议用户使用 `list` 命令查看已安装 skills
|
||
|
||
### 3. 获取 Skill 信息
|
||
|
||
读取 SKILL.md 获取基本信息:
|
||
- name
|
||
- description
|
||
- version(如果有)
|
||
|
||
## 卸载流程
|
||
|
||
### 第一步:用户确认
|
||
|
||
展示将要卸载的 skill 信息,请求确认:
|
||
|
||
```
|
||
⚠️ 即将卸载以下 skill:
|
||
|
||
名称: pdf-processor
|
||
描述: PDF processing and manipulation tools
|
||
安装路径: ~/.claude/skills/pdf-processor/
|
||
|
||
⚠️ 此操作将删除该 skill 的所有文件,不可恢复。
|
||
|
||
是否确认卸载? [y/N]
|
||
```
|
||
|
||
可选:添加 `--force` 或 `-f` 参数跳过确认。
|
||
|
||
### 第二步:备份(可选)
|
||
|
||
如果用户指定 `--backup` 或 `-b` 参数:
|
||
|
||
1. 创建备份目录:`~/.cocoloop/backups/`
|
||
2. 打包 skill 目录:`tar -czf ~/.cocoloop/backups/{skill-name}-{timestamp}.tar.gz {skill-path}/`
|
||
3. 提示备份位置
|
||
|
||
### 第三步:执行卸载
|
||
|
||
1. **删除 skill 目录**
|
||
```bash
|
||
rm -rf {安装目录}/{skill-name}/
|
||
```
|
||
|
||
2. **更新平台配置(如果需要)**
|
||
- 某些平台维护已安装 skill 列表
|
||
- 从列表中移除该 skill
|
||
|
||
3. **清理相关缓存**
|
||
- 删除 Cocoloop 本地缓存中该 skill 的搜索记录
|
||
- 删除安全检查缓存(如果有)
|
||
|
||
### 第四步:验证卸载
|
||
|
||
检查 skill 目录是否还存在:
|
||
- 如果存在 → 返回错误 "卸载失败,请检查权限或手动删除"
|
||
- 如果不存在 → 卸载成功
|
||
|
||
## 批量卸载
|
||
|
||
支持一次卸载多个 skills:
|
||
|
||
```
|
||
卸载 skill1 skill2 skill3
|
||
```
|
||
|
||
处理流程:
|
||
1. 遍历每个 skill
|
||
2. 执行单个卸载流程(不询问确认,或统一确认)
|
||
3. 汇总结果:
|
||
```
|
||
📊 卸载结果:
|
||
skill1: ✅ 已卸载
|
||
skill2: ❌ 未找到
|
||
skill3: ✅ 已卸载
|
||
```
|
||
|
||
## 卸载后处理
|
||
|
||
### 依赖检查(可选)
|
||
|
||
检查是否有其他 skill 依赖被卸载的 skill:
|
||
1. 遍历所有已安装 skills
|
||
2. 检查它们的 dependencies(如果有记录)
|
||
3. 如果有依赖关系,警告用户:
|
||
```
|
||
⚠️ 警告: 以下 skill 可能依赖 pdf-processor:
|
||
- document-workflow
|
||
|
||
继续使用这些 skill 可能会出现问题。
|
||
```
|
||
|
||
### 清理孤立依赖(高级)
|
||
|
||
如果 skill 安装了独立的依赖(如 node_modules),检查是否可以清理:
|
||
- 如果其他 skill 不使用 → 可以删除
|
||
- 如果有共享依赖 → 保留
|
||
|
||
## 错误处理
|
||
|
||
| 错误场景 | 处理方式 |
|
||
|---------|---------|
|
||
| 权限不足 | 提示使用 `sudo` 或检查目录权限 |
|
||
| 文件被占用 | 提示关闭使用该 skill 的程序后重试 |
|
||
| 目录非空但无法删除 | 保留日志,提示手动删除 |
|
||
| 配置文件损坏 | 尝试修复或重建配置 |
|
||
|
||
## 恢复卸载
|
||
|
||
如果用户误卸载,提供恢复选项(前提是备份存在):
|
||
|
||
```
|
||
恢复 pdf-processor
|
||
```
|
||
|
||
流程:
|
||
1. 查找备份目录:`~/.cocoloop/backups/pdf-processor-*.tar.gz`
|
||
2. 列出可用备份(按时间排序)
|
||
3. 询问用户选择恢复哪个版本
|
||
4. 解压到安装目录
|
||
5. 验证恢复
|