364 lines
8.1 KiB
Markdown
364 lines
8.1 KiB
Markdown
---
|
||
name: tidymydesktop
|
||
description: "智能桌面和目录整理工具。根据用户提示词自动分类、整理文件和应用程序图标,去除重复版本,生成整理报告。支持整理桌面或指定目录。"
|
||
license: MIT
|
||
---
|
||
|
||
# TidyMyDesktop - 智能桌面整理工具
|
||
|
||
## 概述
|
||
|
||
当用户请求整理桌面或目录时,此 skill 会自动:
|
||
1. 分析目录中的文件和应用程序
|
||
2. 智能分类并创建文件夹
|
||
3. 识别和删除软件的旧版本
|
||
4. 搜索未知软件的用途
|
||
5. 生成详细的整理报告(Markdown格式)
|
||
|
||
## 支持的触发指令
|
||
|
||
用户可以通过以下方式触发此 skill:
|
||
- "帮我整理桌面" - 整理 ~/Desktop
|
||
- "帮我整理当前目录" - 整理当前工作目录(需要用户确认)
|
||
- 任何关键词 - 首先搜索相关内容
|
||
|
||
## 工作流程
|
||
|
||
### 步骤 1: 理解用户意图
|
||
|
||
首先判断用户输入的类型:
|
||
|
||
```javascript
|
||
// 检查是否是整理指令
|
||
if (用户输入包含 "整理桌面") {
|
||
目标路径 = ~/Desktop
|
||
} else if (用户输入包含 "整理当前目录") {
|
||
// 需要用户确认目录路径
|
||
await askUserToConfirmPath()
|
||
} else {
|
||
// 如果是关键词,先搜索相关内容
|
||
await searchKeyword(用户输入)
|
||
return
|
||
}
|
||
```
|
||
|
||
### 步骤 2: 扫描和分析目录
|
||
|
||
使用提供的 Node.js 工具脚本扫描目标目录:
|
||
|
||
```bash
|
||
# 扫描目录并生成文件清单
|
||
node ~/.claude/skills/tidymydesktop/scripts/scan.js <目标路径>
|
||
```
|
||
|
||
该脚本会:
|
||
- 列出所有文件和应用程序
|
||
- 识别文件类型和扩展名
|
||
- 检测应用程序版本号
|
||
- 生成初始清单
|
||
|
||
### 步骤 3: 智能分类和整理
|
||
|
||
执行整理操作时,遵循以下原则:
|
||
|
||
#### 3.1 文件分类规则
|
||
|
||
根据文件类型创建分类文件夹:
|
||
|
||
- **应用程序** (`Applications/`)
|
||
- 开发工具 (`Development/`)
|
||
- 办公软件 (`Office/`)
|
||
- 设计工具 (`Design/`)
|
||
- 通讯工具 (`Communication/`)
|
||
- 娱乐软件 (`Entertainment/`)
|
||
- 系统工具 (`Utilities/`)
|
||
|
||
- **文档** (`Documents/`)
|
||
- PDF文档 (`PDFs/`)
|
||
- Word文档 (`Word/`)
|
||
- Excel表格 (`Excel/`)
|
||
- 文本文件 (`TextFiles/`)
|
||
|
||
- **图片** (`Images/`)
|
||
- 照片 (`Photos/`)
|
||
- 截图 (`Screenshots/`)
|
||
- 设计稿 (`Designs/`)
|
||
|
||
- **视频** (`Videos/`)
|
||
- **音频** (`Audio/`)
|
||
- **压缩包** (`Archives/`)
|
||
- **代码项目** (`CodeProjects/`)
|
||
- **未分类** (`Uncategorized/`)
|
||
|
||
#### 3.2 版本去重规则
|
||
|
||
对于同一软件的多个版本:
|
||
|
||
```javascript
|
||
// 识别版本号模式
|
||
// 例如: "AppName v1.2.3.dmg" 和 "AppName v2.0.0.dmg"
|
||
// 保留: 最新版本
|
||
// 删除: 旧版本
|
||
|
||
function identifyVersions(files) {
|
||
// 1. 提取版本号
|
||
// 2. 比较版本
|
||
// 3. 标记要删除的旧版本
|
||
}
|
||
```
|
||
|
||
**CRITICAL**: 在删除任何文件前,必须:
|
||
1. 向用户展示将被删除的文件列表
|
||
2. 等待用户确认
|
||
3. 获得明确同意后才执行删除操作
|
||
|
||
#### 3.3 未知软件处理
|
||
|
||
当遇到不确定用途的软件时:
|
||
|
||
```bash
|
||
# 使用 WebSearch 搜索软件信息
|
||
# 搜索查询格式: "<软件名称> 是什么软件 用途"
|
||
```
|
||
|
||
如果搜索后仍不确定:
|
||
- 将其放入 `未分类/` 文件夹
|
||
- 在报告中标注为"需要人工审核"
|
||
|
||
### 步骤 4: 执行整理操作
|
||
|
||
使用提供的整理脚本:
|
||
|
||
```bash
|
||
# 执行整理操作
|
||
node ~/.claude/skills/tidymydesktop/scripts/organize.js \
|
||
--source <目标路径> \
|
||
--plan <整理计划JSON文件> \
|
||
--dry-run # 首次运行使用 dry-run 模式
|
||
```
|
||
|
||
**重要安全措施**:
|
||
1. 首次运行使用 `--dry-run` 模式(仅模拟,不实际移动文件)
|
||
2. 向用户展示整理计划
|
||
3. 获得用户确认后,再执行实际操作
|
||
4. 所有删除操作都需要用户明确确认
|
||
|
||
### 步骤 5: 生成整理报告
|
||
|
||
创建详细的 Markdown 报告,包含:
|
||
|
||
```markdown
|
||
# 桌面整理报告
|
||
|
||
**整理时间**: YYYY-MM-DD HH:MM:SS
|
||
**整理路径**: /Users/xxx/Desktop
|
||
|
||
## 整理概要
|
||
|
||
- 总文件数: XXX
|
||
- 已分类文件: XXX
|
||
- 创建的文件夹: XXX
|
||
- 删除的重复文件: XXX
|
||
- 未分类文件: XXX
|
||
|
||
## 分类详情
|
||
|
||
### 应用程序 (XX 个)
|
||
- 开发工具 (XX 个)
|
||
- Visual Studio Code
|
||
- IntelliJ IDEA
|
||
- ...
|
||
|
||
### 文档 (XX 个)
|
||
- PDF文档 (XX 个)
|
||
- ...
|
||
|
||
## 版本去重记录
|
||
|
||
| 软件名称 | 保留版本 | 删除版本 | 状态 |
|
||
|---------|---------|---------|------|
|
||
| Example App | v2.0.0 | v1.0.0, v1.5.0 | 已删除 |
|
||
|
||
## 未知软件
|
||
|
||
| 文件名 | 搜索结果 | 处理方式 |
|
||
|-------|---------|---------|
|
||
| Unknown.app | 未找到相关信息 | 放入"未分类"文件夹 |
|
||
|
||
## 建议
|
||
|
||
- [可选] 进一步整理建议
|
||
- [可选] 可能需要手动审核的项目
|
||
```
|
||
|
||
报告保存位置:
|
||
- 桌面整理: `~/Desktop/整理报告_YYYYMMDD_HHMMSS.md`
|
||
- 目录整理: `<目标路径>/整理报告_YYYYMMDD_HHMMSS.md`
|
||
|
||
## 工具脚本使用说明
|
||
|
||
### scan.js - 目录扫描工具
|
||
|
||
扫描目录并生成文件清单:
|
||
|
||
```bash
|
||
node ~/.claude/skills/tidymydesktop/scripts/scan.js <目标路径>
|
||
```
|
||
|
||
输出 JSON 格式的文件清单。
|
||
|
||
### organize.js - 整理执行工具
|
||
|
||
根据整理计划执行文件移动和删除操作:
|
||
|
||
```bash
|
||
# Dry-run 模式(推荐首次使用)
|
||
node ~/.claude/skills/tidymydesktop/scripts/organize.js \
|
||
--source <目标路径> \
|
||
--plan <整理计划.json> \
|
||
--dry-run
|
||
|
||
# 实际执行
|
||
node ~/.claude/skills/tidymydesktop/scripts/organize.js \
|
||
--source <目标路径> \
|
||
--plan <整理计划.json>
|
||
```
|
||
|
||
### classify.js - 智能分类工具
|
||
|
||
使用 AI 辅助分类未知文件:
|
||
|
||
```bash
|
||
node ~/.claude/skills/tidymydesktop/scripts/classify.js \
|
||
--file <文件路径> \
|
||
--search # 启用网络搜索
|
||
```
|
||
|
||
## 使用示例
|
||
|
||
### 示例 1: 整理桌面
|
||
|
||
**用户**: "帮我整理桌面"
|
||
|
||
**Claude 执行流程**:
|
||
|
||
1. 识别触发词 "整理桌面"
|
||
2. 设置目标路径为 `~/Desktop`
|
||
3. 运行扫描工具
|
||
4. 生成分类计划
|
||
5. 以 dry-run 模式预览整理结果
|
||
6. 向用户展示整理计划
|
||
7. 等待用户确认
|
||
8. 执行实际整理操作
|
||
9. 生成并保存整理报告
|
||
10. 向用户展示报告摘要
|
||
|
||
### 示例 2: 整理当前目录
|
||
|
||
**用户**: "帮我整理当前目录"
|
||
|
||
**Claude**:
|
||
|
||
"我将整理当前目录。请确认目标路径:`/Users/xxx/Downloads`
|
||
|
||
是否继续?(yes/no)"
|
||
|
||
**用户**: "yes"
|
||
|
||
**Claude 执行流程**:
|
||
(与示例 1 相同的流程)
|
||
|
||
### 示例 3: 关键词搜索
|
||
|
||
**用户**: "VS Code"
|
||
|
||
**Claude 执行流程**:
|
||
|
||
1. 识别为关键词(非整理指令)
|
||
2. 使用 WebSearch 搜索 "VS Code"
|
||
3. 返回搜索结果
|
||
4. 不执行整理操作
|
||
|
||
## 安全注意事项
|
||
|
||
1. **永远不要自动删除文件** - 所有删除操作必须经过用户明确确认
|
||
2. **使用 dry-run 模式** - 首次整理时始终使用模拟模式
|
||
3. **备份提醒** - 在执行重要操作前提醒用户备份
|
||
4. **路径确认** - 整理目录时必须让用户确认路径
|
||
5. **版本识别准确性** - 版本号识别可能不准确,标记为"待确认"
|
||
|
||
## 依赖项
|
||
|
||
Node.js 包(通过 nvm 管理):
|
||
- `fs-extra` - 文件系统操作
|
||
- `glob` - 文件匹配
|
||
- `semver` - 版本号比较
|
||
- `commander` - 命令行参数解析
|
||
|
||
安装依赖:
|
||
|
||
```bash
|
||
# 使用 nvm 切换到合适的 Node 版本
|
||
nvm use 18
|
||
|
||
# 安装依赖
|
||
cd ~/.claude/skills/tidymydesktop
|
||
npm install
|
||
```
|
||
|
||
## 限制和注意事项
|
||
|
||
1. **macOS 特定功能**:
|
||
- `.app` 应用程序包识别
|
||
- Finder 标签和颜色(暂不支持)
|
||
|
||
2. **不支持的操作**:
|
||
- 移动系统文件
|
||
- 整理受保护的目录
|
||
- 修改文件内容
|
||
|
||
3. **性能考虑**:
|
||
- 大型目录(>1000个文件)可能需要较长时间
|
||
- 网络搜索会增加处理时间
|
||
|
||
## 故障排除
|
||
|
||
### 脚本执行失败
|
||
|
||
```bash
|
||
# 检查 Node.js 版本
|
||
node --version # 应该 >= 14.0.0
|
||
|
||
# 检查依赖安装
|
||
cd ~/.claude/skills/tidymydesktop
|
||
npm list
|
||
```
|
||
|
||
### 权限错误
|
||
|
||
某些目录可能需要额外权限。如果遇到权限问题:
|
||
- 检查目标目录的读写权限
|
||
- 避免整理系统目录
|
||
- 使用用户目录(如 ~/Desktop, ~/Downloads)
|
||
|
||
## 开发和扩展
|
||
|
||
要添加新的文件分类规则,编辑 `scripts/classify.js`:
|
||
|
||
```javascript
|
||
const CATEGORY_RULES = {
|
||
// 添加新的分类规则
|
||
'NewCategory': {
|
||
extensions: ['.ext1', '.ext2'],
|
||
keywords: ['keyword1', 'keyword2'],
|
||
subfolder: 'NewCategory'
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
**版本**: 1.0.0
|
||
**作者**: Claude AI
|
||
**许可**: MIT
|