跳轉到

D-20260813-04|ADR 路徑與向量家族識別

背景與驅動力

ADR frontmatter 的 filesvectors 原本只驗證為陣列。vectors 同時出現 family ID 與實體 JSON 路徑,consumer 無法取得穩定識別;files 又包含已移除的歷史目標,若要求現況存在會把 合法歷史誤判為錯誤,若完全不驗則可能接受越界或未正規化路徑。

考慮過的選項

  • 兩欄都只保留自由字串:相容性最高,但工具無法安全解析,棄。
  • filesvectors 都要求現存檔案路徑:導覽直接,但檔案移除會竄改歷史 metadata,且 family 會綁死目錄布局,棄。
  • files 採安全歷史路徑,vectors 採向量檔內的穩定 family ID(採納)。

決定

  • files 描述決策發生時的主要影響路徑;必須非空、不重複、正規化且限制在 repo-relative namespace,不要求目標現況仍存在。
  • vectors 只接受 domain/family-name 形式的穩定 family ID,不接受實體向量檔路徑;每個 ID 必須在 conformance corpus 中恰好由一份 *.vectors.jsonfamily 宣告。
  • 既有 path-valued vectors 依其向量檔 family 回填正規化;accepted ADR 本文不變。

後果與影響

工具能穩定連結決策與 conformance family,同時保留已移除檔案的歷史影響資訊;越界、重複、 未正規化路徑與 family 漂移會在 CI fail closed。現存 files 可由呈現層做連結,已移除目標只能 顯示為歷史路徑文字,不能由 metadata 推論它仍可導覽。