D-20260813-04|ADR 路徑與向量家族識別¶
背景與驅動力¶
ADR frontmatter 的 files 與 vectors 原本只驗證為陣列。vectors 同時出現 family ID 與實體
JSON 路徑,consumer 無法取得穩定識別;files 又包含已移除的歷史目標,若要求現況存在會把
合法歷史誤判為錯誤,若完全不驗則可能接受越界或未正規化路徑。
考慮過的選項¶
- 兩欄都只保留自由字串:相容性最高,但工具無法安全解析,棄。
files與vectors都要求現存檔案路徑:導覽直接,但檔案移除會竄改歷史 metadata,且 family 會綁死目錄布局,棄。files採安全歷史路徑,vectors採向量檔內的穩定 family ID(採納)。
決定¶
files描述決策發生時的主要影響路徑;必須非空、不重複、正規化且限制在 repo-relative namespace,不要求目標現況仍存在。vectors只接受domain/family-name形式的穩定 family ID,不接受實體向量檔路徑;每個 ID 必須在 conformance corpus 中恰好由一份*.vectors.json的family宣告。- 既有 path-valued
vectors依其向量檔family回填正規化;accepted ADR 本文不變。
後果與影響¶
工具能穩定連結決策與 conformance family,同時保留已移除檔案的歷史影響資訊;越界、重複、
未正規化路徑與 family 漂移會在 CI fail closed。現存 files 可由呈現層做連結,已移除目標只能
顯示為歷史路徑文字,不能由 metadata 推論它仍可導覽。