File Organizer

👤 akira82-ai 📦 v0.1.0 ⭐ 4.5 ⬇️ 947 下載
📄 辦公效率 免費

📖 技能介紹


name: file-organizer description: | 基於 AI 語義分析的智慧檔案整理技能,根據檔案內容動態建立 Johnny Decimal 分類。

當用戶提到以下內容時觸發: - "整理檔案"、"分類檔案"、"組織下載"、"檔案歸檔" - "檔案太多了"、"下載資料夾很亂"、"檔案亂七八糟" - "把檔案按類別整理"、"自動分類檔案" - "清理下載資料夾"、"整理文件" - "檔案管理"、"檔案分類整理" - 提到需要將檔案從一個目錄移動到另一個目錄進行分類

核心功能: - AI 分析檔名語義,動態生成分類 - 使用 Johnny Decimal 編號系統(XX.YY 格式) - 自動檢測重複檔案(MD5 演算法) - 使用者確認分類計劃後再執行 version: 1.0.0 allowed-tools: Bash, AskUserQuestion, Task author: Claude Code


File Organizer Skill

7w4.net小蔥技能。

基於 AI 語義分析的智慧檔案整理技能,根據檔案內容動態建立分類。

核心特性

特性 說明
分類方式 AI 分析檔名語義,動態生成分類
互動模式 AskUserQuestion 詢問源/目標目錄
使用者確認 顯示分類計劃後等待確認
目標優先 優先使用目標目錄現有分類
重複檢測 使用 MD5 演算法自動檢測重複檔案

使用方式

本技能通過自然語言觸發,你可以用多種方式描述需求:

示例: - "把我的 Downloads 資料夾整理到 Documents/Archives" - "我的下載資料夾太亂了,幫我按類別整理一下" - "整理這些檔案:~/Downloads → ~/Documents/Organized" - "清理下載資料夾,把檔案按型別分類"

