{
  "schema": "lab.convergenceProbe/1",
  "generatedAt": "2026-08-25T08:36:04.863Z",
  "step": "第二轮第 11 步 · 档 B（convergence 探针 —— ⛔ 点估计，无地板）",
  "isProbeNotGauge": true,
  "baselineKey": {
    "subjectSha": "4a68e02d3d695cee3c39d255ea5d20f7f2bf9b8c",
    "modelId": "claude-opus-5",
    "promptTemplateVersion": "pt-v1"
  },
  "taskId": "GT-001",
  "promptHash": "559c6decc5b4cf58d12e2062aed55810d67367ecca16a9761b019c4275813d14",
  "N": 5,
  "inputSurface": {
    "kind": "product HTML",
    "filesRead": 10,
    "excluded": "contextManifest（E32）"
  },
  "componentSurface": {
    "denominator": 28,
    "denominatorName": "src/components 口径",
    "resolvedSignatures": 28
  },
  "perRun": [
    {
      "runId": "r001",
      "wide": [
        "Button",
        "Input",
        "MenuList",
        "Notification",
        "PopupBox",
        "Select",
        "Table",
        "TopBar"
      ],
      "strict": [
        "Input",
        "Notification",
        "PopupBox",
        "Select",
        "Table",
        "TopBar"
      ],
      "wideCount": 8,
      "strictCount": 6
    },
    {
      "runId": "r002",
      "wide": [
        "Button",
        "Icon",
        "Input",
        "MenuList",
        "Notification",
        "PopupBox",
        "Table",
        "Tooltip",
        "TopBar"
      ],
      "strict": [
        "Input",
        "MenuList",
        "Notification",
        "Table",
        "Tooltip",
        "TopBar"
      ],
      "wideCount": 9,
      "strictCount": 6
    },
    {
      "runId": "r003",
      "wide": [
        "Button",
        "Icon",
        "Logo",
        "MenuList",
        "Notification",
        "Pill",
        "PopupBox",
        "Table",
        "TopBar"
      ],
      "strict": [
        "MenuList",
        "Notification",
        "Pill",
        "Table",
        "TopBar"
      ],
      "wideCount": 9,
      "strictCount": 5
    },
    {
      "runId": "r004",
      "wide": [
        "Breadcrumb",
        "Button",
        "Input",
        "MenuList",
        "Notification",
        "Pill",
        "PopupBox",
        "Tab",
        "Table",
        "Tooltip",
        "TopBar",
        "UserMenu"
      ],
      "strict": [
        "Input",
        "MenuList",
        "Notification",
        "Pill",
        "PopupBox",
        "Table",
        "Tooltip",
        "TopBar",
        "UserMenu"
      ],
      "wideCount": 12,
      "strictCount": 9
    },
    {
      "runId": "r005",
      "wide": [
        "Badge",
        "Button",
        "MenuList",
        "Notification",
        "PopupBox",
        "Table",
        "TopBar"
      ],
      "strict": [
        "MenuList",
        "Notification",
        "Table",
        "TopBar"
      ],
      "wideCount": 7,
      "strictCount": 4
    }
  ],
  "componentDiff": {
    "wideUnion": [
      "Badge",
      "Breadcrumb",
      "Button",
      "Icon",
      "Input",
      "Logo",
      "MenuList",
      "Notification",
      "Pill",
      "PopupBox",
      "Select",
      "Tab",
      "Table",
      "Tooltip",
      "TopBar",
      "UserMenu"
    ],
    "strictUnion": [
      "Input",
      "MenuList",
      "Notification",
      "Pill",
      "PopupBox",
      "Select",
      "Table",
      "Tooltip",
      "TopBar",
      "UserMenu"
    ],
    "wideOnlyNotStrict": [
      "Badge",
      "Breadcrumb",
      "Button",
      "Icon",
      "Logo",
      "Tab"
    ],
    "wideOnlyNotStrictCaveat": "⛔ 不得读作「手搓 class」。先排除边界 ②ⓒ：修饰类走 :class 动态绑定的组件，严口径签名抓不到（实证 Button：字面只有 class=\"btn\"，产物用的 btn--m/btn--ghost 来自 :class）。⇒ 严口径是「偏向静态 class 风格组件的另一个量」，不是「更严格的同一个量」。",
    "presentInEveryRun": [
      "Button",
      "MenuList",
      "Notification",
      "PopupBox",
      "Table",
      "TopBar"
    ],
    "varyingAcrossRuns": [
      "Badge",
      "Breadcrumb",
      "Icon",
      "Input",
      "Logo",
      "Pill",
      "Select",
      "Tab",
      "Tooltip",
      "UserMenu"
    ]
  },
  "pairs": [
    {
      "a": "r001",
      "b": "r002",
      "componentWide": 0.3,
      "componentStrict": 0.5,
      "structureTV": 0.4643
    },
    {
      "a": "r001",
      "b": "r003",
      "componentWide": 0.4545,
      "componentStrict": 0.625,
      "structureTV": 0.4112
    },
    {
      "a": "r001",
      "b": "r004",
      "componentWide": 0.4615,
      "componentStrict": 0.5,
      "structureTV": 0.4092
    },
    {
      "a": "r001",
      "b": "r005",
      "componentWide": 0.3333,
      "componentStrict": 0.5714,
      "structureTV": 0.3171
    },
    {
      "a": "r002",
      "b": "r003",
      "componentWide": 0.3636,
      "componentStrict": 0.4286,
      "structureTV": 0.2484
    },
    {
      "a": "r002",
      "b": "r004",
      "componentWide": 0.3846,
      "componentStrict": 0.3333,
      "structureTV": 0.1709
    },
    {
      "a": "r002",
      "b": "r005",
      "componentWide": 0.4,
      "componentStrict": 0.3333,
      "structureTV": 0.2287
    },
    {
      "a": "r003",
      "b": "r004",
      "componentWide": 0.5,
      "componentStrict": 0.4444,
      "structureTV": 0.2769
    },
    {
      "a": "r003",
      "b": "r005",
      "componentWide": 0.4,
      "componentStrict": 0.2,
      "structureTV": 0.2103
    },
    {
      "a": "r004",
      "b": "r005",
      "componentWide": 0.5385,
      "componentStrict": 0.5556,
      "structureTV": 0.2155
    }
  ],
  "summary": {
    "组件面·宽口径（根 class 命中）": {
      "face": "componentWide",
      "pairCount": 10,
      "meanDistance": 0.4136,
      "min": 0.3,
      "max": 0.5385,
      "allZero": false,
      "verdict": "点估计：平均两两距离 0.4136。⛔ 无地板 ⇒ 不得用于改善判定（需 K 组 × N 的嵌套设计）"
    },
    "组件面·严口径（根 + 子 class 都命中）": {
      "face": "componentStrict",
      "pairCount": 10,
      "meanDistance": 0.4492,
      "min": 0.2,
      "max": 0.625,
      "allZero": false,
      "verdict": "点估计：平均两两距离 0.4492。⛔ 无地板 ⇒ 不得用于改善判定（需 K 组 × N 的嵌套设计）"
    },
    "结构面（归一化 tag 频谱总变差）": {
      "face": "structureTV",
      "pairCount": 10,
      "meanDistance": 0.2952,
      "min": 0.1709,
      "max": 0.4643,
      "allZero": false,
      "verdict": "点估计：平均两两距离 0.2952。⛔ 无地板 ⇒ 不得用于改善判定（需 K 组 × N 的嵌套设计）"
    }
  },
  "nestedDesign": {
    "whyNested": "convergence 是散布量 ⇒ 它的地板要「多组 N」而不是「更大的 N」",
    "sdRelativeStandardError": {
      "atN5": 0.3536,
      "atN10": 0.2357,
      "atN20": 0.1622,
      "atN51": 0.1
    },
    "nToReach10pct": 51,
    "costFormula": "K 组 × N 个 run × 单 run 成本；6′ 实测单 run 均值 9.20 M token（CV 32.7%、极差 2.85 倍 ⇒ 按区间读）",
    "exampleK2N5": {
      "runs": 10,
      "pointEstimateTokens": "~92 M",
      "intervalTokens": "~44–125 M"
    },
    "warning": "⛔ 上面是「同一 task 的两组」。要判「DS 改了规则后 convergence 变好」，两组必须跨改动前后 ⇒ 还要 re-pin"
  },
  "controls": [
    {
      "id": "MH1",
      "ok": true,
      "detail": "组件面分母必须是 28（src/components 口径，具名）—— 实测 28"
    },
    {
      "id": "MH2",
      "ok": true,
      "detail": "至少 25 个组件必须能从自己的 .vue 抽出 class 签名（⛔ 不许大面积抽空）—— 实测 28/28"
    },
    {
      "id": "MH3",
      "ok": true,
      "detail": "每个 run 必须至少命中 1 个组件（否则是检测器坏了不是产物变了，§3.9）—— 实测宽口径命中 [8,9,9,12,7]"
    },
    {
      "id": "MH4",
      "ok": true,
      "detail": "§5.2 三元组主键必须齐全非空 —— 实测 4a68e02d3d695cee3c39d255ea5d20f7f2bf9b8c|claude-opus-5|pt-v1"
    },
    {
      "id": "MH5",
      "ok": true,
      "detail": "两两对数必须 ≡ C(N,2) = 10 —— 实测 10"
    },
    {
      "id": "MN1",
      "ok": true,
      "detail": "⛔ 探针不得输出任何地板/MDE 字段（那会被当成可判定用）—— 实测泄漏 0 个"
    },
    {
      "id": "MN2",
      "ok": true,
      "detail": "⛔ 输入面不得读 contextManifest（E32：L2 整层都是被测量）—— 实测读了 10 个文件，无一命中"
    },
    {
      "id": "MN3",
      "ok": true,
      "detail": "所有距离必须在 [0,1] —— 实测 10 对全部合法"
    },
    {
      "id": "MN4",
      "ok": true,
      "detail": "严口径命中集必须是宽口径的子集（双向夹逼自洽，§3.7）—— 实测逐 run 成立"
    },
    {
      "id": "MN5",
      "ok": true,
      "detail": "距离全 0 的面必须显式带「不得读作完全收敛」（AGENTS §2.7）—— 实测 0 个面全 0，警告齐全"
    },
    {
      "id": "MN6",
      "ok": true,
      "detail": "已知偏差必须仍成立：Button 宽口径全命中 ∧ 严口径全未命中（边界 ②ⓒ，:class 动态绑定）—— 实测 宽全中=true 严全无=true。⚠️ 这条炸了不代表产物变好，先回去重读边界 ②ⓒ"
    }
  ],
  "t2Half": {
    "delivered": false,
    "reason": "§6.1 铁律 1（三票异构）严口径本机不可得"
  }
}