mcpField
S
smart-folder-organizer

smart-folder-organizer

github.com/yuan-93生产力143 次安装34 周前更新
代码仓库

关于 smart-folder-organizer

Smart Folder Organizer 是用于安全整理目录及其子目录文件的技能。它会识别并保留项目类文件夹,通过 SHA-256 查找重复文件,并按类别整理文档,将不确定的项目留待检查。

主要功能

  1. 01识别项目文件夹和应用包
  2. 02使用 SHA-256 查找重复文件
  3. 03按类型归类文件
  4. 04分类并重命名 PDF
  5. 05将不确定文件留待检查
  6. 06仅在目标目录树内操作

适用场景

  1. 01整理混杂的下载目录
  2. 02归类文档并提取 PDF 信息
  3. 03在不删除文件的情况下分离重复项和空文件夹

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/yuan-93/smart-folder-organizer-skill --skill smart-folder-organizer

安装后在 Claude Code 中输入/smart-folder-organizer确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
classification.md
scripts/
detect_smart_folders.py
extract_pdf_metadata.py
find_duplicates.py

详细介绍

智能文件夹整理器

此技能提供了一套结构化工作流,用于整理杂乱的目录,同时确保数据安全。

核心要求

  1. 安全第一:绝不删除任何文件。将打算删除的文件移至 to_remove/ 下的指定子文件夹(例如 to_remove/duplicates/ 或 to_remove/empty_folders/)。
  2. 严格限定范围:仅在当前目录及其子目录中操作。绝不移动或访问父目录(..)中的文件。
  3. 保留原则:如果无法明确判断某个文件的类别,请将其移至 Needs_Review/ 文件夹,而不是贸然归类。
  4. 大文件:对于任何大于 20MB 的文件,请跳过深度内容分析(例如读取 PDF 文本),以避免内存问题。将这些未经分析的大文件移至专用目录 Needs_Review/LargeFiles/。
  5. 文件夹处理:递归处理当前目录及其子目录中的所有文件。移动文件时,将它们放入目标目录根目录下按类别划分的文件夹中(不要在每个子目录内重复创建类别结构)。发现或遗留下来的空子目录都必须移至 to_remove/empty_folders/。

工作流

1. 智能文件夹检测

在处理单个文件之前,运行 scripts/detect_smart_folders.py <target_dir>,识别已经整理完善的子目录(例如 git 仓库、软件项目、macOS 应用包)。

  • 操作:将检测到的每个文件夹整体移至 Others/ — 不要进入或重新整理其中的内容。
  • 原理:该脚本会检查项目标记(.git/、package.json、Cargo.toml、Makefile 等)和应用包(.app),并返回包含匹配项及其原因的 JSON 列表。
  • 跳过:后续所有步骤都应忽略 Others/ 目录。
2. 重复文件检测

运行 find_duplicates.py 脚本,识别内容相同的文件。

  • 操作:将识别出的重复文件移至 to_remove/duplicates/。
  • 原理:通过 scripts/find_duplicates.py 脚本使用文件哈希(SHA256),确保结果具有确定性。
3. 常规分类

按扩展名和常见模式整理文件:

  • 照片:移至 Photos/。(屏幕截图移至 Photos/Screenshots/)
  • 视频:移至 Videos/。
  • 安装程序:移至 Installers/(.dmg、.pkg、.exe、.msi)。
  • 归档文件:移至 Archives/(.zip、.rar 等)。
4. PDF 深度分析

对于 PDF 文件,读取前几页以确定文档类型并提取元数据,以便重命名。

  • 重要:不要生成动态 Python 脚本来读取 PDF。请改为执行此技能提供的 scripts/extract_pdf_metadata.py 脚本,以提取文本并以确定性的方式分析文档。该脚本使用 pypdf 和抽样策略(前 3 页及最后一页),以快速高效地完成分类。
  • 重要:使用通用语义推理对文档进行分类。现代 AI 模型可以理解数十种语言(英语、中文、西班牙语等);分类时应优先考虑文档的_意图_(例如“请求付款”),而不是“Invoice”之类的特定英语关键词。语义指南请参阅 references/classification.md。
  • 多语言命名:对于非英语文档,请使用其原始文字提取命名信息(例如 [Vendor] 或 [Provider])。标准日期格式 yyyy-mm-dd 保持不变。
  • 发票:重命名为 yyyy-mm-dd-[Vendor]-[Inv#-][Amount].pdf,并移至 Documents/Invoices/。
  • 账单:重命名为 yyyy-mm-dd-[Provider]-[Service]-[Account#].pdf,并移至 Documents/Bills/。
  • 收据:重命名为 yyyy-mm-dd-[Store]-[TotalAmount].pdf,并移至 Documents/Receipts/。
  • 旅行:重命名为 yyyy-mm-dd-[Transport/Hotel]-[Confirmation#].pdf,并移至 Documents/Travel/。
5. 最终清理
  • 将写作文档(.docx、.doc、.pages、.odt)归入 Documents/Writing/。
  • 将电子表格文件(.xlsx、.xls、.numbers、.ods、.csv)归入 Documents/Spreadsheets/。
  • 将演示文稿文件(.ppt、.pptx、.key、.odp)归入 Documents/Presentations/。
  • 将音频文件(.mp3、.wav、.flac、.m4a)归入 Audio/。
  • 按子类型(如适用),将其余文档归入 Needs_Review/Documents/。
  • 如果已分析 PDF 文档但无法确定其类别,请将其移至 Needs_Review/Unknown/。
  • 将其他所有未处理的文件移至 Needs_Review/。

资源

scripts/find_duplicates.py

一个可确定性查找相同文件的 Python 脚本。它使用 SHA-256 哈希比较文件内容,而不是依赖文件名或大小,并以 JSON 列表的形式返回重复文件。

scripts/extract_pdf_metadata.py

一个使用 pypdf 库从 PDF 提取文本的 Python 辅助脚本。请使用此脚本,不要自行编写脚本。它采用抽样策略(前 3 页和最后 1 页),高效提取用于文档分类的文本,并以 JSON 封装格式返回文本。

scripts/detect_smart_folders.py

一个扫描目标文件夹的直接子目录、查找项目标记(.git/、package.json、Cargo.toml、Makefile 等)和应用程序包(.app)的 Python 脚本。该脚本以 JSON 列表的形式返回检测到的“智能”文件夹,这些文件夹应移至 Others/,且不应拆分。

references/classification.md

包含 PDF 和其他文档类型的详细关键词列表与命名规范。

评论

支持 Markdown