{
  "auditId": "acceptance-coverage-dump",
  "subjectSha": "dcc1c29b",
  "pin": "/Users/nancy/.ai-ds-lab/pins/tvu-ds-dcc1c29b",
  "dirty": false,
  "checkedAt": "2026-08-28T09:35:20.613Z",
  "scanFiles": [
    "docs/internal/mockup-conventions.md",
    "docs/internal/domain-tvu.md",
    "docs/internal/design-process.md",
    "docs/internal/figma-technical-reference.md",
    "docs/internal/code-conventions.md",
    "AGENTS.md",
    "docs/meta-rules.md"
  ],
  "gauge": {
    "narrow": 118,
    "wide": 126,
    "blind": 8
  },
  "counts": {
    "gated": 27,
    "not-machine-checkable": 32,
    "unclassified": 67
  },
  "countsNarrow": {
    "gated": 27,
    "not-machine-checkable": 32,
    "unclassified": 59
  },
  "baseline": 59,
  "gateSelfReport": {
    "sections": 118,
    "counts": {
      "gated": 27,
      "not-machine-checkable": 32,
      "unclassified": 59
    },
    "baseline": 59
  },
  "rows": [
    {
      "id": "docs/internal/mockup-conventions.md#C4",
      "file": "docs/internal/mockup-conventions.md",
      "line": 412,
      "heading": "C4 — Brand color vs M23 annotation accent 不能混用（2026-06-01 新增）",
      "state": "gated",
      "blindSpot": false,
      "form": "bold",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [
        {
          "gate": "/Users/nancy/.ai-ds-lab/pins/tvu-ds-dcc1c29b/scripts/audit-mockup-connector.mjs",
          "claimedCheckItems": 3
        }
      ],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#C5",
      "file": "docs/internal/mockup-conventions.md",
      "line": 431,
      "heading": "C5 — Semantic-color-first（语义色优先于 grey 原语）（2026-06-12 新增）",
      "state": "gated",
      "blindSpot": false,
      "form": "bold",
      "checkItems": 0,
      "itemCount": 0,
      "claims": [
        {
          "gate": "/Users/nancy/.ai-ds-lab/pins/tvu-ds-dcc1c29b/scripts/audit-mockup-binding-fidelity.mjs",
          "claimedCheckItems": 0
        }
      ],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#C6",
      "file": "docs/internal/mockup-conventions.md",
      "line": 449,
      "heading": "C6 — 新建元素前必须先查目标文件实际订阅的库（不止 TVU 主库）（2026-07-14 新增）",
      "state": "unclassified",
      "blindSpot": false,
      "form": "bold",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#C7",
      "file": "docs/internal/mockup-conventions.md",
      "line": 468,
      "heading": "C7 — 文字节点必须\"双绑\"：文字样式(text style) + 颜色变量/样式，缺一违规（2026-07-30 新增）",
      "state": "unclassified",
      "blindSpot": false,
      "form": "bold",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#M-COLOR",
      "file": "docs/internal/mockup-conventions.md",
      "line": 475,
      "heading": "M-COLOR 共用 Acceptance",
      "state": "gated",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [
        {
          "gate": "/Users/nancy/.ai-ds-lab/pins/tvu-ds-dcc1c29b/scripts/audit-mockup-colors.mjs",
          "claimedCheckItems": 3
        }
      ],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#验收标准@blind:693",
      "file": "docs/internal/mockup-conventions.md",
      "line": 693,
      "heading": "验收标准 Acceptance",
      "state": "unclassified",
      "blindSpot": true,
      "form": "zh-heading",
      "checkItems": 8,
      "itemCount": 8,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#M23.12",
      "file": "docs/internal/mockup-conventions.md",
      "line": 780,
      "heading": "M23.12 — UX/PRD 卡 Placement & Sizing（紧邻其描述的 mockup + 竖向 Auto Layout hug + 标准宽）— 2026-06-01/06-05 合并（原 M23.12 placement + M23.13 sizing）",
      "state": "unclassified",
      "blindSpot": false,
      "form": "bold",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#M23.12~2",
      "file": "docs/internal/mockup-conventions.md",
      "line": 792,
      "heading": "M23.12 — UX/PRD 卡 Placement & Sizing（紧邻其描述的 mockup + 竖向 Auto Layout hug + 标准宽）— 2026-06-01/06-05 合并（原 M23.12 placement + M23.13 sizing）",
      "state": "unclassified",
      "blindSpot": false,
      "form": "bold",
      "checkItems": 2,
      "itemCount": 2,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#M23.14",
      "file": "docs/internal/mockup-conventions.md",
      "line": 829,
      "heading": "M23.14 — 卡内排版：双语堆叠行距 + 段名层级（M23 §双语 extension）— 2026-06-18/06-23 合并（原 M23.14 双语行距 + M23.15 段名层级）",
      "state": "gated",
      "blindSpot": false,
      "form": "bold",
      "checkItems": 5,
      "itemCount": 5,
      "claims": [
        {
          "gate": "/Users/nancy/.ai-ds-lab/pins/tvu-ds-dcc1c29b/scripts/audit-mockup-bilingual-spacing.mjs",
          "claimedCheckItems": 5
        }
      ],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#M23.14~2",
      "file": "docs/internal/mockup-conventions.md",
      "line": 853,
      "heading": "M23.14 — 卡内排版：双语堆叠行距 + 段名层级（M23 §双语 extension）— 2026-06-18/06-23 合并（原 M23.14 双语行距 + M23.15 段名层级）",
      "state": "unclassified",
      "blindSpot": false,
      "form": "bold",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#M23.18",
      "file": "docs/internal/mockup-conventions.md",
      "line": 902,
      "heading": "M23.18 — 浅色主题匹配变体（Light-Theme-Matching Card Skin）— 2026-07-14 新增",
      "state": "unclassified",
      "blindSpot": false,
      "form": "bold",
      "checkItems": 0,
      "itemCount": 0,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#M23.18.1@blind:917",
      "file": "docs/internal/mockup-conventions.md",
      "line": 917,
      "heading": "M23.18.1 — Page 画布底色跟随 mockup 主题（同源扩展，2026-07-22 owner 回流）",
      "state": "unclassified",
      "blindSpot": true,
      "form": "list-bold",
      "checkItems": 0,
      "itemCount": 0,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#M23.18.1",
      "file": "docs/internal/mockup-conventions.md",
      "line": 937,
      "heading": "M23.18.1 — Page 画布底色跟随 mockup 主题（同源扩展，2026-07-22 owner 回流）",
      "state": "gated",
      "blindSpot": false,
      "form": "bold",
      "checkItems": 7,
      "itemCount": 5,
      "claims": [
        {
          "gate": "/Users/nancy/.ai-ds-lab/pins/tvu-ds-dcc1c29b/scripts/audit-mockup-colors.mjs",
          "claimedCheckItems": 7
        }
      ],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#`Jira",
      "file": "docs/internal/mockup-conventions.md",
      "line": 976,
      "heading": "`Jira requirement` 组件的取用做法（per-file 地址登记在各 consumer repo）— 2026-06-03 新增 · 2026-08-06 拆分",
      "state": "unclassified",
      "blindSpot": false,
      "form": "bold",
      "checkItems": 0,
      "itemCount": 0,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#M23.8.1",
      "file": "docs/internal/mockup-conventions.md",
      "line": 999,
      "heading": "M23.8.1 — 需求来源链接完整性 + 全部可点击（PRD「需求来源/Source」段 + 任意 deliverable，create/update 都遵守）— 2026-06-23 新增",
      "state": "unclassified",
      "blindSpot": false,
      "form": "bold",
      "checkItems": 0,
      "itemCount": 0,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#I2",
      "file": "docs/internal/mockup-conventions.md",
      "line": 1156,
      "heading": "I2 — Sibling Section Overlap Probe（改 bounds 后 + 每次收尾机检固定一项）（原 M28）",
      "state": "unclassified",
      "blindSpot": false,
      "form": "bold",
      "checkItems": 4,
      "itemCount": 4,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#Acceptance",
      "file": "docs/internal/mockup-conventions.md",
      "line": 1237,
      "heading": "Acceptance",
      "state": "gated",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 2,
      "itemCount": 2,
      "claims": [
        {
          "gate": "/Users/nancy/.ai-ds-lab/pins/tvu-ds-dcc1c29b/scripts/audit-mockup-integrity.mjs",
          "claimedCheckItems": 2
        }
      ],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#M-INTEGRITY@blind:1247",
      "file": "docs/internal/mockup-conventions.md",
      "line": 1247,
      "heading": "M-INTEGRITY §I5 — 替换既有节点前先 diff（2026-06-17 新增）",
      "state": "unclassified",
      "blindSpot": true,
      "form": "list-bold",
      "checkItems": 0,
      "itemCount": 0,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#M-INTEGRITY@blind:1256",
      "file": "docs/internal/mockup-conventions.md",
      "line": 1256,
      "heading": "M-INTEGRITY §I6 — create / move / place 前先 probe 目标坐标区（防叠加）（2026-06-17 新增）",
      "state": "unclassified",
      "blindSpot": true,
      "form": "list-bold",
      "checkItems": 0,
      "itemCount": 0,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#M-INTEGRITY",
      "file": "docs/internal/mockup-conventions.md",
      "line": 1276,
      "heading": "M-INTEGRITY §I7 — canonical 尺寸容器加内容后必须复测尺寸 + 兄弟碰撞 + 依附几何（2026-07-30 新增）",
      "state": "gated",
      "blindSpot": false,
      "form": "bold",
      "checkItems": 6,
      "itemCount": 6,
      "claims": [
        {
          "gate": "/Users/nancy/.ai-ds-lab/pins/tvu-ds-dcc1c29b/scripts/audit-mockup-overlap.mjs",
          "claimedCheckItems": 6
        }
      ],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#M-INTEGRITY~2",
      "file": "docs/internal/mockup-conventions.md",
      "line": 1293,
      "heading": "M-INTEGRITY 共用 Acceptance",
      "state": "gated",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 4,
      "itemCount": 4,
      "claims": [
        {
          "gate": "/Users/nancy/.ai-ds-lab/pins/tvu-ds-dcc1c29b/scripts/audit-mockup-integrity.mjs",
          "claimedCheckItems": 4
        }
      ],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#M23.6",
      "file": "docs/internal/mockup-conventions.md",
      "line": 1448,
      "heading": "M23.6 — Connector Endpoint Anchoring（两端锚定）+ Frame Content Avoidance（M23 extension）",
      "state": "unclassified",
      "blindSpot": false,
      "form": "bold",
      "checkItems": 0,
      "itemCount": 0,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#Acceptance~2",
      "file": "docs/internal/mockup-conventions.md",
      "line": 1509,
      "heading": "Acceptance",
      "state": "unclassified",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 5,
      "itemCount": 5,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#Acceptance~3",
      "file": "docs/internal/mockup-conventions.md",
      "line": 1555,
      "heading": "Acceptance",
      "state": "unclassified",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#(B)",
      "file": "docs/internal/mockup-conventions.md",
      "line": 1597,
      "heading": "(B) 终态优先：卡讲\"当前设计是什么\"，不讲\"设计怎么演变的\" — 2026-08-05 owner 回流（V4-2333 走查轮二十六）",
      "state": "unclassified",
      "blindSpot": false,
      "form": "bold",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#允许内容@blind:1608",
      "file": "docs/internal/mockup-conventions.md",
      "line": 1608,
      "heading": "允许内容",
      "state": "unclassified",
      "blindSpot": true,
      "form": "list-bold",
      "checkItems": 0,
      "itemCount": 0,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#Acceptance~4",
      "file": "docs/internal/mockup-conventions.md",
      "line": 1610,
      "heading": "Acceptance",
      "state": "unclassified",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 2,
      "itemCount": 2,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#M23.7",
      "file": "docs/internal/mockup-conventions.md",
      "line": 1640,
      "heading": "M23.7 — State-label = what + why + invariants（M23 / M33 extension，2026-05-26）",
      "state": "unclassified",
      "blindSpot": false,
      "form": "bold",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#Acceptance~5",
      "file": "docs/internal/mockup-conventions.md",
      "line": 1673,
      "heading": "Acceptance",
      "state": "unclassified",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#Acceptance~6",
      "file": "docs/internal/mockup-conventions.md",
      "line": 1723,
      "heading": "Acceptance",
      "state": "unclassified",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#M32.1",
      "file": "docs/internal/mockup-conventions.md",
      "line": 1736,
      "heading": "M32.1 — Component Source + Fidelity Verification（取组件三连验，M32 子条）",
      "state": "gated",
      "blindSpot": false,
      "form": "bold",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [
        {
          "gate": "/Users/nancy/.ai-ds-lab/pins/tvu-ds-dcc1c29b/scripts/audit-mockup-library-origin.mjs",
          "claimedCheckItems": 3
        }
      ],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#M32.2",
      "file": "docs/internal/mockup-conventions.md",
      "line": 1757,
      "heading": "M32.2 — 自建产品 UI 件「起手三件套」（自定义卡 / 浮层 / 面板的强制起手勾选）— 2026-06-09 新增",
      "state": "gated",
      "blindSpot": false,
      "form": "bold",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [
        {
          "gate": "/Users/nancy/.ai-ds-lab/pins/tvu-ds-dcc1c29b/scripts/audit-mockup-library-origin.mjs",
          "claimedCheckItems": 3
        }
      ],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#Acceptance~7",
      "file": "docs/internal/mockup-conventions.md",
      "line": 1787,
      "heading": "Acceptance",
      "state": "unclassified",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 4,
      "itemCount": 4,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#M32.4",
      "file": "docs/internal/mockup-conventions.md",
      "line": 1830,
      "heading": "M32.4 — 禁用（disabled）表达唯一口径：有禁用变体就切变体，没有变体才降透明度 — 2026-08-03 新增（owner 拍板回流）",
      "state": "unclassified",
      "blindSpot": false,
      "form": "bold",
      "checkItems": 4,
      "itemCount": 4,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#M32.5",
      "file": "docs/internal/mockup-conventions.md",
      "line": 1857,
      "heading": "M32.5 — 选源组件前先判断字段语义类别，不只挑\"看起来最像的邻居\"（2026-07-14 新增）",
      "state": "unclassified",
      "blindSpot": false,
      "form": "bold",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#M32.6",
      "file": "docs/internal/mockup-conventions.md",
      "line": 1878,
      "heading": "M32.6 — Spec-Value Fidelity + Confirm-Before-Deviation（2026-07-23 新增）",
      "state": "unclassified",
      "blindSpot": false,
      "form": "bold",
      "checkItems": 4,
      "itemCount": 4,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#Acceptance~8",
      "file": "docs/internal/mockup-conventions.md",
      "line": 1909,
      "heading": "Acceptance",
      "state": "unclassified",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#Acceptance~9",
      "file": "docs/internal/mockup-conventions.md",
      "line": 1993,
      "heading": "Acceptance",
      "state": "gated",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 0,
      "itemCount": 0,
      "claims": [
        {
          "gate": "/Users/nancy/.ai-ds-lab/pins/tvu-ds-dcc1c29b/scripts/audit-commit-affordance-trace.mjs",
          "claimedCheckItems": 0
        },
        {
          "gate": "/Users/nancy/.ai-ds-lab/pins/tvu-ds-dcc1c29b/scripts/audit-handoff-deliverable-sections.mjs",
          "claimedCheckItems": 0
        }
      ],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#M36",
      "file": "docs/internal/mockup-conventions.md",
      "line": 2028,
      "heading": "M36 — Multi-page module reuse → file-local component → TVU library promotion audit",
      "state": "unclassified",
      "blindSpot": false,
      "form": "bold",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#Acceptance~10",
      "file": "docs/internal/mockup-conventions.md",
      "line": 2073,
      "heading": "Acceptance",
      "state": "unclassified",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 4,
      "itemCount": 4,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#Acceptance~11",
      "file": "docs/internal/mockup-conventions.md",
      "line": 2123,
      "heading": "Acceptance",
      "state": "gated",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [
        {
          "gate": "/Users/nancy/.ai-ds-lab/pins/tvu-ds-dcc1c29b/scripts/audit-handoff-deliverable-sections.mjs",
          "claimedCheckItems": 3
        }
      ],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#Acceptance~12",
      "file": "docs/internal/mockup-conventions.md",
      "line": 2167,
      "heading": "Acceptance",
      "state": "unclassified",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 5,
      "itemCount": 5,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#Acceptance~13",
      "file": "docs/internal/mockup-conventions.md",
      "line": 2185,
      "heading": "Acceptance",
      "state": "unclassified",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#Acceptance~14",
      "file": "docs/internal/mockup-conventions.md",
      "line": 2207,
      "heading": "Acceptance",
      "state": "gated",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 2,
      "itemCount": 2,
      "claims": [
        {
          "gate": "/Users/nancy/.ai-ds-lab/pins/tvu-ds-dcc1c29b/scripts/audit-mockup-typography-icon.mjs",
          "claimedCheckItems": 2
        }
      ],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#例外",
      "file": "docs/internal/mockup-conventions.md",
      "line": 2222,
      "heading": "例外 + 硬技术约束 — 注释层正文里的排版符号（2026-08-05 回流，V4-2333 走查轮二十六）",
      "state": "not-machine-checkable",
      "blindSpot": false,
      "form": "bold",
      "checkItems": 1,
      "itemCount": 1,
      "claims": [],
      "allow": {
        "id": "docs/internal/mockup-conventions.md#例外",
        "reason": "段级。§M-TXT-ICON-AUDIT 的「例外 + 硬技术约束 — 注释层正文里的排版符号」那段，唯一核查项逐字要求「逐字符扫 Roboto 段内是否残留上表 ❌ 行字符（getStyledTextSegments(['fontName'])），且**必须看渲染图确认符号真的可见**」。两半都不可仓内机检：前半的 probe 是 use_figma 对话内的实时 Plugin API 调用（同 design-process.md#参考物落地（Reference 那条的形态，它的 probe 是 getStyledTextSegments(['hyperlink'])）；后半逐字「机读 characters 里符号永远『在』，缺 glyph 只有渲染图能发现」= 人眼判据，规则自己声明了不可机读。⚠️ 别误配给 audit-mockup-typography-icon.mjs：该闸 FONT 半的判据是 ALLOWED_FONTS 字体家族白名单（Roboto / Noto Sans SC），比的是「用没用对字体」，而本段比的是「用对了字体但该字体缺这个 glyph」——方向不同。2026-08-28 [[INFRA-F142]] 第五批逐字核后登记。",
        "since": null
      }
    },
    {
      "id": "docs/internal/mockup-conventions.md#反向问题",
      "file": "docs/internal/mockup-conventions.md",
      "line": 2238,
      "heading": "反向问题 — ZH 段（Noto Sans SC）里的**全角化**字符（2026-08-20 回流，V4-2392）",
      "state": "not-machine-checkable",
      "blindSpot": false,
      "form": "bold",
      "checkItems": 1,
      "itemCount": 1,
      "claims": [],
      "allow": {
        "id": "docs/internal/mockup-conventions.md#反向问题",
        "reason": "段级。§M-TXT-ICON-AUDIT 的「反向问题 — ZH 段（Noto Sans SC）里的全角化字符」那段，唯一核查项逐字要求「注释层 ZH 段落写入后，**看一次渲染图**确认拉丁词组内无异常空隙」。⭐ 本条是全表里依据最硬的一条：规则正文**自己逐字点名了所有候选闸并声明它们抓不到** ——「它比缺 glyph 更难发现 —— 字符是可见的，只是宽度不对，所有现有闸（字体白名单 / glyph 正则 / bilingual spacing / typography-icon）**全部 PASS**」，并逐字给出唯一判据「只有渲染图能发现」。⇒ 判 gated 会与规则原文直接矛盾。⛔ 重开条件：本段要脱离本豁免，需要的不是给某个现有闸加自陈，而是先有一条能测「渲染后的字符宽度」的新判据（当前无被测物——本仓无渲染像素面）。2026-08-28 [[INFRA-F142]] 第五批逐字核后登记。",
        "since": null
      }
    },
    {
      "id": "docs/internal/mockup-conventions.md#M39",
      "file": "docs/internal/mockup-conventions.md",
      "line": 2288,
      "heading": "M39 — Variant text property abstraction（component build 必备）— 2026-05-26 新增",
      "state": "unclassified",
      "blindSpot": false,
      "form": "bold",
      "checkItems": 4,
      "itemCount": 4,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#M40",
      "file": "docs/internal/mockup-conventions.md",
      "line": 2313,
      "heading": "M40 — `#N` list item 标号必须文档化 sequence vs name semantic — 2026-05-26 新增",
      "state": "unclassified",
      "blindSpot": false,
      "form": "bold",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#M41",
      "file": "docs/internal/mockup-conventions.md",
      "line": 2357,
      "heading": "M41 — Destructive confirm modal: 全屏 scrim + 居中单 dialog — 2026-05-26 新增",
      "state": "unclassified",
      "blindSpot": false,
      "form": "bold",
      "checkItems": 4,
      "itemCount": 4,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#Acceptance~15",
      "file": "docs/internal/mockup-conventions.md",
      "line": 2402,
      "heading": "Acceptance",
      "state": "unclassified",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#Acceptance~16",
      "file": "docs/internal/mockup-conventions.md",
      "line": 2440,
      "heading": "Acceptance",
      "state": "unclassified",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#Acceptance~17",
      "file": "docs/internal/mockup-conventions.md",
      "line": 2474,
      "heading": "Acceptance",
      "state": "unclassified",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#Acceptance~18",
      "file": "docs/internal/mockup-conventions.md",
      "line": 2555,
      "heading": "Acceptance",
      "state": "unclassified",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 6,
      "itemCount": 6,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#M43.2",
      "file": "docs/internal/mockup-conventions.md",
      "line": 2608,
      "heading": "M43.2 Acceptance",
      "state": "unclassified",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 4,
      "itemCount": 4,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#M42",
      "file": "docs/internal/mockup-conventions.md",
      "line": 2684,
      "heading": "M42 — Clone Gate: probe brand-color paint bindings before mutate — 2026-05-26 新增",
      "state": "gated",
      "blindSpot": false,
      "form": "bold",
      "checkItems": 4,
      "itemCount": 4,
      "claims": [
        {
          "gate": "/Users/nancy/.ai-ds-lab/pins/tvu-ds-dcc1c29b/scripts/audit-handoff-deliverable-sections.mjs",
          "claimedCheckItems": 4
        }
      ],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#Acceptance~19",
      "file": "docs/internal/mockup-conventions.md",
      "line": 2709,
      "heading": "Acceptance",
      "state": "unclassified",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#M42.3@blind:2730",
      "file": "docs/internal/mockup-conventions.md",
      "line": 2730,
      "heading": "M42.3 — Clone Placement Discipline: 就地改优先，禁旁路克隆搭样板（M42 extension）— 2026-06-17 新增",
      "state": "unclassified",
      "blindSpot": true,
      "form": "list-bold",
      "checkItems": 1,
      "itemCount": 1,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#Acceptance~20",
      "file": "docs/internal/mockup-conventions.md",
      "line": 2772,
      "heading": "Acceptance",
      "state": "unclassified",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#Acceptance~21",
      "file": "docs/internal/mockup-conventions.md",
      "line": 2872,
      "heading": "Acceptance",
      "state": "gated",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 4,
      "itemCount": 4,
      "claims": [
        {
          "gate": "/Users/nancy/.ai-ds-lab/pins/tvu-ds-dcc1c29b/scripts/audit-mockup-bilingual-spacing.mjs",
          "claimedCheckItems": 4
        }
      ],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#Acceptance~22",
      "file": "docs/internal/mockup-conventions.md",
      "line": 2888,
      "heading": "Acceptance",
      "state": "unclassified",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#M-DISCIPLINE.SOURCE",
      "file": "docs/internal/mockup-conventions.md",
      "line": 2953,
      "heading": "M-DISCIPLINE.SOURCE — 一条新规则该进本真源、还是留在项目 repo — 2026-08-05 新增",
      "state": "unclassified",
      "blindSpot": false,
      "form": "bold",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#M-DISCIPLINE.SCOPE",
      "file": "docs/internal/mockup-conventions.md",
      "line": 2989,
      "heading": "M-DISCIPLINE.SCOPE — scope 由「对象全集」推导，不由「我做了什么」推导 — 2026-07-30 新增",
      "state": "unclassified",
      "blindSpot": false,
      "form": "bold",
      "checkItems": 7,
      "itemCount": 7,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#M-DISCIPLINE.SYNC@blind:3079",
      "file": "docs/internal/mockup-conventions.md",
      "line": 3079,
      "heading": "M-DISCIPLINE.SYNC — 编辑 confirmed → 自动自检 + 交付物同步（状态转移触发，2026-06-18 新增，修 W3/W5）",
      "state": "unclassified",
      "blindSpot": true,
      "form": "indented-bold",
      "checkItems": 0,
      "itemCount": 0,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#M-DISCIPLINE.SYNC@blind:3107",
      "file": "docs/internal/mockup-conventions.md",
      "line": 3107,
      "heading": "M-DISCIPLINE.SYNC — 编辑 confirmed → 自动自检 + 交付物同步（状态转移触发，2026-06-18 新增，修 W3/W5）",
      "state": "unclassified",
      "blindSpot": true,
      "form": "indented-bold",
      "checkItems": 0,
      "itemCount": 0,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#M-DISCIPLINE.SYNC",
      "file": "docs/internal/mockup-conventions.md",
      "line": 3111,
      "heading": "M-DISCIPLINE.SYNC — 编辑 confirmed → 自动自检 + 交付物同步（状态转移触发，2026-06-18 新增，修 W3/W5）",
      "state": "gated",
      "blindSpot": false,
      "form": "bold",
      "checkItems": 0,
      "itemCount": 0,
      "claims": [
        {
          "gate": "/Users/nancy/.ai-ds-lab/pins/tvu-ds-dcc1c29b/scripts/audit-mockup-handoff-evidence.mjs",
          "claimedCheckItems": 0
        }
      ],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#Acceptance~23",
      "file": "docs/internal/mockup-conventions.md",
      "line": 3113,
      "heading": "Acceptance",
      "state": "unclassified",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/mockup-conventions.md#M52",
      "file": "docs/internal/mockup-conventions.md",
      "line": 3153,
      "heading": "M52 共用 Acceptance",
      "state": "gated",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 2,
      "itemCount": 2,
      "claims": [
        {
          "gate": "/Users/nancy/.ai-ds-lab/pins/tvu-ds-dcc1c29b/scripts/audit-mockup-binding-fidelity.mjs",
          "claimedCheckItems": 2
        }
      ],
      "allow": null
    },
    {
      "id": "docs/internal/domain-tvu.md#M10",
      "file": "docs/internal/domain-tvu.md",
      "line": 129,
      "heading": "M10 — List row Inactive 状态至少分两子型（Idle vs NeverStarted）",
      "state": "unclassified",
      "blindSpot": false,
      "form": "bold",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/domain-tvu.md#M11",
      "file": "docs/internal/domain-tvu.md",
      "line": 154,
      "heading": "M11 — Trend visualization: icon + 数值颜色双层信号",
      "state": "unclassified",
      "blindSpot": false,
      "form": "bold",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/domain-tvu.md#M12",
      "file": "docs/internal/domain-tvu.md",
      "line": 179,
      "heading": "M12 — 外部/异步事件不得静默 no-op：检测 → 告知 → 给前进路径",
      "state": "unclassified",
      "blindSpot": false,
      "form": "bold",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/domain-tvu.md#M13",
      "file": "docs/internal/domain-tvu.md",
      "line": 194,
      "heading": "M13 — 突发中断后必须有恢复态（reboot / 会话恢复）",
      "state": "unclassified",
      "blindSpot": false,
      "form": "bold",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/domain-tvu.md#M17",
      "file": "docs/internal/domain-tvu.md",
      "line": 211,
      "heading": "M17 — 新页面一律照该 surface 既有 canonical 范式（布局 + 控件几何 + 图标 + 按键行为）",
      "state": "gated",
      "blindSpot": false,
      "form": "bold",
      "checkItems": 7,
      "itemCount": 4,
      "claims": [
        {
          "gate": "/Users/nancy/.ai-ds-lab/pins/tvu-ds-dcc1c29b/scripts/audit-mockup-geometry-consistency.mjs",
          "claimedCheckItems": 7
        }
      ],
      "allow": null
    },
    {
      "id": "docs/internal/domain-tvu.md#M17.1",
      "file": "docs/internal/domain-tvu.md",
      "line": 253,
      "heading": "M17.1 — 枚举值选择一律用 LCD 选项列表 canonical 范式",
      "state": "unclassified",
      "blindSpot": false,
      "form": "bold",
      "checkItems": 5,
      "itemCount": 5,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/design-process.md#参考物落地（Reference",
      "file": "docs/internal/design-process.md",
      "line": 181,
      "heading": "参考物落地（Reference material on canvas）— 2026-07-29 owner 回流",
      "state": "unclassified",
      "blindSpot": false,
      "form": "bold",
      "checkItems": 5,
      "itemCount": 5,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/design-process.md#Acceptance",
      "file": "docs/internal/design-process.md",
      "line": 331,
      "heading": "Acceptance",
      "state": "gated",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 8,
      "itemCount": 8,
      "claims": [
        {
          "gate": "/Users/nancy/.ai-ds-lab/pins/tvu-ds-dcc1c29b/scripts/audit-mockup-typography-icon.mjs",
          "claimedCheckItems": 8
        }
      ],
      "allow": null
    },
    {
      "id": "docs/internal/design-process.md#Acceptance~2",
      "file": "docs/internal/design-process.md",
      "line": 476,
      "heading": "Acceptance",
      "state": "gated",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 9,
      "itemCount": 9,
      "claims": [
        {
          "gate": "/Users/nancy/.ai-ds-lab/pins/tvu-ds-dcc1c29b/scripts/design-kickoff.mjs",
          "claimedCheckItems": 9
        }
      ],
      "allow": null
    },
    {
      "id": "docs/internal/design-process.md#Acceptance~3",
      "file": "docs/internal/design-process.md",
      "line": 533,
      "heading": "Acceptance",
      "state": "gated",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [
        {
          "gate": "/Users/nancy/.ai-ds-lab/pins/tvu-ds-dcc1c29b/scripts/design-kickoff.mjs",
          "claimedCheckItems": 3
        }
      ],
      "allow": null
    },
    {
      "id": "docs/internal/design-process.md#Acceptance~4",
      "file": "docs/internal/design-process.md",
      "line": 560,
      "heading": "Acceptance",
      "state": "gated",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [
        {
          "gate": "/Users/nancy/.ai-ds-lab/pins/tvu-ds-dcc1c29b/scripts/design-kickoff.mjs",
          "claimedCheckItems": 3
        }
      ],
      "allow": null
    },
    {
      "id": "docs/internal/design-process.md#Acceptance~5",
      "file": "docs/internal/design-process.md",
      "line": 614,
      "heading": "Acceptance（Pre-Phase 0 自检）",
      "state": "unclassified",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 4,
      "itemCount": 4,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/design-process.md#Step",
      "file": "docs/internal/design-process.md",
      "line": 669,
      "heading": "Step B — PRD 起草 + 写入目标 Figma",
      "state": "unclassified",
      "blindSpot": false,
      "form": "bold",
      "checkItems": 7,
      "itemCount": 5,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/design-process.md#Canonical",
      "file": "docs/internal/design-process.md",
      "line": 714,
      "heading": "Canonical Terms Discipline（2026-06-02 新增）",
      "state": "unclassified",
      "blindSpot": false,
      "form": "bold",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/design-process.md#⚠️",
      "file": "docs/internal/design-process.md",
      "line": 833,
      "heading": "⚠️ State-Completeness Enumeration（F2-late + 体验地图 必做前置，2026-06-04 新增；2026-06-15 起亦为 M48 起手清单强制一行）",
      "state": "unclassified",
      "blindSpot": false,
      "form": "bold",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/design-process.md#Acceptance~6",
      "file": "docs/internal/design-process.md",
      "line": 887,
      "heading": "Acceptance（F2-late 验收）",
      "state": "unclassified",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 4,
      "itemCount": 4,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/design-process.md#M16.1",
      "file": "docs/internal/design-process.md",
      "line": 1136,
      "heading": "M16.1 — Multi-state spec mockup：默认态 + 越权态双 frame 覆盖",
      "state": "unclassified",
      "blindSpot": false,
      "form": "bold",
      "checkItems": 6,
      "itemCount": 3,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/design-process.md#M21.1",
      "file": "docs/internal/design-process.md",
      "line": 1208,
      "heading": "M21.1 — 建新 component 优先 clone existing functional row + mutate variant",
      "state": "unclassified",
      "blindSpot": false,
      "form": "bold",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/design-process.md#M21.2",
      "file": "docs/internal/design-process.md",
      "line": 1264,
      "heading": "M21.2 — Feature Iteration Color Contract（功能迭代色值合同）",
      "state": "unclassified",
      "blindSpot": false,
      "form": "bold",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/design-process.md#Acceptance~7",
      "file": "docs/internal/design-process.md",
      "line": 1282,
      "heading": "Acceptance",
      "state": "unclassified",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 2,
      "itemCount": 2,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/design-process.md#Acceptance~8",
      "file": "docs/internal/design-process.md",
      "line": 1309,
      "heading": "Acceptance",
      "state": "unclassified",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 2,
      "itemCount": 2,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/design-process.md#Acceptance~9",
      "file": "docs/internal/design-process.md",
      "line": 1346,
      "heading": "Acceptance",
      "state": "unclassified",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 2,
      "itemCount": 2,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/design-process.md#Acceptance~10",
      "file": "docs/internal/design-process.md",
      "line": 1379,
      "heading": "Acceptance",
      "state": "gated",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [
        {
          "gate": "/Users/nancy/.ai-ds-lab/pins/tvu-ds-dcc1c29b/scripts/audit-handoff-deliverable-sections.mjs",
          "claimedCheckItems": 3
        }
      ],
      "allow": null
    },
    {
      "id": "docs/internal/design-process.md#Acceptance~11",
      "file": "docs/internal/design-process.md",
      "line": 1431,
      "heading": "Acceptance",
      "state": "unclassified",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/design-process.md#Acceptance~12",
      "file": "docs/internal/design-process.md",
      "line": 1481,
      "heading": "Acceptance",
      "state": "unclassified",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 5,
      "itemCount": 5,
      "claims": [],
      "allow": null
    },
    {
      "id": "docs/internal/figma-technical-reference.md#Acceptance",
      "file": "docs/internal/figma-technical-reference.md",
      "line": 259,
      "heading": "Acceptance",
      "state": "not-machine-checkable",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 2,
      "itemCount": 2,
      "claims": [],
      "allow": {
        "id": "docs/internal/figma-technical-reference.md",
        "reason": "文件级豁免（id 无 # ⇒ 盖该文件全部 17 段）。2026-08-27 逐段读过全文后登记。为什么整份如此：这份文件是 use_figma 的 Figma Plugin API quirks 手册，它的每一个 Acceptance 段约束的都是**在对话里现写现跑的一次性 JS 脚本**（脚本必先 probe absoluteBoundingBox 再继续 / 批量前先单例验证 / getNodeById 前先 setCurrentPageAsync / 遍历前加 hasChildren 守卫 / clone 后必显式 appendChild 再设坐标 / createText 后必显式设 fills …），外加各段末尾的 handoff doc 记录要求。那些脚本**不落仓库**（use_figma 调用体，执行完即消失，无文件产物），handoff doc 是交付文本 —— 两者仓库侧都没有可扫的对象。⇒ 不是「这份文件很难测」，是结构上无被测物。⚠️ 如实登记唯一一处 borderline：#Acceptance~4 自带一句「audit-style check（可选）：扫 Figma export 看 root frame 是否 hug」—— 它自标「可选」，且输入面是 gitignored 的 Figma 快照（figma-data/mockup/），不在任何仓内闸的扫描面；要上闸得先解决快照入库，属独立提案，不在本条覆盖的承诺里。⛔ 文件级豁免会静默盖住将来往这份文件新加的段，若日后有段的被测物落进仓库，必须改成段级。",
        "since": null
      }
    },
    {
      "id": "docs/internal/figma-technical-reference.md#Acceptance~2",
      "file": "docs/internal/figma-technical-reference.md",
      "line": 342,
      "heading": "Acceptance",
      "state": "not-machine-checkable",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 2,
      "itemCount": 2,
      "claims": [],
      "allow": {
        "id": "docs/internal/figma-technical-reference.md",
        "reason": "文件级豁免（id 无 # ⇒ 盖该文件全部 17 段）。2026-08-27 逐段读过全文后登记。为什么整份如此：这份文件是 use_figma 的 Figma Plugin API quirks 手册，它的每一个 Acceptance 段约束的都是**在对话里现写现跑的一次性 JS 脚本**（脚本必先 probe absoluteBoundingBox 再继续 / 批量前先单例验证 / getNodeById 前先 setCurrentPageAsync / 遍历前加 hasChildren 守卫 / clone 后必显式 appendChild 再设坐标 / createText 后必显式设 fills …），外加各段末尾的 handoff doc 记录要求。那些脚本**不落仓库**（use_figma 调用体，执行完即消失，无文件产物），handoff doc 是交付文本 —— 两者仓库侧都没有可扫的对象。⇒ 不是「这份文件很难测」，是结构上无被测物。⚠️ 如实登记唯一一处 borderline：#Acceptance~4 自带一句「audit-style check（可选）：扫 Figma export 看 root frame 是否 hug」—— 它自标「可选」，且输入面是 gitignored 的 Figma 快照（figma-data/mockup/），不在任何仓内闸的扫描面；要上闸得先解决快照入库，属独立提案，不在本条覆盖的承诺里。⛔ 文件级豁免会静默盖住将来往这份文件新加的段，若日后有段的被测物落进仓库，必须改成段级。",
        "since": null
      }
    },
    {
      "id": "docs/internal/figma-technical-reference.md#Acceptance~3",
      "file": "docs/internal/figma-technical-reference.md",
      "line": 369,
      "heading": "Acceptance",
      "state": "not-machine-checkable",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 2,
      "itemCount": 2,
      "claims": [],
      "allow": {
        "id": "docs/internal/figma-technical-reference.md",
        "reason": "文件级豁免（id 无 # ⇒ 盖该文件全部 17 段）。2026-08-27 逐段读过全文后登记。为什么整份如此：这份文件是 use_figma 的 Figma Plugin API quirks 手册，它的每一个 Acceptance 段约束的都是**在对话里现写现跑的一次性 JS 脚本**（脚本必先 probe absoluteBoundingBox 再继续 / 批量前先单例验证 / getNodeById 前先 setCurrentPageAsync / 遍历前加 hasChildren 守卫 / clone 后必显式 appendChild 再设坐标 / createText 后必显式设 fills …），外加各段末尾的 handoff doc 记录要求。那些脚本**不落仓库**（use_figma 调用体，执行完即消失，无文件产物），handoff doc 是交付文本 —— 两者仓库侧都没有可扫的对象。⇒ 不是「这份文件很难测」，是结构上无被测物。⚠️ 如实登记唯一一处 borderline：#Acceptance~4 自带一句「audit-style check（可选）：扫 Figma export 看 root frame 是否 hug」—— 它自标「可选」，且输入面是 gitignored 的 Figma 快照（figma-data/mockup/），不在任何仓内闸的扫描面；要上闸得先解决快照入库，属独立提案，不在本条覆盖的承诺里。⛔ 文件级豁免会静默盖住将来往这份文件新加的段，若日后有段的被测物落进仓库，必须改成段级。",
        "since": null
      }
    },
    {
      "id": "docs/internal/figma-technical-reference.md#Acceptance~4",
      "file": "docs/internal/figma-technical-reference.md",
      "line": 397,
      "heading": "Acceptance",
      "state": "not-machine-checkable",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [],
      "allow": {
        "id": "docs/internal/figma-technical-reference.md",
        "reason": "文件级豁免（id 无 # ⇒ 盖该文件全部 17 段）。2026-08-27 逐段读过全文后登记。为什么整份如此：这份文件是 use_figma 的 Figma Plugin API quirks 手册，它的每一个 Acceptance 段约束的都是**在对话里现写现跑的一次性 JS 脚本**（脚本必先 probe absoluteBoundingBox 再继续 / 批量前先单例验证 / getNodeById 前先 setCurrentPageAsync / 遍历前加 hasChildren 守卫 / clone 后必显式 appendChild 再设坐标 / createText 后必显式设 fills …），外加各段末尾的 handoff doc 记录要求。那些脚本**不落仓库**（use_figma 调用体，执行完即消失，无文件产物），handoff doc 是交付文本 —— 两者仓库侧都没有可扫的对象。⇒ 不是「这份文件很难测」，是结构上无被测物。⚠️ 如实登记唯一一处 borderline：#Acceptance~4 自带一句「audit-style check（可选）：扫 Figma export 看 root frame 是否 hug」—— 它自标「可选」，且输入面是 gitignored 的 Figma 快照（figma-data/mockup/），不在任何仓内闸的扫描面；要上闸得先解决快照入库，属独立提案，不在本条覆盖的承诺里。⛔ 文件级豁免会静默盖住将来往这份文件新加的段，若日后有段的被测物落进仓库，必须改成段级。",
        "since": null
      }
    },
    {
      "id": "docs/internal/figma-technical-reference.md#Acceptance~5",
      "file": "docs/internal/figma-technical-reference.md",
      "line": 434,
      "heading": "Acceptance",
      "state": "not-machine-checkable",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 2,
      "itemCount": 2,
      "claims": [],
      "allow": {
        "id": "docs/internal/figma-technical-reference.md",
        "reason": "文件级豁免（id 无 # ⇒ 盖该文件全部 17 段）。2026-08-27 逐段读过全文后登记。为什么整份如此：这份文件是 use_figma 的 Figma Plugin API quirks 手册，它的每一个 Acceptance 段约束的都是**在对话里现写现跑的一次性 JS 脚本**（脚本必先 probe absoluteBoundingBox 再继续 / 批量前先单例验证 / getNodeById 前先 setCurrentPageAsync / 遍历前加 hasChildren 守卫 / clone 后必显式 appendChild 再设坐标 / createText 后必显式设 fills …），外加各段末尾的 handoff doc 记录要求。那些脚本**不落仓库**（use_figma 调用体，执行完即消失，无文件产物），handoff doc 是交付文本 —— 两者仓库侧都没有可扫的对象。⇒ 不是「这份文件很难测」，是结构上无被测物。⚠️ 如实登记唯一一处 borderline：#Acceptance~4 自带一句「audit-style check（可选）：扫 Figma export 看 root frame 是否 hug」—— 它自标「可选」，且输入面是 gitignored 的 Figma 快照（figma-data/mockup/），不在任何仓内闸的扫描面；要上闸得先解决快照入库，属独立提案，不在本条覆盖的承诺里。⛔ 文件级豁免会静默盖住将来往这份文件新加的段，若日后有段的被测物落进仓库，必须改成段级。",
        "since": null
      }
    },
    {
      "id": "docs/internal/figma-technical-reference.md#Acceptance~6",
      "file": "docs/internal/figma-technical-reference.md",
      "line": 546,
      "heading": "Acceptance",
      "state": "not-machine-checkable",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 4,
      "itemCount": 4,
      "claims": [],
      "allow": {
        "id": "docs/internal/figma-technical-reference.md",
        "reason": "文件级豁免（id 无 # ⇒ 盖该文件全部 17 段）。2026-08-27 逐段读过全文后登记。为什么整份如此：这份文件是 use_figma 的 Figma Plugin API quirks 手册，它的每一个 Acceptance 段约束的都是**在对话里现写现跑的一次性 JS 脚本**（脚本必先 probe absoluteBoundingBox 再继续 / 批量前先单例验证 / getNodeById 前先 setCurrentPageAsync / 遍历前加 hasChildren 守卫 / clone 后必显式 appendChild 再设坐标 / createText 后必显式设 fills …），外加各段末尾的 handoff doc 记录要求。那些脚本**不落仓库**（use_figma 调用体，执行完即消失，无文件产物），handoff doc 是交付文本 —— 两者仓库侧都没有可扫的对象。⇒ 不是「这份文件很难测」，是结构上无被测物。⚠️ 如实登记唯一一处 borderline：#Acceptance~4 自带一句「audit-style check（可选）：扫 Figma export 看 root frame 是否 hug」—— 它自标「可选」，且输入面是 gitignored 的 Figma 快照（figma-data/mockup/），不在任何仓内闸的扫描面；要上闸得先解决快照入库，属独立提案，不在本条覆盖的承诺里。⛔ 文件级豁免会静默盖住将来往这份文件新加的段，若日后有段的被测物落进仓库，必须改成段级。",
        "since": null
      }
    },
    {
      "id": "docs/internal/figma-technical-reference.md#Acceptance~7",
      "file": "docs/internal/figma-technical-reference.md",
      "line": 616,
      "heading": "Acceptance",
      "state": "not-machine-checkable",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 2,
      "itemCount": 2,
      "claims": [],
      "allow": {
        "id": "docs/internal/figma-technical-reference.md",
        "reason": "文件级豁免（id 无 # ⇒ 盖该文件全部 17 段）。2026-08-27 逐段读过全文后登记。为什么整份如此：这份文件是 use_figma 的 Figma Plugin API quirks 手册，它的每一个 Acceptance 段约束的都是**在对话里现写现跑的一次性 JS 脚本**（脚本必先 probe absoluteBoundingBox 再继续 / 批量前先单例验证 / getNodeById 前先 setCurrentPageAsync / 遍历前加 hasChildren 守卫 / clone 后必显式 appendChild 再设坐标 / createText 后必显式设 fills …），外加各段末尾的 handoff doc 记录要求。那些脚本**不落仓库**（use_figma 调用体，执行完即消失，无文件产物），handoff doc 是交付文本 —— 两者仓库侧都没有可扫的对象。⇒ 不是「这份文件很难测」，是结构上无被测物。⚠️ 如实登记唯一一处 borderline：#Acceptance~4 自带一句「audit-style check（可选）：扫 Figma export 看 root frame 是否 hug」—— 它自标「可选」，且输入面是 gitignored 的 Figma 快照（figma-data/mockup/），不在任何仓内闸的扫描面；要上闸得先解决快照入库，属独立提案，不在本条覆盖的承诺里。⛔ 文件级豁免会静默盖住将来往这份文件新加的段，若日后有段的被测物落进仓库，必须改成段级。",
        "since": null
      }
    },
    {
      "id": "docs/internal/figma-technical-reference.md#Acceptance~8",
      "file": "docs/internal/figma-technical-reference.md",
      "line": 644,
      "heading": "Acceptance",
      "state": "not-machine-checkable",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [],
      "allow": {
        "id": "docs/internal/figma-technical-reference.md",
        "reason": "文件级豁免（id 无 # ⇒ 盖该文件全部 17 段）。2026-08-27 逐段读过全文后登记。为什么整份如此：这份文件是 use_figma 的 Figma Plugin API quirks 手册，它的每一个 Acceptance 段约束的都是**在对话里现写现跑的一次性 JS 脚本**（脚本必先 probe absoluteBoundingBox 再继续 / 批量前先单例验证 / getNodeById 前先 setCurrentPageAsync / 遍历前加 hasChildren 守卫 / clone 后必显式 appendChild 再设坐标 / createText 后必显式设 fills …），外加各段末尾的 handoff doc 记录要求。那些脚本**不落仓库**（use_figma 调用体，执行完即消失，无文件产物），handoff doc 是交付文本 —— 两者仓库侧都没有可扫的对象。⇒ 不是「这份文件很难测」，是结构上无被测物。⚠️ 如实登记唯一一处 borderline：#Acceptance~4 自带一句「audit-style check（可选）：扫 Figma export 看 root frame 是否 hug」—— 它自标「可选」，且输入面是 gitignored 的 Figma 快照（figma-data/mockup/），不在任何仓内闸的扫描面；要上闸得先解决快照入库，属独立提案，不在本条覆盖的承诺里。⛔ 文件级豁免会静默盖住将来往这份文件新加的段，若日后有段的被测物落进仓库，必须改成段级。",
        "since": null
      }
    },
    {
      "id": "docs/internal/figma-technical-reference.md#Acceptance~9",
      "file": "docs/internal/figma-technical-reference.md",
      "line": 685,
      "heading": "Acceptance",
      "state": "not-machine-checkable",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 2,
      "itemCount": 2,
      "claims": [],
      "allow": {
        "id": "docs/internal/figma-technical-reference.md",
        "reason": "文件级豁免（id 无 # ⇒ 盖该文件全部 17 段）。2026-08-27 逐段读过全文后登记。为什么整份如此：这份文件是 use_figma 的 Figma Plugin API quirks 手册，它的每一个 Acceptance 段约束的都是**在对话里现写现跑的一次性 JS 脚本**（脚本必先 probe absoluteBoundingBox 再继续 / 批量前先单例验证 / getNodeById 前先 setCurrentPageAsync / 遍历前加 hasChildren 守卫 / clone 后必显式 appendChild 再设坐标 / createText 后必显式设 fills …），外加各段末尾的 handoff doc 记录要求。那些脚本**不落仓库**（use_figma 调用体，执行完即消失，无文件产物），handoff doc 是交付文本 —— 两者仓库侧都没有可扫的对象。⇒ 不是「这份文件很难测」，是结构上无被测物。⚠️ 如实登记唯一一处 borderline：#Acceptance~4 自带一句「audit-style check（可选）：扫 Figma export 看 root frame 是否 hug」—— 它自标「可选」，且输入面是 gitignored 的 Figma 快照（figma-data/mockup/），不在任何仓内闸的扫描面；要上闸得先解决快照入库，属独立提案，不在本条覆盖的承诺里。⛔ 文件级豁免会静默盖住将来往这份文件新加的段，若日后有段的被测物落进仓库，必须改成段级。",
        "since": null
      }
    },
    {
      "id": "docs/internal/figma-technical-reference.md#Acceptance~10",
      "file": "docs/internal/figma-technical-reference.md",
      "line": 722,
      "heading": "Acceptance",
      "state": "not-machine-checkable",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [],
      "allow": {
        "id": "docs/internal/figma-technical-reference.md",
        "reason": "文件级豁免（id 无 # ⇒ 盖该文件全部 17 段）。2026-08-27 逐段读过全文后登记。为什么整份如此：这份文件是 use_figma 的 Figma Plugin API quirks 手册，它的每一个 Acceptance 段约束的都是**在对话里现写现跑的一次性 JS 脚本**（脚本必先 probe absoluteBoundingBox 再继续 / 批量前先单例验证 / getNodeById 前先 setCurrentPageAsync / 遍历前加 hasChildren 守卫 / clone 后必显式 appendChild 再设坐标 / createText 后必显式设 fills …），外加各段末尾的 handoff doc 记录要求。那些脚本**不落仓库**（use_figma 调用体，执行完即消失，无文件产物），handoff doc 是交付文本 —— 两者仓库侧都没有可扫的对象。⇒ 不是「这份文件很难测」，是结构上无被测物。⚠️ 如实登记唯一一处 borderline：#Acceptance~4 自带一句「audit-style check（可选）：扫 Figma export 看 root frame 是否 hug」—— 它自标「可选」，且输入面是 gitignored 的 Figma 快照（figma-data/mockup/），不在任何仓内闸的扫描面；要上闸得先解决快照入库，属独立提案，不在本条覆盖的承诺里。⛔ 文件级豁免会静默盖住将来往这份文件新加的段，若日后有段的被测物落进仓库，必须改成段级。",
        "since": null
      }
    },
    {
      "id": "docs/internal/figma-technical-reference.md#Acceptance~11",
      "file": "docs/internal/figma-technical-reference.md",
      "line": 753,
      "heading": "Acceptance",
      "state": "not-machine-checkable",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [],
      "allow": {
        "id": "docs/internal/figma-technical-reference.md",
        "reason": "文件级豁免（id 无 # ⇒ 盖该文件全部 17 段）。2026-08-27 逐段读过全文后登记。为什么整份如此：这份文件是 use_figma 的 Figma Plugin API quirks 手册，它的每一个 Acceptance 段约束的都是**在对话里现写现跑的一次性 JS 脚本**（脚本必先 probe absoluteBoundingBox 再继续 / 批量前先单例验证 / getNodeById 前先 setCurrentPageAsync / 遍历前加 hasChildren 守卫 / clone 后必显式 appendChild 再设坐标 / createText 后必显式设 fills …），外加各段末尾的 handoff doc 记录要求。那些脚本**不落仓库**（use_figma 调用体，执行完即消失，无文件产物），handoff doc 是交付文本 —— 两者仓库侧都没有可扫的对象。⇒ 不是「这份文件很难测」，是结构上无被测物。⚠️ 如实登记唯一一处 borderline：#Acceptance~4 自带一句「audit-style check（可选）：扫 Figma export 看 root frame 是否 hug」—— 它自标「可选」，且输入面是 gitignored 的 Figma 快照（figma-data/mockup/），不在任何仓内闸的扫描面；要上闸得先解决快照入库，属独立提案，不在本条覆盖的承诺里。⛔ 文件级豁免会静默盖住将来往这份文件新加的段，若日后有段的被测物落进仓库，必须改成段级。",
        "since": null
      }
    },
    {
      "id": "docs/internal/figma-technical-reference.md#Acceptance~12",
      "file": "docs/internal/figma-technical-reference.md",
      "line": 817,
      "heading": "Acceptance",
      "state": "not-machine-checkable",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [],
      "allow": {
        "id": "docs/internal/figma-technical-reference.md",
        "reason": "文件级豁免（id 无 # ⇒ 盖该文件全部 17 段）。2026-08-27 逐段读过全文后登记。为什么整份如此：这份文件是 use_figma 的 Figma Plugin API quirks 手册，它的每一个 Acceptance 段约束的都是**在对话里现写现跑的一次性 JS 脚本**（脚本必先 probe absoluteBoundingBox 再继续 / 批量前先单例验证 / getNodeById 前先 setCurrentPageAsync / 遍历前加 hasChildren 守卫 / clone 后必显式 appendChild 再设坐标 / createText 后必显式设 fills …），外加各段末尾的 handoff doc 记录要求。那些脚本**不落仓库**（use_figma 调用体，执行完即消失，无文件产物），handoff doc 是交付文本 —— 两者仓库侧都没有可扫的对象。⇒ 不是「这份文件很难测」，是结构上无被测物。⚠️ 如实登记唯一一处 borderline：#Acceptance~4 自带一句「audit-style check（可选）：扫 Figma export 看 root frame 是否 hug」—— 它自标「可选」，且输入面是 gitignored 的 Figma 快照（figma-data/mockup/），不在任何仓内闸的扫描面；要上闸得先解决快照入库，属独立提案，不在本条覆盖的承诺里。⛔ 文件级豁免会静默盖住将来往这份文件新加的段，若日后有段的被测物落进仓库，必须改成段级。",
        "since": null
      }
    },
    {
      "id": "docs/internal/figma-technical-reference.md#Acceptance~13",
      "file": "docs/internal/figma-technical-reference.md",
      "line": 870,
      "heading": "Acceptance",
      "state": "not-machine-checkable",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 4,
      "itemCount": 4,
      "claims": [],
      "allow": {
        "id": "docs/internal/figma-technical-reference.md",
        "reason": "文件级豁免（id 无 # ⇒ 盖该文件全部 17 段）。2026-08-27 逐段读过全文后登记。为什么整份如此：这份文件是 use_figma 的 Figma Plugin API quirks 手册，它的每一个 Acceptance 段约束的都是**在对话里现写现跑的一次性 JS 脚本**（脚本必先 probe absoluteBoundingBox 再继续 / 批量前先单例验证 / getNodeById 前先 setCurrentPageAsync / 遍历前加 hasChildren 守卫 / clone 后必显式 appendChild 再设坐标 / createText 后必显式设 fills …），外加各段末尾的 handoff doc 记录要求。那些脚本**不落仓库**（use_figma 调用体，执行完即消失，无文件产物），handoff doc 是交付文本 —— 两者仓库侧都没有可扫的对象。⇒ 不是「这份文件很难测」，是结构上无被测物。⚠️ 如实登记唯一一处 borderline：#Acceptance~4 自带一句「audit-style check（可选）：扫 Figma export 看 root frame 是否 hug」—— 它自标「可选」，且输入面是 gitignored 的 Figma 快照（figma-data/mockup/），不在任何仓内闸的扫描面；要上闸得先解决快照入库，属独立提案，不在本条覆盖的承诺里。⛔ 文件级豁免会静默盖住将来往这份文件新加的段，若日后有段的被测物落进仓库，必须改成段级。",
        "since": null
      }
    },
    {
      "id": "docs/internal/figma-technical-reference.md#Acceptance~14",
      "file": "docs/internal/figma-technical-reference.md",
      "line": 906,
      "heading": "Acceptance",
      "state": "not-machine-checkable",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [],
      "allow": {
        "id": "docs/internal/figma-technical-reference.md",
        "reason": "文件级豁免（id 无 # ⇒ 盖该文件全部 17 段）。2026-08-27 逐段读过全文后登记。为什么整份如此：这份文件是 use_figma 的 Figma Plugin API quirks 手册，它的每一个 Acceptance 段约束的都是**在对话里现写现跑的一次性 JS 脚本**（脚本必先 probe absoluteBoundingBox 再继续 / 批量前先单例验证 / getNodeById 前先 setCurrentPageAsync / 遍历前加 hasChildren 守卫 / clone 后必显式 appendChild 再设坐标 / createText 后必显式设 fills …），外加各段末尾的 handoff doc 记录要求。那些脚本**不落仓库**（use_figma 调用体，执行完即消失，无文件产物），handoff doc 是交付文本 —— 两者仓库侧都没有可扫的对象。⇒ 不是「这份文件很难测」，是结构上无被测物。⚠️ 如实登记唯一一处 borderline：#Acceptance~4 自带一句「audit-style check（可选）：扫 Figma export 看 root frame 是否 hug」—— 它自标「可选」，且输入面是 gitignored 的 Figma 快照（figma-data/mockup/），不在任何仓内闸的扫描面；要上闸得先解决快照入库，属独立提案，不在本条覆盖的承诺里。⛔ 文件级豁免会静默盖住将来往这份文件新加的段，若日后有段的被测物落进仓库，必须改成段级。",
        "since": null
      }
    },
    {
      "id": "docs/internal/figma-technical-reference.md#Acceptance~15",
      "file": "docs/internal/figma-technical-reference.md",
      "line": 943,
      "heading": "Acceptance",
      "state": "not-machine-checkable",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [],
      "allow": {
        "id": "docs/internal/figma-technical-reference.md",
        "reason": "文件级豁免（id 无 # ⇒ 盖该文件全部 17 段）。2026-08-27 逐段读过全文后登记。为什么整份如此：这份文件是 use_figma 的 Figma Plugin API quirks 手册，它的每一个 Acceptance 段约束的都是**在对话里现写现跑的一次性 JS 脚本**（脚本必先 probe absoluteBoundingBox 再继续 / 批量前先单例验证 / getNodeById 前先 setCurrentPageAsync / 遍历前加 hasChildren 守卫 / clone 后必显式 appendChild 再设坐标 / createText 后必显式设 fills …），外加各段末尾的 handoff doc 记录要求。那些脚本**不落仓库**（use_figma 调用体，执行完即消失，无文件产物），handoff doc 是交付文本 —— 两者仓库侧都没有可扫的对象。⇒ 不是「这份文件很难测」，是结构上无被测物。⚠️ 如实登记唯一一处 borderline：#Acceptance~4 自带一句「audit-style check（可选）：扫 Figma export 看 root frame 是否 hug」—— 它自标「可选」，且输入面是 gitignored 的 Figma 快照（figma-data/mockup/），不在任何仓内闸的扫描面；要上闸得先解决快照入库，属独立提案，不在本条覆盖的承诺里。⛔ 文件级豁免会静默盖住将来往这份文件新加的段，若日后有段的被测物落进仓库，必须改成段级。",
        "since": null
      }
    },
    {
      "id": "docs/internal/figma-technical-reference.md#Acceptance~16",
      "file": "docs/internal/figma-technical-reference.md",
      "line": 973,
      "heading": "Acceptance",
      "state": "not-machine-checkable",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [],
      "allow": {
        "id": "docs/internal/figma-technical-reference.md",
        "reason": "文件级豁免（id 无 # ⇒ 盖该文件全部 17 段）。2026-08-27 逐段读过全文后登记。为什么整份如此：这份文件是 use_figma 的 Figma Plugin API quirks 手册，它的每一个 Acceptance 段约束的都是**在对话里现写现跑的一次性 JS 脚本**（脚本必先 probe absoluteBoundingBox 再继续 / 批量前先单例验证 / getNodeById 前先 setCurrentPageAsync / 遍历前加 hasChildren 守卫 / clone 后必显式 appendChild 再设坐标 / createText 后必显式设 fills …），外加各段末尾的 handoff doc 记录要求。那些脚本**不落仓库**（use_figma 调用体，执行完即消失，无文件产物），handoff doc 是交付文本 —— 两者仓库侧都没有可扫的对象。⇒ 不是「这份文件很难测」，是结构上无被测物。⚠️ 如实登记唯一一处 borderline：#Acceptance~4 自带一句「audit-style check（可选）：扫 Figma export 看 root frame 是否 hug」—— 它自标「可选」，且输入面是 gitignored 的 Figma 快照（figma-data/mockup/），不在任何仓内闸的扫描面；要上闸得先解决快照入库，属独立提案，不在本条覆盖的承诺里。⛔ 文件级豁免会静默盖住将来往这份文件新加的段，若日后有段的被测物落进仓库，必须改成段级。",
        "since": null
      }
    },
    {
      "id": "docs/internal/figma-technical-reference.md#Acceptance~17",
      "file": "docs/internal/figma-technical-reference.md",
      "line": 1017,
      "heading": "Acceptance",
      "state": "not-machine-checkable",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 4,
      "itemCount": 4,
      "claims": [],
      "allow": {
        "id": "docs/internal/figma-technical-reference.md",
        "reason": "文件级豁免（id 无 # ⇒ 盖该文件全部 17 段）。2026-08-27 逐段读过全文后登记。为什么整份如此：这份文件是 use_figma 的 Figma Plugin API quirks 手册，它的每一个 Acceptance 段约束的都是**在对话里现写现跑的一次性 JS 脚本**（脚本必先 probe absoluteBoundingBox 再继续 / 批量前先单例验证 / getNodeById 前先 setCurrentPageAsync / 遍历前加 hasChildren 守卫 / clone 后必显式 appendChild 再设坐标 / createText 后必显式设 fills …），外加各段末尾的 handoff doc 记录要求。那些脚本**不落仓库**（use_figma 调用体，执行完即消失，无文件产物），handoff doc 是交付文本 —— 两者仓库侧都没有可扫的对象。⇒ 不是「这份文件很难测」，是结构上无被测物。⚠️ 如实登记唯一一处 borderline：#Acceptance~4 自带一句「audit-style check（可选）：扫 Figma export 看 root frame 是否 hug」—— 它自标「可选」，且输入面是 gitignored 的 Figma 快照（figma-data/mockup/），不在任何仓内闸的扫描面；要上闸得先解决快照入库，属独立提案，不在本条覆盖的承诺里。⛔ 文件级豁免会静默盖住将来往这份文件新加的段，若日后有段的被测物落进仓库，必须改成段级。",
        "since": null
      }
    },
    {
      "id": "docs/internal/code-conventions.md#Acceptance",
      "file": "docs/internal/code-conventions.md",
      "line": 317,
      "heading": "Acceptance criteria（build 自审）",
      "state": "not-machine-checkable",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [],
      "allow": {
        "id": "docs/internal/code-conventions.md#Acceptance",
        "reason": "段级。§Acceptance criteria（build 自审）三条全是**要作者答得出的问题**（自画 SVG 几个 / 有无库实证证据（搜索词+结果）/ 用了多少 hex literal / 复合组件 mirror 自哪个 canonical），段尾逐字「任一条答不出 → 不可宣布完成」。被测物 = 作者在 PR/handoff 里的答案，不落仓库。⚠️ 别与「后果面已被闸守」混为一谈：hex literal 的**结果**由 audit:no-hardcoded-design-tokens（硬规则 #4，L5）守、自画 SVG 的结果由 audit-product-code R1 守 —— 那是 §R1/§R2 两条规则各自的闸，不是本段这三个自审问题的闸。本段问的是「你答不答得出」，无闸可核。",
        "since": null
      }
    },
    {
      "id": "docs/internal/code-conventions.md#Acceptance~2",
      "file": "docs/internal/code-conventions.md",
      "line": 567,
      "heading": "Acceptance criteria（build 自审）",
      "state": "not-machine-checkable",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 5,
      "itemCount": 5,
      "claims": [],
      "allow": {
        "id": "docs/internal/code-conventions.md#Acceptance~2",
        "reason": "段级。R7 四场景判断的自审：要求 AI 在任务开始前显式声明一行「intent classified as 场景 X.Y」、场景 2 里抑制顺手修复的冲动、命中 Hybrid 边界先 ask 用户。被测物是**AI 的 response 文本与判断过程**，不落仓库。唯一落盘的那条（保留的非 TVU 视觉标 VISUAL-FIDELITY 注释）其判据是「该不该标」= 语义判断，机器分不出哪段视觉是 from source。",
        "since": null
      }
    },
    {
      "id": "docs/internal/code-conventions.md#Acceptance~3",
      "file": "docs/internal/code-conventions.md",
      "line": 702,
      "heading": "Acceptance criteria（build 自审）",
      "state": "not-machine-checkable",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 8,
      "itemCount": 8,
      "claims": [],
      "allow": {
        "id": "docs/internal/code-conventions.md#Acceptance~3",
        "reason": "段级。要求任务交付时 AI 显式声明「已 run figma-extract-css.py」「已完成自检 N 轮，diff% = X.XX%」、超阈值时显式声明豁免理由、修复轨迹记录在 commit/handoff。被测物是交付叙述 + 一次性本地脚本产出（extracted-css.css / visual-diff 截图均不入库）。段内两条实体规则（矢量源→矢量输出、禁止 approximate 重画 vector）的**违例形态**是「用了 raster 中转」/「手写近似 path」—— 判据要求分辨一段 inline SVG 是真实导出还是手绘近似，逐字撞 FIGMA_AS_SOURCE_OF_TRUTH.md §验证方法禁止的启发式。",
        "since": null
      }
    },
    {
      "id": "docs/internal/code-conventions.md#Acceptance~4",
      "file": "docs/internal/code-conventions.md",
      "line": 841,
      "heading": "Acceptance criteria（build 自审）",
      "state": "not-machine-checkable",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [],
      "allow": {
        "id": "docs/internal/code-conventions.md#Acceptance~4",
        "reason": "段级。要求 AI 交付前列出「推断的交互态规则表」、hover/focus/disabled 补齐、推断方向与 active state 一致。被测物是那张表（交付文本）。⚠️ 补没补 hover 这一半在 consumer 侧确有 R9 探针，但它逐字标 ADVISORY（report-only、HIGH FP、从不 set exit 1）⇒ 结构上不是闸；且它覆盖不到「推断方向是否与 active state 逻辑一致」这条语义判断。⇒ 本段整体无闸可核，R9 升 blocking 后可重议本行。",
        "since": null
      }
    },
    {
      "id": "docs/internal/code-conventions.md#Acceptance~5",
      "file": "docs/internal/code-conventions.md",
      "line": 912,
      "heading": "Acceptance criteria（build 自审）",
      "state": "not-machine-checkable",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 4,
      "itemCount": 4,
      "claims": [],
      "allow": {
        "id": "docs/internal/code-conventions.md#Acceptance~5",
        "reason": "段级。四条全是任务开始前的**显式声明**与**问不问用户**（声明 vector strategy: X (reason: ...) / ambiguous case C/D 要 ask user 而非自作主张 / case D 列疑问点等用户拍板 / 起手 run figma-extract-css.py）。被测物是对话行为与 AI response，仓库侧零对象。",
        "since": null
      }
    },
    {
      "id": "docs/internal/code-conventions.md#Acceptance~6",
      "file": "docs/internal/code-conventions.md",
      "line": 1018,
      "heading": "Acceptance",
      "state": "gated",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [
        {
          "gate": "/Users/nancy/.ai-ds-lab/pins/tvu-ds-dcc1c29b/scripts/audit-product-code.mjs",
          "claimedCheckItems": 3
        }
      ],
      "allow": null
    },
    {
      "id": "docs/internal/code-conventions.md#Acceptance~7",
      "file": "docs/internal/code-conventions.md",
      "line": 1063,
      "heading": "Acceptance",
      "state": "not-machine-checkable",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [],
      "allow": {
        "id": "docs/internal/code-conventions.md#Acceptance~7",
        "reason": "段级。R15 Library-First 的自审：handoff/PR 必含一行「UI primitives used: [...]」、新写 JSX/Vue template 未 import canonical 则触发 flag、自画必须在 commit message 留 escalation 痕迹。被测物是 handoff 文本 + commit message + PR 正文。⚠️ 「新写原生控件」这一后果面确由 audit-product-code R15 守（原生 <button>/<input>/<select>/<textarea>），但本段要的是**声明与 escalation 痕迹**，R15 看不到那些；且 R15 是 consumer 侧扫描面，本段约束的是任何 implementation PR 的作者行为。",
        "since": null
      }
    },
    {
      "id": "docs/internal/code-conventions.md#Acceptance~8",
      "file": "docs/internal/code-conventions.md",
      "line": 1129,
      "heading": "Acceptance",
      "state": "gated",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [
        {
          "gate": "/Users/nancy/.ai-ds-lab/pins/tvu-ds-dcc1c29b/scripts/audit-product-code.mjs",
          "claimedCheckItems": 3
        }
      ],
      "allow": null
    },
    {
      "id": "docs/internal/code-conventions.md#Acceptance~9",
      "file": "docs/internal/code-conventions.md",
      "line": 1210,
      "heading": "Acceptance",
      "state": "gated",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 4,
      "itemCount": 3,
      "claims": [
        {
          "gate": "/Users/nancy/.ai-ds-lab/pins/tvu-ds-dcc1c29b/scripts/audit-commit-affordance-trace.mjs",
          "claimedCheckItems": 4
        },
        {
          "gate": "/Users/nancy/.ai-ds-lab/pins/tvu-ds-dcc1c29b/scripts/audit-handoff-deliverable-sections.mjs",
          "claimedCheckItems": 4
        }
      ],
      "allow": null
    },
    {
      "id": "docs/internal/code-conventions.md#Acceptance~10",
      "file": "docs/internal/code-conventions.md",
      "line": 1271,
      "heading": "Acceptance",
      "state": "not-machine-checkable",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [],
      "allow": {
        "id": "docs/internal/code-conventions.md#Acceptance~10",
        "reason": "段级。module reuse 的 code review 纪律：review 时 grep 相似 pattern 应集中在 1 个 component file、handoff 必含 reused components 段（每个 module 的 import count + 是否已抽）、代码块复制 3+ 次没抽 component 视为违规。前两条的被测物是 review 行为与 handoff 文本；第三条要机检需要「相似代码块」判定 = 启发式（多相似算复制、抽到什么粒度算已抽），撞 FIGMA_AS_SOURCE_OF_TRUTH.md §验证方法。",
        "since": null
      }
    },
    {
      "id": "docs/internal/code-conventions.md#Acceptance~11",
      "file": "docs/internal/code-conventions.md",
      "line": 1302,
      "heading": "Acceptance",
      "state": "not-machine-checkable",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [],
      "allow": {
        "id": "docs/internal/code-conventions.md#Acceptance~11",
        "reason": "段级。M37 Reference probe 的三条：handoff/PR 必含 5-row probe table、每个新文件标注来自 reference 复用还是新增创造、reviewer 能从 probe table 反查漏了哪条 contract。第一条的**存在性**已由 audit:handoff-sections 守（它逐字扫 \"Reference probe\" 短语），但那是 M37 那条规则的闸、不是本段；本段其余两条（逐文件来源标注 + reviewer 能否反查）的被测物是人的 review 行为，无对象可扫。⇒ 若日后要把本段改判 gated，正确动作是让 audit-handoff-deliverable-sections.mjs 增写一行 covers-acceptance 指向本 id，并删掉本行（shrink-only 会要求删）。",
        "since": null
      }
    },
    {
      "id": "docs/internal/code-conventions.md#Acceptance~12",
      "file": "docs/internal/code-conventions.md",
      "line": 1341,
      "heading": "Acceptance",
      "state": "gated",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 5,
      "itemCount": 5,
      "claims": [
        {
          "gate": "/Users/nancy/.ai-ds-lab/pins/tvu-ds-dcc1c29b/scripts/audit-product-code.mjs",
          "claimedCheckItems": 5
        }
      ],
      "allow": null
    },
    {
      "id": "docs/internal/code-conventions.md#Acceptance~13",
      "file": "docs/internal/code-conventions.md",
      "line": 1439,
      "heading": "Acceptance",
      "state": "not-machine-checkable",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 5,
      "itemCount": 5,
      "claims": [],
      "allow": {
        "id": "docs/internal/code-conventions.md#Acceptance~13",
        "reason": "段级。文本截断 + tooltip 的五条：用指定 CSS pattern 之一、用 scrollWidth > clientWidth 检测、tooltip 用 library 组件而非自画、a11y 双保险（aria-describedby + title）、至少 1 个单测覆盖「截断→tooltip 触发」。被测物是**消费产品仓的代码与测试**，不在本仓任何闸的扫描面（audit:consumer-code 需在 consumer 侧跑且未实现这几条判据）。⇒ 是「被测物在别的仓」不是「不可机检」——若日后 consumer 档补上对应 probe，本行应删。",
        "since": null
      }
    },
    {
      "id": "docs/internal/code-conventions.md#Acceptance~14",
      "file": "docs/internal/code-conventions.md",
      "line": 1510,
      "heading": "Acceptance",
      "state": "not-machine-checkable",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 3,
      "itemCount": 3,
      "claims": [],
      "allow": {
        "id": "docs/internal/code-conventions.md#Acceptance~14",
        "reason": "段级。R-rule 起手协议自审：写第一行 component code 前 conversation 内可见一次 TodoWrite 调用（list 含本次适用 R-rule 编号）、handoff 顶部含 \"Rule checklist: [R0 ✅ / R1 ✅ / ...]\"、宣布 ready for review 前 todo 的 pending/in_progress 数 = 0。被测物是**AI 的对话 transcript 与 todo 状态**，那是工具会话内的运行时状态，仓库里不存在。",
        "since": null
      }
    },
    {
      "id": "AGENTS.md#Acceptance",
      "file": "AGENTS.md",
      "line": 743,
      "heading": "Acceptance",
      "state": "not-machine-checkable",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 4,
      "itemCount": 4,
      "claims": [],
      "allow": {
        "id": "AGENTS.md#Acceptance",
        "reason": "段级。§Slack mrkdwn 的四条起草纪律（起草前确认平台是 Slack / 嵌套结构扁平化成 *section title* + 单层 • / 所有加粗用单 * / URL 直接粘贴不包 markdown link）。被测物是**发到 Slack 的消息正文**，不落仓库；grep 实测 scripts/*.mjs 无任何 Slack 判据，也不该有（消息发出前的形态只存在于对话里）。⛔ 用段级不用文件级：AGENTS.md 是高频活跃文档，文件级豁免会静默盖住将来新增的段。",
        "since": null
      }
    },
    {
      "id": "AGENTS.md#Jira",
      "file": "AGENTS.md",
      "line": 799,
      "heading": "Jira Acceptance",
      "state": "not-machine-checkable",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 4,
      "itemCount": 4,
      "claims": [],
      "allow": {
        "id": "AGENTS.md#Jira",
        "reason": "段级。§Jira 评论的七条（起草前确认平台 / 正文英文 / 对外先给 owner 过目草稿 / review 评论从简 / contentFormat adf + accountId 真 mention / 内容多于确认+link 就拆多条 / reply 提示走 UI）。被测物是**发到 Jira 的评论**（经 MCP 调用发出），仓库侧零痕迹；「先给 owner 过目」更是人在回路的动作。⛔ 同上，用段级不用文件级。",
        "since": null
      }
    },
    {
      "id": "docs/meta-rules.md#Acceptance",
      "file": "docs/meta-rules.md",
      "line": 694,
      "heading": "Acceptance",
      "state": "not-machine-checkable",
      "blindSpot": false,
      "form": "heading",
      "checkItems": 4,
      "itemCount": 4,
      "claims": [],
      "allow": {
        "id": "docs/meta-rules.md#Acceptance",
        "reason": "段级。触发器并行化的四条：任务有 ≥2 个可独立子任务时 response 顶部必含 Parallelism plan: 段、该段列出每个 track 的输入/输出/是否 independent、independent tracks 必须在单条 message 内并发触发、违例被提醒一次就写进实证段。被测物是**AI 自己那条 response 的文本与工具调用形态**（一条 message 里发了几个 tool_use），仓库里不存在该对象。⛔ 用段级不用文件级：meta-rules.md 是活跃的元规则真源，文件级会静默盖住将来新增的段。",
        "since": null
      }
    }
  ],
  "controls": [
    {
      "id": "must-hit-1/narrow-equals-gate",
      "pass": true,
      "detail": "narrow=118 gate.sections=118"
    },
    {
      "id": "must-hit-2/line-count-conserved",
      "pass": true,
      "detail": "docs/internal/mockup-conventions.md:3243→3243 · docs/internal/domain-tvu.md:263→263 · docs/internal/design-process.md:1492→1492 · docs/internal/figma-technical-reference.md:1073→1073 · docs/internal/code-conventions.md:1528→1528 · AGENTS.md:819→819 · docs/meta-rules.md:968→968"
    },
    {
      "id": "must-hit-3/blind-internally-consistent",
      "pass": true,
      "detail": "wide-narrow=8 marked=8"
    },
    {
      "id": "must-not-hit-1/stripped-never-leaks-into-rows",
      "pass": true,
      "detail": "已剥离 0 处，漏入 rows 0 处（真实数据无此形态）"
    },
    {
      "id": "must-hit-4/narrow-tri-state-equals-gate",
      "pass": true,
      "detail": "narrow={\"gated\":27,\"not-machine-checkable\":32,\"unclassified\":59} gate={\"gated\":27,\"not-machine-checkable\":32,\"unclassified\":59}"
    },
    {
      "id": "must-not-hit-3/blind-never-gated",
      "pass": true,
      "detail": "0 条盲区被判 gated"
    },
    {
      "id": "must-not-hit-2/blind-confined-to-known-file",
      "pass": true,
      "detail": "8 条全在 mockup-conventions.md"
    }
  ]
}