昨天建立了標準化的開發流程,每個任務都有了完整的文件記錄。
但很快我就遇到新問題:
docs/
├── task1.md
├── design.md
├── bug_fix_2.md
├── architecture_notes.txt
├── meeting_20250110.md
├── api_spec.json
└── ... 更多散落的文件
這就像把所有衣服都丟在一個大箱子裡,要找白襯衫時得翻遍整個箱子。
當文件數量超過 10 個,找東西就變成一場災難。
我戴上「文件總編輯」的帽子,開始思考一個核心問題:文件的目的是什麼?是為了記錄,還是為了被找到和使用?
答案顯而易見。
文件的價值在於被閱讀和使用。
一個好的文件架構應該要易於導航,新人也能快速找到需要的資訊。每種文件都有明確的歸屬,職責清晰。隨著專案成長不會變得混亂,能夠持續擴展。還要能配合開發流程的需要,支援整個工作流程。
我採用了軟體設計中的「關注點分離」(Separation of Concerns)原則來設計文件架構:
docs/
├── product/ # 產品文件(WHAT & WHY)
├── architecture/ # 架構文件(HOW)
├── design/ # UI/UX 設計
├── tasks/ # 開發任務
├── roles/ # SDLC AI 增強角色
└── function/ # 功能參考
每個目錄都有明確的職責。
product/ 定義做什麼和為什麼,回答 What 和 Why 的問題,主要給產品經理和利害關係人看。
architecture/ 定義如何實現,回答 How 的問題,是架構師和開發者的領域。
design/ 定義外觀和體驗,關注 Look 和 Feel,設計師和前端開發者會常來這裡。
tasks/ 管理開發任務,追蹤 When 和 Who,整個開發團隊都會用到。
roles/ 定義 AI 協作角色,說明 Who helps,讓 AI 助手和團隊成員理解如何協作。
function/ 放功能參考資料,是所有人的 Reference。
product/
├── requirements/ # 需求定義
├── features/ # 功能規格
│ ├── FEATURE-001-project-management/
│ ├── FEATURE-002-event-sourcing/
│ ├── local-first-summary.md
│ └── saas-architecture.md
├── roadmap/ # 產品路線圖
└── issues/ # Issue 管理
設計考量:
architecture/
├── README.md # 架構總覽
├── decisions/ # 架構決策 (ADR/MADR)
│ ├── 0001-use-clean-architecture-with-mvi.md
│ ├── 0002-use-sqldelight-migration.md
│ └── README.md
├── components/ # 元件設計
├── database/ # 資料庫設計
└── patterns/ # 設計模式
設計考量:
design/
├── style-guide/ # 設計系統
│ └── style_guide.md # Grimo 設計語言
├── components/ # UI 元件規格
├── assets/ # 設計資源
│ ├── bg/ # 背景圖片
│ ├── logo/ # 標誌設計
│ └── ui/ # UI 參考圖
└── logo.md # 標誌設計說明
設計考量:
tasks/
├── README.md # 任務管理指南
├── active/ # 進行中任務(未來擴展)
├── completed/ # 已完成任務(未來擴展)
├── backlog/ # 待辦任務(未來擴展)
├── templates/ # 任務模板
└── XXXX_type_description.md # 實際任務文件
設計考量:
roles/
├── README.md # 角色總覽
├── technical-implementation-architect.md # TIA 角色
├── architecture-research-specialist.md # ARS 角色
└── solution-architect.md # SA 角色
設計考量:
每個目錄都有自己的 README.md,扮演不同角色:
# Grimo 專案文件
## 文件結構總覽
[提供全局視角,引導讀者到正確位置]
## 文件維護狀態
[顯示各類文件的健康狀態]
## 快速開始
[新人入門指南]
# 任務文件指南
## 目錄
[本區導航]
## 文件類型
[分類說明]
## 工作流程
[使用指南]
## 任務清單
[即時狀態追蹤]
這個文件架構不是一開始就設計好的,而是演化出來的:
docs/
└── 所有文件混在一起
docs/
├── design/
├── tasks/
└── notes/
docs/
├── product/
├── architecture/
├── design/
├── tasks/
└── roles/
加入子目錄、編號系統、模板、索引
這個結構化的文件架構帶來一個意外收穫 - AI 助手(Claude)的效率大幅提升:
以前的對話是這樣:
我:幫我實作專案管理功能
AI:請問具體需求是什麼?有設計文件嗎?
我:有,但我忘記在哪了...
現在變成這樣:
我:幫我實作 FEATURE-001
AI:我看到 product/features/FEATURE-001-project-management/
已經有完整規格,現在開始實作...
AI 現在可以快速定位相關文件、理解專案脈絡、準確執行任務,還能在正確位置更新文件。
文件架構設計好了,但如何保持活力?我的原則是:
與程式碼同步更新、有明確的維護者、被經常引用和查閱、包含實用的資訊。
寫完就沒更新過、沒人知道誰負責、從來沒被引用、資訊過時或錯誤。
關鍵策略:
我使用的一些實用技巧:
# 快速創建新任務
cp docs/tasks/templates/functional-requirement-example.md \
docs/tasks/0008_fr_new_feature.md
# 統計任務狀態
grep "## 狀態" docs/tasks/*.md | sort | uniq -c
# 生成文件樹狀圖
tree docs -I "*.png|*.jpg" > docs/structure.txt
# 檢查死連結
markdown-link-check docs/**/*.md
經過這段時間的實踐,我總結出設計文件架構的 10 個原則:
一個好的文件架構就像一個井井有條的圖書館,每本書都有它的位置,每個人都能找到需要的資訊。
對於一人公司來說,這特別重要。
你既是作者也是讀者。你需要在不同角色間切換。你的 AI 助手需要理解專案。你的未來自己會感謝現在的你。
文件架構反映了你的思維架構。清晰的文件架構,代表清晰的專案思維。
「混亂的文件是知識的墳墓,有序的架構讓知識永生。」
關於作者:Sam,一人公司創辦人。正在打造 Grimo,一個智能任務管理和分配平台。
專案連結:GitHub - grimostudio