{
  "probe": "lab:D6 · scan-real-surface 故障注入",
  "generatedAt": "2026-09-02T06:39:11.427Z",
  "subjectSha": "8d512a6b841f2cd637d6dc6e1e07ac4b4b3a12e394de5ae81d36960b3a3fa83e",
  "sourceByteIdentical": true,
  "strayTempFiles": false,
  "arms": 9,
  "failedArms": [],
  "results": [
    {
      "arm": "ctrl-pristine",
      "kind": "绿侧控制",
      "what": "什么都不改，只换成副本",
      "exit": 0,
      "wentRed": false,
      "expectRed": false,
      "verdict": "PASS"
    },
    {
      "arm": "ctrl-noop-comment",
      "kind": "绿侧控制",
      "what": "只加一行注释",
      "exit": 0,
      "wentRed": false,
      "expectRed": false,
      "verdict": "PASS"
    },
    {
      "arm": "s1-narrow-face-empty",
      "kind": "选面塌了",
      "what": "严口径一个节点都不选",
      "exit": 1,
      "wentRed": true,
      "expectRed": true,
      "verdict": "PASS",
      "tripped": "    at main (file:///Users/nancy/Documents/AICoding/VS_Code/ai-ds-lab/probes/detect-frame-theme/__inject_scan__.mjs:329:13) |     at async file:///Users/nancy/Documents/AICoding/VS_Code/ai-ds-lab/probes/detect-frame-theme/__inject_scan__.mjs:384:1 |  | Node.js v24.15.0"
    },
    {
      "arm": "s2-sections-dropped",
      "kind": "选面缩水",
      "what": "只收 page 直接子 FRAME，Section 里的整片丢掉",
      "exit": 1,
      "wentRed": true,
      "expectRed": true,
      "verdict": "PASS",
      "tripped": "    at main (file:///Users/nancy/Documents/AICoding/VS_Code/ai-ds-lab/probes/detect-frame-theme/__inject_scan__.mjs:329:13) |     at async file:///Users/nancy/Documents/AICoding/VS_Code/ai-ds-lab/probes/detect-frame-theme/__inject_scan__.mjs:384:1 |  | Node.js v24.15.0"
    },
    {
      "arm": "s3-unknown-merged",
      "kind": "🔴 unknown 合并",
      "what": "把 U-midgray 计进 U-nocolor（正是 D6 明令不许的形态）",
      "exit": 1,
      "wentRed": true,
      "expectRed": true,
      "verdict": "PASS",
      "tripped": "    at main (file:///Users/nancy/Documents/AICoding/VS_Code/ai-ds-lab/probes/detect-frame-theme/__inject_scan__.mjs:310:5) |     at async file:///Users/nancy/Documents/AICoding/VS_Code/ai-ds-lab/probes/detect-frame-theme/__inject_scan__.mjs:384:1 |  | Node.js v24.15.0"
    },
    {
      "arm": "s4-verdict-constant-dark",
      "kind": "正对照",
      "what": "分类恒回 dark",
      "exit": 1,
      "wentRed": true,
      "expectRed": true,
      "verdict": "PASS",
      "tripped": "    at main (file:///Users/nancy/Documents/AICoding/VS_Code/ai-ds-lab/probes/detect-frame-theme/__inject_scan__.mjs:348:11) |     at async file:///Users/nancy/Documents/AICoding/VS_Code/ai-ds-lab/probes/detect-frame-theme/__inject_scan__.mjs:384:1 |  | Node.js v24.15.0"
    },
    {
      "arm": "s5-top-reading-is-bottom",
      "kind": "口径 T 塌成 B",
      "what": "顶层 paint 取成 fills[0]",
      "exit": 1,
      "wentRed": true,
      "expectRed": true,
      "verdict": "PASS",
      "tripped": "    at main (file:///Users/nancy/Documents/AICoding/VS_Code/ai-ds-lab/probes/detect-frame-theme/__inject_scan__.mjs:348:11) |     at async file:///Users/nancy/Documents/AICoding/VS_Code/ai-ds-lab/probes/detect-frame-theme/__inject_scan__.mjs:384:1 |  | Node.js v24.15.0"
    },
    {
      "arm": "s6-node-silently-skipped",
      "kind": "静默吞节点",
      "what": "面里每 100 个跳过 1 个不计数",
      "exit": 1,
      "wentRed": true,
      "expectRed": true,
      "verdict": "PASS",
      "tripped": "    at main (file:///Users/nancy/Documents/AICoding/VS_Code/ai-ds-lab/probes/detect-frame-theme/__inject_scan__.mjs:311:5) |     at async file:///Users/nancy/Documents/AICoding/VS_Code/ai-ds-lab/probes/detect-frame-theme/__inject_scan__.mjs:385:1 |  | Node.js v24.15.0"
    },
    {
      "arm": "s7-pin-check-fail-open",
      "kind": "fail closed",
      "what": "Figma version 漂移不抛",
      "exit": 0,
      "wentRed": false,
      "expectRed": false,
      "verdict": "PASS"
    }
  ]
}
