Feature #260
進行中ARCH-1 行程編排引擎 P0 地基設計管線落地(ADR-006 演算法選型)
100%
概述
【目標】
為 ARCH-1 行程規劃引擎打 P0 地基:定「把 data-model.md(Q9/ADR-005)
的零散節點,編排成可執行逐日行程」的核心流程與演算法選型。Q9 已備
資料結構地基,本 ticket 進入專案首個「行程編排與輸出」主軸。
【業主決策(本循環拍板)】
・行程節奏 pace:可調參數、預設適中(緊湊/適中/悠閒)
・D6 pace 逐日覆寫:留結構位、先單一節奏(Day 層預留 pace_override,
本輪不啟用、零返工)
【核心架構決策(ADR-006,已確認)】
- 五階段管線(與演算法選型正交):
A 錨定切日 / B 節點分桶 / C 日內排序+時段〔演算法在此〕
/ D 交通銜接+停車插入 / E 負載校驗+降級標記 - 三優先帶:Band 0 結構不變式 > Band 1 硬時間窗 > Band 2 軟偏好評分
→ 硬窗永遠贏地理;無可行解打撲空風險旗標、不靜默硬塞 - Stage C 求解器 = 方案 A(規則引擎 most-constrained-first 貪婪插入
- 評分排序 + or-opt 局部修正);DayScheduler 介面隔離保升級路徑
- 否決方案:
・B CSP/TSP-TW → 黑箱難測、依賴重,保留為未來升級路徑
・C 純啟發式 → 方案 A 的退化子集
・D LLM 排序 → 直接違反 C-1 反幻覺紅線、不可測,架構排除作排序器
(LLM 僅可在 ARCH-5 渲染層解釋既定排序)
【devil-advocate 挑戰結果(D1D9)】3 分鐘預算)/ D4【低信心】值校準前取保守偏鬆側
・成立加固:D1 密集多硬窗動線(or-opt+地理聚類)/ D2 末班車前移
Band 1 硬窗(消迭代振盪)/ D3〔中高〕端到端負載門檻+迭代內零網路
I/O(觸 ADR-002 1
/ D5 dwell persist 生成時快照保純檢視冪等 / D9 risk_kind enum 撲空
風險可程式化置頂
・升級業主:D6(已拍板)
・不成立保留:D7 浮點 tie-break(轉 qa 可重現錨點)/ D8 LLM 排除(確認正確)
【規格變更】
・ADR-006-itinerary-planning-algorithm.md(新增,已確認)
・architecture.md:ARCH-1 P0 地基子規格大段;ARCH-1-1/1-2 標
「架構已設計 ⏳」、ARCH-1 整體維持 ❓(ARCH-1-3~8 開放)
・data-model.md(維持 ⏳):新增 5 個極小 [P] 欄位,皆向後相容(DM-P2)
- Trip.pace / Node.dwell_override_minutes / Node.dwell_snapshot_minutes
- Day.pace_override(結構預留、本輪不啟用)
- UncertaintyFlags.risk_kind / Node.overflow_disposition
+ overflow_target_day_index
- 新增 DM-S4(R31 地理連續判準,暫定 80km)/ DM-S5(D1 簇定義,
暫定 2km + cluster_intact 判準)
・constraints.md:不新增獨立 constraint(D3→C-4 端到端負載延伸、
D4→C-2 撲空邊界保護延伸,緩衝端點 ≤ 觸發)
【收尾(併入本 ticket)】
・adr-005 節點驗證依賴抽取無誤 → verification_status 翻 verified
・data-model 交通 data_source enum 措辭對齊 C-1(Q10 已落地修正時態)
【測試計畫】
・test-plan-ARCH-1-core.md:66 條(正 28 / 負 22 / 邊界 16)
・涵蓋 14 節,含 D1D9 加固錨點;architect 4 疑點收口後 5 組升「欄位8 / ARCH-5 渲染 / 端到端整合(依賴
精確比對」+ 新增 3 條;可測試性已閉環
・待校準測試項 13 條(pace 權重/緩衝/迭代上限/dwell 表/端到端門檻
/80km/2km)標【待校準】——結構/判準/端點已定死,校準後僅補數值
・殘餘 BLOCKED 3 類:ARCH-1-3
未落地子系統,非可測試性洞)
【決策樹】
・建 tree/adr/adr-006 節點(verification_status: pending,待 architect
下次啟動驗證依賴抽取)
・00-index B 段 + 修訂歷史 + adr-005 翻 verified
・diagrams.md 待補 ADR-006↔ADR-002/004/005 邊(主協調者後續維護)
【涉及檔案:11(5 改 + 6 新增)】
M docs/specs/architecture.md
M docs/specs/data-model.md
M docs/specs/constraints.md
M docs/decisions/tree/00-index.md
M docs/decisions/tree/adr/adr-005-itinerary-storage-format.md
A docs/decisions/ADR-006-itinerary-planning-algorithm.md
A docs/decisions/tree/adr/adr-006-itinerary-planning-algorithm.md
A docs/specs/test-plan-ARCH-1-core.md
A docs/research/reports/2026-06-06_ARCH-1_itinerary-planning-engine_domain-model.md
A docs/research/reports/2026-06-06_ARCH-1-1-2_planning-core-algorithm_architect-proposal.md
A docs/research/devil-advocate/2026-06-06_ARCH-1-1-2-planning-core-challenge.md
【後續(非本 ticket)】
・ARCH-1-3~8 子問題(領域模型已分解,可續推)
・待校準值族(實作期增量)
・既有待業主批次:Q16-followup-a 去信 Tiqets / Q18 Google Events 決策
/ Q10-followup-e 東南亞交通優先序
沒有任何資料可供顯示