{
  "taskId": "GT-001",
  "slug": "live-source-console",
  "archetype": "list-console",
  "archetypeLabel": "列表台",
  "taskSetVersion": "v1",

  "provenance": {
    "kind": "real-requirement",
    "pinnedSha": "4a68e02d3d695cee3c39d255ea5d20f7f2bf9b8c",
    "citations": [
      {
        "path": "docs/internal/_plans/2026-07-24-p0-systematic-gap-fixes.md",
        "mustContain": "直播源管理",
        "why": "DS 自己 2026-07-24 的 3-way 受控实验用的就是这条任务（3 个 subagent 冷跑同一任务）。⇒ 本条是三条里唯一有历史先例的。"
      },
      {
        "path": "docs/internal/_plans/2026-07-24-p0-systematic-gap-fixes.md",
        "mustContain": "行内状态 pill + 行内操作按钮",
        "why": "3/3 builder 独立撞到的同一堵墙（Table 无法表达行内状态/操作），P0-1 已 ship TableCellDescriptor 修它。⇒ 本条能直接测「修复有没有让 AI 不再手搓 flex/<table>」。"
      }
    ]
  },

  "prompt": {
    "templateVersion": "pt-v1",
    "text": "请用 TVU 设计系统，为 TVU 的运营人员设计并实现一个「直播源管理」页面的高保真 mockup，产出**单文件 HTML**。\n\n运营人员需要在一屏内掌握所有直播源的当前状况，并能对单个源执行日常操作。至少要覆盖：\n\n1. 多条直播源的列表视图（不少于 6 条），每条至少含名称、来源地址、目标接收端\n2. 每条源的运行状态，且**正常 / 告警 / 离线三态在视觉上可区分**\n3. 每条源的行内操作入口（至少含「停止推流」与一个次要操作）\n4. 页面级导航\n5. 「停止推流」会造成业务中断 ⇒ 需要一次二次确认\n\n约束：单文件、可直接在浏览器打开、不引外部 CDN。"
  },

  "outputContract": {
    "form": "single-file-html",
    "path": "runs/<runId>/GT-001.html",
    "mustNotRequire": ["network", "FIGMA_TOKEN", "build step"]
  },

  "graders": [
    {
      "id": "ds-html-conformance",
      "kind": "T1",
      "judgeSource": "DS gate",
      "script": "scripts/audit-mockup-html-conformance.mjs",
      "caliper": "5 规则口径（popupbox-for-confirm / unconstrained-svg / handrolled-nav = error；hardcoded-color / alert-confirmText = warn）",
      "expectedDiscrimination": "本任务第 5 项（二次确认）直接打 popupbox-for-confirm 这条旗舰规则 —— 3-way 实验的核心洞察正是「读了规则仍用 PopupBox」。第 4 项打 handrolled-nav。"
    },
    {
      "id": "lab-escape-rate",
      "kind": "T1",
      "judgeSource": "lab 自写",
      "script": "metrics/escape-rate.mjs",
      "caliper": "字面色值/间距口径（排除 var() 内部、纯黑白、0px/1px、token 真源文件）",
      "expectedDiscrimination": "列表台配色面大，逃逸值分母足。"
    }
  ],

  "whyThisTask": "三条里唯一有历史先例（n=1）的一条，且 P0-1（Table 富单元格）与 P0-2（HTML linter）两项修复都是为它做的。⇒ 它同时是 6′ 的噪声地板样本和「第一轮修复见效没有」的观测点。",

  "boundaries": [
    "⛔ 这不是「团队真实工作流」的复刻。ledger 里 56 条真实任务**全部**是 Figma mockup（类型列无一条 code），而本任务的产出形态是 HTML —— 这是一次**形态转写**，沿用 3-way 实验的先例（那次也是 HTML + Playwright 渲染），不是原样重放。",
    "⛔ `docs/internal/_demos/*.html` 那 2 份**不得**用作参考答案：P0-2 linter 的校准硬线逐字写着「对现有 2 个 _demos/*.html 必须 PASS」⇒ 它们是该 grader 的过拟合面，不能同时当测试集。",
    "上一次 3-way 实验的产物留档在 `scratch/ux-test/`，在 pin 上 tracked = 0、工作树不存在 ⇒ **不可作为桥接基线**，本条与那次读数不可并排比。"
  ]
}
