Skip to content

[測試·P1] headline 選卡是「測試自己測自己」+ severity 無錨:tier 權重翻轉、稀釋 10 倍都全綠存活 #63

Description

@atomchung

突變證據(隔離副本實驗,兩個獨立突變都存活)

M1 · tier 權重翻轉:把三處 TW = {1: 1.0, 2: 0.7} 翻成 {1: 0.7, 2: 1.0}(render :960 / build_state :1150 / build_card_data :1253)→ 全綠存活。非等價證明:mock 的 headline_dim 從「部位 sizing」變「分散」——選哪個洞上卡這個產品核心決策可被任意翻轉而 CI 不知。

根因:tests/test_sample_styles.py:26 自帶一份 TIER_W 副本、:46-50 自帶 _top_hole 重實作 —— 斷言的是測試自己的複製邏輯,不是引擎真正的選卡;test_state_loop 只印 headline 從不斷言其值。

M7 · severity 無錨:sizing severity 除數 0.30→3.0(:495)→ 全綠存活。非等價證明:mock 的 sizing severity 1.000→0.141(卡面 bar 與排序全變)。現有斷言只有 momentum 的 in ("部位 sizing", "分散")(二選一過寬)和 ai_holder 的單向不等式(稀釋後更成立)。

修法(單一事實源)

  1. 刪掉 test_sample_styles 裡的 TIER_W / _top_hole 複製,改為每個 persona 跑引擎 build_state() 斷言 headline_dim 精確值(momentum 也釘死一個,不再二選一)
  2. 加一條合成排序單元:「tier1 sev 0.5 必須壓過 tier2 sev 0.6」
  3. 至少一個 persona 對關鍵 severity 斷言數值區間,錨住量值

讓 M1 / M7 級突變必死。

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions