ADR 模式
Architecture Decision Records(ADR)記錄為什麼做這個選擇。程式碼回答 what;ADR 回答 why。半年後團隊成員問「可以改用 X 嗎?」時,ADR 就是你避免重新辯論的工具。
本 kit 預寫 3 條方法論 ADR(Strangler Fig、Dev Harness、Product Decision Log)。其他由你決定 — kit 只給格式。
格式(MADR-lite)
# ADR-NNNN: <決策標題>
- **Status:** Proposed | Accepted | Deprecated | Superseded by ADR-XXXX
- **Date:** YYYY-MM-DD
- **Deciders:** @owner, @reviewer-1
- **Tags:** backend, frontend, migration, ...
## Context
為什麼現在需要這個決策?限制條件?
## Decision
決定什麼?一句話開頭,再補細節。
## Consequences
### Positive
- ...
### Negative
- ...
### Neutral
- 需關注但不阻擋的事。
## Alternatives Considered
### Alternative A:<名稱>
- Pros:
- Cons:
- Rejected because:
## References
- 連結、先前 ADR、外部文件。
模板在 docs/templates/adr-template.md。
兩類 ADR
技術 ADR(慣例編號 0001–0010)
框架選型、資料庫、訊息匯流排、部署拓撲。Deciders 通常 Architect + senior eng。
產品決策記錄
定價、entitlement 規則、MVP 範圍、功能門禁。Deciders 通常 PM Lead + Architect。相同格式,不同領域。kit 的 ADR-0003 Product Decision Log 是 meta-ADR,讓這類決策成為 first-class,不再被埋在 PRD appendix。
追溯性 ADR
決策已在三個月前的會議做完、已在 production,還是要寫 ADR。Status 標 Accepted 加 Recorded: YYYY-MM-DD,Alternatives Considered 從記憶補。
審計軌跡存在、未來的你不用猜、若新成員挑戰決策你有文件可辯護或優雅退役。