164 lines
4.0 KiB
Markdown
164 lines
4.0 KiB
Markdown
# 檔案組織策略
|
|
|
|
## 🗂️ 檔案歸類指南
|
|
|
|
本文件定義專案中各種檔案的歸類規則,特別處理難以歸類的檔案。
|
|
|
|
## 📂 標準目錄結構
|
|
|
|
```
|
|
.
|
|
├── 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/`
|
|
- 測試用檔案
|
|
- 暫時的輸出結果
|
|
- 實驗性腳本
|
|
- 一次性使用的工具
|
|
|
|
```bash
|
|
mkdir -p temp
|
|
mv uncertain_test_file.sh temp/
|
|
```
|
|
|
|
#### 2. 歷史檔案 → `archive/`
|
|
- 舊版本的檔案
|
|
- 不再使用但有保存價值的檔案
|
|
- 已完成的一次性任務相關檔案
|
|
|
|
```bash
|
|
mkdir -p archive/2025-09-08
|
|
mv old_setup_script.sh archive/2025-09-08/
|
|
```
|
|
|
|
#### 3. 雜項檔案 → `misc/`
|
|
- 完全無法歸類的檔案
|
|
- 外部提供的參考檔案
|
|
- 特殊用途的實用工具
|
|
|
|
```bash
|
|
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 中記錄:
|
|
|
|
```markdown
|
|
## 檔案移動記錄 (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 產生了無法立即歸類的檔案時:
|
|
|
|
```bash
|
|
# 創建帶時間戳的臨時目錄
|
|
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 開發團隊 |