如果需要指定特定目錄: - 可以在對話中直接提供路徑 - 技能會通過 AskUserQuestion 詢問源目錄和目標目錄 - 支援絕對路徑和相對路徑(如 ~/Downloads, ./files

Johnny Decimal 分類標準

本技能使用 Johnny Decimal 編號系統進行檔案分類。詳細規範請參考:references/johnny_decimal.md

核心要點: - 使用 XX.YY 格式的分類編號(如 01-01, 10-05) - 主編號按主題領域遞增(如 01-XX 技術類,02-XX 商業類) - 子編號在同一領域內按順序遞增 - 分類命名格式:編號_類別名稱

快速示例:

01-01_人工智慧技術    # 技術領域
01-02_網路安全        # 技術領域
01-03_程式設計開發        # 技術領域
02-01_金融經濟        # 商業領域(新主題,主編號遞增)
02-02_消費零售        # 商業領域

執行流程

1. 解析引數

檢查使用者是否提供了源目錄和目標目錄引數。

2. 確定源目錄(如未指定)

使用 AskUserQuestion 詢問使用者,提供常用目錄選項。

3. 確定目標目錄(如未指定)

使用 AskUserQuestion 詢問使用者,提供常用目錄選項。

4. 掃描目標目錄

ls -la "$target"
  • 檢查是否已有分類目錄
  • 如有,記錄現有分類列表供後續匹配

5. 掃描原始檔

ls -1 "$source"
  • 獲取所有檔案列表
  • 跳過隱藏檔案(以 . 開頭)

6. AI 分析並生成分類

如果目標目錄有分類:將檔案匹配到現有分類

如果目標目錄無分類:AI 分析所有檔名,動態建立分類

重要:生成的分類名稱必須帶編號字首,格式為 編號_類別名稱 - 編號使用 Johnny Decimal 格式:01-01, 01-02, 02-01, 10-05 等 - 編號與類別名稱之間用下劃線 _ 分隔 - 類別名稱可以使用中文或英文,允許包含下劃線

編號遞增規則(關鍵): - 主分類編號(第一部分):根據主題領域遞增 - 同一大類主題下的所有子分類共享相同的主分類編號 - 例如:所有技術相關用 01-XX,所有商業相關用 02-XX,所有行業相關用 03-XX - 每個主分類編號最多包含 99 個子分類(01-0101-99) - 當發現不同的主題領域時,必須遞增主分類編號 - 子分類編號(第二部分):在同一主題領域內按順序遞增(01, 02, 03...)

示例:

01-01_人工智慧技術    # 技術領域
01-02_網路安全        # 技術領域
01-03_程式設計開發        # 技術領域
02-01_金融經濟        # 商業領域(新主題,主編號遞增)
02-02_消費零售        # 商業領域
02-03_商業管理        # 商業領域
03-01_教育培訓        # 行業領域(新主題,主編號再遞增)
03-02_醫療健康        # 行業領域

分類原則: - 根據檔名的語義相似性分組 - 先識別主題領域(技術/商業/行業/娛樂等),再細分具體類別 - 分類名稱簡潔明瞭(中文或英文) - 每個分類包含相關聯的檔案 - 優先識別常見模式(程式碼、文件、圖片、壓縮包等)

7. 顯示分類計劃

根據步驟 6 生成的分類,向用戶展示整理計劃。

顯示策略: - 檔案總數 ≤ 30:顯示完整檔案列表(當前模式) - 檔案總數 > 30:智慧摘要模式 - 顯示:分類名稱 + 檔案數量 + 前 3 個代表性檔案 - 提供:[展開檢視全部] 選項

統計檔案總數(Bash):

total_files=$(ls -1 "$source" | wc -l | tr -d ' ')

示例格式(使用實際變數):

模式 A:完整列表(≤30 個檔案)

📁 源目錄: $source (13 個檔案)
📂 目標目錄: $target (新建分類)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  📚 01-01_學習資料 (3 files)
     ├── 學習筆記Python.pdf
     ├── 課程影片.mp4
     └── 教程.md
  💻 01-02_程式碼專案 (2 files)
     ├── React元件.tsx
     └── script.py
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

模式 B:智慧摘要(>30 個檔案)

📁 源目錄: $source (127 個檔案)
📂 目標目錄: $target (新建分類)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  📚 01-01_學習資料 (45 files)  [展開檢視全部]
     ├── 學習筆記Python.pdf
     ├── 課程影片.mp4
     └── 教程.md
     ... 還有 42 個檔案
  💻 01-02_程式碼專案 (38 files)  [展開檢視全部]
     ├── React元件.tsx
     ├── script.py
     └── index.html
     ... 還有 35 個檔案
  📦 01-03_壓縮備份 (44 files)  [展開檢視全部]
     ├── backup.zip
     ├── archive.tar.gz
     └── documents.7z
     ... 還有 41 個檔案
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

💡 提示:檔案數量較多,顯示為智慧摘要模式

注意: 顯示時使用實際的 $source$target 變數值,不要硬編碼路徑。

8. 使用者確認(必須)

使用 AskUserQuestion 詢問是否執行:

選項: - 確認執行 - 按照上述分類計劃移動檔案 - 展開檢視全部 - 顯示完整的檔案列表(適用於摘要模式) - 調整分類 - 修改某些檔案的分類 - 取消操作 - 放棄本次整理

必須等待使用者確認後才能執行移動操作

模式切換說明: - 如果使用者在摘要模式下選擇"展開檢視全部",重新以完整列表模式顯示步驟 7 - 再次確認時,展開檢視全部 選項替換為 返回摘要模式

9. 建立目錄結構

根據步驟 6 生成的分類,動態建立目錄。

格式: $target/編號_類別名稱

示例(根據實際分類動態建立):

# 假設 AI 生成的分類為:
# - 01-01_Claude相關
# - 01-02_AI綜合應用
# - 01-03_程式碼專案

mkdir -p "$target/01-01_Claude相關"
mkdir -p "$target/01-02_AI綜合應用"
mkdir -p "$target/01-03_程式碼專案"

注意: 必須使用 $target 變數,不要硬編碼路徑。

10. 執行移動操作

使用 Bash 命令批次移動檔案到對應分類目錄。

11. 重複檔案檢查與處理

在移動檔案完成後,檢查目標目錄是否存在重複檔案。

# 呼叫 Python 指令碼檢查重複檔案
python3 scripts/check_duplicates.py "$target"

指令碼輸出示例:

🔍 重複檔案檢查報告
============================================================
📂 目標目錄: /Users/user/Documents/Archives
📄 總檔案數: 45
✅ 唯一檔案: 42
🔄 重複組數: 1

⚠️  發現以下重複檔案:

MD5: a1b2c3d4e5f6...
  大小: 1,234,567 位元組
  ✅ 保留: 01-01_學習資料/document.pdf
       時間: 2025-02-10 14:30:00
  🗑️  重複: 01-02_程式碼專案/document.pdf
       時間: 2025-02-15 09:20:00

處理重複檔案(如果發現重複):

使用 AskUserQuestion 詢問使用者處理方式:

選項: - 自動刪除重複檔案(保留每組最早建立的檔案) - 保留所有檔案(不做任何修改) - 檢視詳細報告(顯示完整 JSON 報告)

如果選擇自動刪除:

python3 scripts/check_duplicates.py "$target" --delete

刪除策略: - 每個 MD5 組保留修改時間最早的檔案 - 刪除其餘重複檔案 - 顯示刪除檔案數和釋放空間

如果選擇保留所有: - 跳過此步驟,繼續流程

如果未發現重複檔案: - 顯示 "✨ 未發現重複檔案!" - 直接繼續下一步

12. 輸出報告

# 檢查源目錄是否清空
ls -1 "$source" | wc -l

# 顯示各分類檔案數
echo ""
echo "📊 分類統計:"
for dir in "$target"/*/; do
  dir_name=$(basename "$dir")
  echo "  $dir_name"
done

技術說明

  • 檔名語義分析不依賴副檔名
  • 支援中文和英文檔名
  • 動態生成分類,無固定模板
  • 優先匹配目標目錄現有分類
  • 自動建立不存在的目錄結構
  • 跳過隱藏檔案(. 開頭)

🤖 AI 評測

這個 Skill 質量不錯,能幫你把亂糟糟的檔案自動按類別整理好。它最大的亮點是引入了 Johnny Decimal 編號系統,分類一目瞭然,還支援中文檔名。操作流程很完善,從掃描檔案到分類、再到確認執行、最後檢測重複檔案,整個過程都有考慮。不過使用前最好先備份一下檔案,而且文件裡有些地方說法不太一致,初次使用可能需要仔細看一下說明。

📊 多維度評分

適應性4.8
規範性4.5
有效性4.5
可靠性4.2
可信度5

📁 包含檔案 (7 個)

📄 README.md 4 KB
📄 SKILL.md 10 KB
📄 _meta.json 139 B
📄 evals/evals.json 1.1 KB
📄 references/johnny_decimal.md 4.6 KB
📄 scripts/check_duplicates.py 5.7 KB
📄 skill-card.md 2 KB