dramaling-app/docs/04_technical/file-organization-strategy.md

4.0 KiB

檔案組織策略

🗂️ 檔案歸類指南

本文件定義專案中各種檔案的歸類規則,特別處理難以歸類的檔案。

📂 標準目錄結構

.
├── docs/                    # 所有文檔
│   ├── 00_starter/         # 入門文檔
│   ├── 01_requirement/     # 需求文檔
│   ├── 02_design/          # 設計文檔
│   ├── 03_development/     # 開發文檔
│   └── 04_technical/       # 技術文檔
├── scripts/                 # 維護和自動化腳本
│   └── maintenance/        # 系統維護腳本
├── tools/                   # 開發工具
│   └── environment/        # 環境設定工具
├── temp/                    # 臨時檔案 (需要時創建)
├── archive/                 # 歸檔檔案 (需要時創建)
└── misc/                    # 雜項檔案 (需要時創建)

🎯 檔案歸類規則

📋 明確歸類的檔案

檔案類型 位置 說明
專案文檔 (*.md) docs/[xx_category]/ 根據內容分類
環境設定工具 tools/environment/[env]/ 按環境類型分組
維護腳本 scripts/scripts/maintenance/ 系統維護相關
配置檔案 對應功能目錄 與功能代碼放在一起

🤔 難以歸類的檔案處理

1. 臨時檔案 → temp/

  • 測試用檔案
  • 暫時的輸出結果
  • 實驗性腳本
  • 一次性使用的工具
mkdir -p temp
mv uncertain_test_file.sh temp/

2. 歷史檔案 → archive/

  • 舊版本的檔案
  • 不再使用但有保存價值的檔案
  • 已完成的一次性任務相關檔案
mkdir -p archive/2025-09-08
mv old_setup_script.sh archive/2025-09-08/

3. 雜項檔案 → misc/

  • 完全無法歸類的檔案
  • 外部提供的參考檔案
  • 特殊用途的實用工具
mkdir -p misc
mv strange_utility.txt misc/

🚫 根目錄保留檔案

只有以下檔案允許留在根目錄:

  • README.md - 專案說明
  • CLAUDE.md - Claude 工作指南
  • PROJECTS.md - 專案管理
  • ISSUES.md - 問題追蹤
  • dl - 主要管理工具
  • .gitignore, .DS_Store 等系統檔案

🛠️ 歸類決策流程

遇到無法歸類的檔案時,按以下順序決策:

1. 功能性檢查

Q: 這個檔案有明確的功能分類嗎?
└─ Yes → 放入對應的功能目錄
└─ No  → 繼續下一步

2. 時效性檢查

Q: 這個檔案是臨時性的嗎?
└─ Yes → 放入 temp/
└─ No  → 繼續下一步

3. 歷史性檢查

Q: 這個檔案是歷史檔案嗎?
└─ Yes → 放入 archive/[date]/
└─ No  → 繼續下一步

4. 最終歸類

無法明確歸類 → 放入 misc/

📝 檔案移動記錄

當移動檔案時,建議在對應的 README.md 中記錄:

## 檔案移動記錄 (2025-09-08)

- `old_script.sh``archive/2025-09-08/` (已完成功能,保存備查)
- `test_file.txt``temp/` (測試用檔案)
- `utility.py``misc/` (外部工具,無明確分類)

🧹 定期清理策略

每月清理 (月初執行)

  1. 檢查 temp/ 目錄

    • 刪除超過30天的檔案
    • 確認是否有檔案需要移到其他目錄
  2. 檢查 misc/ 目錄

    • 重新評估檔案是否能明確歸類
    • 移除不再需要的檔案

每季清理 (季初執行)

  1. 檢查 archive/ 目錄
    • 整理和壓縮舊檔案
    • 確認是否可以永久刪除某些檔案

🚨 緊急處理

當 Claude 產生了無法立即歸類的檔案時:

# 創建帶時間戳的臨時目錄
mkdir -p temp/$(date +%Y%m%d_%H%M%S)

# 移動未歸類檔案
mv uncategorized_file.* temp/$(date +%Y%m%d_%H%M%S)/

# 記錄移動原因
echo "Moved uncategorized files generated during [task description]" > temp/$(date +%Y%m%d_%H%M%S)/README.md

🎯 持續改善

這個策略會根據實際使用情況持續調整和改善。


建立時間: 2025-09-08
適用範圍: Drama Ling 專案
維護者: Drama Ling 開發團隊