動作
Feature #359
進行中
SC
ARCH-1 Stage B 節點分桶落地+Q17 前置 TicketAdapter+Q13-followup 實測(三線並行,310 測試綠)
Feature #359:
ARCH-1 Stage B 節點分桶落地+Q17 前置 TicketAdapter+Q13-followup 實測(三線並行,310 測試綠)
狀態:
New
優先權:
Normal
被分派者:
-
開始日期:
2026-07-11
完成日期:
完成比例:
0%
預估工時:
概述
ARCH-1 Stage B 節點分桶+Q17 前置 TicketAdapter+Q13-followup 實測(三線並行批次)¶
背景¶
#354 完成 L4 外部接地與首個全鏈 後,本批啟動上一 session PM 規劃的下一批三項獨立候選(完全並行、一次 commit):
- Stage B(節點分桶)實作起步——ADR-006 決策 1「只分桶不排序」、ADR-007 Gap-3 過渡裁定;防 Stage A C3 靜默降級重演為驗收命門。
- Q17 前置——Tiqets key=未申請,全程不碰真實 API,只落 TicketAdapter Protocol+fixture 比對邏輯;比對邏輯測試通過 ≠ Q17 已解決。
- Q13-followup-a/b 實測——nbResultsTotal vs 實際可翻頁筆數並排實測+售罄/贊助口徑;C-4 低頻小樣本、不窮舉翻頁;結果不驅動任何 升級。
變更內容¶
1. Stage B 節點→Day 地理分桶(travel-planning-specialist 諮詢 → data-integration-engineer 實作 → qa 簽核 → devil-advocate 挑戰 → C1/C4 修復 → qa 複核維持「通過」)¶
-
scheduler/stage_b.py:haversine 歸屬(最近者勝、並列取較小 index)、DESTINATION_ASSIGNMENT_RADIUS_KM=80.0新常量(承 ADR-007 Gap-3 過渡值;TPS 領域直覺 30~50km 之張力已存證,併 Q10-followup-j 校準)、未分桶節點顯式UnassignedNode(封閉兩態too_far/missing_coords)+恆等式assigned + unassigned == 輸入總數、EventNode 走日期判準不走地理、多日同 Destination 貪婪最近鄰鏈均分(工程判斷已存證)。 - 檔頭 5 條 規格疑慮存證待 system-architect(is_owner_anchor Day 承載、多日切段判準、跨 Stage 銜接、EventNode 地理二次校驗、C4 語義拆分)。
-
devil-advocate 挑戰(
docs/research/devil-advocate/2026-07-11_stage-b-bucketing-challenge.md):C1【致命-已修復】is_owner_anchor 超距節點原繞過 data-model §4.5 Band 0 保護靜默消失 → 強制就近歸屬+AnchorForcedAssignment顯式旗標(過渡修復);C4【已修復】全 Destination 缺座標改判 missing_coords(部分可得仍 too_far,C4 優先於 C1);C2/C3/C5/C8 列入追蹤;C6/C7 通過挑戰。 -
tests/test_stage_b.py33 條;test-plan-ARCH-1-core.md 第二節升級(N-06N-09/A-05/B-04B-06 新增;N-02/N-05 據實標為 Stage A 產物;N-01 僅「部分已實作」防過度宣稱)。
2. Q17 前置 TicketAdapter(TPS 選點 → DIE 實作 → qa 退回 bug → 修復 → qa 升「通過」→ devil 無阻擋+文字修復)¶
-
adapters/ticket_matching.py(正規化/行程包判定/消歧純函式)+ticket_fixture_data.py(虛構 mini-catalog:18 POI/14 product,亞洲冷門為主,含燕子口/白川郷「行程包≠門票」陷阱、三組一名多點消歧、query_attempted 兩態)+TicketAdapterProtocol(含 query_attempted 契約說明)+FixtureTicketAdapter。 -
qa 抓到真 bug 並已修復:空核心詞 squash 後
"" in anything恆真 → 100% 假陽性(等同 C-1 虛構命中);修復為空核心詞提前回 False/None,TestDegenerateCoreTermRejection鎖定正確行為。 -
devil 挑戰(
docs/research/devil-advocate/2026-07-11_q17-ticket-adapter-challenge.md):第一優先「Q17 已解決」偷渡掃描=不成立(三核心檔界定聲明齊備);補「同地打包導覽(無 'from' 子句)誤報型繞過」入 Q17 真實實測必測清單;四項文字層修復已套用。 - qa 簽核界定(逐字,永久保留):「本簽核僅覆蓋『比對邏輯在虛構 mini-catalog 下的正確性』;比對邏輯測試通過 ≠ Q17 已解決;真實 Tiqets 命中率、catalogue 覆蓋率、真實商品命名分布均未驗證,待 key 申請後實測。」
- 測試:
test_ticket_adapter.py36 條+test_ticket_matching_matrix.py29 條。
3. Q13-followup-a/b 實測(data-integration-engineer,experiments/q13-followup/,tier=engineering-fieldtest 不驅動 )¶
- 前置復核(Playwright 網路攔截):
nbResultsTotal/isSoldOut仍生效;sponsoredAdsData本次未再出現(Booking periodic 改名風險實證)。 -
a【已驗證=本次實際觀測,Tokyo 單點樣本】:
nbResultsTotal=5610 確 >1000 非截斷顯示;真實翻頁邊界 offset∈(875, 1000];超界後伺服器靜默回傳同一組固定 25 筆終點頁(id 集合比對 offset=1000~6000 全同)——「空頁」停止條件永遠不會觸發,建議「連續頁 id 集合重複即停」偵測納 ADR-004 決策 3 子規格(待 system-architect 評估)。 - b【低信心,零事件觀測】:3 頁 78 筆樣本售罄/贊助計數均 0,口徑問題懸而未決,需已知售罄場景重測。
- C-4 遵循:單線程、5.2–7.9 秒抖動間隔、合計 40 請求(未超上限)、無 CAPTCHA/403;Playwright 裝在 scratchpad/系統目錄,未污染專案依賴。
4. 治理清掃(可延後項,順帶收口)¶
- 決策樹
00-index.md:NEW section 整理(arch-1-4-followup-osm-odbl 入 C section 反映全鏈 現況;補列 q-13 index 行含實測結果指標)+修訂歷史追加。 - CLAUDE.md「spot-check 回填落點」明文化(外部稽核異常 3 收口):正典落點=conclusions frontmatter(S1 閘入口),verification 僅得同批鏡像回填。
- open-questions.md:Q13-followup-a/b 據實回填(含懸而未決標記)、Q17 前置落地註記(含 qa 界定逐字)。
驗收標準¶
-
全套測試 310 條綠(
python -m pytest tests/ -q→310 passed,exit 0;主協調者於每個回報點獨立複跑) - Stage B 恆等式(未分桶不靜默)+devil C1 致命項(業主錨繞過 Band 0 保護)批次內修復、qa 複核維持「通過」
- Q17 前置全部檔案帶「比對邏輯測試通過 ≠ Q17 已解決」界定;devil 偷渡掃描不成立
- Q13 實測遵循 C-4(≤40 請求、≥5 秒抖動、無並行、無繞過偵測);RESULTS.md 檔頭明文不驅動
- 兩份 2026-07-11 verification 檔零觸碰(L4 ledger sha256 內容定址完整性保持)
- 寫入權矩陣全程遵循(qa 的 test-plan 變更走協作規則 11 由主協調者落檔;devil 報告落自己目錄;工程 agent 只碰程式碼)
遺留待辦(業主決策複核建議 + 下批候選)¶
- 業主確認 ×2(devil-stage-b 建議打包):(1) C1 過渡修復方向——業主錨超距時「強制就近歸屬+提醒」vs「接受排除」;(2)「同城市來回訪」使用模式頻率(決定 C2 tie-break 偏誤的優先度)
- O-NEW-Tiqets-key:是否申請 Tiqets key(本批已就緒,key 到位即可啟動真實命中率實測)
- system-architect 下批:stage_b.py 1
5 規格疑慮收口;「id 集合重複即停」納 ADR-004 決策 3 評估;EventNode 多日活動 start/end 語義;ADR-007 Gap-14 過渡裁定補進 ADR 本文(qa 發現的溯源真空) - Q13-followup-b 需「已知確定售罄」場景重測
沒有任何資料可供顯示
動作