步骤 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 文件分类规则
根据文件类型创建分类文件夹:
- 开发工具 (Development/)
- 办公软件 (Office/)
- 设计工具 (Design/)
- 通讯工具 (Communication/)
- 娱乐软件 (Entertainment/)
- 系统工具 (Utilities/)
- PDF文档 (PDFs/)
- Word文档 (Word/)
- Excel表格 (Excel/)
- 文本文件 (TextFiles/)
- 照片 (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: 在删除任何文件前,必须:
- 向用户展示将被删除的文件列表
- 等待用户确认
- 获得明确同意后才执行删除操作
#### 3.3 未知软件处理
当遇到不确定用途的软件时:
```bash
# 使用 WebSearch 搜索软件信息
# 搜索查询格式: "<软件名称> 是什么软件 用途"
```
如果搜索后仍不确定:
- 将其放入
未分类/ 文件夹 - 在报告中标注为"需要人工审核"
步骤 4: 执行整理操作
使用提供的整理脚本:
```bash
# 执行整理操作
node ~/.claude/skills/tidymydesktop/scripts/organize.js \
--source <目标路径> \
--plan <整理计划JSON文件> \
--dry-run # 首次运行使用 dry-run 模式
```
重要安全措施:
- 首次运行使用
--dry-run 模式(仅模拟,不实际移动文件) - 向用户展示整理计划
- 获得用户确认后,再执行实际操作
- 所有删除操作都需要用户明确确认
步骤 5: 生成整理报告
创建详细的 Markdown 报告,包含:
```markdown
# 桌面整理报告
整理时间: YYYY-MM-DD HH:MM:SS
整理路径: /Users/xxx/Desktop