動作
Feature #445
進行中
SC
ADR-017 閘一解除:延遲允餘填值 A=0.8、qa 錨點與生產常量脫鉤、tree 四則追記三輪複驗 verified
Feature #445:
ADR-017 閘一解除:延遲允餘填值 A=0.8、qa 錨點與生產常量脫鉤、tree 四則追記三輪複驗 verified
狀態:
New
優先權:
Normal
被分派者:
-
開始日期:
2026-08-12
完成日期:
完成比例:
0%
預估工時:
概述
ADR-017 閘一解除:延遲允餘填值 A=0.8、qa 錨點與生產常量脫鉤、tree 四則追記三輪複驗 verified¶
背景¶
上一批(#444)完成 live smoke 實測但刻意未填值——當時公式本身正因 devil C1 修訂中,且 M-5 樣本量判定為退回。本批承接三件:
-
填值:依 ADR-017 第五則定案的 X-1 算式,把
TDX_REQUEST_LATENCY_ALLOWANCE_S由誠實佔位0.0填為實測換算值,解除 (B) 的閘一。 - qa 錨點改寫:Q-a/Q-b/Q-c(第五則裁定)+ Q-d(第六則追加裁定 B),使錨點與生產常量的值脫鉤——否則填值會連帶炸出紅燈,而「順手修紅燈」正是把錨點改成符合新值而非鎖住行為的時刻。
-
tree 節點複驗:第五~八則四則追記由主協調者代寫,需 architect 實讀複驗方可翻轉
verification_status。
變更內容¶
1. 填值:A = 0.8(src/travel_helper_core/config/planning_config.py)¶
X-1 機械代入(主協調者已從 raw_output/ 逐筆獨立複算,非採信轉述):
max(L_data) = 0.719s(round6 TRA 全網整日,M-1′ 帳本增量口徑)
max(L_token) = 0.109s(round5)
A_raw = 0.719 + 0.109/4 = 0.74625 → A = ceil(7.4625)/10 = 0.8
三輪全納未挑輪(RL-4);歷史集依 M-1′-2 排除為下界佐證。填值批自由度為零(RL-1)。
-
T-3 門檻比對:未觸發(
0.8 < 1.3636)⇒ 直接落地、不呈業主。 -
X-7 覆蓋門檻:clamp 生效最小
D_transit = 12,與A=0時相同——sleep_term在 D=11→12 之間自身即由 240 跳到 300(floor 量化跳躍),A 僅貢獻 1.6s。
但門檻位置未變 ≠ 後果未變(ADR 明文要求不得被「門檻相同」掩蓋):A=0是min(300,300)恰等於、削減為零;A=0.8是min(300,320.8)真的削掉 20.8s;14 天雙運具被截斷 24.0s ≈ 1 個限速視窗(弱點 28)。 - G-1~G-5 五項聲明由執行者完整給出,結論句:本批只解除閘一;(B) 對使用者仍不生效,此為預期狀態非缺陷。
- M-1′ 的量化效果:若無第六則追加裁定 A(量測窗改繫帳本、涵蓋 UTF-8 解碼),A 會被算成 0.5——低估 0.3s,而低估方向恰是「(B) 看起來能生效」那一側(RL-1 所防)。該疑義由主協調者於 live smoke 回報後核出。
2. qa 錨點批:37 → 50 錨點,全套 1594 → 1607¶
-
Q-a 雙向參數化錨(取代
:930的== 0.0):允餘小於實際 per-request 成本 ⇒ 閘擋下且誠實 miss;不小於 ⇒ 等待成立且呼叫發起。與生產常量值完全脫鉤。 - Q-b 閘二錨:對允餘值參數化,永不因填值而紅;誰翻守門預設誰紅。
- Q-c:狀態聲明職責回文件層,第 O 節 docstring 改寫(原文 保留)。
- Q-d 離散大增量錨:接縫實測顯示替身用線性固定增量、生產是離散大跳躍。未觀測到任何實作缺陷——未觀測 ≠ 有缺陷,不得寫成「修好了一個 bug」。
-
首版有 11 條測試仍與生產常量耦合(
TestLatencyAllowanceDefaultKeepsSleepOnlyFormula8 條+test_trip_itinerary.py::test_formula_matches_adr017_wait_model_table3 條),經主協調者退回後修正。與:930是同一個病(鎖當下常量值而非鎖行為),且出現在剛改對第 O 節之後。 -
qa 第二輪自行掃出第 13 個耦合(主協調者退回訊息亦未涵蓋):
TestInvTw2SingleSourceOfTruth以減法反推 clamp 值並宣稱逐位元相等,A=0.01時反推得60.10000000000002vs60.1⇒ 紅。原斷言的綠、以及主協調者單值 A=0.8 的驗證通過,都是數值湊巧而非不變式成立。
3. ADR-017 第八則 + architect 自承規格衝突¶
- 第八則記載填值全鏈、四項上線前置條件狀態(第二項完成,第一/三/四項逐字不變)。
- (7) architect 自行核出第六則 C1 裁定 (6)「S-9 觀測缺席為阻擋級」(未指明阻擋標的)與第七則三態「未觀測不阻擋填值」相衝突,而填值已在 S-9 從未被觀測下落地。裁定以三態為準、不回滾(方向保守),並明文「這是我的規格缺陷,不是執行者或主協調者的違規」。列弱點 27。
-
裁定 (7c) 已執行:
RESULTS.md§2.6 補記 S-9 未觀測,E = 0明標為由執行路徑結構推導、非計數觀測;執行者並自行拆掉一條對自己有利的證據路徑(診斷包裝器未側錄get_transit_segment(),故「日誌沒出現」不能當證據),誠實記載stage_d.py:861另兩個觸發條件未經檢視。
4. tree 四則追記:三輪複驗 verified¶
- 第一輪不通過(5 必修+4 建議)。最重的兩條:第六則缺 M-1′/追加裁定 B 與弱點 23/24(射程最廣的機械判準);第八則漏「門檻位置未變 ≠ 後果未變」——正好掩蓋了 ADR 明文要求不得掩蓋之處。另 architect 拒絕接受主協調者替它加的免責理由(時序上不可能被遵守),理由:不在其裁定內、無法核驗、會使免責看起來比裁定本身更強。
- 第二輪抓出主協調者回報與檔案不符:回報「五處必修全部落實」但必修 2 未落地。architect 只陳述可觀測落差、不推測成因。若當時採信回報,錯誤將帶 verified 標籤進版控。
- 第三輪定點確認通過,並獨立複做負向檢查(舊措辭 0 次;殘留六字係引號內引述首版錯誤之更正說明)。
-
verified_by完整記錄三輪含「抓出代寫者假完工回報」一事。
驗收標準¶
-
python -m pytest tests/ -q⇒ 1607 passed(exit 0,主協調者獨立重跑) -
填值不改變任何測試結果:填值前以突變窗口實測
A=0.8全套零紅、sha256 逐位元還原零殘留;填值後實際 1607 不變 -
A=0.8/T-3 未觸發/clamp 最小
D_transit=12,三者主協調者從 raw 獨立複算一致 -
tree 四則追記
verification_status: verified(architect 三輪實讀複驗,全程未改該檔任何欄位) -
qa 簽核落
docs/specs/test-plan-...md,主協調者逐行比對 scratchpad 原文 153 行非空正文零遺漏 - S1 警示逐行核為假陽性(否定敘述/前置條件完成標記/行尾 LF 使整檔誤判:檔內 總數 27 = hook 報數,git 實際新增 245 行僅 4 行含 且全為否定)
- **未升任何 **,全部規格項維持 (接地上限條款)
本批揭露的三項方法缺陷(如實記錄,不得修飾)¶
-
單值驗證不足(主協調者):以單一
A=0.8宣稱「填值後測試不變紅」,而第 13 個耦合只在帶小數尾數時現形。已立紀律:「改某常量後仍綠」須以跨量級參數掃描交付,不得以 grep 命中數或單值代替,掃描範圍是全套。 -
聚合檢查掩蓋單項失敗(主協調者):兩度回報「五處必修全部落實」而檔案未變——
str.replace目標字串誤植致靜默無作用+聚合grep -c;第二次修正腳本因 cp950 崩在寫檔前。已改逐項 PASS/FAIL+負向檢查。 - 「未回報」被誤寫成「未執行」(主協調者):連續七次未收到 architect 複驗回報,歸因為「沒做」並寫進節點與訊息;改走 scratchpad 檔後,其報告標註「前次已列、仍未修」⇒ 它一直有做,是通道吞了回報。已明確更正並致歉。
未完成/待辦¶
-
閘二仍關(
transit_wait_presentation_capable=False,ARCH-5 前不可解)⇒ (B) 對使用者仍不生效 - 上線前置條件第一(TW-6 呈現)、第三(TW-8 封頂)、第四(C1-b 二擇一,(a) 先修優於 (b) 問業主)逐字不變
- S-6 結構性不可觀測、S-8/S-9 未觀測,(B) 上線前必補
-
test-plan行尾仍為 LF(三度未改,診斷已記錄,不再要求) - 人類動作:L4
run_external_review.py;GCP Console 用量 - 日後併批呈業主:R3-2 前提複核(與 T-2 同批)
沒有任何資料可供顯示
動作