Feature #361
進行中ARCH-1 Stage B 收口批:1~5 全數 裁定+ADR-004/007 追記+EventNode 檔期語義+業主三決策落檔
0%
概述
ARCH-1 Stage B 收口批:1~5 全數 裁定+ADR-004/007 追記+EventNode 檔期語義+業主三決策落檔¶
背景¶
#359 落地 stage_b.py(節點分桶)時暴露 5 條規格疑慮(1~5),另有 devil-advocate 兩份挑戰報告的追蹤項(C2/C3/C5/C8)、qa 發現的「anchor 強制歸屬+空 owned_days 雙記錄」極端分支、q13-followup 實測建議的翻頁終止偵測、EventNode 多日活動 start/end 語義空白、以及 qa 揪出的 ADR-007 Gap-3 溯源真空。本批為 system-architect 單線收口批(非並行工程批),把上述懸掛項全數裁定落規格。
業主本批三項即答(remote-control):
- C1 過渡方向:尚未決定,維持過渡(強制就近歸屬+AnchorForcedAssignment,保留雙方向抽象層)
- 同城市來回訪頻率:門戶城市(機場/火車進出)在抵達日與離開日重複出現,「偶而會遇到也不算罕見」→ devil C2 升為結構裁定
- O-NEW-Tiqets-key:尚未決定,先不阻擋(Q17 續 )
變更內容¶
1. stage_b.py 1~5 逐條裁定(architecture.md 新增「Stage B 收口裁定」section+data-model.md §4.5-a/§4.5-b)¶
-
1:業主錨 Day 承載維持過渡(),規格保留「強制歸屬 / 明示排除」雙方向抽象層,
owner_anchor_day_index不得在拍板前新增 - 2:多日同 Destination 切段(貪婪最近鄰鏈+均分)裁定為工程判斷不升規格硬明文;C3/C5 反例併下一棒改良
-
3:UnassignedNode 為 transient 診斷,由 orchestration 轉交 Stage E 賦
overflow_disposition(唯一 persist 承載),Stage B 不新增 persist 欄位 -
4:EventNode 地理二次校驗=需要、採非阻擋
event_geo_mismatch_warning,與 C8/Q17/_match_event_day改造同排下一棒 - 5:missing_coords 語義拆分成立,封閉 enum 維持兩態不擴增;「座標查詢中」轉譯交呼叫端/ARCH-5
2. devil 追蹤項+qa 極端分支¶
- C2( 結構裁定,依業主輸入):同座標重複 Destination 不得「恆定較小 index 勝」,改造訪次序感知分配,須涵蓋門戶城市主場景、與 TRANSIT_DAY_CAP 協同
- C3/C5/C8:併對應 排下一棒,非阻擋
- qa 極端分支:裁定「單一記錄源」(強制歸屬與 unassigned 互斥、owned_days 空觸發 I-17 結構性診斷);qa 核實現行程式碼仍會雙記錄 → architecture.md 加註「規格已收口、實作待補(下一棒)」過渡標註
3. ADR-004 決策 3 子規格追記( ADR_LANDED)¶
「連續頁 id 集合重複即停」翻頁終止偵測為主防護(優先於純數字 clamp)+PAGINATION_HARD_CAP=1000 兜底【低信心,單樣本】+id 去重義務+告警。依據 q13-followup engineering-fieldtest 單樣本(Tokyo),依接地上限條款 specs 側最高 永不升 ;sponsoredAdsData 疑改名列實作前必復查待辦。
4. EventNode 多日活動 start/end 語義收口(data-model.md §6 event,)¶
travel-planning-specialist 領域判斷 → architect 全數採納:start/end=活動整體檔期、參加時段用既有 time_slot、不新增欄位;_match_event_day 改造方向=range-overlap 求候選集+完全不重疊顯式排除;多次呈現唯一觸發=TicketSignal 多筆已確認 booking_slot;檔期尾端標 spillover_risk;型態分類只影響 ARCH-5 揭露文字不進排程分支。
5. ADR-007 Gap-1~4 過渡裁定追記( ADR_LANDED,溯源真空修補)¶
Gap-2/3/4 先前只存在 tree/adr 摘要節點、ADR 本文查無 → 以追記段落補回正典(不改寫決策 1~6),四項均 。
6. 連動落檔¶
- test-plan-ARCH-1-core.md:qa 三組收口錨點(A1-B0-N-10
14/B-0709/A-06/A-07;qa 產出、規則 11 fallback 由 architect 落檔) - tree/adr 兩節點追記+重設
verification_status: pending(追記範圍待 architect 下輪複驗) - 新建 tree/delayed/ S-1 節點(C1 兩子問題延後追蹤);Tiqets key 經 lesson 12 過濾不另開節點
- owner-tracking 業主決策包(三項問答含業主原話)
- open-questions Q13-followup-a 狀態同步(「待評估」→「已納 ADR-004 子規格」)
- 00-index 補記兩行
治理紀錄¶
- **全批 級結構裁定、零升 **(不觸發人類 checkpoint;q13-followup 屬 engineering-fieldtest 接地上限封頂)
- 無與 devil/TPS 建議相反的裁定 → 不觸發 devil 複核(C2 為力度加強非方向相反)
- 兩份 2026-07-11 verification 檔未動(L4 ledger sha256 內容定址)
- qa 對 docs/specs 的 Write 被 write-matrix 閘正確擋下,走規則 11 inline fallback 由 architect 落檔(閘運作如預期)
- Stop hook S1 警示兩處經核實為散文 字元誤中(「本批無任何研究結論升 」聲明句/替換條件未來式),非狀態行
- Q17 devil 三項最小修復核實已於 #359 完成,本批零程式碼變更
驗收標準¶
- 全套測試綠:
python -m pytest tests/ -q→ 310 passed,exit code 0(本批純文件變更,測試數量不變) - architecture.md 新增 Stage B 收口 section(1~5+C2/C3/C5/C8+qa 極端分支+成熟度裁定),ARCH-1 整體維持
- data-model.md 新增 §4.5-a/§4.5-b、§6 event 語義定案子項,全
- ADR-004/ADR-007 追記段落落地,原決策內文未改寫
- test-plan 收口錨點沿用既有編號風格,既有 N-01
N-09/A-01A-05/B-01~B-06 未動 - tree 節點/owner-tracking/open-questions 連動一致
下一棒(未含在本批)¶
Stage B 演算法細化(同動 _match_event_day 者合併):2 改良(C3 round-robin/C5 gap-based)+C2 造訪次序感知分配+4/C8 event_geo_mismatch_warning+EventNode 檔期 range-overlap 改造+A1-B0-A-06 雙記錄修復+Q17 TicketAdapter 續棒。
沒有任何資料可供顯示